Issue 3950: Multiple Consumer association to Community and Collaboration types (negotiation-ftf) Source: OSM (Mr. Stephen McConnell, mcconnell@osm.net) Nature: Severity: Significant Summary: The revised Task and Session specification of BaseBusinessObject includes inheritance of the CosNotifyComm StructuredPushConsumer and StructuredPushSupplier interfaces. The semantics of StructuredPushSupplier implies association to a single StructuredProxyPushConsumer, however, the BaseBusinessObject interface is intended to support multiple concurrent consumers from potentially different business domains without mandating nor excluding the use of Notification channels as an implementation mechanisms. To enable the documented behaviour an explicit factory operation is required through which a StructuredPushSupplier reference can be exposed for a given consumer. This behaviour is required to support association of multiple consumers under the Community and Collaboration interfaces. Current inherited behaviour restricts association of event channels to local implementations which inconsistent with the stated semantics. Resolution: see below Revised Text: Definition of an identifiable event consumer, exposed as an argument to the add_consumer operation on Session::BaseBusinessObject. interface IdentifiableDomainConsumer : Session::IdentifiableDomainObject, CosNotifyComm::StructuredPushConsumer { }; Convenience declaration of a TimeBase::UtcT value. valuetype Timestamp TimeBase::UtcT ; Revision of BaseBusinessObject that excludes event consumer and production interface inheritance in favor of an explicit factory operation named add_consumer which enables animplementation to return a StructuredPushSupplier associated to an identifiable StructuredPushConsumer passed in as an operation argument. interface BaseBusinessObject : Session::IdentifiableDomainObject, CosLifeCycle::LifeCycleObject { CosNotifyComm::StructuredPushSupplier add_consumer( in IdentifiableDomainConsumer consumer); Timestamp creation( ); Timestamp modification( ); Timestamp access( ); }; Actions taken: October 16, 2000: received issue February 27, 2001: closed issue Discussion: Resolution: Revise the definition of BaseBusienssObject such that an identifiable structured push consumer is passed as an argument, returning a structured push supplier as opposed to the current inheritance based exposure a structured event management. The following IDL is recommended as a replacement to the definition of BaseBusienssObject: interface IdentifiableDomainConsumer : Session::IdentifiableDomainObject, CosNotifyComm::StructuredPushConsumer { }; valuetype Timestamp TimeBase::UtcT ; interface BaseBusinessObject : Session::IdentifiableDomainObject, CosLifeCycle::LifeCycleObject { CosNotifyComm::StructuredPushSupplier add_consumer( in IdentifiableDomainConsumer consumer ); Timestamp creation( ); Timestamp modification( ); Timestamp access( ); }; Revised Text: Refer to http://www.osm.net/upload/omg-2000-10-15.pdf, section 1.2 "BaseBusienssObject Revision". CommunityFramework specification has been updated to include the required modification of the Task and Session specification of the definition of BaseBusinessObject to the following IDL: End of Annotations:===== From: "Stephen McConnell" To: Cc: , "Abdul Akram Ph. D." , "Sanjeev Goyal" , "Dave Zenie" , "Ed Barkmeyer" Subject: ISSUES: Negotiation FTP Date: Sun, 15 Oct 2000 15:07:22 +0200 Message-ID: <000101c036a8$db367a00$0a01a8c0@osm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0 Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.00.0810.800 Content-Type: text/plain; charset="Windows-1252" X-UIDL: \d=e9l^hd9WZi!!~"U!! Juergen: The following issues are raised following implementation of the modules defined under the Negotiation RFP Final Submission dtc/99-07-03 while incorporation changes supporting rationalisation against Task and Session interfaces as defined under formal/2000-05-02. Cheers, Steve. Issue (1): Multiple Consumer association to Community and Collaboration types ============================================================================ = Nature: Inconsistency with functional objective. Severity: High Summary: The revised Task and Session specification of BaseBusinessObject includes inheritance of the CosNotifyComm StructuredPushConsumer and StructuredPushSupplier interfaces. The semantics of StructuredPushSupplier implies association to a single StructuredProxyPushConsumer, however, the BaseBusinessObject interface is intended to support multiple concurrent consumers from potentially different business domains without mandating nor excluding the use of Notification channels as an implementation mechanisms. To enable the documented behaviour an explicit factory operation is required through which a StructuredPushSupplier reference can be exposed for a given consumer. This behaviour is required to support association of multiple consumers under the Community and Collaboration interfaces. Current inherited behaviour restricts association of event channels to local implementations which inconsistent with the stated semantics. Resolution: Revise the definition of BaseBusienssObject such that an identifiable structured push consumer is passed as an argument, returning a structured push supplier as opposed to the current inheritance based exposure a structured event management. The following IDL is recommended as a replacement to the definition of BaseBusienssObject: interface IdentifiableDomainConsumer : Session::IdentifiableDomainObject, CosNotifyComm::StructuredPushConsumer { }; valuetype Timestamp TimeBase::UtcT ; interface BaseBusinessObject : Session::IdentifiableDomainObject, CosLifeCycle::LifeCycleObject { CosNotifyComm::StructuredPushSupplier add_consumer( in IdentifiableDomainConsumer consumer ); Timestamp creation( ); Timestamp modification( ); Timestamp access( ); }; Revised Text: Refer to http://www.osm.net/upload/omg-2000-10-15.pdf, section 1.2 "BaseBusienssObject Revision".