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

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

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

    posts - 6,  comments - 9,  trackbacks - 0
      2006年11月10日

    這段時(shí)間看了不少的文章都是關(guān)于 SCA OSGi 之間比較的。且不論他們之間到底有沒有關(guān)系,我們來看看他們的定義

    SCA

    ?????? 服務(wù)構(gòu)件架構(gòu) (Service Component Architecture) 是一套規(guī)范,它描述了采用面向服務(wù)的體系結(jié)構(gòu)來搭建應(yīng)用和系統(tǒng)時(shí)的模型。 SCA 擴(kuò)展并完善了以前實(shí)現(xiàn)服務(wù)的方法,并且 SCA 構(gòu)建在開放的標(biāo)準(zhǔn)之上,

    例如: Web Service

    服務(wù)構(gòu)件架構(gòu) SCA Service Component Architecture )為建設(shè)基于面向服務(wù)的體系結(jié)構(gòu)的應(yīng)用和系統(tǒng)提供了一種編程模型。這基于一種觀點(diǎn),即業(yè)務(wù)功能以一系列服務(wù)的形式被對外提供出來,然后它們被組合在一起去實(shí)現(xiàn)滿足特定業(yè)務(wù)需求的解決方案。這些復(fù)合的應(yīng)用,可以包含專門為此應(yīng)用程序創(chuàng)建的新服務(wù),也可以包含來自已有的系統(tǒng)和應(yīng)用程序的業(yè)務(wù)功能,重復(fù)利用就像其中的一部分一樣。 SCA 即為組合服務(wù)提供了模型,也為服務(wù)構(gòu)件的創(chuàng)建,包括在 SCA 組裝中重用已有應(yīng)用系統(tǒng)的功能提供了模型。

    ?

    OSGi

    ?????? OSGi 是什么, OSGi 是一種服務(wù)運(yùn)行平臺。通過實(shí)現(xiàn)能夠提供服務(wù)的符合 OSGi 規(guī)范的組件,用戶可以將其組件發(fā)布到 OSGi 運(yùn)行平臺,供用戶和其他組件使用。 OSGi 組件提供的服務(wù)具有兩個層面的含義:系統(tǒng)層面,即一個組件為其他組件提供服務(wù),這些服務(wù)體現(xiàn)為 Java 接口的實(shí)現(xiàn);業(yè)務(wù)層面,即一個組件為外部系統(tǒng)或用戶提供某種業(yè)務(wù)服務(wù)實(shí)現(xiàn)。

    ?

    從概念看我們可以很快發(fā)現(xiàn)他們的相同點(diǎn)和不同點(diǎn)。

    ???????? 他們都是一種組件模型,而且是面向服務(wù)的編成模型,都對服務(wù)組件模型作了相應(yīng)的定義。在兩種模型中都有“模塊”,“組件”,“服務(wù)”這 3 種共同的概念。我們分別從這三種感念來看看他們之間的差別

    模塊:

    ???????? 可能 OSGi 對于模塊的概念定義的更完善一點(diǎn),支持模塊的動態(tài)更新和依賴,而 SCA 對于模塊的概念中沒有涉及動態(tài)更新的概念 ( 實(shí)際如果把 SCA 中的模塊映射到 JEE 中的 EAR 塊就可以做到了 ) ,對于模塊間依賴關(guān)系的定義也沒有 OSGi Export/import 定義的完美,對于一個包的引用,要存在 2 個不同的副本,至少 WPS IBM SCA 的實(shí)現(xiàn))中是這樣。所以說模塊的定義 OSGi 要比 SCA 要完善,實(shí)際上這樣是兩種模型出發(fā)點(diǎn)是完全不同的, OSGi 設(shè)計(jì)之初主要是面向網(wǎng)絡(luò)設(shè)備的,最后被 Eclipse 所采用才為大家所知的,而 SCA 從一開始就是面向企業(yè)級應(yīng)用的,所以這方面沒有 OSGi 定義的完善。模塊的定義 OSGi 是在 MANIFEST.MF 文件中通過元數(shù)據(jù)定義的,而 SCA 是在 sca.module 文件中定義的 xml 格式。從這點(diǎn)上我們就可以看出來, OSGi 只能是在 java 平臺上(他的規(guī)范中說明也是只適合 java 平臺的,規(guī)范的 0layer 定義了它的最小 runtime ),而 SCA 是一種跨平臺的規(guī)范,它不依賴于平臺,你可以是 Java 環(huán)境也可以 C++ 環(huán)境。

    ?

    ???????? 對于組件的概念,個人感覺 OSGi 是在 DS OSGI R4 Declarative Services )出來以后才有了比較定性的定義,而 SCA 從一開始就非常強(qiáng)調(diào)組件的定義,對于 SCA 組件可以是一個 webservice ,一個 java 對象,一個有限狀態(tài)機(jī)中的規(guī)則對象,也可以是一個 BPEL 流程對象,還可以一個人工干預(yù)的工作流對象,更可以是許多組件的組合對象,這一點(diǎn) OSGi 組件是做不到,也不要想 OSGi 能夠做到,因?yàn)樗麄兊脑O(shè)計(jì)出發(fā)點(diǎn)根本是不同的,不要把企業(yè)級應(yīng)用的東西強(qiáng)加到 OSGi 中來,在 OSGi 中的組件可以發(fā)布 / 查找服務(wù), SCA 也可以這么做,對于服務(wù)的引用, OSGi 只能是在 single JVM 中,不要怪 OSGi 要知道他當(dāng)初設(shè)計(jì)的目標(biāo)就是網(wǎng)絡(luò)設(shè)備,不用考慮企業(yè)級應(yīng)用中的分布式,服務(wù)質(zhì)量什么的。但是組件概念上 SCA 有一點(diǎn)還是弱于 OSGi OSGi 對服務(wù)的引用可以做到動態(tài)更新,一個服務(wù)改變了,它可以動態(tài)的或者是靜態(tài)的更新應(yīng)用它服務(wù)的組件對象,這一點(diǎn)在網(wǎng)絡(luò)設(shè)備中是非常重要的,但是在 SCA 這種企業(yè)級應(yīng)用中到底需不許多要我們還需要考慮,畢竟如果我們是面向接口編成,而不用關(guān)心細(xì)節(jié)是什么,你的服務(wù)再怎么更新,只要我們的接口不變就不會用什么問題。

    ???????? 而服務(wù),最大的差別可能就是 OSGi 是在 single JVM 內(nèi)的所以對于服務(wù)的引用永遠(yuǎn)都是直接的內(nèi)存引用吧,而 SCA 在服務(wù)的引用上附加了 Binding 的概念也就多了一個協(xié)議的選擇層,很象 jmx distributed layer SCA 對于服務(wù)的 Export/Import 都需要 Binding 一個具體的實(shí)現(xiàn),你的服務(wù)可以通過 WebService 來發(fā)布,也可以通過 RMI JMS 等等來發(fā)布。這一點(diǎn)是 SCA 的設(shè)計(jì)出發(fā)點(diǎn)來決定的(面向企業(yè)級的應(yīng)用開發(fā))。對于服務(wù)的調(diào)用,不僅僅是必須在環(huán)境內(nèi)的調(diào)用,也可以在環(huán)境外進(jìn)行調(diào)用,比如你在一個 JSP 頁面想要調(diào)用 SCAExport 出來的服務(wù),你就可以通過 SCA 提供的 Tools 直接調(diào)用, OSGi 是不支持環(huán)境外調(diào)用的。

    ?

    ???????? 從以上來看 OSGi SCA 除了基于同樣的設(shè)計(jì)方法,其他的不具什么可以比較性,因?yàn)樗麄冊O(shè)計(jì)的根本意圖上是不同的,一個是用在單一個的 JVM 中的面向網(wǎng)絡(luò)設(shè)備或者像 Eclipse 這種應(yīng)用,不需要考慮服務(wù)質(zhì)量,服務(wù)的可靠性,分布式,等等。而 SCA 從誕生之初就為了解決 SOA 應(yīng)用中的規(guī)范性,而且與他同級別的還有 SDO 來定義服務(wù)的數(shù)據(jù)對象,這一點(diǎn)也是 OSGi 中沒有定義的。

    ???????? 有人會說 OSGi 最近正在定義在企業(yè)級應(yīng)用的規(guī)范( EEG ), Eclipse RSP 也在做相應(yīng)的努力。但是如果是在 SCA 之外另開辟出一個新的模型空間,個人覺得不太可能,畢竟 SCA IBM BEA Oracle Sap 這些廠商在認(rèn)識到許多現(xiàn)有技術(shù)的不足之后總結(jié)出來的設(shè)計(jì)模型,是這些廠商經(jīng)驗(yàn)的積累,就像 OSGi OSGi 組織在網(wǎng)絡(luò)設(shè)備應(yīng)用中的積累的一樣,這兩種技術(shù)只能出現(xiàn)互補(bǔ)性,再說 SCA 模型的定義充分體現(xiàn)的軟件界一貫的規(guī)則“重用”,不管是 IBM WPS ,還是 Apache Tuscany 都是以現(xiàn)有平臺為出發(fā)點(diǎn)設(shè)計(jì)的,是把 SCA 這種模型與現(xiàn)實(shí)技術(shù)做一定的映射,例如,如何實(shí)現(xiàn)異步調(diào)用就可以以借助 JEE 環(huán)境中的消息或者 Corba 中消息機(jī)制。

    ???????? 真希望看到 OSGi EEG 組織和 SCA 規(guī)范定制組織合作的場景。這樣不僅可以讓組件服務(wù)思想得到升華,還能為企業(yè)級開發(fā)開辟一個新的天地。

    ???????? 以上觀點(diǎn)純屬個人感觸,不代表任何特別的言論,其實(shí)最近正打算吧原有的平臺遷移到 OSGi 平臺上,在研究過程中發(fā)現(xiàn)了許多有趣的地方。

    ???????? 歡迎大家一起討論 OSGi SCA 技術(shù)。

    posted @ 2006-11-10 17:20 我愛夏花,更愛秋葉 閱讀(2407) | 評論 (3)編輯 收藏
    <2006年11月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    又回到了夏花的時(shí)節(jié)了!我又回來了:)

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    不錯的blog

    不錯的網(wǎng)站

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品伦理熟女国产一区二区| 亚洲一区二区三区偷拍女厕| 亚洲第一香蕉视频| 久久永久免费人妻精品下载| 亚洲国产一区在线| 99久久人妻精品免费一区| 久久亚洲精品无码VA大香大香| 国产成人综合亚洲AV第一页 | 国产亚洲自拍一区| 青青操免费在线观看| 久久亚洲AV午夜福利精品一区| 99re免费在线视频| 亚洲男人天堂2022| 国产99视频免费精品是看6 | 日韩精品免费电影| 免费视频成人国产精品网站| 亚洲人成色7777在线观看不卡| 福利免费在线观看| 亚洲视频精品在线观看| 日韩毛片免费无码无毒视频观看| 亚洲AV无码专区在线电影成人 | 免费人妻精品一区二区三区| 中文字幕亚洲第一| 蜜臀AV免费一区二区三区| 亚洲激情视频图片| 亚洲午夜无码AV毛片久久| 最近免费最新高清中文字幕韩国| 在线a亚洲老鸭窝天堂av高清| 四虎影在线永久免费观看| 中文字幕版免费电影网站| 亚洲一欧洲中文字幕在线| 国产在线播放免费| 99爱在线精品视频免费观看9 | 久久亚洲精品无码VA大香大香| 黄色成人网站免费无码av| 午夜在线免费视频| 亚洲不卡中文字幕| 国产亚洲精品AA片在线观看不加载| 91嫩草免费国产永久入口| 国产精品亚洲综合| 在线观看亚洲一区二区|