火龍果軟件OSGI技術(shù)實(shí)用分析(初稿)_第1頁(yè)
火龍果軟件OSGI技術(shù)實(shí)用分析(初稿)_第2頁(yè)
火龍果軟件OSGI技術(shù)實(shí)用分析(初稿)_第3頁(yè)
火龍果軟件OSGI技術(shù)實(shí)用分析(初稿)_第4頁(yè)
火龍果軟件OSGI技術(shù)實(shí)用分析(初稿)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

OSGI技術(shù)實(shí)用分析內(nèi)容介紹OSGI概要介紹 OSGI的Bundle

Web開(kāi)發(fā)實(shí)例OSGI技術(shù)的實(shí)用價(jià)值總結(jié)OSGi概要介紹OSGi最早是OpenServicesGatewayInitiative的縮寫,是構(gòu)建面向服務(wù)應(yīng)用的一套規(guī)范。在Java中的應(yīng)用為動(dòng)態(tài)模塊系統(tǒng),作為模塊化開(kāi)發(fā)部署框架,更易于劃分模塊和管理模塊之間的各種依賴關(guān)系OSGiAliance是一個(gè)非盈利的合作組織負(fù)責(zé)制訂發(fā)布OSGI規(guī)范ApacheFelix,EclipseEquinox,SpringDM都是OSGi規(guī)范的具體實(shí)現(xiàn)框架OSGI從2000年-2012年一共發(fā)布了5個(gè)版本,OSGi的名氣是隨著Eclipse3.0正式采用OSGi為模塊化框架而發(fā)展起來(lái)的,逐漸被IBM,Oracle,Sun作為Java標(biāo)準(zhǔn)OSGi

基本介紹后臺(tái)背景發(fā)展歷史OSGi的三個(gè)基本概念BundleLifeCycleService一般表現(xiàn)為一個(gè)含有OSGI配置描述信息(例如MANIFEST.MF文件),類,資源和其他jar包的綜合Jar包。特指Bundle的生命周期,包含從安裝,就緒,啟動(dòng),運(yùn)行活躍,卸載,停止,等各個(gè)時(shí)期Service一般被定義為一個(gè)接口,Bundle可以負(fù)責(zé)實(shí)現(xiàn)具體的接口,在ServiceRegistry模塊中注冊(cè)這個(gè)Service,可以為其他Bundle提供服務(wù)OSGi最重要的三個(gè)基本概念術(shù)語(yǔ)了解OSGi的第一步安裝EclipseHelios動(dòng)手實(shí)踐自己第一個(gè)Bundle理解OSGi

Bundle的生命周期從最小的一個(gè)OSGiWebDemo開(kāi)始Eclipse與OSGi創(chuàng)建第一個(gè)Bundle1432Bundle的典型結(jié)構(gòu)Activator是每個(gè)Bundle缺省的裝載類.OSGi框架啟動(dòng)或停止Bundle都默認(rèn)調(diào)用該類的Start/Stop方法OSGiBundle運(yùn)行調(diào)試Bundle運(yùn)行背后的故事Bundle運(yùn)行的優(yōu)先級(jí)設(shè)置StartLevelPID越小的越優(yōu)先Bundle的生命周期管理對(duì)象都是有生命的EclipseEquinox支持OSGi常用控制命令Start/stop/install/uninstall

<PID>Help可查看支持的各種bundle管理命令快速構(gòu)建一個(gè)OSGiWeb應(yīng)用所有的Web應(yīng)用的本質(zhì)都是從前臺(tái)獲取用戶輸入的信息,送入后臺(tái)處理后,再返回給前臺(tái)用戶展示。其本質(zhì)都是用戶交互體驗(yàn)OSGiWeb應(yīng)用就是構(gòu)建一個(gè)全部由OSGiBundle組成的Web應(yīng)用。所有前臺(tái)交互,后臺(tái)處理等業(yè)務(wù)邏輯都是由一個(gè)個(gè)Bundle負(fù)責(zé)處理本Demo實(shí)現(xiàn)的功能為用戶在html頁(yè)面上輸入一個(gè)英文單詞,提交后臺(tái)查詢后返回對(duì)應(yīng)的中文解釋,如果沒(méi)有結(jié)果則返回N/A,類似于一個(gè)在線字典Web

Bundle應(yīng)用Demo的結(jié)構(gòu)DictQueryLocalDictQueryDictQueryWebOSGiEquinoxRemoteDictQuery提供遠(yuǎn)程字典查詢服務(wù)的Bundle

包含必須的Http,Servlet服務(wù)和其他OSGi框架所需要的基本核心Bundle

字典查詢的接口Bundle提供本地字典查詢服務(wù)的Bundle負(fù)責(zé)Web前段頁(yè)面和后臺(tái)Servlet的Bundle其余BundleOSGiBundle的Package控制query;version="1.0.0"Import-PackageExport-PackageDictQueryOSGi作為動(dòng)態(tài)模塊化Java框架的核心功能就是可以控制Bundle中Package的導(dǎo)入和導(dǎo)出,這是對(duì)java自身import功能局限的突破org.osgi.framework;version="1.3.0"LocalDictQueryRemoteDictQueryDictQueryWebjavax.servlet;version="2.4.0",javax.servlet.http;version=org.osgi.framework;version=org.osgi.service.http;version,

query;version="1.0.0"org.osgi.framework;version="1.3.0"query;version="1.0.0"org.osgi.framework;version="1.3.0"query;version="1.0.0"部分代碼示例-1DictQueryBundle中的query/QueryServiceLocalDictQueryBundle中LocalDictQueryServiceImpl部分代碼示例-2RemoteDictQueryBundle中的RemoteDictQueryServiceImpl在LocalDictQuey的Activator中注冊(cè)服務(wù)唯一的不同就是構(gòu)建的字典內(nèi)容和LocalDictQuery不同關(guān)鍵的DictQueryWebBundleDictQueryWeb中DictQueryServlet只和DictQuery的QueryService交互最后的一環(huán)與HttpService交互,進(jìn)行Web資源(包含html和servlet)的服務(wù)注冊(cè)一個(gè)典型的主從表結(jié)構(gòu)的表現(xiàn)-主從結(jié)構(gòu)是所有實(shí)體對(duì)象模型中最常見(jiàn)的對(duì)象類型,關(guān)系數(shù)據(jù)庫(kù)的最典型類型就是主從類型-主從結(jié)構(gòu)在好的Java業(yè)務(wù)體系中也一般是包裝成為一個(gè)整體的業(yè)務(wù)對(duì)象對(duì)外進(jìn)行數(shù)據(jù)交互-ChangeHistory(復(fù)合的抽象對(duì)象)-所有的ApacheOfBiz實(shí)體引擎的描述信息都是通過(guò)EntityXXX.xml表示。所有描述對(duì)象的java類都是GenericValueChangGroup是主表ChangeItem是從表從實(shí)際業(yè)務(wù)的對(duì)象設(shè)計(jì)角度出發(fā)OfBiz的實(shí)體引擎的高度概括性Demo最終效果OSGi技術(shù)價(jià)值分析解決了Java語(yǔ)言本身在模塊化上的重大缺陷,由于Java本身語(yǔ)言的特點(diǎn)必須暴露類結(jié)構(gòu),違反了結(jié)構(gòu)化設(shè)計(jì)的神圣準(zhǔn)則:低耦合、高一致性O(shè)SGi秉承松耦合髙一致性的原則來(lái)解決Java的重用問(wèn)題。OSGi提供了一個(gè)模塊框架,這個(gè)框架可以管理模塊,可以動(dòng)態(tài)加載模塊;模塊之間通過(guò)服務(wù)接口協(xié)作。模塊在OSGi里被叫做Bundle。OSGi使用微內(nèi)核+系統(tǒng)Bundle+應(yīng)用Bundle設(shè)計(jì)。微內(nèi)核保證了髙一致性,基于Bundle的設(shè)計(jì)保證了松耦合。OSGi最有價(jià)值的3個(gè)功能:(1)Bundle管理;

(2)Bundle的動(dòng)態(tài)加載;

(3)保證Bundle間使用服務(wù)機(jī)制來(lái)交互。OSGi在商用J2EE平臺(tái)上已經(jīng)證明了成功:IBMWAS6.1,EclipseAtlassianConfluence&Jira,SpringDM等等。其性能接受了考驗(yàn)總結(jié)OSGi發(fā)展了12年,已經(jīng)成了Java模塊化的實(shí)際技術(shù)標(biāo)準(zhǔn)JSR-232,JSR-291,徹底取代了Sun原來(lái)自己定義的JSR-277OSGi可以和主流的J2EEWeb平臺(tái)無(wú)縫集成,侵入性小,技術(shù)轉(zhuǎn)型的風(fēng)險(xiǎn)較低OSGi技術(shù)國(guó)內(nèi)目前采用的還不多,大多還只是停留在初步了解的地步。其拓展的潛力很大OSGi不

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論