In distributed computing, an object request broker (ORB) is a middleware which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interoperability of distributed object systems, enabling such systems to be built by piecing together objects from different vendors, while different parts communicate with each other via the ORB. Overview ORBs handle the transformation of in-process data structures to and from the raw byte sequence, which is transmitted over the network. This is called marshalling or serialization. In addition to marshalling data, ORBs often expose many more features, such as distributed transactions, directory services or real-time scheduling. Some ORBs, such as CORBA-compliant systems, use an interface description language to describe the data that is to be transmitted on remote calls. In object-oriented languages, an ORB actually provides a framework which enables remote objects to be used over the network, in the same way as if they were local and part of the same process. On the client side, so-called stub objects are created and invoked, serving as the only part visible and used inside the client application. After the stub's methods are invoked, client-side ORB performs the marshalling of invocation data, and forwards the request to the server-side ORB. On the server side, ORB locates the targeted object, executes the requested operation, and returns the results. Having the results available, client's ORB performs the demarshalling and passes the results back into the invoked stub, making them available to the client application. The whole process is transparent, resulting in remote objects appearing as if they were local. Implementations CORBA - Common Object Request Broker Architecture. ICE - the Internet Communications Engine .NET Remoting - object remoting library within Microsoft's .NET Framework Windows Communication Foundation (WCF) ORBexpress - Real-time and Enterprise ORBs by Objective Interface Systems Orbix - An Enterprise-level CORBA ORB from IONA Technologies DCOM - the Distributed Component Object Model from Microsoft RMI - the Remote Method Invocation Protocol from Sun Microsystems ORBit - an open-source CORBA ORB used as middleware for GNOME The ACE ORB - a CORBA implementation from the Distributed Object Computing (DOC) Group omniORB - Free CORBA ORB See also Message broker Distributed object communication Distributed object References Middleware