Fast platform independent inter-process communication

Saved in:
Bibliographic Details
Title: Fast platform independent inter-process communication
Patent Number: 8,533,717
Publication Date: September 10, 2013
Appl. No: 11/013276
Application Filed: December 14, 2004
Abstract: A system and method are described for performing data processing using shared memory. In one embodiment, a request to perform a transaction is received at a memory. The memory includes a shared memory to provide a common access to a plurality of components including a plurality of work processes and a plurality of worker nodes. The request is then cached at the memory and later assigned to an available work process for performance.
Inventors: Kilian, Frank (Mannheim, DE); Luik, Oliver (Baden-Württemberg, DE)
Assignees: SAP AG (Walldorf, DE)
Claim: 1. A method comprising: initializing a Fast Channel Architecture (FCA) library upon a starting of a specialized process of an operating system by providing a handle to the specialized process of the operating system, the FCA library providing a platform independent Application Program Interface (API) to enable the specialized process of the operating system to use the handle to perform bidirectional communication with an additional specialized process of the operating system via a shared memory connection, the specialized process of the operating system being associated with an application technology, the additional specialized process of the operating system being associated an additional application technology that is distinct from the application technology; receiving a request from the specialized process of the operating system, the request requesting that the additional specialized process of the operating system perform a transaction, the request configured to be sent to the additional specialized process via one of a shared memory connection and a network connection; sending the request to the additional specialized process of the operating system via the shared memory connection instead of the network connection based on a determination that the specialized process and the additional specialized process are executing on a same physical host; receiving a response to the request from the additional specialized process of the operating system; and sending the response to the request to the specialized process of the operating system via the shared memory connection instead of the network connection based on the determination that the specialized process and the additional specialized process are executing on the same physical host, the response including a result of a performing of the transaction by the additional specialized process of the operating system, wherein the receiving of the request, the sending of the request, the receiving of the response, and the sending of the response are performed utilizing the handle provided by the FCA library at an application layer of an application server.
Claim: 2. The method of claim 1 , further comprising facilitating bi-directional communication between a plurality of components via the shared memory, the plurality of components including one or more of the following: an internet communication manager (ICM), an Advanced Business Application Programming (ABAP) engine, and a Java 2 Enterprise Edition (J2EE) engine.
Claim: 3. The method of claim 2 , wherein the facilitating of the bi-directional communication between the plurality of components via the shared memory includes creating a memory pipe at the shared memory upon a starting of a component of the plurality of components.
Claim: 4. The method of claim 1 , further comprising selecting the additional specialized process from a plurality of additional specialized processes based on a checking of a work load of each of the plurality of additional specialized processes.
Claim: 5. The method of claim 1 , wherein the application technology is based on the ABAP standard and the additional application technology is based on the J2EE standard.
Claim: 6. The method of claim 1 , wherein the sending of the request includes sending the request via an internet communication manager (ICM) to the exclusion of sending the request via a dispatcher associated with the application technology, the ICM being a single point of access for assigning the request to one of the specialized process of the operating system and the additional specialized process of the operating system.
Claim: 7. The method of claim 1 , wherein the sending of the request includes placing the request in a request queue at the shared memory.
Claim: 8. The method of claim 1 , wherein the sending of the request to the additional specialized process of the operating system via the shared memory connection is performed via a fast remote function call, the fast remote function call being faster than a typical remote function call, the typical remote function call configured to send the request to the additional specialized process via the network connection.
Claim: 9. A non-transitory machine-readable medium having stored thereon data representing sets of instructions which, when executed by a machine, cause the machine to: initialize a Fast Channel Architecture (FCA) library upon a starting of a specialized process of an operating system by providing a handle to the specialized process of the operating system, the FCA library providing a platform independent Application Program Interface (API) to enable the specialized process of the operating system to use the handle to perform bidirectional communication with an additional specialized process of the operating system via a shared memory connection, the specialized process of the operating system being associated with an application technology, the additional specialized process of the operating system being associated an additional application technology that is distinct from the application technology; receive a request to perform a transaction from the specialized process of the operating system, the request requesting that the additional specialized process of the operating system perform a transaction, the request configured to be sent to the additional specialized process via one of a shared memory connection and a network connection; sending the request to the additional specialized process of the operating system via the shared memory connection instead of the network connection based on a determination that the specialized process and the additional specialized process are executing on a same physical host; receiving a response to the request from the additional specialized process of the operating system; and sending the response to the request to the specialized process of the operating system via the shared memory connection instead of the network connection based on the determination that the specialized process and the additional specialized process are executing on the same physical host via the shared memory, the response including a result of a performing of the transaction by the additional specialized process of the operating system, wherein the receiving of the request, the sending of the request, the receiving of the response, and the sending of the response are performed utilizing the handle provided by the FCA library at an application layer of an application server.
Claim: 10. The non-transitory machine-readable medium of claim 9 , further comprising facilitating bi-directional communication between a plurality of components via the shared memory, the plurality of components including one or more of the following: an interne communication manager (ICM), an Advanced Business Application Programming (ABAP) engine, and a Java 2 Enterprise Edition (J2EE) engine.
Claim: 11. The non-transitory machine readable medium of claim 9 , wherein the sending of the request to perform the transaction to the additional specialized process via the shared memory eliminates a need to copy the request into a local memory of the additional specialized process.
Claim: 12. The non-transitory machine readable medium of claim 9 , wherein the sending of the request includes using the platform-independent application program interface at an internet communication manager (ICM) to receive the handle.
Claim: 13. The non-transitory machine readable medium of claim 12 , wherein the receiving of the handle represents an opening of a connection to a request queue in the shared memory.
Claim: 14. A system comprising: at least one processor; an application server implemented by the at least one processor and configured to: initialize a Fast Channel Architecture (FCA) library upon a starting of a specialized process of an operating system by providing a handle to the specialized process of the operating system, the FCA library providing a platform independent Application Program Interface (API) to enable the specialized process of the operating system to use the handle to perform bidirectional communication with an additional specialized process of the operating system via a shared memory connection, the specialized process of the operating system being associated with an application technology, the additional specialized process of the operating system being associated an additional application technology that is distinct from the application technology; receive a request from the specialized process of the operating system, the request requesting that the additional specialized process of the operating system perform a transaction, the request configured to be sent to the additional specialized process via one of a shared memory connection and a network connection; send the request to the additional specialized process of the operating system via the shared memory connection instead of the network connection based on a determination that the specialized process and the additional specialized process are executing on a same physical host; receive a response to the request from the additional specialized process; send the response to the request to the specialized process via the shared memory connection instead of the network connection based on the determination that the specialized process and the additional specialized process are executing on the same physical host, the response including a result of a performing of the transaction by the additional specialized process of the operating system, wherein the receiving of the request, the sending of the request, the receiving of the response, and the sending of the response are performed utilizing the handle provided by the FCA library at an application layer of the application server.
Current U.S. Class: 718/100
Patent References Cited: 5745778 April 1998 Alfieri
5842015 November 1998 Cunniff et al.
6170045 January 2001 Bobak et al.
6519594 February 2003 Li
6687702 February 2004 Vaitheeswaran et al.
6738977 May 2004 Berry et al.
6829769 December 2004 Cranston et al.
7246135 July 2007 Reid
7251815 July 2007 Donovan et al.
7293270 November 2007 Gupta et al.
7299468 November 2007 Casey et al.
7302609 November 2007 Matena et al.
7370335 May 2008 White et al.
7464138 December 2008 Le et al.
2002/0026446 February 2002 Groos et al.
2002/0144006 October 2002 Cranston et al.
2002/0144010 October 2002 Younis et al.
2003/0037178 February 2003 Vessey et al.
2003/0088604 May 2003 Kuck et al.
2003/0191795 October 2003 Bernardin et al.
2003/0195938 October 2003 Howard et al.
2004/0078722 April 2004 Pfeiffer et al.
2004/0080535 April 2004 Lueckhoff et al.
2005/0005200 January 2005 Matena et al.
2005/0262181 November 2005 Schmidt et al.
0 459 931 December 1991









Other References: Web Application Server: Web Application Technology and Web Dynpro; SAP White Pages; SAP 2001; pp. 1-29. cited by examiner
XI Exchange Infrastructure; SAP XI Tuning; SAP 2002; pp. 1-16. cited by examiner
Alfons Kemper, Donald Kossmann, Bernhard Zeller; Performance Tuning for SAP R/3; IEEE 1999; pp. 32-39. cited by examiner
“A Complete Guide to OS/2 Interprocess Communications and Device Monitors”, Microsoft Systems Journal, vol. 4 No. 5, (Sep. 1989), 35-30. cited by applicant
“European Application Serial No. 05027367.1, Office Action mailed Aug. 11, 2009”, 6 pgs. cited by applicant
Casavant, T.L. and Kuhl, J.G., “A Taxonomy of Scheduling in General-Purpose Distributed Computing Systems,” IEEE 14(2):141-154, (1988) XP000039761. cited by applicant
Dandamudi, S.P., “Reducing Run Queue Contention in Shared Mamory Multiprocessors,” IEEE pp. 82-89 (1997) XP000657329. cited by applicant
Tanenbaum, A.S., Modern Operating Systems, 2nd Edition, Upper Saddle River, New Jersey: Prentice-Hall, Inc., pp. 531-578 (2001). English Translation of: Moderne Betriebssysteme, vol. 2, pp. 539-617, (2002) XP002385695. cited by applicant
Yue, K.K. and Lilja, D.J., “An Effective Processor Allocation Strategy for Multiprogrammed Shared-Memory Multiprocessors,”IEEE8(12):1246-1258, (1997). cited by applicant
European Application No. 05027367.1, European Search Report. cited by applicant
Primary Examiner: Kawsar, Abdullah Al
Attorney, Agent or Firm: Schwegman Lundberg & Woessner, P.A.
Accession Number: edspgr.08533717
Database: USPTO Patent Grants
Be the first to leave a comment!
You must be logged in first