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

           

          SCA java編碼入門

           

          調出單機的Tuscany運行時

          當開始考慮Tuscany SCA java運行時環境的時候,理解高層調用是什么和為什么是非常有用的。當前關于”Domain”對象有些實現,該對象用于啟動Tuscany

          DefaultSCADomain –一個簡單的域實現,該實現隱藏了大部分的細節?,F在為止用于大多數的測試用例。

          EmbeddedSCADomain – 用于將Tuscany嵌入到其他的系統中

          HotUpdateSCADomain - 當他們改變的時候會自動裝載的例子

          EmbeddedNode - 分布式域中的一個節點

          一般認為EmbeddedSCADomain在調出運行時給出了一個必要的好的入口點。這個類在svnhttp://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java)并且測試程序可在(http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java)中看到。

           

          EmbeddedSCADomain類提供了將運行時的所有部件都集中在單個虛擬機里的SCA domain的實現。創建嵌入式domain很直接:

           

          domain = new EmbeddedSCADomain(cl, domainName);

          domain.start();

           

          domain上調用start方法會創建所有的運行時工件。特別地,所有的運行時擴展,比如implementation , binding , databinding , host會使用javaMETA-INF/services機制被加載和初始化。

          接下來要做的就是加載SCA應用到域中。SCA應用被作為contribution部署。Contributioncomposite文件(該文件是一個在SCA裝配規范中定義的結構)所需要的所有資源集合在composite文件中。這些資源可以是java,xml,xsd,swdl等等。EmbeddedSCADomain為讀取contribution提供了一個contribution服務。這里有一個獲取某個由URL標識的contributioncontribution服務的例子。

          ContributionService contributionService = domain.getContributionService();

          Contribution contribution = contributionService.contribute("http://calculator",

                                                                     contributionURL,

                                                                     null, //resolver,

                                                                     false);

          這個會在內存中生成一個裝配模型(詳情請查看我翻譯的裝配模型規范)。你能通過詢問最終生成的contribution來獲取模型的可部署部件。

          Composite composite =contribution.getDeployables().get(0);

          可部署模型的跟是composite。該composite包含了將運行于Tuscany運行時環境的組件層次信息。以下的各個步驟讓邏輯裝配模型變成可運行的工件,以便讓啟動組件。

          第一步,將模型composite添加到頂層的本地域控制中。

          Domain.getDomainComposite().getIncludes().add(composite);

          然后是將邏輯模型的各個部件連接到一起的構建階段,不如對服務的引用等等。

          Domain.getCompositeBuilder().build(composite);

          最后基于邏輯模型創建運行時工件,這包括服務的endpoint和客戶端。

          Domain.getCompositeActivator().activate(composite);

          一旦所有的工作準備就緒,域中的每個composite將獨立啟動。其實這個階段,支持web serviceservlet都已經部署了。

          for (Composite composite : domain.getDomainComposite().getIncludes()) {

              Domain.getCompositeActivator().start(composite);

          }

           

          分布式運行時

           

          當域是分布式地跨越多個VM的時候,就需要做這步。一旦邏輯模型已經經過了構建階段,有一步是提供給運行時信息的,以便讓遠程服務能自動地解決跨網絡的問題。也就是說我們將裝配模型中的所有服務和引用連起來構成一個分布域的邏輯概念。

          distriutedDomain.addDistributedDomainToBindings(composite);

          posted on 2008-04-27 22:16 gembin 閱讀(626) 評論(0)  編輯  收藏 所屬分類: SCA 、SOA

          導航

          統計

          常用鏈接

          留言簿(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
          主站蜘蛛池模板: 颍上县| 贺兰县| 钦州市| 措勤县| 武功县| 四川省| 曲阳县| 南雄市| 新和县| 武义县| 东明县| 循化| 高安市| 蒲江县| 行唐县| 繁峙县| 南岸区| 简阳市| 富民县| 武定县| 南华县| 彩票| 武功县| 中山市| 内黄县| 定远县| 保定市| 玉树县| 鹤峰县| 太仆寺旗| 建水县| 岳西县| 咸阳市| 莲花县| 玉门市| 肥城市| 东莞市| 铜川市| 运城市| 宁都县| 鱼台县|