国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
【轉(zhuǎn)】SCA與OSGi的分析比較
SCA與OSGi的分析比較
(2010-08-28 01:31:31)
標(biāo)簽:

sca

osgi

分析

比較

組件

模型

容器

service

it

分類: OSGI

本文轉(zhuǎn)自http://www.searchsoa.com.cn/showcontent_30365.htm

SCA和OSGi有著不同的提出背景和出發(fā)點(diǎn),SCA規(guī)范是為了企業(yè)應(yīng)用集成而制定,OSGi規(guī)范的初衷則是為移動(dòng)設(shè)備計(jì)算而制定的。由于二者的出發(fā)點(diǎn)不一樣,導(dǎo)致了兩個(gè)規(guī)范的側(cè)重點(diǎn)不一樣。但是隨著OSGi的成熟,OSGi聯(lián)盟于最近成立了企業(yè)專家組(EEG,Enterprise Expert Group),開(kāi)始帶領(lǐng)OSGi進(jìn)軍企業(yè)應(yīng)用領(lǐng)域,這將使得OSGi與SCA有了越來(lái)越多的交叉。因此,分析這兩種技術(shù),將有助于對(duì)這兩種技術(shù)的理解,并可以通過(guò)集成或借鑒對(duì)方來(lái)促進(jìn)這兩種技術(shù)的發(fā)展。下面我們將首先介紹這兩種技術(shù)的關(guān)注點(diǎn),然后對(duì)這兩種技術(shù)做分析比較。

  SCA和OSGi各自的關(guān)注點(diǎn)分析

  只有了解了SCA和OSGi的關(guān)注點(diǎn),我們才能更好的了解這兩種技術(shù)的應(yīng)用場(chǎng)景,也才能更為客觀的將這兩種技術(shù)做比較,下面討論下這兩種技術(shù)的各自關(guān)注點(diǎn)。

  SCA的關(guān)注點(diǎn)

  SCA的目的是成為構(gòu)建SOA應(yīng)用的編程模型,它的應(yīng)用領(lǐng)域是企業(yè)應(yīng)用集成領(lǐng)域。SOA雖然提了很多年,但到目前,在概念方面,各大廠商關(guān)于SOA也都有著不同的理解;在實(shí)現(xiàn)技術(shù)方面,也大都是在使用具體的Web Service,但Web Service是一種運(yùn)程調(diào)用技術(shù),對(duì)于如何開(kāi)發(fā)本地 SOA應(yīng)用中的服務(wù),目前也無(wú)統(tǒng)一認(rèn)知;在組件模型方面,目前也沒(méi)有統(tǒng)一的組件模型來(lái)裝配和管理服務(wù)。所以,當(dāng)前的SOA應(yīng)用開(kāi)發(fā)缺乏服務(wù)組件模型支持,缺乏從組件層次上來(lái)進(jìn)行服務(wù)聲明、發(fā)布、組裝以及定義互操作性。另外,基于企業(yè)應(yīng)用的特點(diǎn),不同的應(yīng)用系統(tǒng)可能有不同的實(shí)現(xiàn)技術(shù),如何能將這些采用不同的技術(shù)實(shí)現(xiàn)的功能發(fā)布為SOA中的服務(wù),并能夠更多的關(guān)注服務(wù)的聲明,而屏蔽底層的實(shí)現(xiàn),也是SOA應(yīng)用開(kāi)發(fā)中需要關(guān)注的一個(gè)問(wèn)題。

  而SCA通過(guò)一系列規(guī)范的定義,解決了上述問(wèn)題:組件裝配模型提供了對(duì)服務(wù)聲明、發(fā)布、組裝,并通過(guò)綁定功能,來(lái)屏蔽不同服務(wù)間的通信細(xì)節(jié);支持不同的編程技術(shù)作為服務(wù)組件的實(shí)現(xiàn),從而可以更好的將遺留系統(tǒng)封裝為系統(tǒng)中的服務(wù);策略框架同時(shí)提供了對(duì)應(yīng)用系統(tǒng)中QoS的支持,以保證企業(yè)應(yīng)用中的質(zhì)量需求。

  OSGi的關(guān)注點(diǎn)

  OSGi規(guī)范因?yàn)樽畛醯某霭l(fā)點(diǎn)是為移動(dòng)設(shè)備創(chuàng)建計(jì)算環(huán)境,因此更多的考慮了框架和服務(wù)在運(yùn)行時(shí)刻的動(dòng)態(tài)匹配等問(wèn)題。移動(dòng)設(shè)備通常都是在同一個(gè)嵌入式環(huán)境中工作,所OSGi不需要關(guān)心QoS,不需要支持多種不同的實(shí)現(xiàn)技術(shù),也不需要支持分布式調(diào)用。

  詳細(xì)比較列表和介紹

  在了解了SCA和OSGi的關(guān)注點(diǎn)之后,我們就可以對(duì)SCA和OSGi做一個(gè)詳細(xì)比較,下面先給出SCA和OSGi的異同點(diǎn)對(duì)比表,然后再針對(duì)各個(gè)比較項(xiàng),作相關(guān)分析。

  容器實(shí)現(xiàn)

  SCA規(guī)范的最初目的是成為SOA的編程模型,著重解決的是如何創(chuàng)建、組裝、部署和使用服務(wù),它是面向應(yīng)用開(kāi)發(fā)人員的,所以它并不關(guān)心如何去開(kāi)發(fā)支持SCA應(yīng)用運(yùn)行的容器。

  而 OSGi 規(guī)范因?yàn)樽畛醯某霭l(fā)點(diǎn)是為移動(dòng)設(shè)備創(chuàng)建計(jì)算環(huán)境,因此更多的考慮了框架和服務(wù)在運(yùn)行時(shí)刻的動(dòng)態(tài)匹配等問(wèn)題。所以,它首先關(guān)心的就是如何構(gòu)建一個(gè)運(yùn)行環(huán)境,以便能夠運(yùn)行 OSGi 應(yīng)用。

    目前來(lái)看,SCA規(guī)范中對(duì)SCA容器的實(shí)現(xiàn)尚沒(méi)有一個(gè)指導(dǎo)性的意見(jiàn),但業(yè)界有著基于OSGi構(gòu)建SCA容器的討論,這也是一種將OSGi集成到SCA中的一個(gè)比較好的方式。

  模塊定義

  在模塊的定義方面,SCA規(guī)范只是定義了SCA復(fù)合組件作為最小可部署單元,但并沒(méi)有定義個(gè)明確的打包格式要求,也沒(méi)有定義模塊的動(dòng)態(tài)更新和綁定以及模塊間的包依賴,更沒(méi)有定義模塊中的包的可見(jiàn)性。其實(shí)也可以說(shuō),SCA規(guī)范在模塊的定義方面幾乎沒(méi)有做工作,SCA規(guī)范著重定義了設(shè)計(jì)期的服務(wù)聲明和綁定。相比SCA規(guī)范,OSGi規(guī)范則定義了明確的模塊層,并在模塊層中定義了類加載機(jī)制、包的可見(jiàn)性、包依賴以及模塊的打包和描述文件格式。模塊化的定義目前引起了越來(lái)越多的重視,JCP正在制定Java的模塊化規(guī)范JSR277。

  組件實(shí)現(xiàn)語(yǔ)言/ 技術(shù)

  SCA組件的實(shí)現(xiàn)可以是Java、C++、BPEL、Spring、EJB、WebService等,而OSGi只支持Java語(yǔ)言實(shí)現(xiàn),這也是由于二者的出發(fā)點(diǎn)不同導(dǎo)致。OSGi應(yīng)用都是運(yùn)行在同一個(gè)JVM中,所以并不需要考慮多種實(shí)現(xiàn)技術(shù),而企業(yè)應(yīng)用中,則會(huì)有多種實(shí)現(xiàn)技術(shù),這就需要SCA能夠支持多種實(shí)現(xiàn)技術(shù)

  裝配模型和服務(wù)綁定

  SCA服務(wù)裝配模型是整個(gè)SCA規(guī)范中的核心,而OSGi在早期版本中并沒(méi)有服務(wù)裝配模型,在OSGi DS(Declarative Service)規(guī)范出來(lái)之后,OSGi才有了明確的組件裝配模型。

  SCA和OSGi的裝配模型都可以聲明和發(fā)布服務(wù),但SCA更偏重設(shè)計(jì)期的組件組裝,而且定義了靈活的組件裝配模型,特別是提供了可嵌套的組件裝配模型,可以由最小的原子組件組裝成一個(gè)大系統(tǒng),而OSGi則缺乏組件組裝模型。

  在服務(wù)綁定方面,SCA的服務(wù)綁定需要從兩個(gè)層次上看,在同一個(gè)復(fù)合組件內(nèi)部中的引用,如果沒(méi)有設(shè)定自動(dòng)連線,那它實(shí)際上采用的設(shè)計(jì)期綁定,因?yàn)樵谠O(shè)計(jì)期就需要指定所需要引用的組件及其服務(wù),這是因?yàn)镾CA不支持組件和服務(wù)的版本管理,所以在運(yùn)行期永遠(yuǎn)只有一個(gè)同名組件存在,所以也就沒(méi)必要支持運(yùn)行期綁定;在跨復(fù)合組件和跨域間的引用,SCA采用的是運(yùn)行期綁定,因?yàn)閺?fù)合組件是SCA的最小可部署單元,開(kāi)發(fā)人員可能會(huì)在運(yùn)行期重新部署同名的復(fù)合組件。這兩者的差異,相信也是由于目標(biāo)不同導(dǎo)致,OSGi容器作為一個(gè)嵌入式運(yùn)行環(huán)境,必然需要考慮到各種OSGi應(yīng)用的熱插拔和服務(wù)的動(dòng)態(tài)綁定,從而更重視運(yùn)行期的服務(wù)裝配,而SCA作為企業(yè)應(yīng)用,既需要考慮支持設(shè)計(jì)期服務(wù)綁定(其實(shí)就是目前廣泛應(yīng)用的利用構(gòu)造方法和set方法進(jìn)行依賴注入),也需要考慮跨復(fù)合組件和域間的動(dòng)態(tài)引用。

  OSGi核心規(guī)范中并沒(méi)有定義裝配模型,OSGi DS規(guī)范作為補(bǔ)足性規(guī)范提出了面向服務(wù)的裝配模型。OSGi DS中的裝配模型并不支持在設(shè)計(jì)期綁定服務(wù),而是在運(yùn)行期通過(guò)服務(wù)描述來(lái)查找并綁定服務(wù),基于這種綁定策略,會(huì)有一定的效率問(wèn)題,但是將極大的提高系統(tǒng)的靈活性和可擴(kuò)展性。

  生命周期管理

  SCA規(guī)范由于忽視運(yùn)行期SCA系統(tǒng)的變化需求,從而沒(méi)有定義組件的生命周期,但不同的組件實(shí)現(xiàn)技術(shù)可能會(huì)有其自己的生命期周期定義,比如在SCA Java版的客戶和實(shí)現(xiàn)模型規(guī)范中,它定義了兩個(gè)用于組件初始化和銷毀時(shí)需要調(diào)用的方法,供SCA組件在初始化和銷毀時(shí)作一些預(yù)處理。相比SCA,OSGi則提供了完善的生命周期管理。

  QoS

  由于OSGi規(guī)范是面向在同一個(gè)JVM中運(yùn)行的網(wǎng)絡(luò)設(shè)備以及像Eclipse這樣的插件系統(tǒng),所以在OSGi中的服務(wù)不需要QoS問(wèn)題,也不需要支持遠(yuǎn)程服務(wù)、回調(diào)服務(wù)和會(huì)話服務(wù)。SCA規(guī)范則是面向企業(yè)集成領(lǐng)域,所以SCA規(guī)范需要考慮QoS、分布式訪問(wèn)、服務(wù)的回調(diào)和會(huì)話等問(wèn)題。

  依賴管理及其它

  OSGi規(guī)范支持運(yùn)行期的服務(wù)和包依賴,而SCA規(guī)范只支持設(shè)計(jì)期的服務(wù)依賴,這使得SCA系統(tǒng)與OSGi系統(tǒng)相比,欠缺靈活性和可擴(kuò)展性。

  從現(xiàn)有的應(yīng)用來(lái)看,OSGi更多的是用來(lái)作為一個(gè)技術(shù)框架來(lái)開(kāi)發(fā)一個(gè)產(chǎn)品,如開(kāi)發(fā)SCA容器等,而SCA規(guī)范更多的是被用在面向企業(yè)應(yīng)用的組件的組裝規(guī)范。

  由于SCA不強(qiáng)調(diào)在運(yùn)行期的服務(wù)管理,服務(wù)管理應(yīng)該會(huì)利用其它軟件來(lái)實(shí)現(xiàn),所以它也沒(méi)有提供版本管理機(jī)制,而OSGi則提供了版本管理機(jī)制,拿Eclipse而言,我們可以裝多個(gè)不同版本的同一個(gè)插件,而不會(huì)影響系統(tǒng)的使用。

  限于OSGi最初是為了為移動(dòng)設(shè)備而準(zhǔn)備,所以O(shè)SGi服務(wù)只能在同一個(gè)JVM中調(diào)用,且不能支持遠(yuǎn)程調(diào)用,這是其企業(yè)應(yīng)用領(lǐng)域的一大缺點(diǎn),但目前,已經(jīng)有很多關(guān)于分布式OSGi這方面的討論。

  通過(guò)以上分析,可看出SCA和OSGi有著很多明顯的區(qū)別,而這些不同其實(shí)也造就了他們之間有著很強(qiáng)的互補(bǔ)性。下面將簡(jiǎn)單介紹下,如何將 OSGi集成到SCA中來(lái),以便利用OSGi的特性來(lái)增強(qiáng) SCA 應(yīng)用。

  SCA 與 OSGi 的集成探討

  正如上文介紹,SCA和OSGi由于最初定位的不同,造成了兩者之間有諸多不同之處,但兩者實(shí)際上更多的是一種互補(bǔ),而不是競(jìng)爭(zhēng)。基于當(dāng)前已有的規(guī)范和實(shí)現(xiàn),SCA和OSGi的集成工作可以在下面三個(gè)方面展開(kāi):1. 可以充分利用已有的OSGi應(yīng)用,并能夠?qū)SGi應(yīng)用中的服務(wù)發(fā)布成為SCA的服務(wù);2. 能夠讓SCA通過(guò)引用來(lái)調(diào)用外部OSGi服務(wù),這也是另外一種可以讓OSGi服務(wù)變?yōu)镾CA服務(wù)的途徑;3. 基于OSGi構(gòu)建SCA容器。下面簡(jiǎn)單介紹下,如何在這三個(gè)方面來(lái)集成SCA和OSGi。

  將OSGi集成到SCA中

  使用OSGi作為SCA的組件實(shí)現(xiàn)

  一種能夠充分利用OSGi特性的方法,是將OSGi作為SCA服務(wù)組件的實(shí)現(xiàn),而SCA的可擴(kuò)展模型也支持OSGi作為SCA服務(wù)組件實(shí)現(xiàn),這樣就可以將OSGi服務(wù)作為SCA服務(wù)發(fā)布,通過(guò)這種途徑,可以將OSGi服務(wù)變成可支持遠(yuǎn)程訪問(wèn)的SCA服務(wù),從某種程度上克服OSGi服務(wù)不支持跨OSGi容器訪問(wèn)這種缺陷。雖然目前OSOA組織并沒(méi)有發(fā)布將OSGi作為組件的實(shí)現(xiàn)的規(guī)范,但目前Apache Tuscany項(xiàng)目已經(jīng)嘗試將OSGi作為SCA的服務(wù)組件實(shí)現(xiàn)。

  使用SCA OSGi綁定

  SCA和OSGi集成的第二個(gè)方面是SCA應(yīng)用能夠通過(guò)引用來(lái)訪問(wèn)OSGi服務(wù),SCA應(yīng)用可以通過(guò)綁定來(lái)聲明所需要訪問(wèn)服務(wù)的協(xié)議,目前OSOA組織已經(jīng)發(fā)布了JMS、JCA、Web Service、EJB這幾種綁定協(xié)議,同將OSGi作為SCA的組件實(shí)現(xiàn)一樣,雖然OSOA目前沒(méi)有發(fā)布OSGi綁定規(guī)范,但 Apache Tuscany項(xiàng)目目前已經(jīng)嘗試支持OSGi綁定。

  使用OSGi構(gòu)建SCA容器

  另一種可以將OSGi和SCA進(jìn)行集成的方式,就是基于OSGi規(guī)范來(lái)開(kāi)發(fā)SCA容器。這種方式可以最大化的將OSGi集成到SCA中來(lái)。首先,由于利用OSGi來(lái)構(gòu)建SCA容器,這就可以較簡(jiǎn)單的做到前兩個(gè)方面的集成;其次,可以將OSGi服務(wù)注冊(cè)中心以及SCA服務(wù)注冊(cè)中心合并為一個(gè),甚至可以做到在同一個(gè)SCA域中,支持SCA應(yīng)用通過(guò)SCA綁定的方式來(lái)訪問(wèn)OSGi服務(wù)。

  集成OSGi后的SCA將有更多的優(yōu)點(diǎn),下面作一個(gè)簡(jiǎn)單討論。

  集成OSGi后的SCA的優(yōu)點(diǎn)

  SCA和OSGi是互補(bǔ)的,通過(guò)以上這三種方式來(lái)將OSGi集成到SCA中,可以使SCA具有以下幾個(gè)方面的特點(diǎn):1.支持OSGi這種主流技術(shù)作為服務(wù)組件的實(shí)現(xiàn),給開(kāi)發(fā)人員提供了更多的技術(shù)選擇;2.可以更容易的通過(guò)SCA的裝配模型,將已有的OSGi服務(wù)發(fā)布為 SCA 服務(wù),從而實(shí)現(xiàn) OSGi 服務(wù)的遠(yuǎn)程調(diào)用支持;3.可以利用OSGi在模塊化、動(dòng)態(tài)性方面的優(yōu)勢(shì)來(lái)彌補(bǔ)SCA在這兩方面的不足。

  目前業(yè)界關(guān)于SCA和OSGi集成的討論也越來(lái)越多,可以預(yù)見(jiàn),這兩種技術(shù)可以通過(guò)互補(bǔ)的方式,來(lái)促進(jìn)這兩種技術(shù)的發(fā)展。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SCA 的演化及與 OSGi 的分析比較
用NetBean6開(kāi)發(fā)OSGi應(yīng)用
SOA是中間件發(fā)展趨勢(shì) 產(chǎn)品向微內(nèi)核容器發(fā)展
SOA 快速指南 1 2 3(轉(zhuǎn)IBM developerWorks 中國(guó))
ChrisRc
OSGi是什么:Java語(yǔ)言的動(dòng)態(tài)模塊系統(tǒng)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服