I am soon going to be responsible for the design of a J2EE system which will have several input channels, i.e. HTTP, WAP, Client Programmes, MainFrames, etc. These will all call an HTTP server which runs JSP/Servlet/XML. Underneath there will be another server which will be running WLS 6.1 and EJB 2.0. The system will have extreme traffic and therefore performance and throughput is top priorities. My problem/question is if XML is to verbose? Are there any J2EE blueprints for how to design systems that run under similar circumstances?
Someone may try to beat me up for this... but I'm not sure if having multiplie clients to your J2EE application alone warrants the use of XML.
If your J2EE aplication will be open to multiple vendors or 3rd parties who might not be using Java then XML would provide a good and common protocol for everyone. Additionally, if your 'diverse' clients might not all be Java clients then XML would probably be a good solution for the same reasons. Lastly, if you're already storing data as XML that needs to be displayed to the client, then it might be less work to return it that way instead of changing it.
But if you're not already storing XML data.. and if your J2EE application will not be used by other vendors or partners (or 3rd-party non Java systems), and if all your clients will be Java clients of some type then translating your data to XML.. and then having each client know how to render that XML would probably be more complicated than necessary. Plus you have the overhead of all that XML translation.
Now the above by no means represents all scenarios where doing the XML might or might not be useful. But it's been the best set of fast guidelines that I have on whether or not to include XML in my applications.
I hope this helps.