An Object Broker is a middleware entity that matches up client applications with target objects. A target object is a software entity that provides some service to a client software application. It may be located on the same machine as the client, or half a world away. The client doesn't need to know. It simply tells the Object Broker (also known as Object Request Broker, or ORB) what operation it would like to have performed, and what information (parameters) it wishes to provide for the operation. Then the Object Broker searches its repository for an object that can perform the requested service. The object that will perform the service is called the target object. The Object Broker passes the request and the parameters from the client to the target, and if appropriate, passes the results back from the target to the client. The combination of available operations and associated parameters is called an "interface." As long as the client and the target agree on the interface, just about anything else can change in the system and it will still work.