In the definition of the life cycle event of a servo object, it has been said that the servo object is attached to the CORBA object through the ID of the CORBA object. The concept of CORBA object I d is discussed separately for the Orb of Boa and POA, but the idea of binding between a Servo object and a CORBA object is important. The object adapter must provide the necessary interface so that we can perform this binding. The question is, what triggers the real binding: Is it a standard application logic or a request to come? The following first describes early binding, and then discusses late binding, or through the binding of a command.
1. Early binding
Early binding usually describes the case where a standard application logic performs a binding through an object adapter. For example, a factory object can provide operations for creating new objects. The implementation of this operation creates a new CORBA object and activates a servo object before returning a reference to the newly created object. Because the CORBA object is now active-there is a binding to the servo object-the client can now use a reference and fire the newly created CORBA object.
2. Late binding
Late binding means that a binding can only be created by a command, that is, in the event of an object failure. If there is no binding between the requested target object and the servo object in the Orb runtime module of the target server, an object failure occurs, that is, the orb cannot find the implementation for the target object.
In the case of an object failure, the Orb can require the application to provide a servo object to bind the servo object to the target object. If the application cannot complete the request, the Orb throws an exception to notify the client that the requested object does not exist.
There are two options for creating late binding: bindings are created only during requests, or bindings can survive longer than requests. In the first case, the next request for the same object could cause another object to fail, and in the second case the binding still exists (and no action is required to freeze the servo object).
Figure 2 shows the relationship between early binding and late binding: basically, early binding means the application takes the initiative. Late binding means that the object adapter requests the application to provide a servo object so that the binding can be created. This is usually done through the Servo object manager. The Servo object Manager is a local callback object that is implemented by the application and registered with the Orb, so that the orb can fire the object if it fails.