CORBA provides a standard way for applications to communicate with one another across different hardware, operating systems and programming languages. It defines an Interface Definition Language and Application Programming Interface to allow client/server interaction through an Object Request Broker. The ORB intercepts calls, finds objects, invokes methods, passes parameters and returns results regardless of where objects are located or what technologies were used. CORBA aims to increase reuse of existing systems and components in distributed, heterogeneous environments.