中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

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

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

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

  SCA和OSGi各自的關注點分析

  只有了解了SCA和OSGi的關注點,我們才能更好的了解這兩種技術的應用場景,也才能更為客觀的將這兩種技術做比較,下面討論下這兩種技術的各自關注點。

  SCA的關注點

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

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

  OSGi的關注點

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

  詳細比較列表和介紹

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

  容器實現(xiàn)

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

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

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

  模塊定義

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

  組件實現(xiàn)語言/ 技術

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

  裝配模型和服務綁定

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

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

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

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

  生命周期管理

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

  QoS

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

  依賴管理及其它

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

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

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

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

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

  SCA 與 OSGi 的集成探討

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

  將OSGi集成到SCA中

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

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

  使用SCA OSGi綁定

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

  使用OSGi構建SCA容器

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

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

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

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

  目前業(yè)界關于SCA和OSGi集成的討論也越來越多,可以預見,這兩種技術可以通過互補的方式,來促進這兩種技術的發(fā)展。

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

聯(lián)系客服