欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

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

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

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

sca

osgi

分析

比較

組件

模型

容器

service

it

分類(lèi): OSGI

本文轉自http://www.searchsoa.com.cn/showcontent_30365.htm

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

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

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

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

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

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

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

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

  詳細比較列表和介紹

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

  容器實(shí)現

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

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

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

  模塊定義

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

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

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

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

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

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

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

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

  生命周期管理

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

  QoS

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

  依賴(lài)管理及其它

  OSGi規范支持運行期的服務(wù)和包依賴(lài),而SCA規范只支持設計期的服務(wù)依賴(lài),這使得SCA系統與OSGi系統相比,欠缺靈活性和可擴展性。

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

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

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

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

  SCA 與 OSGi 的集成探討

  正如上文介紹,SCA和OSGi由于最初定位的不同,造成了兩者之間有諸多不同之處,但兩者實(shí)際上更多的是一種互補,而不是競爭?;诋斍耙延械囊幏逗蛯?shí)現,SCA和OSGi的集成工作可以在下面三個(gè)方面展開(kāi):1. 可以充分利用已有的OSGi應用,并能夠將OSGi應用中的服務(wù)發(fā)布成為SCA的服務(wù);2. 能夠讓SCA通過(guò)引用來(lái)調用外部OSGi服務(wù),這也是另外一種可以讓OSGi服務(wù)變?yōu)镾CA服務(wù)的途徑;3. 基于OSGi構建SCA容器。下面簡(jiǎn)單介紹下,如何在這三個(gè)方面來(lái)集成SCA和OSGi。

  將OSGi集成到SCA中

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

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

  使用SCA OSGi綁定

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

  使用OSGi構建SCA容器

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

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

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

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

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

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

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久