Chapter 15 592 Client Application Logic Data Tier HTTP carrying HTML Web Browser Web Server J2EE Application Server XML Transform Database,  Mail Server, Directory Service, CORBA,  RMI etc. Processing Servlet,  JSP, EJB,  Beans,  etc. Client–Side XML Processing In practice, however, there are frequently real-life scenarios where a more proportional sharing of processing between the client and server is necessary. This means that the client will share in the data processing tasks, potentially alleviating the heavy load on the server. In this scenario, the data interchanged between the client and the server is more than HTML. The interchange also contains data that the client can perform processing on. In such a case, the protocol of choice between client and server is still HTTP (as it is still the most widely supported protocol in corporate intranet infrastructures). This means that we must incorporate an extra data delivery mechanism between the 'medium weight' client and the server. XML, as it turns out, is perfect for satisfying this niche in an interoperable manner. The diagram below illustrates the data flow in these scenarios. We can see the additional transform and processing function that is performed by the client now, something that did not occur in the 'thin' client scenario before. Client Application Logic HTTP carrying HTML and/or XML Data Web Browser Processing and Rendering Transform