Given business logic developed in a J2EE architecture, when is is better to develop a Swing client that accesses the business logic vs a web front end (say in JSPs/Struts) accessing the business logic?
If there are moderate visualization requirements like drawing an outline of country or scanning over a timeline, would these requirements be better met using Swing clients than a web app? Will Swing be more performant showing this data?
If there is a large amount of data, say thousands of rows from a database, is it better to use a Swing client to display this than a web app so that you can display more rows? Will Swing perform better? Or will you still need to implement a paging mechanism? Will paging be more performant in Swing?
If you developed a Swing client and deployed it to one server, could you deploy something like pcAnyhere or vnc to user PCs for them to access the Swing client? Does this make sense or this idiotic? Is there a better to do this so you don't have to deploy the Swing client to each user PC? What does Swing use to communicate with the business layer? RMI? Can this be secured with SSL or PKI?
Thanks a bunch.
I think the choice deopends on the type users the application is targeted. If the aplication users belong to a specific group where you can demand a JRE/JDK installation then Swing is ok. Such an example would be office/dapartment/organization aplications. On the other side there applications that target various type of users, where you can't expect that everyone has a JRE/JDK instaled or is willing to install one. Suche applications are typical e-commerce.
To answer the questions aboiut Swing:
The swing application can be easily deployed and maintained through Java Web Start.
Swing GUIs (like any other desktop app.) can delver a much more richer interface than the browser. You can also move part of the client controller logic and state on the client, thus removing the load from the server.
Ease of development: depends on the skill of the developers. Some might have more experience on JSP some on Swing. Swing may have a steeper leraning curve. I personally believe that having good knowledge of both the technologies, a Swing gui can be developed more quickly and cleanly than a JSP gui.
Remoting to bussiness layer: use business delagates that abstract the communication details. Ussually the remote EJBs communicate through RMI. Some vendors might let you specify the socket factory used for RMI, so you can set plain sockets or SSL sockets. You might also communicate with the server through web services.
Best regars, Mircea
I agree mostly with Mircea Crisan. The one point I would like to add is there are a LOT more developers that know how to maintain/write a web application over a Swing application.