The Object Request Broker (ORB) specification is the part of CORBA which describes a ``software bus'': a mechanism which handles communication between distributed objects. The ORB allows for client-server interaction between heterogeneous objects distributed over a wide-area network, and makes meta information describing the objects in a system and their interfaces available to any object in the system, so that it may access other objects as a client without prior knowledge of their existence. Any object connected to the ORB can play the role of both a client and server object. That is, it can initiate calls to other objects and respond to requests for services from other objects on the ORB.
The ORB specification is programming language, operating system and platform independent. It allows vendors considerable flexibility in their choice of implementation methods. CORBA compliant ORBs are currently available from a number of different vendors based on mechanisms such as RPC, TCP/IP and sockets. Furthermore, the ORB permits transparent communication between objects implemented using a variety of programming languages and operating systems.
The CORBA specification describes protocols for communication between ORBs, which should allow for ORBs provided by different vendors to communicate in a federation. Several vendors are now offering CORBA 2.0 compliant ORBs, though it is not clear that compatibility issues between ORBs from different vendors have yet been resolved.