Issues for Mailing list of the QoS for CCM Finalization Task Force

To comment on any of these issues, send email to qos4ccm-ftf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Issue 9735: Section: 8.6 Derivation of RequestInfo
Issue 9736: Derivation of Registration Interfaces
Issue 9737: Mandatory in Binding class
Issue 9738: Disign Principles
Issue 9739: Is Principle 3 talking about ORB-level location forwarding
Issue 9740: set_slot_id
Issue 9741: Basic Container Interceptors
Issue 9742: Stub Intercept Points
Issue 9743: Stub_receive_other Paragraph 2
Issue 9744: target_id and origin_id
Issue 9745: Registering Container Interceptors
Issue 9746: Negotiation
Issue 9747: require_qos from server side
Issue 9748: Examples
Issue 9749: Section: 8.5.1
Issue 10564: Section: 8.7.2
Issue 10565: Section: 8.7.2 StubContainerInterceptionRegistration has several errors
Issue 10566: Section: 8.7.3
Issue 11319: QoS for CCM ComponentInstallation
Issue 11322: operations in the interface StubContainerInterceptor
Issue 16253: ExtensionComponent and ccm_remove

Issue 9735: Section: 8.6 Derivation of RequestInfo (qos4ccm-ftf)

Click here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Revision
Severity: Minor
Summary:
Derivation of RequestInfo Why isn't ContainerClientRequestInfo simply derived (with no extension) from PortableInterceptor::ClientRequestInfo? This would save a step (calling request_info()) in user code. Why isn't ContainerServerRequestInfo simply derived (with no extension) from PortableInterceptor::ServerRequestInfo? This would save a step (calling request_info()) in user code.

Resolution:
Revised Text:
Actions taken:
May 18, 2006: received issue

Issue 9736: Derivation of Registration Interfaces (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Revision
Severity: Minor
Summary:
Derivation of Registration Interfaces Why isn't StubContainerInterceptorRegistration derived from ClientContainerInterceprotRegistration? Why isn't ServantContainerInterceptorRegistration derived from ServerContainerInterceprotRegistration? 

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Discussion:
A container vendor may decide to either provide basic or to provide only
extended interceptors or to provide both in a container implementation with a
specific product configuration. For allowing a vendor to be flexible with respect to
this, the registration interfaces should be independent of each other. An
inheritance relationship would introduce the concepts of basic interceptors also to
extended interceptors.
Disposition: Closed, no change


Issue 9737: Mandatory in Binding class (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, tom.ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Mandatory in Binding class Its not clear what mandatory means. What does it mean for a Binding to exist but not be bound?

Resolution: More detailed text has been added to explain that.
Revised Text: The following the following text has been added at the end of 7.2.2.1: If this attribute is set to false, the binding needs not to be valid all the time. This can be useful for systems in phases where fewer resources are available and even the handling of QoS bindings would imply major decrease of system performance. QoS bindings which are not mandatory can be temporarily disabled.
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Issue 9738: Disign Principles (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, tom.ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Disign Principles The concepts of Basic vs. Extended Container Interceptors need to be introduced before they are references in the various principals listed here. After reading all of this, I would infer that the Basic COPIs are intended to be called from an ORB-level Portable Interceptor that is part of the container implementation, and that the Extended COPIs are called directly by the container. Is this correct? Could it be stated more explicitly? 

Resolution: To introduce the concept of Basic and Extended Concept beforehand a text section will be added at the end of section 8.3.1. In general the implementation of the Container and the used mechanism are completely transparent, which means a container vendor could implement the specification in various different ways. However, to implement the basic COPIs by wrapping the PI and to implement the extended COPIs by calling it directly from the container is one possible solution and also a most likely one. However, to state this directly in the spec would possibly constrain the implementation of the specification too much. For this reason the described solution will be mentioned as one possible implementation variant by adding text at the end of section 8.3.1.
Revised Text: The following text has been added to the end of the first paragraph of section 8.3.1: There are two levels of Container Portable Interceptors. The basic level corresponds to the capabilities of the CORBA Portable Interceptors (PI) and the extended ones provide an extended functionality to better control the call chain within the Container. · The following text has been added at the end of section 8.3.1: A detailed description on how to implement the basic and the extended COPIs will not be given in this specification. This will leave container vendors the freedom to decide on how to implement this specification. However, a possible implementation variant is that basic COPIs will be realised by wrapping the CORBA Portable Interceptor as part of the container implementation, which means that the basic interception points will be called by a wrapped Portable Interceptor. The extended COPIs can be realised by extending the container implementation and make the calls to the extended interceptions points directly from the container.
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Issue 9739: Is Principle 3 talking about ORB-level location forwarding (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Disign Principles Is Principle 3 talking about ORB-level location forwarding? If so, it should be clarified that this redirects not only the current request but also subsequent requests to the new location.

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Discussion:
This principle refers directly to the principle 3 of the Portable Interceptor
specification, where permanent location forwarding is not defined. Permanent
location forwarding is only defined by CORBA for
PortableServer::ForwardRequest when using POA. Permanent location
forwarding is not defined for PortableInterceptor::ForwardRequest. The
specification of PortableInterceptor::ForwardRequest explicitly states that "a
retry" should be done by the ORB. So PI is doing location forwarding only once
and so should do COPI.
Disposition: Closed, no change


Issue 9740: set_slot_id (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Significant
Summary:
This needs clarification. Does each COPI get its own slot_id assigned by the container? Does the COPI control what (if anything) goes in this slot?

Resolution: The usage of the slot id needs more detailed specification to be used in an interoperable way. The following text will be given in response to this issue: COPIs are not able to allocate a slot id since this is done in the ORBInitializer which is executed at component server creation, which is before any user code (i.e. COPI) is executed. Therefore, a slot id is allocated by the component server and is communicated to the COPI by using the set_slot_id method. By using this slot_id Container Portable Interceptors can have access to a PICurrent slot to exchange thread and call specific information. All COPIs get the same slot id since the number of registered COPIs is not known beforehand. A definition of the content of the slot where COPIS can read and add information is also added
Revised Text: The following IDL fraction has been added to section 8.3.4 and to Annex A2 after opening the ContainerPortableInterceptor module. struct CustomSlotItem { string identifier; any content; }; typedef sequence<CustomSlotItem> CustomSlotItemSeq; · The following text will be added to end of 8.3.4.3: The data in the slot conains CustomSlotItemSeq, which is a sequence of CustomSlotItem. A CustomSlotItem is a struct which contains an identifier and a content of type any. A COPI can add a new CustomSlotItem at the end of the sequence contained in the slot. The identifier of a CustomSlotItem should denote the COPI name. Content could be any content provided as any. The CustomSlotItemSeq sequence contained in the slot of PortableInterceptor::PICurrent identified by this slot_id will be encoded by the container in the service context of the call and is exchanged between clientside and server-side COPIs. See section 8.3.6 for details.
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Issue 9741: Basic Container Interceptors (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Could duplication of Portable Interceptor text be avoided? Why not just reference the descriptions of the PI intercept points in CORBA?

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Discussion:
The description of the Portable Interceptors in the CORBA specification and the
description of COPI differ in some but important sections and words. To
reference the PI description and to explain the difference only would make this
specification rather unreadable. For this reason it is better to keep the text in the
specification.
Disposition: Closed, no change


Issue 9742: Stub Intercept Points (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Need to specify whether raising ForwardRequest changes the target persistently, or just for the current invocation

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Discussion:
Permanent location forwarding is only defined by CORBA for
PortableServer::ForwardRequest when using POA. Permanent location
forwarding is not defined for PortableInterceptor::ForwardRequest. The
specification of PortableInterceptor::ForwardRequest explicitly states that "a
retry" should be done by the ORB. So PI is doing location forwarding only once
and so should do COPI. So no further specification is needed.
Disposition: Closed, no change


Issue 9743: Stub_receive_other Paragraph 2 (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Significant
Summary:
Stub_receive_other Paragraph 2, which discusses retries, does not seem to be consistent with the approach of implementing these intercept points by wrapping the ORB-level stub. ORB-level retries would be transparent to the wrapper, and wrapper-level retries would appear to the ORB as independent requests. I don't see how the wrapper could ensure that the PortableInterceptor::Current remains the same, except that the same thread is presumably used.

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue'

Discussion:
Using the same thread is assumed, since container has still the control on this
call, it will ensure that the same thread is used for the retry. If not using the same
thread an alternative implementation strategy is that the container makes sure
that the new PortableInterceptor::Current contains the same content as the one
of the preceding call.
Disposition: Closed, no change


Issue 9744: target_id and origin_id (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Significant
Summary:
How does the client get the target_id? How does the server get the origin_id? It would seem that IOR components and service contexts would need to be standardized to portably exchange these.

Resolution: Service Context ID and the content of the service context need to be standardized. For this reason a subsection has been added to section 8.3
Revised Text: A new subsection 8.3.6 has been added at the end of 8.3: 8.3.6 COPIServiceContext The COPIServiceContext struct contains information about the component identifier of the component instances participating in a call. origin_id denotes the client side component instance id. target_id denotes the server side component instance id. When Container Portable Interceptors are used the context_data component of the ServiceContext shall contain a CDR encapsulation of the COPIServiceContext struct, which is defined below: module IOP { const ServiceID COPI = 18; }; module Components { module ContainerPortableInterceptor { struct COPIServiceContext { CORBA::OctetSeq origin_id; CORBA::OCtetSeq target_id; CustomSlotItemSeq slot_info; }; }; }; 8.3.6.1 origin_id This identifies the client component instance id which is the originator of a call. Whenever a call is not issued by a component instance or the originator id can not be determined for any reason the sequence should have a zero length. 8.3.6.2 target_id This identifies the server component instance id which is the target of the call. Whenever the id of the target component instance can not be determined for any reason the sequence should have a zero length. 8.3.6.2 slot_info slot_info is used to transmit a CustomSlotItemSeq sequence between client side and server side Container Portable Interceptors. CustomSlotItems arey provided by Container PortableInterceptors during the processing of a call. See section 8.3.4.3 for details. · In Annex A2 the following IDL fragment has been inserted after opening the ContainerPortableInterceptor module. struct COPIServiceContext { CORBA::OctetSeq origin_id; CORBA::OCtetSeq target_id; CustomSlotItemSeq slot_info; };
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Issue 9745: Registering Container Interceptors (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Why use separate registration interfaces for each interceptor type?

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Discussion:
A separate registration interface for basic and extended interceptors is needed to
ensure independence of these two levels of interceptors. A container vendor
could offer either basic or extended or both interceptors levels. A separation of
client and server part is done due to the fact that most likely only a server or a
client side interceptor is registered for a specific purpose at a given time. For this
reason only a narrow interface needs to be used and activated for registering an
interceptor.
Disposition: Closed, no change


Issue 9746: Negotiation (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, tom.ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Its not really clear here what is done by the business-logic component executor, what is done by the container, and what is done by QoSEnabler components. Who implements the Negotiation facet? Who makes the require_qos calls?

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Discussion:
The basic intention of integrating negotiation into the connection set up is to
make this transparent for the business logic. So business logic, which is
component executor, is not involved or at least should not be involved in
negotiation. Furthermore, the exact implementation strategy is left open to not
restrict the implementation of the specification. Most likely negotiation is
implemented by the container. The connect call which is used to connect two
component instance is intercepted by the container. This interceptor calls the
provide_facet with the identifier (_ccm_qos_negotiation) to get the reference of
the negotiation interface. The negotiation interface is also implemented by the
container. If QoSEnablers are used for generic management of QoS aspects
they will use extended COPI to influence the outcome of the negotiation by
examining the client requirements and allocating resources or by raising
exception, which leads to unsuccessful completion of require_qos call. Again, the
external interfaces and the external negotiation flow are defined by the
specification the exact mechanisms to implement negotiation are not prescribed
by this specification since, for example, negotiation and QoS management could
also be done without QoSEnablers but with an otherwise extended container.
Disposition: Closed, no change


Issue 9747: require_qos from server side (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
Is it possible for a server (i.e. facet) to require QoS? How?

Resolution: closed no change
Revised Text:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Discussion:
It is not possible. Only client side is allowed to state QoS requirements. This is an
architectural choice to simplify the implementation of the QoS framework and the
negotiation mechanism in particular.
Disposition: Closed, no change


Issue 9748: Examples (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Clarification
Severity: Minor
Summary:
More complete examples that show the actual QoSConstraint structures, the deployment of QoSEnablers, the negotiation, and the use of the COPIs would be really helpful in understanding the spec.

Resolution: deferred
Revised Text:
Actions taken:
May 18, 2006: received issue

Discussion:
Although a prototype implementation of the specification exists. It is not 100%
complete and in particular does not directly reflect the changes resulting from this
FTF report. A completely conformant implementation and description of the listed
examples is currently not available. An updated implementation of the
specification can be expected to be available after publication of the FTF report.
For this reason a complete example can be described afterwards. Furthermore,
the examples are part of the non-normative annex. For these reasons this Issue
is deferred to RTF.


Issue 9749: Section: 8.5.1 (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, ritter(at)fokus.fraunhofer.de)
Nature: Revision
Severity: Minor
Summary:
Figure seems not to correspond to the description of extended Interceptors 

Resolution: Figure 8.3 has been updated depicting the extended interception points.
Revised Text: Figure 8.3 has been replaced by the following figure:
Actions taken:
May 18, 2006: received issue
January 15, 2008: closed issue

Issue 10564: Section: 8.7.2 (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Remedy IT (Mr. Johnny Willemsen, jwillemsen(at)remedy.nl)
Nature: Clarification
Severity: Minor
Summary:
Argument of register_server_interceptor must be a ServerContainerInterceptor

Resolution: IDL Problems has been fixed.
Revised Text: The Argument of register_server_interceptor operation in IDL Fragment of section 7.4.2 and Definition of the ServerContainerInterceptorRegistration interface in Annex A2 has been changed to: · register_server_interceptor ( in ServerContainerInterceptor ci) ; …
Actions taken:
January 5, 2007: received issue
January 15, 2008: closed issue

Issue 10565: Section: 8.7.2 StubContainerInterceptionRegistration has several errors (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Remedy IT (Mr. Johnny Willemsen, jwillemsen(at)remedy.nl)
Nature: Clarification
Severity: Significant
Summary:
StubContainerInterceptionRegistration has several errors. In IDL the local interface name is wrong, the register and unregister method names are wrong and have wrong types. In 8.7.2.4 and .5 headers are wrong

Resolution: IDL problems have been fixed. Wrong names and headers have been fixed. Some other minor typos have been fixed.
Revised Text: IDL Fraction in section 8.7.2.3 and Definition of StubContainerInterceptorRegistration interface is changed to: module Components { module ContainerPortableInterceptor { local interface StubContainerInterceptorRegistration { Components::Cookie register_stub_interceptor ( in StubContainerInterceptor ci) ; StubContainerInterceptor unregister_stub_interceptor ( in Components::Cookie ck) raises(InvalidRegistration); }; }; }; · Heading 8.7.2.5 is changed to unregister_stub_interceptor · Heading 8.7.1.2 is changed to unregister_client_interceptor · Heading 8.7.2.1 is changed to register_server_interceptor
Actions taken:
January 5, 2007: received issue
January 15, 2008: closed issue

Issue 10566: Section: 8.7.3 (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Remedy IT (Mr. Johnny Willemsen, jwillemsen(at)remedy.nl)
Nature: Clarification
Severity: Significant
Summary:
8.7.3 has several errors, in description, headers, idl, wrong types, interfaces, etc

Resolution: Wrong IDL and headers have been fixed.
Revised Text: IDL fraction in 8.7.3 has been changed to: module Components { module ContainerPortableInterceptor { local interface ServantContainerInterceptorRegistration { Components::Cookie register_servant_interceptor ( in StubContainerInterceptor ci); ServantContainerInterceptor unregister_servant_interceptor ( in Components::Cookie ck) raises(InvalidRegistration); }; }; }; · Heading 8.7.3.1 is changed to register_servant_interceptor · Heading 8.7.3.2 is changed to unregister_servant_interceptor
Actions taken:
January 5, 2007: received issue
January 15, 2008: closed issue

Issue 11319: QoS for CCM ComponentInstallation (qos4ccm-ftf)

Click
here for this issue's archive.
Source: THALES (Mr. Olivier Hachet, olivier.hachet(at)thalesgroup.com)
Nature: Uncategorized Issue
Severity:
Summary:
In section 8.11.4 (deployment), the ComponentInstallation interface is
referenced. It no more part of the current CCM specification and shall be
replaced by elements of D&C spec. NodeManager for the physical
transportation and NodeApplicationManager for the loading of libraries

Resolution:
Revised Text:
Actions taken:
August 29, 2007: received issue

Issue 11322: operations in the interface StubContainerInterceptor (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Commissariat a l Energie Atomique-CEA (Dr. Ansgar Radermacher, ansgar.radermacher(at)cea.fr)
Nature: Uncategorized Issue
Severity:
Summary:
The operations in the interface StubContainerInterceptor have an out boolean parameter called "con". It corresponds (I think) to the parameter "proceed_call" described in the text and should therefore be renamed accordingly

Resolution:
Revised Text:
Actions taken:
August 30, 2007: received issue

Issue 16253: ExtensionComponent and ccm_remove (qos4ccm-ftf)

Click
here for this issue's archive.
Source: Remedy IT (Mr. Johnny Willemsen, jwillemsen(at)remedy.nl)
Nature: Uncategorized Issue
Severity:
Summary:
Can anyone explain why the ExtensionComponent only delivers the
ccm_remove method and not all the other methods which the
SessionComponent has?


Resolution:
Revised Text:
Actions taken:
September 20, 2010: received issue