Evaluating architectures for multithreaded object request brokers
Douglas C. Schmidt · Communications of the ACM · 1998
Common Object Request Broker Architecture (CORBA) delivers client requests to servants and return responses to clients. To accomplish this Object Request Brokers (ORBs) manage transport connections, perform transport endpoint demultiplexing and provide the multithreading architecture used by applications. The architecture used to multithread an ORB has a substantial impact on its performance and predictability. A key challenge for ORB developers and application programmers, therefore is to devise threading architectures that can handle multiple client requests efficiently. The article discusses in detail the common motivations for using developing and multithreaded ORB. Common ORB multithreading architectures used by one or more CORBA implementations are described and evaluated here. The article discusses the two important types of multithreading architecture for ORBs, worker thread pool architecture and the thread-per-servant architecture. Programming applications using CORBA ORBs that lack multithreading is difficult, particularly for developers of servers or real-time applications. Without multithreading capabilities, developers must ensure that requests can be handled quickly enough that new requests are not starved or unduly delayed. In practice, however, many requests cannot be serviced quickly enough in a single-threaded ORB to avoid starving clients. INSET: Overview of the CORBA ORB Reference Model.