background image
Bionic Buffalo Tech Note #52: Object Keys, Object Identifiers, and Adapter Names
Bionic Buffalo Tech Note #52
Object Keys, Object Identifiers, and Adapter Names
last revised Tuesday 2003.07.29
©2003 Bionic Buffalo Corporation. All Rights Reserved.
Tatanka and TOAD are trademarks of Bionic Buffalo Corporation
The CORBA specification defines data types and structures used to identify objects and adapters.
However, while the types and structures are specified, the contents of some items are left to
implementor decisions. This Tech Note discusses the conventions used by Bionic Buffalo's Tatanka
implementations of CORBA software when creating object keys (used in interoperable object
references, or IORs), object identifiers (OIDs), and portable object adapter (POA) names. 
Except for application in 
 URLs, the content of these types and structures are
transparent to most application software, but may be of interest to developers creating new servant or
adapter implementations, or modifying existing code. For a discussion more relevant to application
programmers, please refer to Tech Note #100, Identifying CORBA Objects
These conventions, while compliant with the specification, are proprietary to Bionic Buffalo's
software, and may not necessarily hold for software from other vendors. However, other developers
are certainly welcome to adapt them to their own purposes.
Portable Object Adapter (POA) Names
The specification allows any non-NULL character to be used in a POA name. Bionic Buffalo ORBs
permit any name allowed by the specification. However, Bionic Buffalo's own applications use a more
restricted subset of characters. The subset is what are called unreserved characters in RFC 2396,
Uniform Resource Identifiers (URI): Generic Syntax. The unreserved characters consist of ASCII
alphabetic characters (
), digits (
), and what RFC 2396 calls mark characters:
- _ . ! ~ * ' ( ) 
If an application uses a POA name character from outside this subset, Tatanka
 ORBs will escape the
character when it appears in object keys. Escaping is done using the 
 method described in RFC
2396, the method familiar with URLs, where 
 are the two hexadecimal digits representing the value
of the character being escaped. For example, a POA named 
“nobody's POA”
 will be represented as
Page 1 of 5