在SCA中使用组件类型文件有什么用?

时间:2014-05-12 14:00:05

标签: xml components soa implementation sca

我正在阅读服务组件架构(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中的组件类型有什么特别之处?感谢。

1 个答案:

答案 0 :(得分:1)

componentType和组件配置实际上是两个不同的东西。 ComponentType描述了组件实现。它类似于可以从Java类的反射中收集的类型信息(因此名称中的“类型”)。认为“类型”与“实例”。这是一个重要的区别,因为组件实现可能会使用不同的配置多次使用。

实际上,应用程序通常不需要提供componentType文件,因为可以通过某种类型的反射来收集信息(在大多数情况下)。例如,对于Java实现,从不提供componentType文件(实际上在最新版本的Java规范中不支持它)。

可能需要componentType的唯一情况是无法以编程方式确定类型信息的语言。