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

           

          Quick Guide to SCA

          什么是SCA?

          SCA是一個可執行的模型,用于將不同的 服務集成到一個業務解決方案。它簡化了實現業務服務的組件編程模型,這些組件可以使用不同編程語言實現。SCA帶來的一些益處主要為:

          • 松耦合
            組件件的集成不需要知道彼此是基于何種編程語言實現的。在同步、異步情況下,組件都可以被方便的調用。
          • 可擴展性
            組件可被簡單的被替換。既有的服務可被用來創建新的解決方案(自下而上),也可業務建模和開發(自上而下)。
          • 生產率
            SCA可讓你專心于分析業務邏輯,而不需要過多的去擔心系統架構。SCA簡化了所有開發者的使用體驗(包括J2EE和集成開發者)。

          SCA組件實現

          SCA的基本的組成部分是組件實現。 當你編寫SCA代碼時,你通常正在寫一個組件的實現或者將被這樣的組件使用的代碼。 一個組件通常由下列屬性描述:

          • 服務:描述了該類型的組件所能提供的功能;
          • 引用:描述了該類型的組件相關功能的依賴性;
          • 屬性:定義了配置參數,控制程序邏輯如何實現,例如,使用何種貨幣;
          • 策略:描述了組件行為策略,主要有兩種策略:
            • 實現策略:對組件實現施加影響,例如:事務、監視以及日志;
            • 互動策略:定義組件件如何互動,例如:安全;

          一個典型的組件實現可以用下圖表示:

          一個組件可以使用任何用戶想要的編程語言去實現,例如用BPEL去實現業務流程控制,XSL-T實現轉換,RUBY來編寫腳本,也可以使用純JAVA。這些服務、引用、屬性以及策略如何去定義界定了一個組件的是具體實現類型。

          SCA組件實現

          一個組件是配置了的組件實現的實例,同一個實現可被不同組件使用,SCA生存在一個復合的環境中。

          SCA集成

          單個組件可獨立使用,也可被組合起來作為一個合成組件使用。一個合成組件不是代碼,而是由一個或多個組件集成起來作為一個整體提供服務的。合成作為 一種解決方案,例如信用檢查組合。合成方案也可以在一個更大規模的解決方案中使用,例如信用檢查可能是一個訂單處理組合中的一部分,一個復合構建像一個組 件一樣具有同樣的特性,它提供服務,包含對其他組件的引用,并且可以配置成像單獨組件那樣使用屬性和策略。在下面的例子中,你可以看到一個計算復合組件, 它包含對四個組件的引用:加,減,乘,除。

          配置信息使用服務組件定義語言(SCDL)定義在.composite 文件中。例如, calculator.composite 里定義了計算復合組件對其他組件的引用信息。

           SCA Domain(域)

          這些組件無論獨立還是集成,全部都是可在不同環境下使用多次 的可重用單元。一個合成組件,連帶它的配置信息,被打包到一個叫做contribution的部署單元部署到域。資源可以在不同contributions間重用,比如:JAVA類、XSD文件、WSDL文件等等。

          一個SCA域是一個完整的運行配置,可能分布于一系列互聯的的節點運行,域配置的整體布局,是服務依賴、屬性、策略的配置。一個域是運行著的系統, 或者一組互相協作在一起工作工作的組件的邏輯視圖,它們通過SCA線路彼此連接。當它實際的用于一個SCA環境的時候,合成組件實例化。

          SCA域非常靈活,可以很小也可以很大:

          • 一個很小的域,可能是一個在測試環境內的ide內
          • 中型域可能是一個單一的服務器還是小型集群,支持單一應用
          • 大型的域可以描述一個部門或公司的全部服務

          在一個大型域可能會有各種策略,定義組件可以在何處運行,以及它們如何連接到對方或對外服務。然而,在開發過程中人們不會關注這些。代碼被打包以供部署。Tuscany SCA Java 支持以JAR包或者文件的形式部署。

          下面是一個有兩個contribution的域額度例子:

          <全文完>

          以上文章翻譯自Tuscany官網的SCA快速入門部分,原文:

          http://incubator.apache.org/tuscany/quick-guide-to-sca.html

          posted on 2008-04-27 21:38 gembin 閱讀(476) 評論(0)  編輯  收藏 所屬分類: SCASOA

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊

          收藏夾(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

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          free counters
          主站蜘蛛池模板: 东山县| 门源| 乌鲁木齐县| 阿克陶县| 垦利县| 兴化市| 汉沽区| 贵阳市| 柳林县| 高州市| 油尖旺区| 云安县| 宣武区| 嵊州市| 会昌县| 宜宾市| 潮州市| 四川省| 宜都市| 冷水江市| 甘肃省| 留坝县| 尼木县| 呈贡县| 万宁市| 平湖市| 深州市| 芒康县| 灵川县| 休宁县| 崇信县| 安仁县| 玉田县| 阿坝县| 宁城县| 临桂县| 班玛县| 河津市| 莱阳市| 信宜市| 泸定县|