0

我正在阅读有关服务组件架构 (SCA) 的信息。我不明白它的用途的一件事是在扩展名为 .componenttype 的文件中定义组件类型。

这个消息来源说:

“组件类型表示实现的可配置方面。组件类型由提供的服务、对可以连接的其他服务的引用和可以设置的属性组成。可设置的属性和对服务的可设置引用由组件配置使用实现。”

这是该文件的示例:

<?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 中的组件类型有什么特别之处?谢谢。

4

1 回答 1

1

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

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

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

于 2014-05-12T15:19:42.613 回答