PART III: IPC on MSA 5.0 In-DepthIn the earlier parts of this series I talked about how IPC works on mobile in general (IPC on Mobile Sales 5.0 – PART I : Introduction) and the technical details of the messages that are exchanged between MSA 5.0 and IPC (IPC on Mobile Sales 5.0 – PART II : Request-Response Explained). A Quick Recap The IPC server in the Mobile Sales scenario is a stripped down version of the IPC server used by the CRM Server. IPC client (in this case Mobile Sales) and server communicate via a simple handshake protocol. The communication medium that is being used is standard TCP/IP sockets. It uses the Mobile Sales database (called IDES) in case of Mobile Sales Application. The data in this database is downloaded from the CRM Server database which may get it from R/3. Model in 4.0Fig. 1: BO Model in 4.0Application layer: These are the BOs implementing the Sales Transaction i.e. BOSALESDOCGEN, BOSALESDOCLINEITEM, BOSALESDOCBUSINESSDATA etc. IPC Integration Layer: The BOs of this layer (SPCHANLDER, SPCDOCHANDLER, SPCITEMHANDLER etc) have two functions: • Business Logic part of pricing, taxes, configuration & freegoods. Collecting data from Sales Doc for IPC and updating results from IPC. • The communication with the IPC using the JavaBean objects. JavaBeans Layer: This is a part of IPC and implements an OO Interface for the IPC Integration Layer to use. Internally this layer uses the classes of core IPC. The JavaBean classes are not part of the core IPC. The JavaBean classes were specially created by the IPC group, because the SUN ActiveX Bridge only supports COM-wrapping for JavaBean classes. E.g. SPCSessionBean, SPCDocumentBean, SPCItemBean etc. Model in 5.0 – High Level ViewFig. 2: From Release 4.0 to 5.0 – The JavaBeans have been replaced by TCP/IP using sockets and the Swing UI has been replaced by JSP UI using HTTP. There are two things that can be noted in the 5.0 design: In 5.0, IPC is no longer integrated into Mobile Sales using the SUN ActiveX Bridge. The IPC Server application and the JSP-UI run inside a TOMCAT Server process. Mobile Sales application communicates with the IPC and the JSP-UI in two different ways: • The Mobile Sales IPC Integration layer calls IPC remote commands using TCP/IP Sockets to communicate with the IPC. • The Mobile Sales UI layer uses HTTP to invoke the IPC JSP-UIs and display the HTML pages the JSP-Server renders the UI in a browser control. MSA 5.0 – IPC IntegrationFig 3: IPC Integration Client Layer is the API exposed by IPC for application programming. All the commands exposed by IPC are methods of one of the classes; SPCDocumentTCP, SPCItemTCP etc. The Business Objects (BOs) involved in MSA – IPC integration can be logically divided into 3 layers: • MSA Application Layer: BOs corresponding to Sales Documents, Sales Document Line Items etc fall into this layer. • IPC Integration Application layer BOs will hold references to the objects in the IPC Integration Client layer. This layer acts as the interface between MSA and IPC. It abstracts away IPC from MSA Business Objects like BOSalesDocGen, BOSalesDocLineItem etc. • IPC Integration Client layer BOs use the TCP Connector DLL interfaces. This layer has communication protocol independent interfaces. The objects in this layer will be having objects which correspond to the JavaBeans. This is required to preserve the object model and to minimize the application level code changes. The TCP Connector DLL interfaces between IPC Integration Client Layer and IPC. It uses the .NET Socket API to communicate with the IPC server using TCP/IP via sockets. If you compare figure 1 and figure 3, you will notice that as a result of the SUN ActiveX Bridge no longer being present, the IPC Integration Client Layer and TCP Connector DLL have been introduced. The IPC Integration Client Layer implements the JavaBeans classes in MSA 4.0 as BOs in MSA 5.0. This was all that I could put together and I hope it was worth reading.