Architectures for 'richer' web applications
Now that JavaOne is over (not that I got to go) and we are all more up-to-date with where Java is going, I have a simple question: as Java developers are we in a better position to develop web applications that offer a richer user experience? To this end I have developed a simple test scenario:
test scenario
I have a service that can provide the metadata for several thousand items (id, title, creation date, status, etc) and a service that can deliver an HTML description giving further details of an item specified by its id. I want to develop a web application that displays the metadata in a table on the left (allowing the user to resize, reorder columns etc) and the HTML description of a 'selected' item on the right. When the user selects a row in the table, the HTML description on the right is updated. As a complication the description may also reference zero or more other items. Selecting one of these links should update the both the description and reset the selection in the table.
I can imagine a number of responses:
- Java WebStart: create a WebStart application using the JDNC table component and the JDIC browser component. The interaction between the two components would be defined in Java. While I have no doubt this would provide a fine user interface, I suspect that WebStart solutions are just not percieved as being 'standard' web apps.
- JSF: create a web app using some [yet to be developed?] table JSF component. Altough a JSF table may be able to handle the reodering of columns and the like, the concern is round-tripping to the server each time to deliver a large table.
- something else... my preference would be for a JDNC table component embedded in one frame (as an applet) and the item's HTML description displayed in a second frame and have the interaction between the two defined in Javascript.
Currently the last solution is not possible because JDNC components cannot be scripted. My understanding is that the resources were not there to both develop the components and a scripting solution. This post is something of a test to see whether there is any interest in trying to plug that gap.
Comments