Common Object Request Broker Architecture: Difference between revisions

Content deleted Content added
No edit summary
Tags: Reverted section blanking Mobile edit Mobile web edit
No edit summary
Tags: Reverted section blanking Mobile edit Mobile web edit
Line 18:
}}
The '''Common Object Request Broker Architecture''' ('''CORBA''') is a [[Standardization|standard]] defined by the [[Object Management Group]] (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between systems on different operating systems, [[programming language]]s, and computing hardware. CORBA uses an object-oriented model although the systems that use the CORBA do not have to be object-oriented. CORBA is an example of the [[distributed object]] paradigm.
 
== Servants ==
A '''servant''' is the invocation target containing methods for handling the [[remote method invocation]]s. In the newer CORBA versions, the remote object (on the server side) is split into the '''object''' ''(that is exposed to remote invocations)'' and '''servant''' ''(to which the former part [[Forwarding (object-oriented programming)|forwards]] the method calls)''. It can be one ''servant'' per remote ''object'', or the same servant can support several (possibly all) objects, associated with the given [[Portable Object Adapter]]. The ''servant'' for each ''object'' can be set or found "once and forever" (servant activation) or dynamically chosen each time the method on that object is invoked (servant ___location). Both servant locator and servant activator can forward the calls to another server. In total, this system provides a very powerful means to balance the load, distributing requests between several machines. In the object-oriented languages, both remote ''object'' and its ''servant'' are objects from the viewpoint of the object-oriented programming.
 
''Incarnation'' is the act of associating a servant with a CORBA object so that it may service requests. Incarnation provides a concrete servant form for the virtual CORBA object. Activation and deactivation refer only to CORBA objects, while the terms incarnation and etherealization refer to servants. However, the lifetimes of objects and servants are independent. You always incarnate a servant before calling activate_object(), but the reverse is also possible, create_reference() activates an object without incarnating a servant, and servant incarnation is later done on demand with a Servant Manager.
 
The ''{{visible anchor|Portable Object Adapter}}'' (POA) is the CORBA object responsible for splitting the server side remote invocation handler into the remote ''object'' and its ''servant''. The object is exposed for the remote invocations, while the servant contains the methods that are actually handling the requests. The servant for each object can be chosen either statically (once) or dynamically (for each remote invocation), in both cases allowing the call forwarding to another server.
 
On the server side, the POAs form a tree-like structure, where each POA is responsible for one or more objects being served. The branches of this tree can be independently activated/deactivated, have the different code for the servant ___location or activation and the different request handling policies.
 
== Features ==