我正在阅读服务组件架构(SCA)。我不理解其使用的一件事是在扩展名为.componenttype的文件中定义组件类型。
This消息来源说:
“组件类型表示实现的可配置方面。组件类型由提供的服务,对可以连接的其他服务的引用和可以设置的属性组成。可设置的属性和对服务的可设置引用由使用该实现的组件。“
以下是该文件的示例:
<?xml version="1.0" encoding="ASCII"?>
<!-- Component type schema snippet -->
<componentType xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
constrainingType="xs:QName"? >
<service … />*
<reference … />*
<property … />*
<implementation … />?
</componentType>
我的困惑是因为我们在复合文件(扩展名为.composite的文件)中定义了组件服务,引用,属性和实现。那么我们为什么要在两个文件(组件类型文件和复合文件)中定义它?我们不是在这里重复一下吗? SCA中的组件类型有什么特别之处?感谢。
答案 0 :(得分:1)
componentType和组件配置实际上是两个不同的东西。 ComponentType描述了组件实现。它类似于可以从Java类的反射中收集的类型信息(因此名称中的“类型”)。认为“类型”与“实例”。这是一个重要的区别,因为组件实现可能会使用不同的配置多次使用。
实际上,应用程序通常不需要提供componentType文件,因为可以通过某种类型的反射来收集信息(在大多数情况下)。例如,对于Java实现,从不提供componentType文件(实际上在最新版本的Java规范中不支持它)。
可能需要componentType的唯一情况是无法以编程方式确定类型信息的语言。