Issue 9333: Add SAD CollocationProcess Element. (swradio-rtf) Source: PrismTech (Mr. Gerald Lee Bickle, jerry.bickle@prismtechusa.com) Nature: Uncategorized Issue Severity: Summary: Need to add an optional collocation process element in order to express componentinstantiations that are process collocated. This behavior goes with ExecutableDevic::execute behavior Resolution: Revised Text: In section 8.1.5.2.3 SWRadioComponent, Semantics noheader section Change 1st sentence "L.6.3 partitioning. A component partitioning element (see Figure L-106) specifies a deployment pattern of components and their components-to-hosts relationships. A component instantiation is captured inside a componentplacement element. The hostcollocation element allows the components to be placed on a common device. When the componentplacement is by itself and not inside a hostcollocation or processcollocation, it then has no collocation constraints. <!ELEMENT partitioning ( componentplacement | hostcollocation )+>" To "L.6.3 partitioning (in break out spec 7.6.3) A component partitioning element (see Figure 7.21) specifies a deployment pattern of components and their components-to-hosts and process relationships. A component instantiation is captured inside a componentplacement element. The hostcollocation element allows the components to be placed on a common device. The processcollocation element allows components to be placed within the same process space. When the componentplacement is by itself and not inside a hostcollocation, it then has no collocation constraints. <!ELEMENT partitioning ( componentplacement | hostcollocation | processcollocation )+>" Update Figure 7.21 with following Figure Change L.6.3.2 hostcollocation as follows: From "The hostcollocation element specifies a group of component instances that are to be deployed together on a single host. For purposes of the SWRadio, the componentplacement element will be used to describe the 1...n components that will be collocated on the same host platform. Within the SWRadio specification, a host platform will be interpreted as a single device. The id and name attributes are optional but may be used to uniquely identify a set of collocated components within a SAD file. <!ELEMENT hostcollocation ( componentplacement )+> <!ATTLIST hostcollocation id ID #IMPLIED name CDATA #IMPLIED>" To "L.6.3.2 hostcollocation. The hostcollocation element specifies a group of component instances that are to be deployed together on a single host. The componentplacement element will be used to describe the 1...n components that will be collocated on the same host platform. The processcollocation element will be used to describe the processes that are to be collocated on the same host. A host platform will be interpreted as a single device. The id and name attributes are optional but may be used to uniquely identify a set of collocated components within a SAD file. <!ELEMENT hostcollocation ( componentplacement | processcollocation )+> <!ATTLIST hostcollocation id ID #IMPLIED name CDATA #IMPLIED>" Add a new section after L.6.3.2 hostcollocation. (in break out spec section 7.6.3.2) "L.6.3.3 processcollocation. The processcollocation element specifies a group of component instances that are to be deployed together in a single process. The componentplacement element will be used to describe the 1...n components that will be collocated in the process. The id and name attributes are optional but may be used to uniquely identify a set of collocated components within a SAD file. <!ELEMENT processcollocation ( componentplacement )+> <!ATTLIST processcollocation id ID #IMPLIED name CDATA #IMPLIED>" Change Software Assembly Descriptor DTD in Domain Profile XML Files. from "<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT softwareassembly ( description? , componentfiles , partitioning , assemblycontroller , connections? , externalports? )> <!ATTLIST softwareassembly id ID #REQUIRED name CDATA #IMPLIED version CDATA #IMPLIED> <!ELEMENT description (#PCDATA)> <!ELEMENT componentfiles ( componentfile+ )> <!ELEMENT componentfile ( localfile )> <!ATTLIST componentfile id ID #REQUIRED type CDATA #IMPLIED> <!ELEMENT localfile EMPTY> <!ATTLIST localfile name CDATA #REQUIRED> <!ELEMENT partitioning ( componentplacement | hostcollocation )+> <!ELEMENT componentplacement ( componentfileref , componentinstantiation+ )> <!ELEMENT componentfileref EMPTY> <!ATTLIST componentfileref refid CDATA #REQUIRED> <!ELEMENT componentinstantiation ( usagename? , componentproperties? , findcomponent? )> <!ATTLIST componentinstantiation id ID #REQUIRED> <!ELEMENT usagename (#PCDATA)> <!ELEMENT componentproperties ( simpleref | simplesequenceref | structref | structsequenceref )+ > <!ELEMENT findcomponent ( componentresourcefactoryref | namingservice )> <!ELEMENT componentresourcefactoryref ( resourcefactoryproperties? )> <!ATTLIST componentresourcefactoryref refid CDATA #REQUIRED> <!ELEMENT resourcefactoryproperties ( simpleref | simplesequenceref | structref | structsequenceref )+ > <!ELEMENT simpleref EMPTY> <!ATTLIST simpleref refid CDATA #REQUIRED value CDATA #REQUIRED> <!ELEMENT simplesequenceref (values )> <!ATTLIST simplesequenceref refid CDATA #REQUIRED> <!ELEMENT structref (simpleref+ )> <!ATTLIST structref refid CDATA #REQUIRED> <!ELEMENT structsequenceref ( structvalue+ )> <!ATTLIST structsequenceref refid CDATA #REQUIRED> <!ELEMENT structvalue (simpleref+ )> <!ELEMENT values ( value+ )> <!ELEMENT value (#PCDATA)> <!ELEMENT hostcollocation ( componentplacement )+> <!ATTLIST hostcollocation id ID #IMPLIED name CDATA #IMPLIED> <!ELEMENT assemblycontroller ( componentinstantiationref )> <!ELEMENT connections ( connectinterface* )> <!ELEMENT connectinterface ( usesport , ( providesport | componentsupportedinterface | findby ) )> <!ATTLIST connectinterface id ID #IMPLIED> <!ELEMENT usesport ( usesidentifier , (componentinstantiationref | devicethatloadedthiscomponentref | deviceusedbythiscomponentref | findby ) )> <!ELEMENT usesidentifier (#PCDATA)> <!ELEMENT componentinstantiationref EMPTY> <!ATTLIST componentinstantiationref refid CDATA #REQUIRED> <!ELEMENT findby ( namingservice | domainfinder )> <!ELEMENT namingservice EMPTY> <!ATTLIST namingservice name CDATA #REQUIRED> <!ELEMENT domainfinder EMPTY> <!ATTLIST domainfinder type CDATA #REQUIRED name CDATA #IMPLIED> <!ELEMENT devicethatloadedthiscomponentref EMPTY> <!ATTLIST devicethatloadedthiscomponentref refid CDATA #REQUIRED> <!ELEMENT deviceusedbythiscomponentref EMPTY> <!ATTLIST deviceusedbythiscomponentref refid CDATA #REQUIRED usesrefid CDATA #REQUIRED> <!ELEMENT providesport ( providesidentifier , ( componentinstantiationref | devicethatloadedthiscomponentref | deviceusedbythiscomponentref | findby ) )> <!ELEMENT providesidentifier (#PCDATA)> <!ELEMENT componentsupportedinterface ( supportedidentifier , ( componentinstantiationref | findby ) )> <!ELEMENT supportedidentifier (#PCDATA)> <!ELEMENT externalports (port+ )> <!ELEMENT port ( description? , (usesidentifier | providesidentifier | supportedidentifier) , componentinstantiationref )>" To "<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT softwareassembly ( description? , componentfiles , partitioning , assemblycontroller , connections? , externalports? )> <!ATTLIST softwareassembly id ID #REQUIRED name CDATA #IMPLIED version CDATA #IMPLIED> <!ELEMENT description (#PCDATA)> <!ELEMENT componentfiles ( componentfile+ )> <!ELEMENT componentfile ( localfile )> <!ATTLIST componentfile id ID #REQUIRED type CDATA #IMPLIED> <!ELEMENT localfile EMPTY> <!ATTLIST localfile name CDATA #REQUIRED> <!ELEMENT partitioning ( componentplacement | hostcollocation | processcollocation )+> <!ELEMENT componentplacement ( componentfileref , componentinstantiation+ )> <!ELEMENT componentfileref EMPTY> <!ATTLIST componentfileref refid CDATA #REQUIRED> <!ELEMENT componentinstantiation ( usagename? , componentproperties? , findcomponent? )> <!ATTLIST componentinstantiation id ID #REQUIRED> <!ELEMENT usagename (#PCDATA)> <!ELEMENT componentproperties ( simpleref | simplesequenceref | structref | structsequenceref )+ > <!ELEMENT findcomponent ( componentresourcefactoryref | namingservice )> <!ELEMENT componentresourcefactoryref ( resourcefactoryproperties? )> <!ATTLIST componentresourcefactoryref refid CDATA #REQUIRED> <!ELEMENT resourcefactoryproperties ( simpleref | simplesequenceref | structref | structsequenceref )+ > <!ELEMENT simpleref EMPTY> <!ATTLIST simpleref refid CDATA #REQUIRED value CDATA #REQUIRED> <!ELEMENT simplesequenceref (values )> <!ATTLIST simplesequenceref refid CDATA #REQUIRED> <!ELEMENT structref (simpleref+ )> <!ATTLIST structref refid CDATA #REQUIRED> <!ELEMENT structsequenceref ( structvalue+ )> <!ATTLIST structsequenceref refid CDATA #REQUIRED> <!ELEMENT structvalue (simpleref+ )> <!ELEMENT values ( value+ )> <!ELEMENT value (#PCDATA)> <!ELEMENT hostcollocation ( componentplacement | processcollocation )+> <!ATTLIST hostcollocation id ID #IMPLIED name CDATA #IMPLIED> <!ELEMENT processcollocation ( componentplacement )+> <!ATTLIST processcollocation id ID #IMPLIED name CDATA #IMPLIED> <!ELEMENT assemblycontroller ( componentinstantiationref )> <!ELEMENT connections ( connectinterface* )> <!ELEMENT connectinterface ( usesport , ( providesport | componentsupportedinterface | findby ) )> <!ATTLIST connectinterface id ID #IMPLIED> <!ELEMENT usesport ( usesidentifier , (componentinstantiationref | devicethatloadedthiscomponentref | deviceusedbythiscomponentref | findby ) )> <!ELEMENT usesidentifier (#PCDATA)> <!ELEMENT componentinstantiationref EMPTY> <!ATTLIST componentinstantiationref refid CDATA #REQUIRED> <!ELEMENT findby ( namingservice | domainfinder )> <!ELEMENT namingservice EMPTY> <!ATTLIST namingservice name CDATA #REQUIRED> <!ELEMENT domainfinder EMPTY> <!ATTLIST domainfinder type CDATA #REQUIRED name CDATA #IMPLIED> <!ELEMENT devicethatloadedthiscomponentref EMPTY> <!ATTLIST devicethatloadedthiscomponentref refid CDATA #REQUIRED> <!ELEMENT deviceusedbythiscomponentref EMPTY> <!ATTLIST deviceusedbythiscomponentref refid CDATA #REQUIRED usesrefid CDATA #REQUIRED> <!ELEMENT providesport ( providesidentifier , ( componentinstantiationref | devicethatloadedthiscomponentref | deviceusedbythiscomponentref | findby ) )> <!ELEMENT providesidentifier (#PCDATA)> <!ELEMENT componentsupportedinterface ( supportedidentifier , ( componentinstantiationref | findby ) )> <!ELEMENT supportedidentifier (#PCDATA)> <!ELEMENT externalports (port+ )> <!ELEMENT port ( description? , (usesidentifier | providesidentifier | supportedidentifier) , componentinstantiationref )>" Actions taken: January 30, 2006: received issue April 19, 2007: closed issue Discussion: Resolution: Add an optional processcollocation element to the partitioning and hostcollocation element definitions. End of Annotations:===== erver-Uuid: C8FB4D43-1108-484A-A898-3CBCC7906230 Subject: PIM and PSM SWRadio Components - XML Issues Date: Mon, 30 Jan 2006 09:13:28 -0500 X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: PIM and PSM SWRadio Components - XML Issues Thread-Index: AcYlp1dak1KDQpz0SXu8hodwVwe/3w== From: "Jerry Bickle" To: issues@omg.org cc: swradio-rtf@omg.org X-OriginalArrivalTime: 30 Jan 2006 14:13:36.0958 (UTC) FILETIME=[5C9395E0:01C625A7] X-WSS-ID: 6FC0C08120C651650-12-01 Issue 2 - Add SAD CollocationProcess Element. Need to add an optional collocation process element in order to express componentinstantiations that are process collocated. This behavior goes with ExecutableDevic::execute behavior.