SCA Specification Version: Candidate Release
27 December 2011
i
1
SOFTWARE COMMUNICATIONS ARCHITECTURE 2
SPECIFICATION 3
4
APPENDIX D-1: PSM - DOCUMENT TYPE DEFINITION (DTD) 5
6
7 8
9
27 December 2011 10
Version: Candidate Release 11
12
13
Prepared by: 14
15 JTRS Standards 16
Joint Program Executive Office (JPEO) for the Joint Tactical Radio System (JTRS) 17 33000 Nixie Way 18
San Diego, CA 92147-5110 19 20 21
22 Statement A - Approved for public release; distribution is unlimited (27 December 2011)
SCA Specification Version: Candidate Release
27 December 2011
ii
REVISION HISTORY 23
Version Revision Date
Next <Draft> Initial Draft Release 30 November 2010
Next <Draft>
1.0.0.2 Applied SCA Next Errata Sheet v2.0 14 September 2011
Candidate
Release Initial Release 27 December 2011
24
25
SCA Specification Version: Candidate Release
27 December 2011
iii
TABLE OF CONTENTS 26
APPENDIX D-1 PSM - DOCUMENT TYPE DEFINITION......................................................... 9 27
D-1.1 Scope........................................................................................................................................ 9 28
D-1.1 Conformance ........................................................................................................................ 10 29
D-1.2 Conventions .......................................................................................................................... 10 30
D-1.3 Normative References .......................................................................................................... 10 31
D-1.4 Informative References ....................................................................................................... 10 32
D-1.5 Software Package Descriptor .............................................................................................. 10 33
D-1.5.1 Software Package ....................................................................................................... 10 34
D-1.5.1.1 title ............................................................................................................................ 12 35
D-1.5.1.2 author ........................................................................................................................ 12 36
D-1.5.1.3 description ................................................................................................................ 13 37
D-1.5.1.4 propertyfile ............................................................................................................... 13 38
D-1.5.1.4.1 localfile............................................................................................................. 13 39
D-1.5.1.5 descriptor .................................................................................................................. 13 40
D-1.5.1.6 implementation ......................................................................................................... 14 41
D-1.5.1.6.1 description ........................................................................................................ 15 42
D-1.5.1.6.2 propertyfile ....................................................................................................... 15 43
D-1.5.1.6.3 code .................................................................................................................. 15 44
D-1.5.1.6.4 compiler ........................................................................................................... 17 45
D-1.5.1.6.5 programminglanguage ..................................................................................... 17 46
D-1.5.1.6.6 humanlanguage ................................................................................................ 17 47
D-1.5.1.6.7 runtime ............................................................................................................. 17 48
D-1.5.1.6.8 os ...................................................................................................................... 17 49
D-1.5.1.6.9 processor .......................................................................................................... 18 50
D-1.5.1.6.10 dependency ..................................................................................................... 18 51
D-1.5.1.6.11 usesdevice ...................................................................................................... 20 52
D-1.6 Device Package Descriptor .................................................................................................. 22 53
D-1.6.1 Device Package .......................................................................................................... 22 54
D-1.6.1.1 title ............................................................................................................................ 23 55
D-1.6.1.2 author ........................................................................................................................ 23 56
SCA Specification Version: Candidate Release
27 December 2011
iv
D-1.6.1.3 description ................................................................................................................ 23 57
D-1.6.1.4 hwdeviceregistration ................................................................................................ 23 58
D-1.6.1.4.1 propertyfile ....................................................................................................... 24 59
D-1.6.1.4.2 description ........................................................................................................ 25 60
D-1.6.1.4.3 manufacturer .................................................................................................... 25 61
D-1.6.1.4.4 modelnumber .................................................................................................... 25 62
D-1.6.1.4.5 deviceclass ....................................................................................................... 25 63
D-1.6.1.4.6 childhwdevice ................................................................................................... 25 64
D-1.7 Properties Descriptor........................................................................................................... 27 65
D-1.7.1 properties.................................................................................................................... 27 66
D-1.7.1.1 simple ....................................................................................................................... 28 67
D-1.7.1.1.1 description ........................................................................................................ 29 68
D-1.7.1.1.2 value ................................................................................................................. 29 69
D-1.7.1.1.3 units .................................................................................................................. 29 70
D-1.7.1.1.4 range ................................................................................................................ 29 71
D-1.7.1.1.5 enumerations .................................................................................................... 29 72
D-1.7.1.1.6 kind ................................................................................................................... 30 73
D-1.7.1.1.7 action ................................................................................................................ 31 74
D-1.7.1.2 simplesequence ......................................................................................................... 31 75
D-1.7.1.3 test ............................................................................................................................ 32 76
D-1.7.1.3.1 inputvalue ......................................................................................................... 33 77
D-1.7.1.3.2 resultvalue ........................................................................................................ 33 78
D-1.7.1.4 struct ......................................................................................................................... 33 79
D-1.7.1.4.1 configurationkind ............................................................................................. 34 80
D-1.7.1.5 structsequence .......................................................................................................... 35 81
D-1.8 Software Component Descriptor ........................................................................................ 37 82
D-1.8.1 softwarecomponent .................................................................................................... 37 83
D-1.8.1.1 componentrepid ........................................................................................................ 38 84
D-1.8.1.2 componenttype ......................................................................................................... 38 85
D-1.8.1.3 componentfeatures .................................................................................................... 38 86
D-1.8.1.3.1 supportsinterface .............................................................................................. 39 87
D-1.8.1.3.2 ports ................................................................................................................. 39 88
SCA Specification Version: Candidate Release
27 December 2011
v
D-1.8.1.4 interfaces .................................................................................................................. 41 89
D-1.8.1.5 propertyfile ............................................................................................................... 41 90
D-1.9 Software Assembly Descriptor............................................................................................ 42 91
D-1.9.1 softwareassembly ....................................................................................................... 42 92
D-1.9.1.1 description ................................................................................................................ 43 93
D-1.9.1.2 componentfiles ......................................................................................................... 44 94
D-1.9.1.2.1 componentfile ................................................................................................... 44 95
D-1.9.1.3 partitioning ............................................................................................................... 44 96
D-1.9.1.3.1 componentplacement ........................................................................................ 45 97
D-1.9.1.3.2 hostcollocation ................................................................................................. 50 98
D-1.9.1.3.3 assemblyplacement........................................................................................... 50 99
D-1.9.1.4 deploymentdependencies .......................................................................................... 53 100
D-1.9.1.5 deploymentprefs ....................................................................................................... 55 101
D-1.9.1.6 assemblycontroller .................................................................................................... 55 102
D-1.9.1.7 connections ............................................................................................................... 56 103
D-1.9.1.7.1 connectinterface ............................................................................................... 56 104
D-1.9.1.8 externalports ............................................................................................................. 62 105
D-1.10 Device Configuration Descriptor ........................................................................................ 64 106
D-1.10.1 deviceconfiguration.................................................................................................... 64 107
D-1.10.1.1 description ................................................................................................................ 65 108
D-1.10.1.2 devicemanagersoftpkg .............................................................................................. 65 109
D-1.10.1.3 componentfiles ......................................................................................................... 65 110
D-1.10.1.4 partitioning ............................................................................................................... 65 111
D-1.10.1.4.1 componentplacement ...................................................................................... 65 112
D-1.10.1.5 connections ............................................................................................................... 72 113
D-1.10.1.6 domainmanager ........................................................................................................ 72 114
D-1.10.1.7 filesystemnames ....................................................................................................... 72 115
D-1.11 DomainManager Configuration Descriptor ...................................................................... 74 116
D-1.11.1 domainmanagerconfiguration .................................................................................... 74 117
D-1.11.1.1 description ................................................................................................................ 74 118
D-1.11.1.2 domainmanagersoftpkg ............................................................................................ 75 119
D-1.11.1.3 deploymentlayout ..................................................................................................... 75 120
SCA Specification Version: Candidate Release
27 December 2011
vi
D-1.11.1.4 services ..................................................................................................................... 75 121
D-1.11.1.4.1 service ............................................................................................................ 76 122
D-1.12 Platform Deployment Descriptor ....................................................................................... 77 123
D-1.12.1 deploymentplatform ................................................................................................... 77 124
D-1.12.1.1 description ................................................................................................................ 77 125
D-1.12.1.2 channel ...................................................................................................................... 78 126
D-1.12.1.2.1 devicelist......................................................................................................... 78 127
D-1.12.1.2.2 servicelist ....................................................................................................... 79 128
D-1.13 Application Deployment Descriptor ................................................................................... 80 129
D-1.13.1 deploymentprecedence ............................................................................................... 80 130
D-1.13.1.1 description ................................................................................................................ 80 131
D-1.13.1.2 deploymentoption ..................................................................................................... 80 132
D-1.13.1.2.1 description ...................................................................................................... 81 133
D-1.13.1.2.2 channelref....................................................................................................... 81 134
D-1.14 Attachments .......................................................................................................................... 82 135
136
137
SCA Specification Version: Candidate Release
27 December 2011
vii
LIST OF FIGURES 138
Figure 1: softpkg Element Relationships ...................................................................................... 11 139
Figure 2: author Element Relationships ........................................................................................ 12 140
Figure 3: implementation Element Relationships ......................................................................... 14 141
Figure 4: code Element Relationships .......................................................................................... 16 142
Figure 5: dependency Element Relationships ............................................................................... 19 143
Figure 6: softpkgref Element Relationships ................................................................................. 20 144
Figure 7: devicepkg Element Relationships ................................................................................. 22 145
Figure 8: hwdeviceregistration Element Relationships ................................................................ 24 146
Figure 9: childhwdevice Element Relationships........................................................................... 26 147
Figure 10: properties Element Relationships ................................................................................ 27 148
Figure 11: simple Element Relationships ..................................................................................... 28 149
Figure 12: simplesequence Element Relationships ....................................................................... 32 150
Figure 13: test Element Relationships .......................................................................................... 33 151
Figure 14: struct Element Relationships ....................................................................................... 34 152
Figure 15: structsequence Element Relationships ........................................................................ 35 153
Figure 16: softwarecomponent Element Relationships ................................................................ 37 154
Figure 17: componentfeatures Element Relationships ................................................................. 38 155
Figure 18: ports Element Relationships ........................................................................................ 40 156
Figure 19: softwareassembly Element Relationships ................................................................... 43 157
Figure 20: partitioning Element Relationships ............................................................................. 44 158
Figure 21: componentplacement Element Relationships .............................................................. 45 159
Figure 22: componentinstantiation Element Relationships .......................................................... 46 160
Figure 23: findcomponent Element Relationships ........................................................................ 47 161
Figure 24: componentfactoryref Element Relationships .............................................................. 48 162
Figure 25: componentfactoryproperties Element Relationships ................................................... 49 163
Figure 26: assemblyplacement Element Relationships................................................................. 51 164
Figure 27: assemblyinstantiation Element Relationships ............................................................. 52 165
Figure 28: componentproperties Element Relationships .............................................................. 53 166
Figure 29: deploymentdependencies Element Relationships ....................................................... 54 167
Figure 30: assemblycontroller Element Relationships ................................................................. 55 168
SCA Specification Version: Candidate Release
27 December 2011
viii
Figure 31: connectinterface Element Relationships ..................................................................... 56 169
Figure 32: usesport Element Relationships................................................................................... 57 170
Figure 33: providesport Element Relationships ............................................................................ 60 171
Figure 34: componentsupportedinterface Element Relationships ................................................ 61 172
Figure 35: port Element Relationships ......................................................................................... 63 173
Figure 36: deviceconfiguration Element Relationships ................................................................ 64 174
Figure 37: componentplacement Element Relationships .............................................................. 66 175
Figure 38: componentinstantiation Element Relationships .......................................................... 68 176
Figure 39: componentproperties Element Relationships .............................................................. 69 177
Figure 40: componentfactoryref Element Relationships .............................................................. 70 178
Figure 41: componentfactoryproperties Element Relationships ................................................... 71 179
Figure 42: domainmanagerconfiguration Element Relationships ................................................. 74 180
Figure 43: services Element Relationships ................................................................................... 75 181
Figure 44: service Element Relationships..................................................................................... 76 182
Figure 45: deploymentplatform Element Relationships ............................................................... 77 183
Figure 46: channel Element Relationships ................................................................................... 78 184
Figure 47: deploymentprecedence Element Relationships ........................................................... 80 185
Figure 48: deploymentoption Element Relationships ................................................................... 81 186
187
SCA Specification Version: Candidate Release
27 December 2011
9
APPENDIX D-1 PSM - DOCUMENT TYPE DEFINITION 188
D-1.1 SCOPE 189
This appendix defines the SCA Domain Profiles using XML Document Type Definition (DTD) 190
files. 191
SCA501 DTD files are installed in the domain and shall have “.dtd” as their filename extension. 192
SCA502 All XML files shall have as the first two lines as an XML declaration (?xml) and a 193
document type declaration (!DOCTYPE). The XML declaration specifies the XML version and 194
whether the document is standalone. The document type declaration specifies the DTD for the 195
document. Example declarations are as follows: 196
<?xml version=”1.0” standalone=”no”?> 197
<!DOCTYPE softwareassembly SYSTEM “softwareassembly.dtd”> 198
199
SCA Specification Version: Candidate Release
27 December 2011
10
D-1.1 CONFORMANCE 200
See SCA Appendix D. 201
D-1.2 CONVENTIONS 202
N/A 203
D-1.3 NORMATIVE REFERENCES 204
The following documents contain provisions or requirements which by reference constitute 205
requirements of this appendix. 206
[1] Common Object Request Broker Architecture (CORBA) Specification, Version 3.2 Part 207
1: CORBA Interfaces, formal/2011-11-01, November 2011. 208
D-1.4 INFORMATIVE REFERENCES 209
N/A 210
D-1.5 SOFTWARE PACKAGE DESCRIPTOR 211
The Software Package Descriptor (SPD) is used at deployment time to load a component and its 212
various implementations. The information contained in the SPD will provide the basis for the 213
domain management function to manage the component within the SCA architecture. 214
The SPD may contain various implementations of any given component. Within the 215
specification of an SPD several other files are referenced including a component level 216
propertyfile and a software component descriptor file. Within any given implementation there 217
may be additional propertyfiles. 218
SCA503 A Software Package Descriptor file shall have a “.spd.xml” extension. 219
D-1.5.1 Software Package 220
The softpkg element (Figure 1) indicates an SPD definition. The softpkg id uniquely identifies 221
the package. The softpkg id attribute definition guarantees uniqueness within an XML 222
document, however an implementation specific approach must be utilized to maintain uniqueness 223
within a Domain Profile. The name attribute is a user-friendly label for the softpkg element. The 224
type attribute indicates whether or not the component implementation is SCA compliant. All 225
files referenced by a Software Package are located in the same directory as the SPD file or a 226
directory that is relative to the directory where the SPD file is located. 227
A software package requires at least one implementation. An implementation is a monolithic 228
loadable/executable artifact. A single monolithic loadable/executable artifact is for a General 229
Purpose Processor, Digital Signal Processor or Field Gate Array Processor. 230
SCA Specification Version: Candidate Release
27 December 2011
11
231 class softpkg
«DTDSequenceGroup»
softpkg_grp1
«DTDElement»
softpkg
- id: ID
- name: CDATA
- type: (sca_compliant | sca_non_compliant) = sca_compliant
- version: CDATA
«DTDElementPCDATA»
title
«DTDElement»
author
«DTDElement»
description
«DTDElement»
propertyfile
- type: CDATA
«DTDElement»
descriptor
- name: CDATA
«DTDElement»
implementation
- aepcompliance: (aep_compliant | lw_aep_compliant | aep_non_compliant) = aep_compliant
- id: ID
«DTDElement»
usesdev ice
- id: ID
- type: CDATA
0..*
1..*
0..10..1
0..1
1..*
0..1
232
Figure 1: softpkg Element Relationships 233
The set of properties to be used for a Software Package come from the union of these properties 234
sources using the following precedence order: 235
1. SPD Implementation Properties 236
2. SPD level properties 237
3. SCD properties 238
Any duplicate properties having the same id are ignored. Duplicated properties must be the same 239
property type, only the value can be over-ridden. The implementation properties are only used 240
for the initial configuration and creation of a component by an ApplicationFactoryComponent 241
and cannot be referenced by a Software Assembly Descriptor (SAD) componentinstantiation, 242
componentproperties or componentfactoryproperties element. 243
<!ELEMENT softpkg 244
( title? 245 , author+ 246
, description? 247 , propertyfile? 248 , descriptor? 249
, implementation+ 250
SCA Specification Version: Candidate Release
27 December 2011
12
, usesdevice* 251 )> 252
<!ATTLIST softpkg 253 id ID #REQUIRED 254 name CDATA #REQUIRED 255 type (sca_compliant | sca_non_compliant) "sca_compliant" 256
version CDATA #IMPLIED > 257
D-1.5.1.1 title 258
The title element is used for indicating a title for the software component being installed in 259
accordance with the softpkg element. 260
<!ELEMENT title (#PCDATA)> 261
D-1.5.1.2 author 262
The author element (see Figure 2) is used to indicate the name of the person, the company, and 263
the web page of the developer producing the component being installed into the system. 264
class author
«DTDElement»
author
«DTDSequenceGroup»
author_grp
«DTDElementPCDATA»
name
«DTDElementPCDATA»
company
«DTDElementPCDATA»
webpage
0..10..10..*
265
Figure 2: author Element Relationships 266
<!ELEMENT author 267
( name* 268 , company? 269 , webpage? 270
)> 271 <!ELEMENT name (#PCDATA)> 272 <!ELEMENT company (#PCDATA)> 273
SCA Specification Version: Candidate Release
27 December 2011
13
<!ELEMENT webpage (#PCDATA)> 274
D-1.5.1.3 description 275
The description element is used to describe any pertinent information about the software 276
component being delivered to the system. 277
<!ELEMENT description (#PCDATA)> 278
D-1.5.1.4 propertyfile 279
The propertyfile element is used to indicate the local filename of the Property Descriptor (PRF) 280
file associated with the Software Package. The intent of the propertyfile will be to provide the 281
definition of properties elements common to all component implementations being deployed in 282
accordance with the Software Package (softpkg). PRF files may also contain properties elements 283
that are used in definition of command and control id value pairs used by the SCA Resource 284
configure() and query() operations. The format of the properties element is described in the PRF 285
(Section D-1.7.1). 286
<!ELEMENT propertyfile 287
( localfile 288 )> 289 <!ATTLIST propertyfile 290
type CDATA #IMPLIED> 291
D-1.5.1.4.1 localfile 292
The localfile element is used to reference a file in the same directory as the SPD file or a 293
directory that is relative to the directory where the SPD file is located. When the name attribute 294
is a simple name, the file exists in the same directory as the SPD file. A relative directory 295
indication begins either with “../” meaning parent directory and “./” means current directory in 296
the name attribute. Multiple “../” and directory names can follow the initial “../” in the name 297
attribute. All name attributes must have a simple name at the end of the file name. 298
<!ELEMENT localfile EMPTY> 299 <!ATTLIST localfile 300 name CDATA #REQUIRED> 301
D-1.5.1.5 descriptor 302
The descriptor element points to the local filename of the Software Component Descriptor 303
(SCD) file used to document the interface information for the component being delivered to the 304
system. In the case of an SCA component, the SCD will contain information about three aspects 305
of the component (the component type, message ports, and interface definitions). The SCD file 306
is optional (see section D-1.8 on software component descriptor file). 307
<!ELEMENT descriptor 308 (localfile 309 )> 310 <!ATTLIST descriptor 311
name CDATA #IMPLIED> 312
SCA Specification Version: Candidate Release
27 December 2011
14
D-1.5.1.6 implementation 313
The implementation element (see Figure 3) contains descriptive information about the particular 314
implementation template for a software component contained in the softpkg element. The 315
implementation element is intended to allow multiple component templates to be delivered to the 316
system in one Software Package. Each implementation element is intended to allow the same 317
component to support different types of processors, operating systems, etc. The implementation 318
element will also allow definition of implementation-dependent properties for use in Device, 319
Application, or Resource creation. The implementation element’s id attribute uniquely identifies 320
a specific implementation of the component and an implementation specific approach is required 321
to maintain uniqueness within a Domain Profile. The compiler, programminglanguage, 322
humanlanguage, os, processor, and runtime elements are optional dependency elements. 323
class implementation
«DTDElement»
compiler
- name: CDATA
- version: CDATA
«DTDElement»
implementation
- aepcompliance: (aep_compliant | lw_aep_compliant | aep_non_compliant) = aep_compliant
- id: ID
«DTDElement»
code
- type: CDATA
«DTDSequenceGroup»
implementation_grp1
«DTDElement»
description
«DTDElement»
propertyfile
- type: CDATA
«DTDElement»
dependency
- type: CDATA
«DTDElementEmpty»
humanlanguage
- name: CDATA
«DTDChoiceGroup»
implementation_grp1_grp8
«DTDElementEmpty»
programminglanguage
- name: CDATA
- version: CDATA
«DTDElementEmpty»
runtime
- name: CDATA
- version: CDATA
«DTDElementEmpty»
os
- name: CDATA
- version: CDATA
«DTDElementEmpty»
processor
- name: CDATA
«DTDElement»
usesdev ice
- id: ID
- type: CDATA
0..1
0..*
0..1
1..*
0..1
0..1
0..1
0..1
324
Figure 3: implementation Element Relationships 325
<!ELEMENT implementation 326 ( description? 327 , propertyfile? 328
, code 329
SCA Specification Version: Candidate Release
27 December 2011
15
, compiler? 330 , programminglanguage? 331
, humanlanguage? 332 , runtime? 333 , ( os | processor | dependency )+ 334
, usesdevice* 335
)> 336 <!ATTLIST implementation 337 id ID #REQUIRED 338
aepcompliance (aep_compliant | lw_aep_compliant | 339 aep_non_compliant) “aep_compliant”> 340
D-1.5.1.6.1 description 341
The description element is used to describe any pertinent information about the software 342
component implementation that the software developer wishes to document within the software 343
package profile. 344
<!ELEMENT description (#PCDATA)> 345
D-1.5.1.6.2 propertyfile 346
The propertyfile element is used to indicate the local filename of the PRF file associated with 347
this component package described by the implementation element. Although the SCA does not 348
restrict the specific use of the PRF file based on context, it is intended within the implementation 349
element to provide component implementation specific properties elements for use in command 350
and control id value pair settings to the Resource configure() and query() interfaces. See section 351
D-1.7.1 on the description of the properties element format in the PRF. 352
<!ELEMENT propertyfile 353
(localfile 354 )> 355 <!ATTLIST propertyfile 356 type CDATA #IMPLIED> 357
358 <!ELEMENT localfile EMPTY> 359 <!ATTLIST localfile 360
name CDATA #REQUIRED> 361
D-1.5.1.6.3 code 362
The code element (see Figure 4) is used to indicate the local filename of the code that is 363
described by the softpkg element, for a specific implementation of the software component. The 364
stacksize and priority are options parameters used by the ExecutableDevice execute operation. 365
Data types for the values of these options are unsigned long. The type attribute for the code 366
element will also indicate the type of file being delivered to the system. The entrypoint element 367
provides the means for providing the name of the entry point of the component being delivered. 368
The valid values for the type attribute are: “Executable”, “KernelModule”, “SharedLibrary”, and 369
“Driver.” 370
SCA Specification Version: Candidate Release
27 December 2011
16
The meaning of the code type attribute: 371
1. Executable means to use LoadableDeviceObject::load and ExecutableDevice::execute 372
operations. This is a “main” process. 373
2. Driver and Kernel Module means load only. 374
3. SharedLibrary means dynamic linking. 375
4. Without a code entrypoint element means load only. 376
5. With a code entrypoint element means load and ExecutableDevice::execute. 377
class code
«DTDElement»
code
- type: CDATA
«DTDElementEmpty»
localfile
- name: CDATA
«DTDElementPCDATA»
priority
«DTDElementPCDATA»
stacksize«DTDElementPCDATA»
entrypoint
«DTDSequenceGroup»
code_grp1
0..1 0..1 0..1
378
Figure 4: code Element Relationships 379
380 <!ELEMENT code 381 ( localfile 382 , entrypoint? 383
, stacksize? 384 , priority? 385 )> 386 <!ATTLIST code 387
type CDATA #IMPLIED> 388 389 <!ELEMENT localfile EMPTY> 390
<!ATTLIST localfile 391 name CDATA #REQUIRED> 392 393 <!ELEMENT entrypoint (#PCDATA)> 394
395 <!ELEMENT stacksize (#PCDATA)> 396 397
SCA Specification Version: Candidate Release
27 December 2011
17
<!ELEMENT priority (#PCDATA)> 398
D-1.5.1.6.4 compiler 399
The compiler element is used to indicate the compiler used to build the software component 400
being described by the softpkg element. The required name attribute will specify the name of the 401
compiler used, and the version attribute will contain the compiler version. 402
<!ELEMENT compiler EMPTY> 403
<!ATTLIST compiler 404 name CDATA #REQUIRED 405 version CDATA #IMPLIED> 406
D-1.5.1.6.5 programminglanguage 407
The programminglanguage element is used to indicate the type of programming language used 408
to build the component implementation. The required name attribute will specify a language 409
such as “c”, “c++”, or “java”. 410
<!ELEMENT programminglanguage EMPTY> 411
<!ATTLIST programminglanguage 412 name CDATA #REQUIRED 413 version CDATA #IMPLIED> 414
D-1.5.1.6.6 humanlanguage 415
The humanlanguage element is used to indicate the human language for which the software 416
component was developed. 417
<!ELEMENT humanlanguage EMPTY> 418
<!ATTLIST humanlanguage 419 name CDATA #REQUIRED> 420
D-1.5.1.6.7 runtime 421
The runtime element specifies a runtime required by a component implementation. An example 422
of the runtime is a Java VM. 423
<!ELEMENT runtime EMPTY> 424
<!ATTLIST runtime 425 name CDATA #REQUIRED 426 version CDATA #IMPLIED> 427
D-1.5.1.6.8 os 428
The os element is used to indicate the operating system on which the software component is 429
capable of operating. The required name attribute will indicate the name of the operating system 430
and the version attribute will contain the operating system. The os attributes will be defined in a 431
property file as an allocation property of string type and with names os_name and os_version and 432
with an action element value other than “external”. The os element is automatically interpreted 433
as a dependency and compared against allocation properties with names of os_name and 434
os_version. The os_name attribute allocation property is defined in Attachment 1 to this 435
appendix. 436
SCA Specification Version: Candidate Release
27 December 2011
18
<!ELEMENT os EMPTY> 437 <!ATTLIST os 438
name CDATA #REQUIRED 439 version CDATA #IMPLIED> 440
D-1.5.1.6.9 processor 441
The processor element is used to indicate the processor and/or processor family on which this 442
software component will operate. The processor name attribute will be defined in a property file 443
as an allocation property of string type and with a name of processor_name and with an action 444
element value other than “external”. The processor element is automatically interpreted as a 445
dependency and compared against an allocation property with a name of processor_name. The 446
processor_name attribute allocation property is defined in Attachment 1 to this appendix. 447
<!ELEMENT processor EMPTY> 448 <!ATTLIST processor 449
name CDATA #REQUIRED> 450
D-1.5.1.6.10 dependency 451
The dependency element (see Figure 5) is used to indicate the dependent relationships between 452
the components being delivered and other components and devices, in an SCA compliant system. 453
The softpkgref element is used to specify a Software Package file that must be resident within the 454
system for the component, described by this softpkg element, to load without errors. The 455
propertyref will reference a specific allocation property, using a unique identifier, and provide 456
the value that will be used by a ComponentBaseDevice capacity model. 457
A DomainManagerComponent and DeviceManagerComponent will use these dependency 458
definitions to assure that components and devices that are necessary for proper operation of the 459
implementation are present and available. The type attribute is descriptive information 460
indicating the type of dependency. 461
SCA Specification Version: Candidate Release
27 December 2011
19
class dependency
«DTDElement»
dependency
- type: CDATA
«DTDSequenceGroup»
dependency_grp
«DTDElementEmpty»
propertyref
- refid: CDATA
- value: CDATA
«DTDElement»
softpkgref
462
Figure 5: dependency Element Relationships 463
<!ELEMENT dependency 464
( softpkgref | propertyref )> 465 <!ATTLIST dependency 466
type CDATA #REQUIRED> 467
D-1.5.1.6.10.1 softpkgref
The softpkgref element (see Figure 6) refers to a softpkg element contained in another SPD file 468
and indicates a file-load dependency on that file. The other file is referenced by the localfile 469
element. An optional implref element refers to a particular implementation-unique identifier, 470
within the SPD of the other file. 471
SCA Specification Version: Candidate Release
27 December 2011
20
class softpkgref
«DTDElementEmpty»
implref
- refid: CDATA
«DTDElementEmpty»
localfile
- name: CDATA
«DTDSequenceGroup»
softpkref_grp1
«DTDElement»
softpkgref
0..1
472
Figure 6: softpkgref Element Relationships 473
<!ELEMENT softpkgref 474
( localfile 475 , implref? 476 )> 477
478 <!ELEMENT implref EMPTY> 479 <!ATTLIST implref 480 refid CDATA #REQUIRED> 481
D-1.5.1.6.10.2 propertyref
The propertyref element is used to indicate a unique refid attribute that references a simple 482
allocation property, defined in the package, and a property value attribute used by the domain 483
Management function to perform the dependency check. 484
<!ELEMENT propertyref EMPTY> 485 <!ATTLIST propertyref 486 refid CDATA #REQUIRED 487
value CDATA #REQUIRED> 488
D-1.5.1.6.11 usesdevice 489
The usesdevice element describes any “uses” relationships this component has with a device in 490
the system. The propertyref element references allocation properties, which indicate the 491
ComponentBaseDevice to be used, and/or the capacity needed from the ComponentBaseDevice 492
to be used. 493
<!ELEMENT usesdevice 494
( propertyref+ )> 495
SCA Specification Version: Candidate Release
27 December 2011
21
<!ATTLIST usesdevice 496
id ID #REQUIRED 497
type CDATA #REQUIRED> 498
D-1.5.1.6.11.1 propertyref
See D-1.5.1.6.10.2 for a definition of the propertyref element. 499
SCA Specification Version: Candidate Release
27 December 2011
22
D-1.6 DEVICE PACKAGE DESCRIPTOR 500
The SCA Device Package Descriptor (DPD) is the part of a Device Profile that contains 501
hardware device Registration attributes, which are typically used by a Human Computer 502
Interface application to display information about the device(s) resident in an SCA-compliant 503
radio system. DPD information is intended to provide hardware configuration and revision 504
information to a radio operator or to radio maintenance personnel. A DPD may be used to 505
describe a single hardware element residing in a radio or it may be used to describe the complete 506
hardware structure of a radio. 507
SCA504 A Device Package Descriptor File shall have a “.dpd.xml” extension. 508
D-1.6.1 Device Package 509
The devicepkg element (see Figure 7) is the root element of the DPD. The devicepkg id attribute 510
uniquely identifies the package and an implementation specific approach is required to maintain 511
uniqueness within a Domain Profile. The version attribute specifies the version of the devicepkg. 512
The format of the version string is numerical major and minor version numbers separated by 513
commas (e.g., "1,0,0,0"). The name attribute is a user-friendly label for the devicepkg. 514
class dev icepkg
«DTDSequenceGroup»
dev icepkg_grp1
«DTDElement»
dev icepkg
- id: ID
- name: CDATA
- version: CDATA
«DTDElement»
hwdev iceregistration
- id: ID
- name: CDATA
- version: CDATA
«DTDElementPCDATA»
title
«DTDElement»
author
«DTDElement»
description
0..1 1..*
0..1
515
Figure 7: devicepkg Element Relationships 516
SCA Specification Version: Candidate Release
27 December 2011
23
<!ELEMENT devicepkg 517 ( title? 518
, author+ 519 , description? 520 , hwdeviceregistration 521
)> 522
<!ATTLIST devicepkg 523 id ID #REQUIRED 524 name CDATA #REQUIRED 525
version CDATA #IMPLIED> 526
D-1.6.1.1 title 527
The title element is used for indicating a title for the hardware device being described by 528
devicepkg. 529
<!ELEMENT title (#PCDATA)> 530
D-1.6.1.2 author 531
See D-1.5.1.2 for a definition of the author element. 532
D-1.6.1.3 description 533
The description element is used to describe any pertinent information about the device 534
implementation that the hardware developer wishes to document within the DPD. 535
<!ELEMENT description (#PCDATA)> 536
D-1.6.1.4 hwdeviceregistration 537
The hwdeviceregistration element (see Figure 8) provides device-specific information for a 538
hardware device. The hwdeviceregistration id attribute uniquely identifies the device and an 539
implementation specific approach is required to maintain uniqueness within a Domain Profile. 540
The version attribute specifies the version of the hwdeviceregistration element. The format of 541
the version string is numerical major and minor version numbers separated by commas (e.g., 542
"1,0,0,0"). The name attribute is a user-friendly label for the hardware device being registered. 543
At a minimum, the hwdeviceregistration element must include a description, the manufacturer, 544
the model number and the device’s hardware class(es). 545
SCA Specification Version: Candidate Release
27 December 2011
24
class hwdev iceregistration
«DTDElement»
dev iceclass
«DTDSequenceGroup»
hwdev iceregistration_grp1
«DTDElement»
hwdev iceregistration
- id: ID
- name: CDATA
- version: CDATA
«DTDElement»
description«DTDElement»
propertyfile
- type: CDATA
«DTDElementPCDATA»
manufacturer
«DTDElementPCDATA»
modelnumber
«DTDElement»
childhwdev ice0..*
0..1
546
Figure 8: hwdeviceregistration Element Relationships 547
<!ELEMENT hwdeviceregistration 548 ( propertyfile? 549
, description 550 , manufacturer 551 , modelnumber 552 , deviceclass 553
, childhwdevice* 554 )> 555 <!ATTLIST hwdeviceregistration 556
id ID #REQUIRED 557 name CDATA #REQUIRED 558 version CDATA #IMPLIED> 559
D-1.6.1.4.1 propertyfile 560
The propertyfile element is used to indicate the local filename of the property file associated with 561
the hwdeviceregistration element. The format of a property file is described in the Properties 562
Descriptor (Section D-1.7). 563
The intent of the property file is to provide the definition of properties elements for the hardware 564
device being deployed and described in the Device Package (devicepkg) or hwdeviceregistration 565
element. 566
SCA Specification Version: Candidate Release
27 December 2011
25
<!ELEMENT propertyfile 567 ( localfile 568
)> 569 <!ATTLIST propertyfile 570
type CDATA #IMPLIED> 571 572
<!ELEMENT localfile EMPTY> 573 <!ATTLIST localfile 574
name CDATA #REQUIRED> 575
D-1.6.1.4.2 description 576
See D-1.5.1.3 for definition of the description element. 577
D-1.6.1.4.3 manufacturer 578
The manufacturer element is used to convey the name of manufacturer of the device being 579
installed. 580
<!ELEMENT manufacturer (#PCDATA)> 581
D-1.6.1.4.4 modelnumber 582
The modelnumber element is used to indicate the manufacture's model number, for the device 583
being installed. 584
<!ELEMENT modelnumber (#PCDATA)> 585
D-1.6.1.4.5 deviceclass 586
The deviceclass element is used to identify one or more hardware classes that make up the device 587
being installed. 588
<!ELEMENT deviceclass 589 ( class+ 590
)> 591 <!ELEMENT class (#PCDATA)> 592
D-1.6.1.4.6 childhwdevice 593
The childhwdevice element (see Figure 9) indicates additional device-specific information for 594
hardware devices that make up the root or parent hardware device registration. An example of 595
childhwdevice would be a radio's RF module that has receiver and exciter functions within it. In 596
this case, a ComponentBaseDevice representing the RF module itself would be a parent 597
ComponentBaseDevice with its DPD, and the receiver and exciter are child devices to the 598
module. The parent / child relationship indicates that when the RF module is removed from the 599
system, the receiver and exciter devices are also removed. 600
SCA Specification Version: Candidate Release
27 December 2011
26
class childhwdev ice
«DTDEleme...
dev icepkgref
- type: CDATA
«DTDElement»
hwdev iceregistration
- id: ID
- name: CDATA
- version: CDATA
«DTDChoiceGroup»
childhwdev ice_grp1
«DTDElement»
childhwdev ice
601
Figure 9: childhwdevice Element Relationships 602
<!ELEMENT childhwdevice 603
( hwdeviceregistration | devicepkgref )> 604
D-1.6.1.4.6.1 hwdeviceregistration
The hwdeviceregistration element provides device-specific information for the child hardware 605
device. See D-1.6.1.4 for definition of the hwdeviceregistration element. 606
D-1.6.1.4.6.2 devicepkgref
The devicepkgref element is used to indicate the local filename of a DPD file pointed to by a 607
DPD (e.g., a devicepkg within a devicepkg). 608
<!ELEMENT devicepkgref 609
( localfile )> 610
<!ATTLIST devicepkgref 611
type CDATA #IMPLIED> 612
SCA Specification Version: Candidate Release
27 December 2011
27
D-1.7 PROPERTIES DESCRIPTOR 613
The Properties Descriptor (PRF) file details component and device attribute settings. For 614
purposes of the SCA, Property Descriptor files will contain simple, simplesequence, test, struct 615
or structsequence elements. These elements will be used to describe attributes of a component 616
that will be used for dependency checking. 617
These elements will also be used to provide values used by the PropertySet::configure, 618
PropertySet::query, and PropertySet::runTest operations. 619
SCA494 A Properties File shall have a “.prf.xml” extension. 620
D-1.7.1 properties 621
The properties element (see Figure 10) is used to describe property attributes that will be used in 622
the configure and query operations for SCA components that realize the PropertySet interface 623
and for definition of attributes used for dependency checking. The properties element can also 624
used in the TestableObject::runTest operation to configure tests and provide test results. 625
class properties
«DTDChoiceGrou...
properties_grp1_grp1
«DTDSequenceGroup»
properties_grp1
«DTDElement»
properties
«DTDElement»
description
«DTDElement»
simple
- id: ID
- type: (boolean | char | double | float | short | long | objref | octet | string | ulong | ushort)
- name: CDATA
- mode: (readonly | readwrite | writeonly) = readwrite
«DTDElement»
simplesequence
- id: ID
- type: (boolean | char | double | float | short | long | objref | octet | string | ulong | ushort)
- name: CDATA
- mode: (readonly | readwrite | writeonly) = readwrite
«DTDEleme...
test
- id: CDATA
«DTDElement»
struct
- id: ID
- name: CDATA
- mode: (readonly | readwrite | writeonly) = readwrite
«DTDElement»
structsequence
- id: ID
- structrefid: CDATA
- name: CDATA
- mode: (readonly | readwrite | writeonly) = readwrite
1..*
0..1
626
Figure 10: properties Element Relationships 627
<!ELEMENT properties 628
SCA Specification Version: Candidate Release
27 December 2011
28
( description? 629 ,(simple | simplesequence | test | struct | structsequence 630
)+ 631 )> 632
D-1.7.1.1 simple 633
The simple element (see Figure 11) provides for the definition of a property which includes a 634
unique id, type, name and mode attributes of the property that will be used in the PropertySet 635
configure() and query() operations, for indication of component capabilities, or in the 636
TestableObject runTest operation. The simple element is specifically designed to support id-637
value pair definitions. A simple property id attribute corresponds to the id of the id-value pair. 638
The value and range of a simple property correspond to the value of the id-value pair. The 639
optional enumerations element allows for the definition of a label-to-value for a particular 640
property. The mode attribute defines whether the properties element is “readonly”, “writeonly” 641
or “readwrite”. The id attribute is an identifier for the simple property element. The id attribute 642
for a simple property that is an allocation type requires an implementation specific approach to 643
maintain uniqueness within a Domain Profile. The id attribute for all other simple property 644
elements can be any valid XML ID type. The mode attribute is only meaningful when the type 645
of the kind element is “configure”. 646
class simple
«DTDElement»
simple
- id: ID
- type: (boolean | char | double | float | short | long | objref | octet | string | ulong | ushort)
- name: CDATA
- mode: (readonly | readwrite | writeonly) = readwrite
«DTDSequenceGroup»
simple_grp1«DTDElement»
description
«DTDElementPCDATA»
units
«DTDElementEmpty»
kind
- kindtype: (allocation | configure | test | execparam | factoryparam) = configure
«DTDElementEmpty»
action
- type: (eq | ne | gt | lt | ge | le | external) = external
«DTDElementEmpty»
range
- min: CDATA
- max: CDATA
«DTDElementPCDATA»
v alue
«DTDElement»
enumerations
0..10..*
0..1
0..1
0..10..1
0..1
647
Figure 11: simple Element Relationships 648
<!ELEMENT simple 649 ( description? 650
, value? 651
SCA Specification Version: Candidate Release
27 December 2011
29
, units? 652 , range? 653
, enumerations? 654 , kind* 655 , action? 656 )> 657
<!ATTLIST simple 658 id ID #REQUIRED 659
type ( boolean | char | double | float | short | long | 660
objref | octet | string | ulong | ushort ) #REQUIRED 661 name CDATA #IMPLIED 662
mode ( readonly | readwrite | writeonly) “readwrite”> 663
D-1.7.1.1.1 description 664
The description element is used to provide a description of the properties element that is being 665
defined. 666
<!ELEMENT description (#PCDATA)> 667
D-1.7.1.1.2 value 668
The value element is used to provide a value setting to the properties element. 669
<!ELEMENT value (#PCDATA)> 670
D-1.7.1.1.3 units 671
The units element describes the intended practical data representation to be used for the 672
properties element. 673
<!ELEMENT units (#PCDATA)> 674
D-1.7.1.1.4 range 675
The range element describes the specific min and max values that are legal for the simple 676
element. The intent of the range element is to provide a means to perform range validation. 677
This element is not used by ApplicationFactoryComponents or ApplicationManagerComponents. 678
<!ELEMENT range EMPTY> 679 <!ATTLIST range 680
min CDATA #REQUIRED 681 max CDATA #REQUIRED> 682
D-1.7.1.1.5 enumerations 683
The enumerations element is used to specify one or more enumeration elements. 684
<!ELEMENT enumerations 685 ( enumeration+ )> 686
The enumeration element is used to associate a value attribute with a label attribute. 687
Enumerations are legal for various integer type properties elements. Enumeration values are 688
implied; if not specified by a developer, the initial implied value is 0 and subsequent values are 689
incremented by 1. 690
SCA Specification Version: Candidate Release
27 December 2011
30
Note: The advantage of the enumeration element over the sequence element is that the 691
enumeration element provides a mechanism to associate a value of a property to a label. The 692
sequence element does not allow association of values (only lists of sequences). 693
<!ELEMENT enumeration EMPTY> 694 <!ATTLIST enumeration 695
label CDATA #REQUIRED 696 value CDATA #IMPLIED> 697
D-1.7.1.1.6 kind 698
The kind element’s kindtype attribute is used to specify the kind of property. The types of 699
kindtype attributes are: 700
1. configure, which is used in the configure and query operations of the PropertySet 701
interface. The ApplicationFactoryComponent will use the configure kind of properties to 702
build the CF Properties input parameter to the configure operation that is invoked on the 703
AssemblyControllerComponent during application creation. The 704
DeviceManagerComponent will use the configure kind of properties to build the CF 705
Properties input parameter to the configure operation that is invoked on components 706
implementing the PropertySet interface, during device and service creation. The 707
ApplicationFactoryComponent and DeviceManagerComponent will also use the 708
configure kind of properties for ComponentFactory create options parameters. When the 709
mode is readonly, only the query behavior is supported. When the mode is writeonly, 710
only the configure behavior is supported. When the mode is readwrite, both configure 711
and query are supported. 712
2. test, which is used in the runTest operation of the TestableObject interface. The test kind 713
of properties will be used as the testValues parameter to the runTest operation that is 714
invoked on components that realize the TestableObject interface. 715
3. allocation, which is used in the allocateCapacity and deallocateCapacity operations of 716
the Device interface. The ApplicationFactoryComponent and DeviceManagerComponent 717
will use the simple properties of kindtype allocation to build the input capacities 718
parameter to the allocateCapacity operation that is invoked on device components during 719
application creation, when the action element of those properties is external. The 720
application factory and device manager manage simple properties of kindtype allocation 721
when the action is not external. Allocation properties that are external can also be queried 722
using the PropertySet query operation. 723
4. execparam,. which is used in the execute operations of the ExecutableDevice interface. 724
The ApplicationFactoryComponent and DeviceManagerComponent will use the 725
execparam kind of properties to build the CF Properties input parameter to the execute 726
operation that is invoked on ExecutableDeviceComponents during component creation. 727
Only simple elements can be used as execparam types. 728
5. factoryparam, which is used in the createComponent operation of the ComponentFactory 729
interface. The ApplicationFactoryComponent and DeviceManagerComponent will use 730
the factoryparam type of properties to build the CF Properties input parameter to the 731
createComponent operation. 732
SCA Specification Version: Candidate Release
27 December 2011
31
A property can have multiple kind elements and the default kindtype is configure. 733
<!ELEMENT kind EMPTY> 734 <!ATTLIST kind 735
kindtype ( allocation | configure | test | execparam | 736 factoryparam) “configure”> 737
D-1.7.1.1.7 action 738
The action element is used to define the type of comparison used to compare an SPD property 739
value to a device property value, during the process of checking SPD dependencies. The kindtype 740
attribute of the action element, will determine the type of comparison to be made (e.g., equal, not 741
equal, greater than, etc.). The default value for kindtype is external. 742
In principle, the action element defines the operation executed during the comparison of the 743
allocation property value, provided by an SPD dependency element, to the associated allocation 744
property value of a ComponentBaseDevice. The allocation property is on the left side of the 745
action and the dependency value is on the right side of the action. This process allows for the 746
allocation of appropriate objects within the system based on their attributes, as defined by their 747
dependent relationships. 748
For example, if a ComponentBaseDevice’s properties file defines a DeviceKind allocation 749
property whose action element is set to "equal", then at the time of dependency checking a valid 750
DeviceKind property is checked for equality. If a software component implementation is 751
dependent on a DeviceKind property with its value set to "NarrowBand", then the component's 752
SPD dependency propertyref element will reference the id of the DeviceKind allocation property 753
with a value of "NarrowBand". At the time of dependency checking, the 754
ApplicationFactoryComponent and DeviceManagerComponent will check 755
ComponentBaseDevices whose properties kind element is set to “allocation” and property id is 756
DeviceKind for equality against a "NarrowBand" value. 757
<!ELEMENT action EMPTY> 758 <ATTLIST action 759 type ( eq | ne | gt | lt | ge | le | external 760
)"external"> 761
D-1.7.1.2 simplesequence 762
The simplesequence element (see Figure 12) is used to specify a list of properties with the same 763
characteristics (e.g., type, range, units, etc.). The simplesequence element definition is similar to 764
the simple element definition except that it has a list of values instead of one value. The 765
simplesequence element maps to the sequence types for the CF and CORBA modules, defined in 766
SCA Appendix C and OMG CORBA Specification version 3.2 [1] , based upon the type 767
attribute. 768
SCA Specification Version: Candidate Release
27 December 2011
32
class simple
«DTDElement»
simple
- id: ID
- type: (boolean | char | double | float | short | long | objref | octet | string | ulong | ushort)
- name: CDATA
- mode: (readonly | readwrite | writeonly) = readwrite
«DTDSequenceGroup»
simple_grp1«DTDElement»
description
«DTDElementPCDATA»
units
«DTDElementEmpty»
kind
- kindtype: (allocation | configure | test | execparam | factoryparam) = configure
«DTDElementEmpty»
action
- type: (eq | ne | gt | lt | ge | le | external) = external
«DTDElementEmpty»
range
- min: CDATA
- max: CDATA
«DTDElementPCDATA»
v alue
«DTDElement»
enumerations
0..10..*
0..1
0..1
0..10..1
0..1
769
Figure 12: simplesequence Element Relationships 770
<!ELEMENT simplesequence 771 ( description? 772 , values? 773
, units? 774 , range? 775 , kind* 776
, action? 777 )> 778 <!ATTLIST simplesequence 779 id ID #REQUIRED 780
type ( boolean | char | double | float | short | long | 781 objref | octet | string | ulong |ushort ) #REQUIRED 782 name CDATA #IMPLIED 783
mode (readonly | readwrite | writeonly) “readwrite”> 784 785 <!ELEMENT values 786 ( value+ )> 787
D-1.7.1.3 test 788
The test element (see Figure 13) is used to specify a list of test properties for executing the 789
runTest operation in order to perform a component specific test. This element contains 790
inputvalue and resultvalue elements and it has an id attribute for grouping test properties to a 791
SCA Specification Version: Candidate Release
27 December 2011
33
specific test. The id attribute will be represented by a numeric value. Inputvalues are used to 792
configure the test to be performed (e.g., frequency and RF power output level). When the test 793
has completed, resultvalues contain the results of the testing (e.g., pass or a fault code/message) 794
class test
«DTDElement»
resultValue«DTDElement»
inputValue
«DTDSequenceGroup»
test_grp1
«DTDElement»
test
- id: CDATA
«DTDElement»
description
0..1
795
Figure 13: test Element Relationships 796
<!ELEMENT test 797 ( description 798
, inputvalue? 799 , resultvalue 800 )> 801 <!ATTLIST test 802
id CDATA #REQUIRED> 803
D-1.7.1.3.1 inputvalue 804
The inputvalue element is used to provide test configuration properties. The simple properties it 805
contains must have a kindtype value of test. 806
<!ELEMENT inputvalue 807 ( simple+ )> 808
D-1.7.1.3.2 resultvalue 809
The resultvalue element is used to specify the desired results of the runTest operation. The 810
simple properties it contains must have a kindtype value of test. 811
<!ELEMENT resultvalue 812
( simple+ )> 813
D-1.7.1.4 struct 814
The struct element (see Figure 14) is used to group properties with different characteristics (i.e., 815
similar to a structure or record entry). Each item in the struct element can be a different simple 816
SCA Specification Version: Candidate Release
27 December 2011
34
type (e.g., short, long, etc.). The struct element corresponds to the CF Properties type where 817
each struct item (ID, value) corresponds to a properties element list item. The properties 818
element list size is based on the number of struct items. 819
class test
«DTDElement»
resultValue«DTDElement»
inputValue
«DTDSequenceGroup»
test_grp1
«DTDElement»
test
- id: CDATA
«DTDElement»
description
0..1
820
Figure 14: struct Element Relationships 821
822 <!ELEMENT struct 823
( description? 824 , simple+ 825 , configurationkind? 826
)> 827
<!ATTLIST struct 828 id ID #REQUIRED 829 name CDATA #IMPLIED 830 mode (readonly | readwrite | writeonly) "readwrite">” 831
D-1.7.1.4.1 configurationkind 832
The configurationkind element’s kindtype attribute is used to specify the kind of property. The 833
kindtypes are: 834
1. configure, which is used in the configure() and query() operations of the PropertySet 835
interface. The ApplicationFactoryComponent and DeviceManagerComponent will use 836
the configure kind of properties to build the CF Properties input parameter to the 837
configure() operation that is invoked on SCA components that realize the PropertySet 838
interface during application creation. When the mode is readonly, only the query 839
behavior is supported. When the mode is writeonly, only the configure behavior is 840
supported. When the mode is readwrite, both configure and query are supported. 841
2. factoryparam, which is used in the createComponent operations of the 842
ComponentFactory interface. The ApplicationFactoryComponent and 843
SCA Specification Version: Candidate Release
27 December 2011
35
DeviceManagerComponent will use the factoryparam kind of properties to build the CF 844
Properties input parameter to the createComponent() operation. A property can have 845
multiple configurationkind elements and their default kindtype is “configure”. 846
<!ELEMENT configurationkind EMPTY> 847 <!ATTLIST configurationkind 848
kindtype (configure | factoryparam) “configure”> 849
D-1.7.1.5 structsequence 850
The structsequence element (see Figure 15) is used to specify a list of properties with the same 851
struct characteristics. The structsequence element maps to a properties element having the CF 852
Properties type. Each item in the CF Properties type will be the same struct definition as 853
referenced by the structrefid attribute. Any values specified within the struct definition are 854
ignored and values for the sequence are provided by the structvalue element. 855
class structsequence
«DTDElementEmpty»
configurationkind
- kindtype: (configure | factoryparam) = configure
«DTDElement»
structv alue
«DTDSequenceG...
structsequence_grp1
«DTDElement»
structsequence
- id: ID
- structrefid: CDATA
- name: CDATA
- mode: (readonly | readwrite | writeonly) = readwrite
«DTDElement»
description
0..11..*0..1
856
Figure 15: structsequence Element Relationships 857
SCA Specification Version: Candidate Release
27 December 2011
36
<!ELEMENT structsequence 858 ( description? 859
, structvalue* 860 , configurationkind? 861
)> 862 <!ATTLIST structsequence 863
id ID #REQUIRED 864 structrefid CDATA #REQUIRED 865 name CDATA #IMPLIED 866
mode (readonly | readwrite | writeonly) "readwrite"> 867 868 <!ELEMENT structvalue 869
( simpleref+ )> 870
871 <!ELEMENT simpleref EMPTY> 872 <!ATTLIST simpleref 873
refid CDATA #REQUIRED 874
value CDATA #REQUIRED> 875 876
SCA Specification Version: Candidate Release
27 December 2011
37
877
D-1.8 SOFTWARE COMPONENT DESCRIPTOR 878
The SCA components ResourceComponent, DeviceComponent, LoadableDeviceComponent, 879
ExecutableDeviceComponent, ComponentFactoryComponent, and ServiceComponents that are 880
described by the SCD are based on the SCA specification, and the following specification 881
concentrates on definition of the elements necessary for describing the ports and interfaces of 882
these components. 883
SCA495 A Software Component Descriptor file shall have a “.scd.xml” extension. 884
D-1.8.1 softwarecomponent 885
The softwarecomponent element (see Figure 16) is the root element of the SCD file. For use 886
within the SCA the sub-elements that are supported include: 887
1. componentrepid – is the repository id of the component 888
2. componenttype – identifies the type of software component object 889
3. componentfeatures – provides the supported message ports for the component 890
4. interface – describes the component unique id and name for supported interfaces. 891
class softwarecomponent
«DTDElement»
interfaces
«DTDElement»
componenttype
«DTDElementEmpty»
componentrepid
- repid: CDATA
«DTDSequenceGroup»
softwarecomponent_grp1
«DTDElement»
softwarecomponent
«DTDElement»
componentfeatures
«DTDElement»
propertyfile
- type: CDATA
0..1
892
Figure 16: softwarecomponent Element Relationships 893
<!ELEMENT softwarecomponent 894 ( componentrepid 895 , componenttype 896 , componentfeatures 897
, interfaces 898 , propertyfile? 899
SCA Specification Version: Candidate Release
27 December 2011
38
)> 900
D-1.8.1.1 componentrepid 901
The componentrepid uniquely identifies the interface that the component is implementing. The 902
componentrepid may be referred to by the componentfeatures element. The componentrepid is 903
derived from the Resource, Device, LoadableDevice, ExecutableDevice,, ComponentFactory 904
interface or represents a ServiceComponent. 905
<!ELEMENT componentrepid EMPTY> 906
<!ATTLIST componentrepid 907 repid CDATA #REQUIRED> 908
D-1.8.1.2 componenttype 909
The componenttype describes properties of the component. For SCA components, the 910
component types include APPLICATION_COMPONENT, DEVICE_COMPONENT, 911
CF_SERVICE_COMPONENT, NON_CF_SERVICE_COMPONENT, and 912
FRAMEWORK_COMPONENT. 913
<!ELEMENT componenttype (#PCDATA)> 914
D-1.8.1.3 componentfeatures 915
The componentfeatures element (see Figure 17) is used to describe a component with respect to 916
the components that it inherits from, the interfaces the component supports, its provides and uses 917
ports. If a component extends any of the following interfaces, Resource, ComponentFactory, or 918
Device, LoadableDevice, ExecutableDevice ,then all the inherited interfaces (e.g., Resource) are 919
depicted as supportsinterface elements. 920
class componentfeatures
«DTDElement»
componentfeatures
«DTDSequenceGroup»
componentfeatures_grp1
«DTDElement»
ports
«DTDElementEmpty»
supportsinterface
- repid: CDATA
- supportsname: CDATA
0..*
921
Figure 17: componentfeatures Element Relationships 922
SCA Specification Version: Candidate Release
27 December 2011
39
<!ELEMENT componentfeatures 923 ( supportsinterface* 924
, ports 925 )> 926
D-1.8.1.3.1 supportsinterface 927
The supportsinterface element is used to identify an interface definition that the component 928
supports. These interfaces are distinct interfaces that were inherited by the component’s specific 929
interface. One can widen the component’s interface to be a supportsinterface. The repid is used 930
to refer to the interface element (see interfaces section D-1.8.1.4). 931
<!ELEMENT supportsinterface EMPTY> 932 <!ATTLIST supportsinterface 933
repid CDATA #REQUIRED 934 supportsname CDATA #REQUIRED> 935
D-1.8.1.3.2 ports 936
The ports element (see Figure 18) describes what interfaces a component provides and uses. 937
The provides elements are interfaces that are not part of a component’s interface but are 938
independent interfaces known as facets (i.e. a provides port at the end of a path, like I/O Device 939
or Modem Device). The uses element is uses port at the start of a path (i.e. I/O Device) that is 940
connected to a provides or supportinterfaces interface. Any number of uses and provides 941
elements can be given in any order. Each ports element has a name and references an interface 942
by repid (see interfaces section D-1.8.1.4). The port names are used in the SAD to connect ports 943
together. The maxconnections attribute allows the developer to specify how many simultaneous 944
connections are allowed to be made using that port. A ports element also has an optional 945
porttype element that allows for identification of port classification. Values for porttype include 946
“data”, “control”, “responses”, and “test”. If a porttype is not given then “control” is assumed. 947
SCA Specification Version: Candidate Release
27 December 2011
40
class ports
«DTDElement»
ports
«DTDChoiceGroup»
ports_grp1
«DTDElement»
prov ides
- repid: CDATA
- providesname: CDATA
- maxconnections: CDATA
«DTDElement»
uses
- repid: CDATA
- usesname: CDATA
- maxconnections: CDATA
0..*
948
Figure 18: ports Element Relationships 949
<!ELEMENT ports 950
( provides | uses )* 951
> 952 953 <!ELEMENT provides 954
( porttype* )> 955
<!ATTLIST provides 956 repid CDATA #REQUIRED 957 providesname CDATA #REQUIRED 958
maxconnections CDATA #REQUIRED> 959 960 <!ELEMENT uses 961
( porttype* 962
)> 963 <!ATTLIST uses 964
repid CDATA #REQUIRED 965
usesname CDATA #REQUIRED 966 maxconnections CDATA #REQUIRED> 967
968
<!ELEMENT porttype EMPTY> 969 <!ATTLIST porttype 970
SCA Specification Version: Candidate Release
27 December 2011
41
type ( data | control | responses | test ) #REQUIRED> 971
D-1.8.1.4 interfaces 972
The interfaces element is made up of one to many interface elements. 973
<!ELEMENT interfaces 974
( interface+ )> 975
The interface element describes an interface that the component, either directly or through 976
inheritance, provides, uses, or supports. The name attribute is the character-based non-qualified 977
name of the interface. The repid attribute is the unique repository id of the interface. The repid 978
is also used to reference an interface element elsewhere in the SCD, for example from the 979
inheritsinterface element. 980
For ServiceComponents the inheritsinterface element is not expected to contain a value. 981
<!ELEMENT interface 982 ( inheritsinterface*) > 983
<!ATTLIST interface 984
repid CDATA #REQUIRED 985 name CDATA #REQUIRED> 986
987 <!ELEMENT inheritsinterface EMPTY> 988
<!ATTLIST inheritsinterface 989 repid CDATA #REQUIRED 990
D-1.8.1.5 propertyfile 991
The propertyfile element is used to indicate the local filename of the PRF file associated with the 992
software component. The definition of the propertyfile element can be found in section D-993
1.5.1.4. Within the SCD, the localfile sub-element of the propertyfile element is a relative 994
pathname referencing a file in the same directory as the SCD or in a directory that is relative to 995
the directory where the SCD file is located. 996
SCA Specification Version: Candidate Release
27 December 2011
42
D-1.9 SOFTWARE ASSEMBLY DESCRIPTOR 997
This section describes the XML elements of the Software Assembly Descriptor (SAD) XML file; 998
the softwareassembly element (see Figure 19). The intent of the software assembly is to provide 999
the means of describing the assembled functional application and the interconnection 1000
characteristics of the SCA components within that application. Created applications are 1001
assembled from a combination of one or more component instantiations and nested assembly 1002
instantiations that are interconnected with each other and to platform devices and services. 1003
SCA496 A Software Assembly Descriptor file shall have a “.sad.xml” extension. 1004
D-1.9.1 softwareassembly 1005
The installation of an application into the system includes the installation of a main SAD file and 1006
one or more SPD and SAD files. The SAD file references component SPD files to obtain 1007
deployment information for these components, as well SAD files for nested applications. The 1008
softwareassembly element’s id attribute uniquely identifies the assembly, requiring an 1009
implementation specific approach to maintain uniqueness within a Domain Profile. The 1010
softwareassembly element’s name attribute is the user-friendly name for the ApplicationFactory 1011
name attribute. The softwareassembly element's version attribute is the version of the 1012
application. 1013
The SAD deploymentdependencies are merged with and overriden by lower-level 1014
deploymentdependencies defined within the componentinstantiation and assemblyinstantiation 1015
elements. 1016
SCA Specification Version: Candidate Release
27 December 2011
43
class softwareassembly
«DTDElement»
softwareassembly
- id: ID
- name: CDATA
- version: CDATA
«DTDElement»
deploymentprefs
«DTDSequenceGroup»
softwareassembly_grp1
«DTDElement»
externalports
«DTDElement»
description
«DTDElement»
componentfiles
«DTDElement»
partitioning
«DTDElement»
deploymentdependencies
«DTDElement»
assemblycontroller
«DTDElement»
connections
0..1
0..1
0..1
0..1
0..1
1017
Figure 19: softwareassembly Element Relationships 1018
<!ELEMENT softwareassembly 1019
( description? 1020 , componentfiles 1021 , partitioning 1022 , deploymentdependencies? 1023
, assemblycontroller 1024 , connections? 1025 , externalports? 1026
, deploymentprefs? 1027 )> 1028 <!ATTLIST softwareassembly 1029
id ID #REQUIRED 1030
name CDATA #REQUIRED 1031 version CDATA #IMPLIED> 1032
D-1.9.1.1 description 1033
The description element of the component assembly may be used to describe any information the 1034
developer would like to indicate about the assembly. 1035
<!ELEMENT description (#PCDATA)> 1036
SCA Specification Version: Candidate Release
27 December 2011
44
D-1.9.1.2 componentfiles 1037
The componentfiles element is used to indicate that an assembly is made up of 1..n component 1038
files and / or subassemblies. The componentfile element contains a reference to a local file, 1039
which can be an SPD or SAD file. 1040
<!ELEMENT componentfiles 1041 ( componentfile+ )> 1042
D-1.9.1.2.1 componentfile 1043
The componentfile element is a reference to a local file. See section D-1.5.1.4.1 for the 1044
definition of the localfile element. The type attribute is “Software Package Descriptor” or 1045
“Software Assembly Descriptor”. 1046
<!ELEMENT componentfile 1047
( localfile )> 1048 <!ATTLIST componentfile 1049
id ID #REQUIRED 1050
type CDATA #IMPLIED> 1051
D-1.9.1.3 partitioning 1052
A component partitioning element (see Figure 20) specifies a deployment pattern of components 1053
and their components-to-hosts relationships as well as nested sub-applications. A component 1054
instantiation is captured inside a componentplacement element. The hostcollocation element 1055
allows the components to be placed on a common device. When the componentplacement is by 1056
itself and not inside a hostcollocation, it then has no collocation constraints. An assembly 1057
instantiation (nested sub-application) is captured inside an assemblyplacement element. 1058
class partitioning
«DTDElement»
partitioning
«DTDElement»
hostcollocation
- id: ID
- name: CDATA
«DTDChoiceGroup»
partitioning_grp1
«DTDElement»
componentplacement
«DTDElement»
assemblyplacement
1..*
1059
Figure 20: partitioning Element Relationships 1060
SCA Specification Version: Candidate Release
27 December 2011
45
<!ELEMENT partitioning 1061 ( componentplacement | hostcollocation | 1062
assemblyplacement )+> 1063
D-1.9.1.3.1 componentplacement 1064
The componentplacement element (see Figure 21) defines a particular deployment of a 1065
component. The component can be deployed either directly or by using a ComponentFactory. 1066
class componentplacement2
«DTDElement»
componentplacement
«DTDSequenceGroup»
componentplacement_grp1
«DTDElementEmpty»
componentfileref
- refid: CDATA
«DTDElement»
componentinstantiation
- id: ID
1..*
1067
Figure 21: componentplacement Element Relationships 1068
<!ELEMENT componentplacement 1069 ( componentfileref 1070
, componentinstantiation+ 1071 )> 1072
D-1.9.1.3.1.1 componentfileref
The componentfileref element is used to reference a particular SPD or a SAD file. The 1073
componentfileref element’s refid attribute corresponds to the componentfile element’s id 1074
attribute. 1075
<!ELEMENT componentfileref EMPTY> 1076 <!ATTLIST componentfileref 1077
refid CDATA #REQUIRED> 1078
D-1.9.1.3.1.2 componentinstantiation
The componentinstantiation element (see Figure 22) is intended to describe a particular 1079
instantiation of a component relative to a componentplacement element. The 1080
componentinstantiation’s id attribute is an implementation specific value that uniquely identifies 1081
SCA Specification Version: Candidate Release
27 December 2011
46
the component within a Domain Profile. The componentinstantiation element’s id may be 1082
referenced by the usesport and providesport elements within the SAD file. It is the component 1083
name for the instantiation not the application name. 1084
class componentinstantiation2
«DTDElement»
componentinstantiation
- id: ID
«DTDSequenceGroup»
componentinstantiation_grp1
«DTDElement»
usagename
«DTDElement»
componentproperties«DTDElement»
deploymentdependencies
«DTDElement»
findcomponent0..1
0..10..1
0..1
1085
Figure 22: componentinstantiation Element Relationships 1086
<!ELEMENT componentinstantiation 1087
( usagename? 1088 , componentproperties? 1089 , deploymentdependencies? 1090 , findcomponent? 1091
)> 1092 <!ATTLIST componentinstantiation 1093
id ID #REQUIRED> 1094 1095
<!ELEMENT usagename (#PCDATA)> 1096 1097
D-1.9.1.3.1.2.1 componentproperties 1098
The optional componentproperties element (see D-1.9.1.3.3.1.1) is a list of configure, 1099
factoryparam, and/or execparam properties values that are used in creating the component or for 1100
the initial configuration of the component. 1101
The following sources will be searched in the given precedence order for initial values for simple 1102
properties with a kindtype of “execparam” or “configure” and a mode attribute of “readwrite” or 1103
“writeonly”: 1104
1. The SAD partitioning : componentplacement : componentinstantiation element, 1105
SCA Specification Version: Candidate Release
27 December 2011
47
2. The value or default value, if any, from the SPD using the properties precedence stated in 1106
D-1.5.1. 1107
If no values are found in the sources above, the property is discarded. 1108
The following sources will be searched in the given precedence order for initial values for simple 1109
properties with a kindtype of “factoryparam”: 1110
1. The SAD partitioning : componentplacement : componentinstantiation : findcomponent : 1111
componentfactoryref : componentfactoryproperties element, 1112
2. The SAD partitioning : componentplacement : componentinstantiation : 1113
componentproperties element, 1114
3. The value or default value, if any, from the SPD using the properties precedence stated in 1115
D-1.5.1. 1116
If no values are found in the sources above, the property is discarded. 1117
D-1.9.1.3.1.2.2 deploymentdependencies 1118
The optional deploymentdependencies element (described generically in section D-1.9.1.4) 1119
overrides componentinstantiation’s SPD and SAD dependencies. 1120
D-1.9.1.3.1.2.3 findcomponent 1121
The optional findcomponent element (see Figure 23) is used to obtain the object reference from 1122
a componentfactoryref. 1123
class findcomponent
«DTDSequenceGroup»
findcomponent_grp1
«DTDElement»
findcomponent
«DTDElement»
componentfactoryref
- refid: CDATA
1124
Figure 23: findcomponent Element Relationships 1125
<!ELEMENT findcomponent 1126
SCA Specification Version: Candidate Release
27 December 2011
48
( componentfactoryref )> 1127 1128
D-1.9.1.3.1.2.3.1 componentfactoryref 1129
The componentfactoryref element (see Figure 24) refers to a particular 1130
ApplicationComponentFactory componentinstantiation element found in the SAD, which is used 1131
to obtain a Resource instance for this componentinstantiation element. The refid attribute refers 1132
to a unique componentinstantiation id attribute. 1133
class componentfactoryref
«DTDElement»
componentfactoryref
- refid: CDATA
«DTDSequenceGroup»
componentfactoryref_grp1
«DTDElement»
componentfactoryproperties
0..1
1134
Figure 24: componentfactoryref Element Relationships 1135
1136
D-1.9.1.3.1.2.3.2 componentfactoryproperties 1137
The optional componentfactoryproperties element (see Figure 25) specifies the properties 1138
“qualifiers”, for the ComponentFactory::create call. 1139
SCA Specification Version: Candidate Release
27 December 2011
49
class componentfactoryproperties
«DTDElement»
componentfactoryproperties
«DTDChoiceGroup»
componentfactoryproperties_grp1
«DTDElementEmpty»
simpleref
- refid: CDATA
- value: CDATA
«DTDElement»
structref
- refid: CDATA
«DTDElement»
structsequenceref
- refid: CDATA
«DTDElement»
simplesequenceref
- refid: CDATA
1..*
1140
Figure 25: componentfactoryproperties Element Relationships 1141
<!ELEMENT componentfactoryref 1142
( componentfactoryproperties? )> 1143
<!ATTLIST componentfactoryref 1144 refid CDATA #REQUIRED> 1145
1146 <!ELEMENT componentfactoryproperties 1147 ( simpleref | simplesequenceref | structref | 1148
structsequenceref )+ > 1149 1150 <!ELEMENT simpleref EMPTY> 1151 <!ATTLIST simpleref 1152
refid CDATA #REQUIRED 1153 value CDATA #REQUIRED> 1154
1155 <!ELEMENT simplesequenceref 1156
( values )> 1157
<!ATTLIST simplesequenceref 1158 refid CDATA #REQUIRED> 1159
1160 <!ELEMENT structref 1161
( simpleref+ )> 1162
<!ATTLIST structref 1163
refid CDATA #REQUIRED> 1164 1165
SCA Specification Version: Candidate Release
27 December 2011
50
<!ELEMENT structsequenceref 1166
( structvalue+ )> 1167
<!ATTLIST structsequenceref 1168 refid CDATA #REQUIRED> 1169 1170 <!ELEMENT structvalue 1171
( simpleref+ )> 1172 1173 <!ELEMENT values 1174
( value+ )> 1175 1176 <!ELEMENT value (#PCDATA)> 1177 1178
D-1.9.1.3.2 hostcollocation 1179
The hostcollocation element specifies a group of component instances that are to be deployed 1180
together on a single host. For purposes of the SCA, the componentplacement element will be 1181
used to describe the 1...n components that will be collocated on the same host platform. Within 1182
the SCA specification, a host platform will be interpreted as a single device. The id and name 1183
attributes are optional but may be used to uniquely identify a set of collocated components 1184
within a SAD file. 1185
<!ELEMENT hostcollocation 1186 ( componentplacement )+> 1187
<!ATTLIST hostcollocation 1188 id ID #IMPLIED 1189
name CDATA #IMPLIED> 1190
D-1.9.1.3.2.1 componentplacement
See componentplacement, section D-1.9.1.3.1. 1191
D-1.9.1.3.3 assemblyplacement 1192
The assemblyplacement element (see Figure 26) defines a particular deployment of a nested 1193
subassembly. It references the SAD file for that nested subassembly and an 1194
assemblyinstantiation element defining its creation. 1195
SCA Specification Version: Candidate Release
27 December 2011
51
class assemblyplacement
«DTDElement»
assemblyplacement
«DTDSequenceGroup»
assemblyplacement_grp1
«DTDElement»
componentfactoryref
- refid: CDATA
«DTDElement»
assemblyinstantiation
- id: ID
1..*
1196
Figure 26: assemblyplacement Element Relationships 1197
<!ELEMENT assemblyplacement 1198 ( componentfileref 1199
, assemblyinstantiation+ 1200 )> 1201
D-1.9.1.3.3.1 assemblyinstantiation
The assemblyinstantiation element (see Figure 27) describes an instantiation of an assembly as a 1202
nested sub-application relative to an assemblyplacement element. This assemblyinstantiation 1203
(which itself can potentially contain other nested sub-applications) can then be connected and 1204
controlled through the assemblycontroller and external ports elements defined in the referenced 1205
SAD file. Assemblyinstantiation creation can be viewed as essentially similar to a normal 1206
application created by an ApplicationFactoryComponent, with the omission of the registration of 1207
the sub-application’s ApplicationManagerComponent with the DomainManagerComponent. 1208
The assemblyinstantiation’s id attribute is an implementation specific value that uniquely 1209
identifies the assembly within a Domain Profile. The assemblyinstantiation element’s id may be 1210
referenced by the usesport and providesport elements within the enclosing SAD file when 1211
connecting to / from ports listed in the sub-application’s SAD externalports element. 1212
The assemblyinstantiation element contains a number of sub-elements used by the core 1213
framework in the creation, deployment and configuration of the sub-application. Most of these 1214
elements appear only as sub-elements of the assemblyinstantion element, and are described here. 1215
SCA Specification Version: Candidate Release
27 December 2011
52
class assemblyinstantiation
«DTDElement»
dev iceassignments
«DTDSequenceGroup»
assemblyinstantiation_grp1
«DTDElement»
assemblyinstantiation
- id: ID
«DTDElement»
componentproperties«DTDElement»
usagename«DTDElement»
deploymentdependencies
0..10..10..10..1
1216
Figure 27: assemblyinstantiation Element Relationships 1217
<!ELEMENT assemblyinstantiation 1218 ( usagename? 1219
, componentproperties? 1220 , deviceassignments? 1221 , deploymentdependencies? 1222
)> 1223 1224 <!ATTLIST assemblyinstantiation 1225
id ID #REQUIRED> 1226
1227 <!ELEMENT usagename (#PCDATA)> 1228
D-1.9.1.3.3.1.1 componentproperties 1229
The optional componentproperties element (see Figure 28) is a list of configure, factoryparam, 1230
and/or execparam property values that are used in creating and / or initially configuring the 1231
components of the sub-application. For valid properties with a kindtype of “execparam” or 1232
“factoryparam”, or “configure” properties with a mode attribute of “readwrite” or “writeonly”, 1233
values will supplement or ( if of the same name), override sub-application values following the 1234
given precedence order: 1235
1. The outer SAD partitioning : assemblyplacement : assemblyinstantiation element 1236
6. The nested SAD componentinstantiation / assemblyinstantion element 1237
2. (N/A for factoryparam values) The value or default value, if any, from the component’s 1238
SPD using the properties precedence stated in D-1.5.1. 1239
SCA Specification Version: Candidate Release
27 December 2011
53
class componentproperties
«DTDElement»
componentproperties
«DTDChoiceGroup»
componentproperties_grp1
«DTDElementEmpty»
simpleref
- refid: CDATA
- value: CDATA
«DTDElement»
simplesequenceref
- refid: CDATA
«DTDElement»
structref
- refid: CDATA
«DTDElement»
structsequenceref
- refid: CDATA
1..*
1240
Figure 28: componentproperties Element Relationships 1241
<!ELEMENT componentproperties 1242 ( simpleref | simplesequenceref | structref | 1243
structsequenceref )+ > 1244
D-1.9.1.3.3.1.2 deviceassignments 1245
The optional deviceassignments element provides a list of deviceassignment elements which are 1246
used when deploying the sub-application’s components. 1247
In a deviceassignment element, the componentid attribute refers to the componentinstantiationref 1248
within the scope of the sub-application being created, while the assigneddeviceid refers a device 1249
identifier (DCD componentinstantiation id) in the domain. 1250
<!ELEMENT deviceassignments 1251 ( deviceassignment )+> 1252 1253
<!ELEMENT deviceassignment EMPTY> 1254 <!ATTLIST deviceassignment 1255 componentid CDATA #REQUIRED 1256
assignedDeviceid CDATA #REQUIRED> 1257
D-1.9.1.3.3.1.3 deploymentdependencies 1258
The deploymentdependencies element (described generically in section D-1.9.1.4) overrides 1259
referenced SAD dependencies. 1260
D-1.9.1.4 deploymentdependencies 1261
The deploymentdependencies element (see Figure 29) is cited in multiple places within the SAD. 1262
It supplies, within its governing scope, overriding values for like-named dependencies defined 1263
within the scope. This allows the addition of scope-dependent deployment information, e.g. 1264
SCA Specification Version: Candidate Release
27 December 2011
54
specification of a particular radio channel or security domain for the deployed application, sub-1265
application or component. Each dependencies element is a propertyref referencing a property of 1266
kind “allocation”, and overrides any values from 1267
narrower-scope deploymentdependencies 1268
SPD-defined dependency propertyref elements (see section D-1.5.1.6.10.2) 1269
SPD-defined usesdevice propertyref elements (see section D-1.5.1.6.11.1). 1270
When, for any componentinstantiation, there are no matching dependencies (same id) specified 1271
in the SPD file, then the deploymenetdependencies-supplied propertyref is not used to constrain 1272
deployment. In this way, dependencies can be overridden where they are specified, while not 1273
imposing new dependencies where they are not intended. 1274
Deployment dependencies precedence order in order of highest to lowest is: 1275
1. Application Factory::create deploymentdependencies parameter 1276
2. Assemblyinstantiaion deploymentdependencies 1277
3. Componentinstantiation deploymentdependencies 1278
4. SAD deployment deploymentdependencies 1279
5. Componentinstantiation SPD dependency and usesdevice 1280
class deploymentdependencies
«DTDElement»
deploymentdependencies
«DTDElementEmpty»
propertyref
- refid: CDATA
- value: CDATA
«DTDSequenceGroup»
deploymentdependencies_grp1
1..*
1281
Figure 29: deploymentdependencies Element Relationships 1282
<!ELEMENT deploymentdependencies 1283
(propertyref 1284
SCA Specification Version: Candidate Release
27 December 2011
55
)+> 1285
1286
D-1.9.1.5 deploymentprefs 1287
The optional deploymentprefs element is a reference to a local file. See section D-1.5.1.4.1 for 1288
the definition of the localfile element. The file refers to an Application Deployment Descriptor 1289
file. 1290
<!ELEMENT deploymentprefs 1291
( localfile 1292 )> 1293
D-1.9.1.6 assemblycontroller 1294
The assemblycontroller element (see Figure 30) indicates the componentinstantiation and / or 1295
assemblyinstantiation(s) that form the control point(s) for the assembly. The 1296
ApplicationManagerComponent delegates its Resource::configure, query, start, stop, and runTest 1297
operations to the elements identified by the assemblycontroller element. 1298
class assemblycontroller
«DTDElement»
assemblycontroller
«DTDChoiceGroup»
assemblycontroller_grp1_grp1
«DTDSequenceGroup»
assemblycontroller_grp1
«DTDElementEmpty»
componentinstantiationref
- refid: CDATA
«DTDElementEmpty»
assemblyinstantiationref
- refid: CDATA
0..*
1299
Figure 30: assemblycontroller Element Relationships 1300
1301
<!ELEMENT assemblycontroller 1302 (( componentinstantiationref | assemblyinstantiationref), 1303
SCA Specification Version: Candidate Release
27 December 2011
56
assemblyinstantiationref* )> 1304
D-1.9.1.7 connections 1305
The connections element is a child element of the softwareassembly element. The connections 1306
element is intended to provide the connection map between components in the assembly. 1307
<!ELEMENT connections 1308
( connectinterface* )> 1309
D-1.9.1.7.1 connectinterface 1310
The connectinterface element (see Figure 31) is used when application components are being 1311
assembled to describe connections between their port interfaces. The connectinterface element 1312
consists of a usesport element and a providesport or componentsupportedinterface element. 1313
These elements are intended to connect two compatible components. 1314
class connectinterface
«DTDElement»
connectinterface
- id: ID
«DTDChoiceGroup»
connectinterface_grp1_grp2
«DTDSequenceGroup»
connectinterface_grp1
«DTDElement»
usesport
«DTDElement»
componentsupportedinterface«DTDElement»
prov idesport
1315
Figure 31: connectinterface Element Relationships 1316
<!ELEMENT connectinterface 1317
( usesport 1318
, ( providesport | componentsupportedinterface ) 1319 )> 1320 <!ATTLIST connectinterface 1321
SCA Specification Version: Candidate Release
27 December 2011
57
id ID #IMPLIED> 1322
D-1.9.1.7.1.1 usesport
The usesport element (see Figure 32) identifies, using the identifier element, the component port 1323
that is using the provided interface from the providesport element. A Resource type component 1324
may be referenced by one of five elements: componentinstantiationref, assemblyinstantiationref, 1325
domainfinder, devicethatloadedthiscomponentref, and deviceusedbythiscomponentref. 1326
class usesport
«DTDElement»
usesport
«DTDChoiceGroup»
usesport_grp1_grp2
«DTDSequenceGroup»
usesport_grp1
«DTDElementEmpty»
componentinstantiationref
- refid: CDATA
«DTDElementEmpty»
assemblyinstantiationref
- refid: CDATA
«DTDElementEmpty»
dev iceusedbythiscomponentref
- refid: CDATA
- usesrefid: CDATA
«DTDElementEmpty»
dev icethatloadedthiscomponentref
- refid: CDATA
«DTDElementEmpty»
domainfinder
- type: (fi lesystem | eventchannel | application | servicename | servicetype)
- name: CDATA«DTDElement»
identifier
1327
Figure 32: usesport Element Relationships 1328
<!ELEMENT usesport 1329
(identifier 1330 , ( componentinstantiationref | 1331 assemblyinstantiationref | 1332 devicethatloadedthiscomponentref | 1333
deviceusedbythiscomponentref | domainfinder ) 1334 )> 1335 1336
D-1.9.1.7.1.1.1 identifier 1337
The identifier element identifies which “uses port” on the component is to participate in the 1338
connection relationship. This identifier will correspond with an id for one of the component 1339
ports specified in the SCD. 1340
<!ELEMENT identifier (#PCDATA)> 1341
SCA Specification Version: Candidate Release
27 December 2011
58
D-1.9.1.7.1.1.2 componentinstantiationref 1342
The componentinstantiationref element refers to the id attribute of the componentinstantiation 1343
element within the SAD file. The refid attribute will correspond to the unique 1344
componentinstantiation id attribute. 1345
<!ELEMENT componentinstantiationref EMPTY> 1346
<!ATTLIST componentinstantiationref 1347
refid CDATA #REQUIRED> 1348
D-1.9.1.7.1.1.3 assemblyinstantiationref 1349
The assemblyinstantiationref element refers to the id attribute of the assemblyinstantiation 1350
element within the SAD file. The refid attribute will correspond to the unique 1351
assemblyinstantiation id attribute. 1352
<!ELEMENT assemblyinstantiationref EMPTY> 1353
<!ATTLIST assemblyinstantiationref 1354 refid CDATA #REQUIRED> 1355
D-1.9.1.7.1.1.4 domainfinder 1356
The domainfinder element is used to indicate to the ApplicationFactoryComponent the necessary 1357
information to find an object reference that is of specific type and may also be known by an 1358
optional name within the domain. The valid type attributes are “filesystem”, “eventchannel”, 1359
“application”, “servicename”, and “servicetype”. 1360
For “filesystem” type when name attribute is not supplied then the closest FileSystemComponent 1361
proximity-wise (e.g. file system residing on the same physical device as the component on the 1362
other end of the connection would be used first) is provided. 1363
The type attribute value of “eventchannel” is used to specify the event channel to be used in the 1364
OE’s Event Service for producing or consuming events. If the name attribute is not supplied and 1365
the type attribute has a value of “eventchannel” then the Incoming domain management event 1366
channel is used. 1367
For “application” type the name attribute must be specified. For “application” type the name 1368
attribute format is ApplicationFactoryComponent name followed by forward slash “/” followed 1369
by Application name (e.g. “the_applicationfactory_name/the_application_name”). The options 1370
for “application” type name and meaning are: 1371
1. When only the application name is specified then any existing 1372
ApplicationManagerComponent in the domain with that name can be used. 1373
2. When both the Application Factory name and Application name (e.g. 1374
“the_applicationfactory_name/the_application_name”) is specified the 1375
ApplicationManagerComponent with that name created by the specified Application 1376
FactoryComponent is returned. 1377
3. When only the Application Factory name followed by a forward slash is specified then 1378
any ApplicationManagerComponent created by the specified 1379
ApplicationFactoryComponent with that name can be used. 1380
SCA Specification Version: Candidate Release
27 December 2011
59
If “servicename” or “servicetype” is specified then name must be specified. Both values 1381
correspond to a service identified in a DeviceMangerComponent’s DCD. The DCD usagename 1382
element contains a value in an “identifier\type” format for a component service type. For 1383
“servicename” the name corresponds to the “identifier” portion of the usagename element. For 1384
“servicetype” the name corresponds to the “type” portion of the usagename element. The type 1385
attribute value of “servicename” is used to locate registered ServiceComponents on a per name 1386
basis. The type attribute value of “servicetype” is used to locate registered ServiceComponents 1387
on a per type basis. 1388
<!ELEMENT domainfinder EMPTY> 1389 <!ATTLIST domainfinder 1390 type (filesystem | eventchannel | application | servicename 1391
| servicetype) #REQUIRED 1392 name CDATA #IMPLIED> 1393
D-1.9.1.7.1.1.5 devicethatloadedthiscomponentref 1394
The devicethatloadedthiscomponentref element refers to a specific component found in the 1395
assembly, which is used to obtain the ComponentBaseDevice that was used to load the 1396
referenced component from the ApplicationFactoryComponent. The ComponentBaseDevice 1397
obtained is then associated with this component instance. 1398
<!ELEMENT devicethatloadedthiscomponentref EMPTY> 1399
<!ATTLIST devicethatloadedthiscomponentref 1400 refid CDATA #REQUIRED> 1401
D-1.9.1.7.1.1.6 deviceusedbythiscomponentref 1402
The deviceusedbythiscomponentref element refers to a specific component, within the assembly, 1403
which is used to obtain the ComponentBaseDevice (e.g., logical device) that is being used by the 1404
specific component from the ApplicationFactoryComponent. This relationship is needed when a 1405
component is pushing or pulling data and/or commands to another component that exists in the 1406
system such as an audio device. 1407
<!ELEMENT deviceusedbythiscomponentref EMPTY> 1408
<!ATTLIST deviceusedbythiscomponentref 1409
refid CDATA #REQUIRED 1410 usesrefid CDATA #REQUIRED> 1411
D-1.9.1.7.1.2 providesport
The providesport element (see Figure 33) identifies, using the identifier element, the component 1412
port that is provided to the usesport interface within the connectinterface element. A Resource 1413
type component may be referenced by one of five elements: componentinstantiationref, 1414
assemblyinstantiationref, domainfinder, devicethatloadedthiscomponentref, and 1415
deviceusedbythiscomponentref. The domainfinder element by itself is used when the object 1416
reference is not a Resource type. 1417
SCA Specification Version: Candidate Release
27 December 2011
60
class prov idesport
«DTDChoiceGroup»
prov idesport_grp1_grp2
«DTDElement»
prov idesport
«DTDElementEmpty»
dev icethatloadedthiscomponentref
- refid: CDATA
«DTDElementEmpty»
dev iceusedbythiscomponentref
- refid: CDATA
- usesrefid: CDATA
«DTDSequenceGroup»
prov idesport_grp1
«DTDElementEmpty»
componentinstantiationref
- refid: CDATA
«DTDElementEmpty»
assemblyinstantiationref
- refid: CDATA
«DTDElementEmpty»
domainfinder
- type: (fi lesystem | eventchannel | application | servicename | servicetype)
- name: CDATA
«DTDElement»
identifier
1418
Figure 33: providesport Element Relationships 1419
<!ELEMENT providesport 1420 (identifier 1421 , ( componentinstantiationref | 1422
assemblyinstantiationref | 1423 devicethatloadedthiscomponentref | 1424 deviceusedbythiscomponentref | domainfinder ) 1425
)> 1426
D-1.9.1.7.1.2.1 identifier 1427
The identifier element identifies which “provides port” on the component is to participate in the 1428
connection relationship. This identifier will correspond with a repid attribute for one of the 1429
component ports elements, specified in the SCD. 1430
<!ELEMENT identifier (#PCDATA)> 1431
D-1.9.1.7.1.2.2 componentinstantiationref 1432
See D-1.9.1.7.1.1.2 for a description of the componentinstantiationref element. 1433
D-1.9.1.7.1.2.3 assemblyinstantiationref 1434
See D-1.9.1.7.1.1.3 for a description of the assemblyinstantiationref element. 1435
SCA Specification Version: Candidate Release
27 December 2011
61
D-1.9.1.7.1.2.4 domainfinder 1436
See section D-1.9.1.7.1.1.4 for a description of the domainfinder element. 1437
D-1.9.1.7.1.2.5 devicethatloadedthiscomponentref 1438
See D-1.9.1.7.1.1.5 for a description of the devicethatloadedthiscomponentref element. 1439
D-1.9.1.7.1.2.6 deviceusedbythiscomponentref 1440
See D-1.9.1.7.1.1.6 for a description of the deviceusedbythiscomponentref element. 1441
D-1.9.1.7.1.3 componentsupportedinterface
The componentsupportedinterface element (see Figure 34) specifies a component, which has a 1442
supportsinterface element, that can satisfy an interface connection to a port specified by the 1443
usesport element, within a connectinterface element. A component within the assembly may be 1444
referenced by one of four elements: componentinstantiationref, domainfinder, 1445
devicethatloadedthiscomponentref, and deviceusedbythiscomponentref. The 1446
componentinstantiationref identifies a component within the assembly. The domainfinder 1447
element points to an existing component that can be found within a DomainManagerComponent. 1448
class componentsupportedinterface
«DTDElement»
componentsupportedinterface
«DTDChoiceGroup»
componentsupportedinterface_grp1_grp2
«DTDSequenceGroup»
componentsupportedinterface_grp1
«DTDElement»
identifier
«DTDElementEmpty»
componentinstantiationref
- refid: CDATA
«DTDElementEmpty»
domainfinder
- type: (fi lesystem | eventchannel | application | servicename | servicetype)
- name: CDATA
«DTDElementEmpty»
dev icethatloadedthiscomponentref
- refid: CDATA
«DTDElementEmpty»
dev iceusedbythiscomponentref
- refid: CDATA
- usesrefid: CDATA
1449
Figure 34: componentsupportedinterface Element Relationships 1450
<!ELEMENT componentsupportedinterface 1451
(identifier 1452
SCA Specification Version: Candidate Release
27 December 2011
62
, ( componentinstantiationref | 1453 devicethatloadedthiscomponentref | 1454
deviceusedbythiscomponentref | domainfinder) 1455 )> 1456
D-1.9.1.7.1.3.1 identifier 1457
The identifier element identifies which supported interface on the component is to participate in 1458
the connection relationship. This identifier will correspond with the repid attribute of one of the 1459
component’s supportsinterface elements, specified in the SCD. 1460
<!ELEMENT identifier (#PCDATA)> 1461
D-1.9.1.7.1.3.2 componentinstantiationref 1462
See section D-1.9.1.7.1.1.2 for a description of the componentinstantiationref element. 1463
D-1.9.1.7.1.3.3 domainfinder 1464
See section D-1.9.1.7.1.1.4 for a description of the domainfinder element. 1465
D-1.9.1.8 externalports 1466
The optional externalports element (see Figure 35) is a child element of the softwareassembly 1467
element (see Figure 19). The externalports element is used to identify the visible ports for the 1468
software assembly. The Application::getProvidedPorts() operation is used to access the 1469
assembly’s obtainable provides ports. 1470
The usesidentifier element identifies which supported interface of the software assembly is to 1471
participate in the connection relationship. This identifier will correspond with an identifier 1472
element from one of the assembly component’s usesport definitions. 1473
The providesidentifier element identifies which supported interface of the software assembly is 1474
to participate in the connection relationship. This identifier will correspond with an identifier 1475
element from one of the assembly component’s providesport definitions. 1476
The supportedidentifier element identifies which supported interface of the software assembly is 1477
to participate in the connection relationship. This identifier will correspond with an identifier 1478
element from one of the assembly component’s componentsupportedinterface definitions. 1479
<!ELEMENT externalports 1480 ( port+ 1481
)> 1482
SCA Specification Version: Candidate Release
27 December 2011
63
class externalports
«DTDElement»
port
«DTDChoiceGroup»
port_grp1_grp3
«DTDElement»
prov idesidentifier
«DTDChoiceGroup»
port_grp1_grp2
«DTDElementEmpty»
componentinstantiationref
- refid: CDATA
«DTDSequenceGroup»
port_grp1
«DTDElement»
usesidentifier
«DTDElement»
supportedidentifier«DTDElementEmpty»
assemblyinstantiationref
- refid: CDATA
«DTDElement»
description
0..1
1483
Figure 35: port Element Relationships 1484
<!ELEMENT port 1485 ( description? 1486 , ( usesidentifier | providesidentifier | 1487
supportedidentifier) 1488
, (componentinstantiationref | assemblyinstantiationref) 1489 )> 1490 1491 <!ELEMENT description (#PCDATA)> 1492
SCA Specification Version: Candidate Release
27 December 2011
64
D-1.10 DEVICE CONFIGURATION DESCRIPTOR 1493
This section describes the XML elements of the Device Configuration Descriptor (DCD) XML 1494
file; the deviceconfiguration element (see Figure 36). The DCD is based on the SAD (e.g., 1495
componentfiles, partitioning, etc.) DTD. The intent of the DCD is to provide the means of 1496
describing the components that are initially started on the DeviceManagerComponent node, how 1497
to obtain the DomainManagerComponent reference, connections of services to components 1498
(ComponentBaseDevices, DeviceManagerComponent), and the characteristics (file system 1499
names, etc.) for a DeviceManagerComponent. The componentfiles and partitioning elements are 1500
optional; if not provided, that means no components are started up on the node, except for a 1501
DeviceManagerComponent. If the partitioning element is specified then a componentfiles 1502
element has to be specified also. 1503
SCA497 A Device Configuration Descriptor file shall have a “.dcd.xml” extension. 1504
D-1.10.1 deviceconfiguration 1505
The deviceconfiguration element’s id attribute is a unique identifier within the domain for the 1506
device configuration. This id attribute is a unique identifier within the Domain Profile for the 1507
device configuration. The name attribute is the user-friendly name for the 1508
DeviceManagerComponent’s label attribute. 1509
class dev iceconfiguration
«DTDElement»
dev iceconfiguration
«DTDElement»
filesystemnames
«DTDElement»
domainmanager
«DTDElement»
connections
«DTDElement»
partitioning
«DTDElement»
componentfiles
«DTDSequenceGroup»
dev iceconfiguration_grp1
«DTDElement»
dev icemanagersoftpkg
«DTDElement»
description
0..10..10..1
0..10..1
1510
Figure 36: deviceconfiguration Element Relationships 1511
<!ELEMENT deviceconfiguration 1512 ( description? 1513
, devicemanagersoftpkg 1514 , componentfiles? 1515 , partitioning? 1516 , connections? 1517
SCA Specification Version: Candidate Release
27 December 2011
65
, domainmanager 1518 , filesystemnames? 1519
)> 1520 <!ATTLIST deviceconfiguration 1521 id ID #REQUIRED 1522 name CDATA #IMPLIED> 1523
D-1.10.1.1 description 1524
The optional description element, of the deviceconfiguration element, may be used to provide 1525
information about the device configuration. 1526
<!ELEMENT description (#PCDATA)> 1527
D-1.10.1.2 devicemanagersoftpkg 1528
The devicemanagersoftpkg element refers to the SPD for the DeviceManagerComponent that 1529
corresponds to this DCD. The SPD file is referenced by a localfile element. The referenced file 1530
can be used to describe the DeviceManager realization and to specify the usesports for the 1531
services (Log(s), etc.) used by the DeviceManagerComponent. See section D-1.5.1.4.1 for a 1532
description of the localfile element. 1533
<!ELEMENT devicemanagersoftpkg 1534 ( localfile 1535 )> 1536
D-1.10.1.3 componentfiles 1537
The optional componentfiles element is used to reference deployment information for 1538
components that are started up on the device. The componentfile element references a SPD. The 1539
SPD, for example, can be used to describe ComponentBaseDevices, a 1540
DeviceManagerComponent, a DomainManagerComponent, and FileSystemComponents. See 1541
section D-1.9.1.2 for the definition of the componentfiles element. 1542
D-1.10.1.4 partitioning 1543
The optional partitioning element consists of a set of componentplacement elements. A 1544
component instantiation is captured inside a componentplacement element. 1545
<!ELEMENT partitioning 1546 ( componentplacement )*> 1547
D-1.10.1.4.1 componentplacement 1548
The componentplacement element (see Figure 37) is used to define a particular deployment of a 1549
component. The componentfileref element identifies the component to be deployed. The 1550
componentinstantiation element identifies the actual component created. Multiple components 1551
of the same kind can be created within the same componentplacement element. 1552
The optional deployondevice element indicates the device on which the componentinstantiation 1553
element is deployed. The optional compositepartofdevice element indicates the parent device of 1554
the componentinstantiation element. When the component is a logical device, the optional 1555
devicepkgfile element indicates the hardware device information for the logical device. 1556
SCA Specification Version: Candidate Release
27 December 2011
66
class componentplacement
«DTDElement»
componentplacement
«DTDElementEmpty»
compositepartofdev ice
- refid: CDATA
«DTDSequenceGroup»
componentplacement_grp1
«DTDElement»
dev icepkgfile
- type: CDATA
«DTDElementEmpty»
deployondev ice
- refid: CDATA
«DTDElementEmpty»
componentfileref
- refid: CDATA
«DTDElement»
componentinstantiation
- id: ID
0..10..1
1..*
0..1
1557
Figure 37: componentplacement Element Relationships 1558
<!ELEMENT componentplacement 1559
( componentfileref 1560 , deployondevice? 1561 , compositepartofdevice? 1562
, devicepkgfile? 1563 , componentinstantiation+ 1564 )> 1565
D-1.10.1.4.1.1 componentfileref
The componentfileref element is used to reference a componentfile element within the 1566
componentfiles element. The componentfileref element’s refid attribute corresponds to a 1567
componentfile element’s id attribute. 1568
<!ELEMENT componentfileref EMPTY> 1569
<!ATTLIST componentfileref 1570 refid CDATA #REQUIRED> 1571
D-1.10.1.4.1.2 deployondevice
The deployondevice element is used to reference a componentinstantiation element on which this 1572
componentinstantiation is deployed. 1573
<!ELEMENT deployondevice EMPTY> 1574 <!ATTLIST deployondevice 1575
refid CDATA #REQUIRED> 1576
D-1.10.1.4.1.3 compositepartofdevice
The compositepartofdevice element is used when a parent-child relationship exists between 1577
devices to reference the componentinstantiation element that describes the parent device when 1578
this device’s componentinstantiation element describes the child device. 1579
SCA Specification Version: Candidate Release
27 December 2011
67
<!ELEMENT compositepartofdevice EMPTY> 1580
<!ATTLIST compositepartofdevice 1581
refid CDATA #REQUIRED> 1582
D-1.10.1.4.1.4 devicepkgfile
The devicepkgfile element is used to refer to a device package file that contains the hardware 1583
device definition. 1584
<!ELEMENT devicepkgfile 1585
( localfile 1586 )> 1587
<!ATTLIST devicepkgfile 1588 type CDATA #IMPLIED> 1589
D-1.10.1.4.1.4.1 localfile 1590
See D-1.5.1.4.1 for a definition of the localfile element. 1591
D-1.10.1.4.1.5 componentinstantiation
The componentinstantiation element (see Figure 38) is intended to describe a particular 1592
instantiation of a component relative to a componentplacement element. The 1593
componentinstantiation’s id attribute is an implementation specific value that uniquely identifies 1594
the component. The componentinstantiation contains a usagename element that is intended for 1595
an applicable name for the component. 1596
For a component service (e.g., Log Service implementation), the usagename element is not 1597
optional. For ServiceComponents, usagename must be provided in an “identifier\type” format. 1598
The “identifier” portion of the name must be unique for each service instantiation. The “type” 1599
value is common across all instantiations of the same service. The “type” value should be 1600
representative of the service that is being provided such as the name or the interfaces. The value 1601
“log” represents the type for a Log Service implementation. 1602
SCA Specification Version: Candidate Release
27 December 2011
68
class componentinstantiation
«DTDElement»
componentinstantiation
- id: ID
«DTDSequenceGroup»
componentinstantiation_grp1
«DTDElement»
usagename
«DTDElement»
componentproperties
«DTDElement»
componentfactoryref
- refid: CDATA
0..10..10..1
1603
Figure 38: componentinstantiation Element Relationships 1604
<!ELEMENT componentinstantiation 1605 ( usagename? 1606
,componentproperties? 1607 ,componentfactoryref? 1608 )> 1609 <!ATTLIST componentinstantiation 1610
id ID #REQUIRED> 1611 1612 <!ELEMENT usagename (#PCDATA)> 1613
1614
D-1.10.1.4.1.5.1 componentproperties 1615
The optional componentproperties element (see Figure 39) is a list of property values with a 1616
kindtype of “configure”, “execparam” or “allocation”) and a mode attribute of “readwrite” or 1617
“writeonly” that are used either during component configuration or execution or for overriding 1618
allocation properties. D-1.9.1.3.1.2 defines the property list for the componentinstantiation 1619
element, which contains initial properties values. 1620
SCA Specification Version: Candidate Release
27 December 2011
69
class componentproperties
«DTDElement»
componentproperties
«DTDChoiceGroup»
componentproperties_grp1
«DTDElementEmpty»
simpleref
- refid: CDATA
- value: CDATA
«DTDElement»
simplesequenceref
- refid: CDATA
«DTDElement»
structref
- refid: CDATA
«DTDElement»
structsequenceref
- refid: CDATA
1..*
1621
Figure 39: componentproperties Element Relationships 1622
<!ELEMENT componentproperties 1623
( simpleref | simplesequenceref | structref | 1624 structsequenceref )+ > 1625
D-1.10.1.4.1.5.2 componentfactoryref 1626
The optional componentfactoryref element (see Figure 40) refers to a particular 1627 PlatformComponentFactoryComponent componentinstantiation element found in the DCD, which is 1628 used to obtain a ComponentBaseDevice or ServiceComponent for this componentinstantiation 1629 element. The refid attribute refers to a unique componentinstantiation id attribute. The optional 1630 componentfactoryref element should be specified only when a 1631 PlatformComponentFactoryComponent is used to create ComponentBaseDevice or 1632 ServiceComponents. 1633
SCA Specification Version: Candidate Release
27 December 2011
70
class componentfactoryref
«DTDElement»
componentfactoryref
- refid: CDATA
«DTDSequenceGroup»
componentfactoryref_grp1
«DTDElement»
componentfactoryproperties
0..1
1634
Figure 40: componentfactoryref Element Relationships 1635
<!ELEMENT componentfactoryref 1636
( componentfactoryproperties? )> 1637
<!ATTLIST componentfactoryref 1638
refid CDATA #REQUIRED> 1639
D-1.10.1.4.1.5.2.1 componentfactoryproperties 1640
The optional componentfactoryproperties element (see Figure 41) specifies the properties 1641 “qualifiers”, for the PlatformComponentFactoryComponent createComponent call. 1642
SCA Specification Version: Candidate Release
27 December 2011
71
class componentfactoryproperties
«DTDElement»
componentfactoryproperties
«DTDChoiceGroup»
componentfactoryproperties_grp1
«DTDElementEmpty»
simpleref
- refid: CDATA
- value: CDATA
«DTDElement»
structref
- refid: CDATA
«DTDElement»
structsequenceref
- refid: CDATA
«DTDElement»
simplesequenceref
- refid: CDATA
1..*
1643
Figure 41: componentfactoryproperties Element Relationships 1644
<!ELEMENT componentfactoryproperties 1645
( simpleref | simplesequenceref | structref | structsequenceref 1646 )+ > 1647
1648
<!ELEMENT simpleref EMPTY> 1649 <!ATTLIST simpleref 1650 refid CDATA #REQUIRED 1651
value CDATA #REQUIRED> 1652 1653 <!ELEMENT simplesequenceref 1654
( values )> 1655
<!ATTLIST simplesequenceref 1656 refid CDATA #REQUIRED> 1657 1658 <!ELEMENT structref 1659
( simpleref+ )> 1660
<!ATTLIST structref 1661 refid CDATA #REQUIRED> 1662
1663 <!ELEMENT structsequenceref 1664
( structvalue+ )> 1665
<!ATTLIST structsequenceref 1666
SCA Specification Version: Candidate Release
27 December 2011
72
refid CDATA #REQUIRED> 1667 1668
<!ELEMENT structvalue 1669 ( simpleref+ )> 1670 1671 <!ELEMENT values 1672
( value+ )> 1673 1674 <!ELEMENT value (#PCDATA)> 1675
D-1.10.1.5 connections 1676
The connections element in the DCD is the same as the connections element in the SAD in 1677
section D-1.9.1.7. The connections element in the DCD is used to indicate the services (Log, 1678
etc.) instances that are used by the DeviceManagerComponent and ComponentBaseDevices in 1679
the DCD. To establish connections to a DeviceManagerComponent, the DCD’s 1680
deviceconfiguration element’s id attribute value is used for the SAD’s usesport element’s 1681
componentinstantiationref element’s refid attribute value. 1682
D-1.10.1.6 domainmanager 1683
The domainmanager element indicates how to register to the DomainManagerComponent. The 1684
value of the name attribute is based upon the type attribute, which could be the name of a file. 1685
The type attribute indicates the type of mechanism used for obtaining the 1686
DomainManagerComponent registration reference such as the localfile that contains an ior, 1687
ior_string, or resolve_initial_reference by ORB. 1688
1689
<!ELEMENT domainmanager EMPTY> 1690 1691 <!ATTLIST domainmanager 1692
name CDATA #REQUIRED 1693 type CDATA #REQUIRED> 1694
D-1.10.1.7 filesystemnames 1695
The optional filesystemnames element indicates the mounted file system names for 1696
DeviceManagerComponent's FileManagerComponent. 1697
The optional filesystemnames element indicates the names for file systems mounted within a 1698
DeviceManagerComponent's FileManagerComponent. The mountname attribute contains a file 1699
system name that uniquely identifies a mount point. The deviceid attribute is the unique identifier 1700
for a specific component, within the DCD, which represents the device hosting this file system. 1701
The use of the deviceid attribute value is implementation dependent. 1702
<!ELEMENT filesystemnames 1703
( filesystemname+ )> 1704
1705 <!ELEMENT filesystemname EMPTY> 1706 <!ATTLIST filesystemname 1707
SCA Specification Version: Candidate Release
27 December 2011
73
mountname CDATA #REQUIRED 1708 deviceid CDATA #REQUIRED>1709
SCA Specification Version: Candidate Release
27 December 2011
74
D-1.11 DOMAINMANAGER CONFIGURATION DESCRIPTOR 1710
This section describes the XML elements of the DomainManager Configuration Descriptor 1711
(DMD) XML file. 1712
SCA498 A DomainManager Configuration Descriptor file shall have a “.dmd.xml” extension. 1713
D-1.11.1 domainmanagerconfiguration 1714
The domainmanagerconfiguration element (see Figure 42) id attribute is an implementation 1715
specific value that uniquely identifies the DomainManagerComponent. 1716
1717 class domainmanagerconfiguration
«DTDElement»
domainmanagerconfiguration
- id :ID
- name :CDATA
- accardinality :(single | multiple) "single"
«DTDElement»
deploymentlayout
«DTDSequenceGroup»
domainmanagerconfiguration_grp1
«DTDElement»
domainmanagersoftpkg
«DTDElement»
description
«DTDElement»
serv ices
0..10..10..1
1718
Figure 42: domainmanagerconfiguration Element Relationships 1719
<!ELEMENT domainmanagerconfiguration 1720 ( description? 1721
, domainmanagersoftpkg 1722 , deploymentlayout? 1723 , services? 1724 )> 1725
<!ATTLIST domainmanagerconfiguration 1726 id ID #REQUIRED 1727 name #CDATA #REQUIRED 1728
accardinality (single | multiple) "single" > 1729
D-1.11.1.1 description 1730
The optional description element of the DMD may be used to provide information about the 1731
configuration. 1732
<!ELEMENT description (#PCDATA)> 1733
SCA Specification Version: Candidate Release
27 December 2011
75
D-1.11.1.2 domainmanagersoftpkg 1734
The domainmanagersoftpkg element refers to the SPD for the DomainManagerComponent. The 1735
SPD file is referenced by a localfile element. This SPD can be used to describe the 1736
DomainManagerComponent implementation and to specify the usesports for the services 1737
(Log(s), etc.) used by the DomainManagerComponent. See section D-1.5.1.4.1 for description 1738
of the localfile element. 1739
<!ELEMENT domainmanagersoftpkg 1740 ( localfile ) > 1741
D-1.11.1.3 deploymentlayout 1742
The optional deploymentlayout element is a reference to a local file. See section D-1.5.1.4.1 for 1743
the definition of the localfile element. The file refers to a Platform Deployment Descriptor file. 1744
<!ELEMENT deploymentlayout 1745
( localfile 1746 )> 1747
D-1.11.1.4 services 1748
The optional services element (see Figure 43) in the DMD is used by the 1749
DomainManagerComponent to determine which service (Log, etc.) instances to use; it makes use 1750
of the service element. 1751
class serv ices
«DTDSequenceGroup»
serv ices_grp1
«DTDElement»
serv ices
«DTDElement»
serv ice
1..*
1752
Figure 43: services Element Relationships 1753
1754
<!ELEMENT services 1755
( service+ ) > 1756
SCA Specification Version: Candidate Release
27 December 2011
76
D-1.11.1.4.1 service 1757
The service element (see Figure 44) defines the service instance. See section D-1.9.1.7.1.1.4 for 1758
a description of the domainfinder element. See section D-1.9.1.7.1.1.1 for a description of the 1759
identifier element. 1760
class serv ice
«DTDSequenceGroup»
serv ice_grp1
«DTDElement»
serv ice
«DTDElementEmpty»
domainfinder
- type: (fi lesystem | eventchannel | application | servicename | servicetype)
- name: CDATA
«DTDElement»
identifier
1761
Figure 44: service Element Relationships 1762
<!ELEMENT service 1763
( identifier 1764 , domainfinder)> 1765
SCA Specification Version: Candidate Release
27 December 2011
77
D-1.12 PLATFORM DEPLOYMENT DESCRIPTOR 1766
This section describes the XML elements of the Platform Deployment Descriptor (PDD) XML 1767
file; the deploymentplatform element. The intent of the PDD is to provide a means of describing 1768
the collection of services and devices that are associated with a virtual channel. The knowledge 1769
of the channel composition can be utilized as part of an overall systems engineering strategy to 1770
control the allocation of applications to system resources. Another use of the information could 1771
be to improve the efficiency of application deployment as the channel elements would be used to 1772
constrain the search space for the allocation of individual application components. The use of the 1773
PDD is optional within a system, a system designer is free to use allocation properties or other 1774
approaches to manage the allocation of application components to platform resources. 1775
SCA499 A Platform Deployment Descriptor file shall have a “.pdd.xml” extension. 1776
D-1.12.1 deploymentplatform 1777
The deploymentplatform element (see Figure 45) contains the layout of the virtual channels 1778
within a platform domain. 1779
class deploymentplatform
«DTDElement»
deploymentplatform
«DTDSequenceGroup»
deploymentplatform_grp1
«DTDElement»
description
«DTDElement»
channel
- name: ID
1..*0..1
1780
Figure 45: deploymentplatform Element Relationships 1781
<!ELEMENT deploymentplatform 1782 ( description? 1783
, channel+ 1784 ) > 1785
D-1.12.1.1 description 1786
The optional description element of the PDD may be used to provide information about the 1787
platform domain. 1788
SCA Specification Version: Candidate Release
27 December 2011
78
<!ELEMENT description (#PCDATA)> 1789
D-1.12.1.2 channel 1790
The channel element (see Figure 46) in the PDD defines the collections of devices and services 1791
that are used by the ApplicationFactory as target resource pools for application deployment. The 1792
channel element’s name attribute contains the identifier for the channel that is used by the 1793
ApplicationFactory and the ADD. 1794
class channel
«DTDElement»
channel
- name: ID
«DTDSequenceGroup»
channel_grp1
«DTDElement»
serv icelist
«DTDElement»
dev icelist
0..10..1
1795
Figure 46: channel Element Relationships 1796
<!ELEMENT channel 1797 ( devicelist? 1798
, servicelist? 1799 ) > 1800 <!ATTLIST channel 1801
name ID #REQUIRED> 1802
D-1.12.1.2.1 devicelist 1803
The optional devicelist element in the PDD defines the collection of devices for a given channel 1804
that are used by the ApplicationFactory as target resource pools for application deployment. 1805
<!ELEMENT devicelist 1806 ( deviceref+ 1807 )> 1808
D-1.12.1.2.1.1 deviceref
The deviceref element is used to reference a componentinstantiation element which is part of the 1809
channel. The refid attribute points to a componentinstantiation identifier for a device that has 1810
registered with the platform. 1811
SCA Specification Version: Candidate Release
27 December 2011
79
<!ELEMENT deviceref EMPTY> 1812 <!ATTLIST deviceref 1813
refid CDATA #REQUIRED> 1814
D-1.12.1.2.2 servicelist 1815
The optional servicelist element in the PDD defines the collection of services for a given channel 1816
that are used by the ApplicationFactory as target resource pools for application deployment. 1817
<!ELEMENT servicelist 1818
( serviceref+ 1819 )> 1820
D-1.12.1.2.2.1 serviceref
The serviceref element identifies a service which is part of the channel. The servicename 1821
attribute is identical to the “identifier” portion usagename identifier for a service that has 1822
registered with the platform (for a component service type usagename is provided in an 1823
“identifier\type” format). 1824
<!ELEMENT serviceref EMPTY> 1825
<!ATTLIST serviceref 1826 servicename CDATA #REQUIRED> 1827
SCA Specification Version: Candidate Release
27 December 2011
80
D-1.13 APPLICATION DEPLOYMENT DESCRIPTOR 1828
This section describes the XML elements of the Application Deployment Descriptor (ADD) 1829
XML file; the deploymentprecedence element. The intent of the ADD is to provide prioritized 1830
lists of deployment alternatives for application instances. 1831
SCA500 An Application Deployment Descriptor file shall have an “.add.xml” extension. 1832
D-1.13.1 deploymentprecedence 1833
The deploymentprecedence element (see Figure 47) contains the relationship between 1834
application instances and their candidate virtual channels. 1835
class deploymentprecedence
«DTDElement»
description
«DTDElement»
deploymentoption
- deployedname: CDATA
«DTDElement»
deploymentprecedence
«DTDSequenceGroup»
deploymentprecedence_grp1
1..*0..1
1836
Figure 47: deploymentprecedence Element Relationships 1837
<!ELEMENT deploymentprecedence 1838 ( description? 1839 , deploymentoption+ 1840
) > 1841
D-1.13.1.1 description 1842
The optional description element of the ADD may be used to provide information about the 1843
application. 1844
<!ELEMENT description (#PCDATA)> 1845
D-1.13.1.2 deploymentoption 1846
The deploymentoption element (see Figure 48) in the ADD identifies the ordered list of channels 1847
that provide deployment alternatives for a specific application instance. The deployedname 1848
SCA Specification Version: Candidate Release
27 December 2011
81
attribute corresponds to a named application instance (e.g. the name parameter passed to the 1849
ApplicationFactory::create operation). 1850
class deploymentoption
«DTDElement»
deploymentoption
- deployedname: CDATA
«DTDElementEmpty»
channelref
- refname: CDATA
«DTDSequenceGroup»
deploymentoption_grp1
«DTDElement»
description
1..*0..1
1851
Figure 48: deploymentoption Element Relationships 1852
<!ELEMENT deploymentoption 1853
( description? 1854 , channelref+ 1855 )> 1856 <!ATTLIST deploymentoption 1857
deployedname CDATA #REQUIRED> 1858 1859
D-1.13.1.2.1 description 1860
The optional description element may be used to provide information about the application 1861
instance. 1862
<!ELEMENT description (#PCDATA)> 1863
D-1.13.1.2.2 channelref 1864
The channelref element is used to reference a channel element from the PDD which provides a 1865
deployment alternative. The refname attribute points to a channel element name attribute that 1866
identifies a channel. 1867
<!ELEMENT channelref EMPTY> 1868 <!ATTLIST channelref 1869
refname CDATA #REQUIRED> 1870
SCA Specification Version: Candidate Release
27 December 2011
82
D-1.14 ATTACHMENTS 1871
This appendix includes the following: 1872
Attachment 1: Common Properties Definitions 1873
SCA Specification Version: Candidate Release
27 December 2011
i
1
SOFTWARE COMMUNICATIONS ARCHITECTURE 2
SPECIFICATION 3
4
APPENDIX D-1 - ATTACHMENT 1: COMMON PROPERTIES 5
DEFINITIONS 6
7
8
9
10
11
27 December 2011 12
Version: Candidate Release 13
14
Prepared by: 15
JTRS Standards 16 Joint Program Executive Office (JPEO) Joint Tactical Radio System (JTRS) 17
33000 Nixie Way 18 San Diego, CA 92147-5110 19
20
21
22
Statement A - Approved for public release; distribution is unlimited (27 December 2011)
SCA Specification Version: Candidate Release
27 December 2011
ii
23
REVISION SUMMARY 24
25
Version Revision Date
Next <Draft> Initial Draft Release 30 November 2010
Candidate
Release Initial Release 27 December 2011
SCA Specification Version: Candidate Release
27 December 2011
3
ATTACHMENT D-1 COMMON PROPERTIES ELEMENT 26
D-1.1 SCOPE 27
The following are common properties to be used for component definitions. The common allocation 28
properties definitions are to be used for device allocation properties as appropriate in order to 29
promote the portability of waveform’s components and to enforce standardization of allocation type 30
usage across vendors. 31
D-1.2 CONFORMANCE 32
See SCA Appendix D. 33
D-1.3 CONVENTIONS 34
N/A 35
D-1.4 NORMATIVE REFERENCES 36
N/A 37
D-1.5 INFORMATIVE REFERENCES 38
N/A 39
D-1.6 OS ELEMENT 40
<simple id="DCE:80BF17F0-6C7F-11d4-A226-0050DA314CD6" 41 type="string" name="os_name" mode="readonly"> 42 <description> This property identifies the os_name XML 43
allocation property. 44 </description> 45 <!-- Established values for the os_name element are: --> 46
<!-- AIX, BSDi, VMS, DigitalUnix, DOS, HPBLS, HPUX, IRIX, --> 47 <!-- Linux, LynxOS, MacOS, OS/2, AS/400, MVS, SCO CMW, --> 48 <!-- SCO ODT, Solaris, SunOS, UnixWare, VxWorks, Win95, --> 49 <!-- WinNT, pSOS, RTXC --> 50
<!-- The os_name values are case sensitive. --> 51 <value></value> 52 <kind kindtype="allocation"/> 53
<action type="eq"/> 54 </simple> 55
D-1.7 PROCESSOR ELEMENT 56
<simple id="DCE:9B445600-6C7F-11d4-A226-0050DA314CD6" 57
type="string" name="processor_name" mode="readonly"> 58
SCA Specification Version: Candidate Release
27 December 2011
4
<description> This property identifies the processor_name XML 59 allocation property. 60
</description> 61 <!-- Established values for the processor_name element are: -62 -> 63 <!-- x86, mips, alpha, ppc, sparc, 680x0, vax, AS/400, --> 64
<!-- S/390, ppcG3, ppcG4, ppcG5, C5x, C6x, ADSP21xx --> 65 <!-- The processor_name values are case sensitive. --> 66 <value></value> 67
<kind kindtype="allocation"/> 68 <action type="eq"/> 69 </simple> 70