background image
Bionic Buffalo Tech Note #25: Quick Start Guide to Writing CORBA Server Applications
 
An adapter is also called a POA (for “Portable Object Adapter”), since it has the interface
PortableServer::POA. 
In this model, there may be more than one 
POA for each ORB, more than one servant for each POA.
The methods are considered part of the servant, and the servant, using the methods, implements the
requests made upon the objects. There may be more than one method for a servant (depending on the
number of operations and attributes to be implemented), and a servant may implement requests on
more than one object. 
Together, these components act as follows: 
 
The ORB mediates requests made by clients upon the objects. It selects the correct 
POA for the
target object, and passes the request to the POA. The details of the interaction and interfaces
between the ORB and POA are not covered in the specification, but the application programmer
need not be concerned with that, anyway. 
 
The POA accepts requests from the ORB, and passes the request to the appropriate servant. 
 
The servant directs the request to the methods. There is a method for each operation. A method is
basically a subroutine, function, or procedure which implements an operation. 
The 
POA is normally provided by the ORB developer. In the beginning (when the ORB initializes),
there is one 
POA, the root POA. Every POA, except the root POA, is created from some other POA,
giving rise to a tree of 
POAs anchored in the root POA. Each POA has a character string name, so a kind
of “path name” from the root 
POA to any given POA is possible. Each POA has one of four states:
activeinactiveholding, or discarding. These states determine how requests are processed. 
Page 2 of 12
ORB
Adapter
(POA)
Servant
Method
Object
©2005 Bionic Buffalo