This paper describes the design and performance of a new asynchronous method handling (AMH) mechanism that allows CORBA servers to process client requests asynchronously. AMH decouples the association of an incoming request from the run-time stack that received the request, without incurring the context-switching, synchronization, and data movement overhead of conventional CORBA multi-threading models. A servant upcall can therefore return quickly, while the actual work performed by the servant can run asynchronously with respect to other client requests. This paper provides two contributions to the study of asynchrony for CORBA servers. First, it describes the design and implementation of AMH in The ACE ORB (TAO), which is a widely-used, high-performance, open-source implementation of CORBA. The syntax and semantics of AMH are defined using the CORBA Interface Definition Language (IDL), the forces that guided the design of AMH are described, and the patterns and C++ idioms used to ...
Mayur Deshpande, Douglas C. Schmidt, Carlos O'Ryan