SCA服务组件架构
集成模型规范
SCA为了安排它的部件定义了一个XML,这些XML文件定义了这些部件的方便的表示法。一个SCA运行时可能还有XML之外的其他的表示法。尤其,使用一些编程语言实现的component组件可能具有属性(attributes)、特性(properties)或者注释,可以指定SCA集成模型元素中的一部分。XML文件为SCA域的配置定义了静态的格式。SCA运行时也允许域进行动态配置。
下图说明了一个SCA component组件的一些特征:
下面这张图使用一组component组件,来说明的是composite组件的特征:
接下来的图,说明SCA Domain,它由一系列的高层composite组件组成,这些高层组件中的一些也依序由更低层次的composite组件实现:
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- Component schema snippet -->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="xs:anyURI"
name="xs:NCName" local="xs:boolean"?
autowire="xs:boolean"? constrainingType="QName"?
requires="list of xs:QName"? policySets="list of xs:QName"?>
<component name="xs:NCName" requires="list of xs:QName"?
autowire="xs:boolean"? requires="list of xs:QName"? policySets="list of xs:QName"?
constrainingType="xs:QName"?>*
<implementation/>?
<service name="xs:NCName" requires="list of xs:QName"?
policySets="list of xs:QName"?>*
<interface/>?
<binding uri="xs:anyURI"? requires="list of xs:QName"?
policySets="list of xs:QName"?/>*
</service>
<reference name="xs:NCName" multiplicity="0..1 or 1..1 or 0..n or 1..n"?
autowire="xs:boolean"?
target="list of xs:anyURI"? policySets="list of xs:QName"?
wiredByImpl="xs:boolean"? requires="list of xs:QName"?>*
<interface/>?
<binding uri="xs:anyURI"? requires="list of xs:QName"?
policySets="list of xs:QName"?/>*
</reference>
<property name="xs:NCName" (type="xs:QName" | element="xs:QName")?
mustSupply="xs:boolean"?
many="xs:boolean"? source="xs:string"? file="xs:anyURI"?>*
property-value?
</property>
</component>
</composite>
|
一个reference包含0或1个接口,描述被reference所需要的操作。接口使用interface节点表示。是reference节点的子节点。如果没有指定interface,那么implementation为reference指定的interface是有效的。如果指定了interface,它必须提供一个由implementation提供的interface的超集,例如,提供一个implementation为reference定义的操作的超集,详细请参看the Interface section一章。



7482

被折叠的 条评论
为什么被折叠?



