gembin

          OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

          HBase, Hadoop, ZooKeeper, Cassandra

          Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

          There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

          About Me

           

          個(gè)人對(duì)SCA標(biāo)準(zhǔn)中Component,Composite,Implemention,ComponentType幾個(gè)概念的理解

          本文關(guān)注于SCA的幾個(gè)基本概念:Component,Composite,Implemention,ComponentType,從規(guī)范、實(shí)現(xiàn)等不同的角度談一下它們之間的區(qū)別。

          也就是說(shuō),本文更多的是關(guān)注于它們之間的區(qū)別,至于它們每個(gè)是什么請(qǐng)參閱SCA集成規(guī)范。

          Component

           

           

          由上圖可以看到,Component是SCA中可以提供業(yè)務(wù)功能的最小單元,Implemention是 Component提供服務(wù)的具體實(shí)現(xiàn)方式,可以是Java、C++、Bpel等等,沒(méi)有Implemention那么Component就是個(gè)空殼,不 能提供任何有價(jià)值的服務(wù),沒(méi)有任何意義。Service是當(dāng)前Component所能提供的服務(wù)列表,Reference則是該組件多引用的其他組件的服 務(wù),Property起配置的作用。

          Composite

           

          從上圖可以看到,Composite是由Component和Composite組成的,另外Composite也支持 整體對(duì)外提供服務(wù),或者引用其他組件,因此還包括了Service、Reference以及配置它們的Property,Wire是Composite中 各個(gè)Component之間的關(guān)聯(lián)關(guān)系,因此只有Composite中才會(huì)有Wire,Component中沒(méi)有。

          ComponentType

          為什么把ComponentType單獨(dú)拿出來(lái)呢,因?yàn)镃omponentType容易讓人混淆,帶來(lái)理解上的困難,特 對(duì)它給與了比較多的精力,為了大家能看明白,也為了清理下自己的思路,為了理解它不知道翻了多少遍Assembly規(guī)范以及Tuscany的源代碼,呵 呵,當(dāng)然,現(xiàn)在的理解也不一定就是正確的,歡迎大家批評(píng)指正。

          我們先來(lái)看下類圖結(jié)構(gòu):

          由此類圖可以看到,Implemention和Composite都是ComponentType的子接口,ComponentType代表的其實(shí)是某種Implemention類型,比如Java、Bpel等等,比如Java的Implemention實(shí)現(xiàn)類如下:

          BaseJavaImplementation是implementation.java的接口,其他還有implementation.bpel等等。

          最后,對(duì)Service、Reference和Component、Composite等的關(guān)系結(jié)合類圖做下介紹:

          CompositeService和ComponentService正說(shuō)明了可以提供服務(wù)的兩種粒度,同理亦然,reference亦是如此:

          而,Reference和Service有種共同的祖先:AbstractContract,如圖:



           

          posted on 2008-04-27 21:37 gembin 閱讀(599) 評(píng)論(0)  編輯  收藏 所屬分類: SCASOA

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊(cè)

          收藏夾(9)

          Adobe

          Android

          AS3

          Blog-Links

          Build

          Design Pattern

          Eclipse

          Favorite Links

          Flickr

          Game Dev

          HBase

          Identity Management

          IT resources

          JEE

          Language

          OpenID

          OSGi

          SOA

          Version Control

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          free counters
          主站蜘蛛池模板: 丹棱县| 门源| 双鸭山市| 彰化市| 兴安盟| 吉木萨尔县| 瑞昌市| 南江县| 乐东| 伊吾县| 邯郸市| 石台县| 四会市| 新田县| 河曲县| 衡水市| 车险| 墨脱县| 永寿县| 达尔| 渝北区| 饶平县| 赤峰市| 志丹县| 登封市| 尚志市| 西昌市| 襄樊市| 泗阳县| 稻城县| 昌黎县| 湖南省| 嘉祥县| 象州县| 遵化市| 宜丰县| 栖霞市| 文昌市| 红河县| 八宿县| 山丹县|