2014-05-12 32 views
0

我在閱讀有關服務組件體系結構(SCA)的內容。有一件事我不明白它的用法,就是在擴展名爲.componenttype的文件中定義了一個組件類型。SCA中組件類型文件的用法是什麼?

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

組件類型和組件配置實際上是兩個不同的東西。 ComponentType描述了一個組件實現。它類似於可以從Java類反射的類型信息(因此名稱中的「類型」)。認爲「類型」與「實例」。這是一個重要的區別,因爲組件實現可以在不同的配置下多次使用。

實際上,應用程序通常不需要提供componentType文件,因爲可以通過某種類型的反射收集信息(在大多數情況下)。例如,對於Java實現,從不提供componentType文件(它實際上不支持最新版本的Java規範)。

可能需要componentType的唯一情況是無法以編程方式確定類型信息的語言。