Issue 4440: Object Adapter name problem in ORT (ort-ftf) Source: Sun Microsystems (Mr. Ken Cavanaugh, kcavanaugh@acm.org) Nature: Uncategorized Issue Severity: Summary: The adopted specification for the Object Reference Template is ptc/01-04-03. This specification introduces adapter names for object adapters. Adapter names are needed in the definition of the ObjectReferenceTemplate abstract valuetype. An AdapterName is simply a sequence of strings that is used to identify an instance of an object adapter. In the case of the POA, the spec defines the AdapterName as follows in section 21.5.2.1: In the case of the POA, the adapter name shall be the sequence of names starting with the root POA that is required to reach the POA using the find_POA call. The name of the root POA is the empty sequence. Also, in section 21.3.14.6: The adapter_name attribute defines a name for the object adapter that services requestws for the invoked object. In the case of the POA, the adapter_name is the sequence of names from the root PAO to the POA that services the request. The root POA is not named in this sequence. The problem here is that the POA occupies the entire name space of possible adapter names, so an ORB that supports other proprietary object adapters cannot unambiguously identify instances of other object adapter through ServerRequestInfo.adapter_name. Resolution: Update the specification so that the Object Adapter ID of the root POA is { "RootPOA" } Revised Text: Replace the last paragraph of section 21.5.2.1 with: In the case of the POA, the adapter name of a POA instance shall be the sequence of names starting with the root POA that is required to reach the POA instance using the find_POA call. The name of the root POA is the sequence containing only the string "RootPOA". Replace section 21.3.14.6 with: The adapter_name attribute defines a name for the object adapter that services requests for the invoked object. In the case of the POA, the adapter_name is the sequence of names from the root POA to the POA that services the request. The name of the root POA is the sequence containing only the string "RootPOA". Actions taken: July 30, 2001: received issue Discussion: End of Annotations:===== Date: Mon, 30 Jul 2001 12:53:47 -0700 (PDT) From: Ken Cavanaugh Reply-To: Ken Cavanaugh Subject: Object Adapter name problem in ORT To: ort-ftf@omg.org, issues@omg.org Cc: Ken.Cavanaugh@Sun.COM MIME-Version: 1.0 Content-MD5: wChP6YgWJnGYSn2gNK0AZw== X-Mailer: dtmail 1.3.0 @(#)CDE Version 1.3.5 SunOS 5.7 sun4u sparc Content-Type: TEXT/plain; charset=us-ascii X-UIDL: G4B!!V(Qd9FHNe9JT!"! The adopted specification for the Object Reference Template is ptc/01-04-03. This specification introduces adapter names for object adapters. Adapter names are needed in the definition of the ObjectReferenceTemplate abstract valuetype. An AdapterName is simply a sequence of strings that is used to identify an instance of an object adapter. In the case of the POA, the spec defines the AdapterName as follows in section 21.5.2.1: In the case of the POA, the adapter name shall be the sequence of names starting with the root POA that is required to reach the POA using the find_POA call. The name of the root POA is the empty sequence. Also, in section 21.3.14.6: The adapter_name attribute defines a name for the object adapter that services requestws for the invoked object. In the case of the POA, the adapter_name is the sequence of names from the root PAO to the POA that services the request. The root POA is not named in this sequence. The problem here is that the POA occupies the entire name space of possible adapter names, so an ORB that supports other proprietary object adapters cannot unambiguously identify instances of other object adapter through ServerRequestInfo.adapter_name. Proposed resolution: Give the root POA a standard name, and then require that no other object adapter may use the reserved name. I propose that the name of the root POA be { "RootPOA" }. This updates the above sections as follows: in 21.5.2.1: In the case of the POA, the adapter name of a POA instance shall be the sequence of names starting with the root POA that is required to reach the POA instance using the find_POA call. The name of the root POA is the sequence containing only the string "RootPOA". (also clarifying a small ambiguity in the original between "POA" as the name of the kind of object adapter and "POA" as an instance of the POA interface) in 21.3.14.6: The adapter_name attribute defines a name for the object adapter that services requestws for the invoked object. In the case of the POA, the adapter_name is the sequence of names from the root PAO to the POA that services the request. The name of the root POA is the sequence containing only the string "RootPOA". Ken. Date: Thu, 2 Aug 2001 15:50:22 -0700 (PDT) From: Ken Cavanaugh Reply-To: Ken Cavanaugh Subject: ORT FTF Vote 1 To: ort-ftf@omg.org Cc: Ken.Cavanaugh@Sun.COM, carr@eng.sun.com MIME-Version: 1.0 Content-MD5: xa0FfXOsZtrCJX2HBCUbnQ== X-Mailer: dtmail 1.3.0 @(#)CDE Version 1.3.5 SunOS 5.7 sun4u sparc Content-Type: TEXT/plain; charset=us-ascii X-UIDL: CL[d9McC!![Ufd9L;@e9 I think we can vote on issues 4440 and 4445. Votes on these proposals are due 5pm PST August 8, 2001. This leaves enough time to get in one more vote if needed before I write the FTF report. Here are the proposals: ================================================================================ issue # 4440: Object Adapter name problem in ORT The adopted specification for the Object Reference Template is ptc/01-04-03. This specification introduces adapter names for object adapters. Adapter names are needed in the definition of the ObjectReferenceTemplate abstract valuetype. An AdapterName is simply a sequence of strings that is used to identify an instance of an object adapter. In the case of the POA, the spec defines the AdapterName as follows in section 21.5.2.1: In the case of the POA, the adapter name shall be the sequence of names starting with the root POA that is required to reach the POA using the find_POA call. The name of the root POA is the empty sequence. Also, in section 21.3.14.6: The adapter_name attribute defines a name for the object adapter that services requestws for the invoked object. In the case of the POA, the adapter_name is the sequence of names from the root PAO to the POA that services the request. The root POA is not named in this sequence. The problem here is that the POA occupies the entire name space of possible adapter names, so an ORB that supports other proprietary object adapters cannot unambiguously identify instances of other object adapter through ServerRequestInfo.adapter_name. Proposed resolution: Give the root POA a standard name, and then require that no other object adapter may use the reserved name. I propose that the name of the root POA be { "RootPOA" }. This updates the above sections as follows: in 21.5.2.1: In the case of the POA, the adapter name of a POA instance shall be the sequence of names starting with the root POA that is required to reach the POA instance using the find_POA call. The name of the root POA is the sequence containing only the string "RootPOA". (also clarifying a small ambiguity in the original between "POA" as the name of the kind of object adapter and "POA" as an instance of the POA interface) in 21.3.14.6: The adapter_name attribute defines a name for the object adapter that services requestws for the invoked object. In the case of the POA, the adapter_name is the sequence of names from the root PAO to the POA that services the request. The name of the root POA is the sequence containing only the string "RootPOA". ============================================================================ issue # 4445: Interoperability of ObjectReferenceTemplate and Factory. Nothing in the specs (I think the submission does say this somewhere) say that the valuetypes defined in this spec and implemented by the ORB vendor are not expected to be transmitted across different ORB implementations. Proposal: Add the following paragraph to the end of section 21.5.3.1: Concrete definitions and implementations of ObjectReferenceTemplate and ObjectReferenceFactory are ORB implementation specific and are not defined as they are not expected to be exchanged between ORB implementations. ============================================================================