<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    放翁(文初)的一畝三分地

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      210 隨筆 :: 1 文章 :: 320 評(píng)論 :: 0 Trackbacks
     在路上---基于SCA規(guī)范的應(yīng)用服務(wù)框架成長記(二)(連載中...)    文章指數(shù):0  CSDN Blog推出文章指數(shù)概念,文章指數(shù)是對(duì)Blog文章綜合評(píng)分后推算出的,綜合評(píng)分項(xiàng)分別是該文章的點(diǎn)擊量,回復(fù)次數(shù),被網(wǎng)摘收錄數(shù)量,文章長度和文章類型;滿分100,每月更新一次。
     二.背上鋪蓋帶上干糧SCA服務(wù)框架之路啟程

    記得我在推廣SCA規(guī)范的時(shí)候,常常和Spring作比較,Spring廣為流傳很大的一點(diǎn)就是在于它的IOC理念,SCA中也很徹底貫徹了這點(diǎn)(這點(diǎn)應(yīng)該是個(gè)趨勢,包括OSGI等等開源框架),但是也正是這個(gè)理念,在實(shí)際運(yùn)用當(dāng)中會(huì)帶來困擾。當(dāng)開發(fā)系統(tǒng)越來越大,一個(gè)工廠里面的bean組裝復(fù)雜度不斷增加,龐大的spring bean factory就好比一個(gè)大鍋?zhàn)樱絹碓蕉嗯渲媒豢椩谝黄穑罱K模塊與模塊之間無法分割,架構(gòu)師雖然規(guī)劃了很好的目錄結(jié)構(gòu)以及配置文件,但是在運(yùn)行期的結(jié)構(gòu)依然是耦合性極強(qiáng),難以分割的業(yè)務(wù)模塊邏輯團(tuán)。這樣的系統(tǒng)所面臨的問題就像當(dāng)初OO要解決的問題一樣,只是上升到了業(yè)務(wù)級(jí)別:業(yè)務(wù)耦合性強(qiáng),需求變更適應(yīng)能力弱,維護(hù)成本高,無法剝離較為獨(dú)立的業(yè)務(wù)組件提供復(fù)用,模塊與模塊之間牽制性強(qiáng)等。

    SCA規(guī)范中描述的元數(shù)據(jù)就是CompositeComponent,在代碼級(jí)別的概念中Component就是Springbean,Composite可以看作Spring bean factory(其實(shí)使用Spring也可以實(shí)現(xiàn)SCA,只是如果使用factory來作為composite那么可能在性能上和可擴(kuò)展性上還有一些問題)。在業(yè)務(wù)級(jí)別的設(shè)計(jì)中Composite就是業(yè)務(wù)模塊,Component就是業(yè)務(wù)內(nèi)部的業(yè)務(wù)實(shí)現(xiàn)邏輯單元,同時(shí)引入了ServiceReference的概念,將服務(wù)和引用單獨(dú)作為內(nèi)部邏輯單元,同時(shí)定義了ServiceReference的兩種級(jí)別(CompositeComponent),達(dá)到了業(yè)務(wù)實(shí)現(xiàn)作用域的控制,真正做到了業(yè)務(wù)組件級(jí)別的封裝。

    應(yīng)該來說,除了開放性的特質(zhì)以外,業(yè)務(wù)模塊封裝的特質(zhì)是SCA的模塊化最突出的優(yōu)勢,也是解決系統(tǒng)日益龐大情況下,如何降低維護(hù)成本,如何適應(yīng)需求變更,如何提高開發(fā)效率的有效手段。但就是規(guī)范中的這一點(diǎn),Tuscany的實(shí)現(xiàn),不得不讓我由原來的基于Tuscany架構(gòu)二次擴(kuò)展開發(fā)的想法做了轉(zhuǎn)變,同時(shí)在后面對(duì)于服務(wù)框架的需求不斷發(fā)展的情況下,對(duì)于Tuscany在服務(wù)框架中的定位不斷的作著改變。

    Tuscany在業(yè)務(wù)模塊封裝上面究竟有什么問題呢?在Tuscany中提供給第三方嵌入的SCA容器EmbeddedSCADomain結(jié)構(gòu)如下:

                                                                                 

    EmbeddedSCADomain運(yùn)行期結(jié)構(gòu)圖

           上面的圖展示了EmbeddedSCADomain如何載入外部的Composite到容器中,這里所用的一個(gè)技巧,就是include,Composite可以include多個(gè)Composite。下圖是一個(gè)很簡陋的活動(dòng)圖,主要就是大致描述了EmbeddedSCADomain是如何加載所有的Composites的。這里面省略了Tuscany對(duì)于插件擴(kuò)展的載入以及一些細(xì)節(jié)方面的處理。

    EmbeddedSCADomain啟動(dòng)活動(dòng)圖

           根據(jù)上面兩個(gè)圖就出現(xiàn)了兩個(gè)比較大的問題:

    1.       首先EmbeddedSCADomain所有的Composite和資源都是根據(jù)固定的URI載入,但是這個(gè)或者是目錄或者是jar,但是如果是目錄中的jar將不會(huì)去解析,那么對(duì)于我們業(yè)務(wù)模塊當(dāng)前的開發(fā)要求,各個(gè)業(yè)務(wù)開發(fā)組會(huì)把不同的Composite最后打包到各個(gè)業(yè)務(wù)模塊的jar中,這樣就沒有辦法通過一個(gè)EmbeddedSCADomain去裝載,互通就更加說不上了。不過這個(gè)問題不是根本性的問題。而后面2的問題是根本性的原則問題。

    2.       Tuscany讓所有的Composite互通,是將所有的composite通過include到一個(gè)domainComposite中,在build的過程中將所有的Composite的內(nèi)部components克隆到了domainComposite中,這樣其實(shí)所有的Component就在一個(gè)Composite中,也就很方便的互通了。這樣SCA框架的業(yè)務(wù)模型封裝形同虛設(shè),和spring一樣一個(gè)大的factory沒有什么區(qū)別,丟失了最大的一個(gè)優(yōu)勢。同時(shí)serivcereference都沒有兩種級(jí)別之分,業(yè)務(wù)模塊化就無法實(shí)現(xiàn)和控制。

    就這樣兩個(gè)問題,讓我需要考慮重新基于Tuscany的部分內(nèi)核機(jī)制來重新構(gòu)建容器裝載,解析,組裝機(jī)制。下圖是ASF(Application Service FrameWork)的運(yùn)行期結(jié)構(gòu)設(shè)計(jì)圖

    ASF(Application Service FrameWork)的運(yùn)行期結(jié)構(gòu)設(shè)計(jì)圖

    問題一的解決方案:

    ASF中定義了真正包容所有CompositeService Container,創(chuàng)建的過程中,通過搜索Classpath中所有的有composite-load-config.xml文件的jar,composite-load-config.xml定義了需要裝載的Composite,然后resolve這些jar的所有的resource,根據(jù)定義要加載的內(nèi)容動(dòng)態(tài)加載所有需要加載的composite。

    問題二的解決方案:

           基于問題一的解決,然后在Container中記錄各個(gè)composite的必要信息和狀態(tài),然后按照不同級(jí)別的servicereference組裝所有的composite,最后激活所有的composite。

    這兩個(gè)問題的解決,也標(biāo)志著ASF的基礎(chǔ)框架形成,后續(xù)的戰(zhàn)斗真正開始。

    更多內(nèi)容可訪問我的blog:http://blog.csdn.net/cenwenchu79

    posted on 2007-11-21 08:03 岑文初 閱讀(1235) 評(píng)論(1)  編輯  收藏

    評(píng)論

    # re: 在路上---基于SCA規(guī)范的應(yīng)用服務(wù)框架成長記(二)(連載中...) 2007-11-21 16:27 thoth
    圖不清楚,能把圖發(fā)給我嗎,謝謝
    w_dasheng@yahoo.com.cn  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久精品无码专区免费| 国产亚洲av片在线观看18女人| 99久久免费国产精品热| 亚洲最大无码中文字幕| 亚洲av最新在线网址| 国产在线19禁免费观看| 在线视频精品免费| 久草免费福利视频| 一个人免费播放在线视频看片| 亚洲综合激情五月丁香六月| 亚洲人成在线影院| 国产亚洲精品va在线| 免费永久看黄在线观看app| 成人毛片免费观看视频| 一级毛片在线观看免费| 青青操在线免费观看| 美女无遮挡免费视频网站| 国产亚洲精品影视在线| 亚洲国产精品yw在线观看| 亚洲高清在线视频| 亚洲精品成人片在线播放| 亚洲黄黄黄网站在线观看| 国产aa免费视频| 日韩a级毛片免费视频| 精品国产免费观看久久久| 成人无码区免费A片视频WWW| 久久WWW免费人成一看片| 一级毛片免费观看不卡视频| 嫩草影院在线播放www免费观看| 西西人体免费视频| 91视频免费观看高清观看完整| 国产黄片不卡免费| eeuss在线兵区免费观看| 亚欧国产一级在线免费| 国产精品美女免费视频观看| 久久久久女教师免费一区| 2022国内精品免费福利视频| 美女网站在线观看视频免费的 | 一个人免费观看视频在线中文| 羞羞视频免费观看| 免费视频精品一区二区|