Day three of Devoxx was the best day so far: a very good presentation by Stefan Tilkov on REST patterns and anti-patterns. After reading some discussions on REST, especially some comments by Roy Fielding, i was curious to know what the correct way of applying REST was. Turns out i was close in my applications but i’ll need to add links between resources. Anyway, excellent presentation by Stefan. You can find his presentation on his blog: Devoxx 08 talk.
The day started with a surprise: JavaFX looks better than expected. I was impressed by nine videos running at the same time, and the fact that you can simply drag an applet from the browser and run it as a desktop application. Data binding certainly is an improvement over swing, so i can imagine using JavaFX for all things that you would normally use swing for; not just for creating RIAs. Also, the plugin for Adobe Photoshop and Adobe Illustrator seems usefull. All RIAs framework vendors seem to agree on the fact that look and feel is very important for RIAs, and that the graphic designers should be included in the development process.
And that is Oracle ADFs biggest disadvantage: limited skinning options. The ADF demo was pretty impressive: A very rich web application without coding java. You have to wonder though what oracle is doing here. A room full of Java coders, and oracle’s message basically is: we dont need you anymore. Not a good message in the current economy, with everybody already afraid of their jobs…
Another interesting talk was the talk about Spring DM: the OSGi based Spring Application server. Now that almost all application servers are moving to OSGi, it seems that OSGi will have a big impact on application developers. It offers a whole new perspective on SOA: all the benefits of services, but without the distracting WS-* standards.
Posted December 11th, 2008 by Andrej Koelewijn | No Comments »
Yesterday i did a presentation at JFall about JQuery and Grails: Why are we still generating the view layer on the server?. I’ve had some requests for more information, here’s a small list:
Posted November 13th, 2008 by Andrej Koelewijn | 6 Comments »
We’re currently working on a Seam project. Would preferably be able to also deploy on Glassfish. Here are some interesting links i found:
Posted November 10th, 2008 by Andrej Koelewijn | No Comments »
Just posted on The Java Posse: a podcast interview with Ted Farrell and Duncan Mills about the Oracle Java Tools. Download it here: Java Posse #212 – Oracle Developer Tools Interview.
Posted October 20th, 2008 by Andrej Koelewijn | No Comments »
But due to javascript errors i can’t download it. Not sure what is causing this, maybe some javascript files that don’t get through the firewall? Or maybe some simple javascript coding errors. Is it my browser, is it the page? Try it here: JDeveloper 11g download.

Posted October 7th, 2008 by Andrej Koelewijn | 2 Comments »
This week Tim O’Reilly wrote a post called Why Dell.com (was) More Enterprise 2.0 Than Dell IdeaStorm, in which he states his current definition of web 2.0:
I define Web 2.0 as the design of systems that harness network effects to get better the more people use them, or more colloquially, as “harnessing collective intelligence.”
This is exactly the point i made in my Web 2.0 Enterprise 2.0 presentation The real meaning of web 2.0 for your business. The internet allows companies to take advantage of all the knowledge in the world, and businesses can improve their level of service by using this knowledge.
The example i used was amazon.com. By using their customers, and the collective intelligence of their customers, amazon.com has created a store that’s better than real-world stores, because they really help their customers pick the right product. No longer is an internet store better because it’s always open, and it doesn’t require you to travel. Now it’s also better because customers are better informed to choose the right product.
If i am in a real-world store, i miss amazon.com because i need the information that’s only available on amazon.com. And now with the mobile web becoming mature, amazon.com is able to compete with physical stores right inside these stores.
Your customers, and the knowledge of your customers, become an essential part of the level of service you can provide as a company. This is the profound impact of the internet on businesses.
Posted October 2nd, 2008 by Andrej Koelewijn | 1 Comment »
Just learned from a comment by Gary to my previous post JQuery becoming essential knowledge for web developers that jQuery is also going to be used in Oracle Apex to add AJAX functionality. Marc Lancaster has a bit more info in his blog: Oracle OpenWorld – done and dusted. Good new for Apex users. I wonder how easy it is to create REST/JSON services using Apex/plsql.
Posted September 30th, 2008 by Andrej Koelewijn | 3 Comments »
Recently i’ve blogged quite a bit about jQuery (Jquery howto: an accordion menu component, Creating charts using jQuery flot and some Grails, Using jQuery autocomplete with Grails and json). To say that i’m impressed is an understatement. It has completely changed my mind about the need for browser plugin technologies like Flex, Silverlight and JavaFX, although browser support for multimedia applications still has some catching up to do. jQuery makes AJAX pretty easy, Javascript extremely powerful, hides a lot of the browser differences, and has a large number of components.
JQuery was already used by a large number of websites and companies, but now Microsoft has announced that it’s going to include jQuery in Visual Studio. (Scott Hanselman has an example using jQuery with ASP.NET) Also, Nokia is including jQuery in all phones that use their WebKit based Web run-time. Here’s John Resigs blog entry about these announcements: jQuery, Microsoft, and Nokia. Also a bit more info on Ajaxian
Seems like jQuery is becoming essential knowledge for web developers.
Posted September 29th, 2008 by Andrej Koelewijn | 4 Comments »
Last year when Google released Gears with support for offline caching of web resources i doubted it’s usefulness. Why would i want to cache something that’s dynamically generated on the server? The file would probably be out of date by the time it was needed. However, this all changes in the Client Server 2.0 architecture.
When all User Interface files you download from the server are static, there’s no problem caching them offline. They will be up to date when you need them in the future, because they are static. All the dynamic parts are handled by the javascript code. if you combine this with a small offline set of data, stored in a database in the browser, suddenly you have a useful disconnected application model.
Ofcourse, this is not a new idea. Gmail and Google Reader have been offering this for some time already. But like many people, i had a hard time seeing that serverside generated user interfaces (html) aren’t really needed anymore. At all. No more jsp or jsf. (Unless you need search-engine indexable content). But when you let go of the idea that you need to dynamically generate anything at all on an application server, suddenly offline caching becomes a very interesting concept.
Posted September 24th, 2008 by Andrej Koelewijn | No Comments »
Client Server 2.0 is the next logical step that started with AJAX and RIA. It is Client Server but based on open standards: html, javascript, css and services. The client is completely responsible for creating the user interface. All dynamic parts are generated using javascript in the browser. Applications servers will serve static html, javascript, and css. But more importantly, they will host the services used by the javascript clients. So the main role of application servers in this model is to act as SOA containers.
The following image illustrates the position of Client Server 2.0 with respect to other application architectures. The eighties saw the move from terminal applications to client server applications, enabling users to take advantage of the increased power of their pc’s. The nineties saw the rise of html applications, taking advantage of open standards, enabling everybody to easily use applications everywhere. And now we’re again at a point where we can take full advantage of the power of the client workstation, but with the added benefit of using open standards, so everybody, anywhere can easily use them.

The following image illustrates the overall Client Server 2.0 architecture. You need a server that can host the static javascript, css and html files. Then you have a browser where the actual client is running. Javascript will be used to update the user interface as needed. And you have SOA containers that host the services used by the client application.

I’ve created some applications using the technology stack illustrated in the next image, and have been very impressed with the productivity you can achieve this way. JQuery hides most of the browser differences, and makes most javascript tasks very easy. There are also a lot of existing JQuery plugins available, from complex datagrids, to charting, to maps integration. Creating custom JQuery/javascript components is also a lot simpler than creating components that works partly on the server and partly on the client. Huge difference with for example JSF. And finally Grails is a very productive framework for creating RESTfull JSON services.

So, there you have it: Client Server 2.0 – Standards based browser applications, without a web-framework on an application server, talking to services hosted by SOA containers.
Posted September 24th, 2008 by Andrej Koelewijn | 4 Comments »