深入理解OSGi

出版時(shí)間:2013-2-25  出版社:周志明、 謝小明 機(jī)械工業(yè)出版社 (2013-02出版)  作者:周志明,謝小明  
Tag標(biāo)簽:無  

前言

前言為什么寫這本書隨著軟件規(guī)模的日益增大,程序按模塊拆分、按模塊開發(fā)和按模塊部署等需求變得越來越迫切,“模塊化”成為了Java社區(qū)中最熱門的話題之一。而OSGi技術(shù)—Java業(yè)界事實(shí)上的模塊化標(biāo)準(zhǔn),也被越來越多的中間件、第三方類庫和各類應(yīng)用程序所認(rèn)可和采用。與此相對(duì)的是,有關(guān)OSGi技術(shù)的資料,尤其是中文的資料卻顯得異常的貧乏。筆者自2007年接觸OSGi以來,曾在數(shù)個(gè)大型系統(tǒng)中使用過OSGi作為軟件的基礎(chǔ)架構(gòu),這一方面使筆者深刻感受到了OSGi帶來的諸多好處以及OSGi設(shè)計(jì)思想的魅力;另一方面也使筆者注意到OSGi的入門門檻相對(duì)較高,如果沒有足夠的指導(dǎo)材料,開發(fā)人員從零開始學(xué)習(xí)并探索出OSGi的最佳實(shí)踐需要很高的成本。因此,筆者就萌生了寫一本關(guān)于OSGi原理、應(yīng)用與最佳實(shí)踐的中文書籍的想法。自從1999年OSGi聯(lián)盟成立以來,OSGi技術(shù)隨著Java一起飛速發(fā)展,現(xiàn)已經(jīng)成為一種被廣泛認(rèn)可的軟件架構(gòu)技術(shù)和方法。OSGi聯(lián)盟的成員數(shù)量也已經(jīng)從最開始的幾個(gè)增長(zhǎng)到目前超過100個(gè),許多世界著名的IT企業(yè)都加入到OSGi的陣營(yíng)之中,如Adobe、IBM、Oracle、SAP、RedHat和Siemens等。這些軟件廠商推出的許多產(chǎn)品都支持OSGi技術(shù),甚至產(chǎn)品本身就使用了OSGi技術(shù)構(gòu)建,例如IBM的WebSphere、Lotus和JAZZ,Oracle的GlassFish和Weblogic,RedHat的JBoss,Eclipse基金會(huì)的Eclipse IDE、Equinox及之下的眾多子項(xiàng)目,Apache基金會(huì)的Karaf、Aries、Geronimo、Felix及之下的眾多子項(xiàng)目等。這些業(yè)界巨頭的踴躍參與,從側(cè)面證明了OSGi技術(shù)有著非常廣闊的市場(chǎng)前景。OSGi能獲得如此廣泛的認(rèn)可,一方面是它的誕生迎合了軟件模塊化的需求;另一方面是因?yàn)樗銐蛉婧烷_放,OSGi所具有的動(dòng)態(tài)性、伸縮性正好是許多生產(chǎn)系統(tǒng)所需的?;贠SGi的程序更新升級(jí)或者缺陷修復(fù),能夠像電腦更換USB接口的鼠標(biāo)鍵盤或者插拔其他USB設(shè)備那樣可以即插即用,無須重啟,甚至無須停頓,這是許多基于Java的、需要7×24小時(shí)運(yùn)轉(zhuǎn)的生產(chǎn)系統(tǒng)長(zhǎng)期以來迫切希望而又無法實(shí)現(xiàn)的需求。把軟件開發(fā)中公用的、通用的功能抽象成標(biāo)準(zhǔn)件,令各個(gè)軟件可以使用同樣的模塊來完成特定需求,把軟件開發(fā)變?yōu)榇罱K,這更是軟件工業(yè)化的最終理想,而OSGi為這個(gè)目標(biāo)帶來了實(shí)現(xiàn)的曙光。目前,雖然OSGi背后有龐大的廠商支持,對(duì)實(shí)現(xiàn)框架、中間件和類庫的支撐也足夠完善,但是在國(guó)內(nèi)基于OSGi架構(gòu)的系統(tǒng)還不是很多。很多軟件企業(yè)都躍躍欲試,嘗試邁出使用OSGi的第一步,但往往被其復(fù)雜性阻擋于大門之外—如果要用OSGi開發(fā)一個(gè)入門程序,并不需要多高深的知識(shí),但如果要把OSGi運(yùn)用于生產(chǎn)系統(tǒng),則要求該軟件系統(tǒng)的架構(gòu)師和至少一部分中高級(jí)開發(fā)人員必須對(duì)OSGi有比較深入的了解,業(yè)界對(duì)這一部分人才的需求也一直非常大。通過本書,讀者可以通過一個(gè)相對(duì)輕松的方式學(xué)習(xí)到OSGi的運(yùn)作原理,這對(duì)自身能力的成長(zhǎng)有較大的幫助。本書面向的讀者1.系統(tǒng)架構(gòu)師OSGi目前已經(jīng)成為互聯(lián)網(wǎng)、桌面程序、移動(dòng)設(shè)備和企業(yè)級(jí)應(yīng)用等領(lǐng)域中最流行的系統(tǒng)架構(gòu)方法之一,OSGi本身的設(shè)計(jì)思想也非常值得系統(tǒng)架構(gòu)師借鑒。2.使用Java技術(shù)體系的中、高級(jí)開發(fā)人員鑒于OSGi技術(shù)本身的復(fù)雜性和相對(duì)陡峭的學(xué)習(xí)曲線,開發(fā)人員入門和深入理解OSGi時(shí)要付出較多的努力,本書的理論講解和案例實(shí)踐將幫助對(duì)OSGi感興趣的開發(fā)人員跨過初學(xué)OSGi的那道門檻。3.系統(tǒng)運(yùn)維工程師保障系統(tǒng)的性能,更新和維護(hù)程序版本是系統(tǒng)運(yùn)維工程師的主要職責(zé)。目前Java業(yè)界主流的中間件均開始直接支持甚至基于OSGi架構(gòu)實(shí)現(xiàn)。伴隨OSGi的發(fā)展,越來越多使用OSGi技術(shù)的程序被部署到生產(chǎn)系統(tǒng)之中,OSGi已經(jīng)成為一個(gè)優(yōu)秀的運(yùn)維工程師必須了解的專業(yè)知識(shí)。本書中的大量案例、代碼、調(diào)優(yōu)實(shí)戰(zhàn)將會(huì)對(duì)系統(tǒng)運(yùn)維工程師日常的工作起到直接的參考作用。如何閱讀本書本書一共分為四個(gè)部分:走近OSGi、OSGi規(guī)范與原理、基于Equinox的OSGi應(yīng)用與實(shí)踐、最佳實(shí)踐。各個(gè)部分之間基本上是互相獨(dú)立的,沒有必然的前后依賴關(guān)系,讀者可以從任何一個(gè)感興趣的專題開始閱讀,但是每個(gè)部分中的各個(gè)章節(jié)間會(huì)有先后順序。本書并不要求讀者在Java領(lǐng)域具備很高的技術(shù)水平,而且在講解各個(gè)知識(shí)點(diǎn)時(shí)會(huì)在保證邏輯準(zhǔn)確的前提下、盡量用通俗的語言和案例去講述OSGi中與開發(fā)關(guān)系最為密切的內(nèi)容、但是由于探討OSGi過程中涉及的許多問題不可避免地需要讀者有一定技術(shù)基礎(chǔ),因此本書的定位依然是面向中、高級(jí)的程序員群體,對(duì)于一些常用的開發(fā)框架、Java API、Java語法等基礎(chǔ)知識(shí)點(diǎn),將認(rèn)為讀者已有所了解。下面簡(jiǎn)要介紹一下本書各部分的內(nèi)容。第一部分 走近OSGi本書第一部分為后文的研究和講解打下一個(gè)基礎(chǔ),讓讀者了解OSGi的來龍去脈以及它出現(xiàn)的意義,成為走近Java技術(shù)和Java虛擬機(jī)的第一步。第一部分包括第1章:第1章 在這本書中,筆者嘗試闡述與OSGi相關(guān)的三個(gè)問題:什么是OSGi?為什么要使用OSGi?如何使用OSGi?在第1章中,筆者將針對(duì)前面兩個(gè)問題進(jìn)行分析介紹并給出答案。第二部分 OSGi規(guī)范與原理最新的OSGi R5規(guī)范文檔包含了數(shù)十個(gè)子規(guī)范、數(shù)百頁的文檔和近2000個(gè)API。一般的開發(fā)人員很難、也沒有必要完全了解OSGi規(guī)范的所有細(xì)節(jié)。但是,要學(xué)習(xí)OSGi技術(shù),閱讀OSGi核心規(guī)范(OSGi Core)是必需的過程。在第二部分中,筆者將介紹OSGi核心規(guī)范中的內(nèi)容。第二部分包括第2至4章:第2章 介紹了OSGi中模塊這個(gè)最基礎(chǔ)的概念,并講解了OSGi如何建立模塊、如何描述模塊、模塊間的依賴關(guān)系如何處理等內(nèi)容。第3章 介紹了Bundle是如何啟動(dòng)的,Bundle自安裝到卸載所經(jīng)歷的生命周期狀態(tài)和這些狀態(tài)的轉(zhuǎn)換條件過程,還介紹了OSGi框架是如何使用啟動(dòng)級(jí)別對(duì)系統(tǒng)中的Bundle進(jìn)行管理調(diào)度的。第4章 介紹了本地及遠(yuǎn)程服務(wù)定義、注冊(cè)、查找和使用方法,這個(gè)過程涉及服務(wù)事件監(jiān)聽,以及使用服務(wù)鉤子干涉服務(wù)與OSGi框架的交互過程等知識(shí)。第三部分 基于Equinox的OSGi服務(wù)應(yīng)用與實(shí)踐如果說OSGi核心規(guī)范是OSGi技術(shù)的靈魂,OSGi的服務(wù)綱要規(guī)范(OSGi Service Compendium)和OSGi企業(yè)級(jí)規(guī)范(OSGi Service Enterpress)就是其軀體。在第三部分中,筆者會(huì)詳細(xì)介紹其中最常用的幾個(gè)子規(guī)范的內(nèi)容。在這一部分中,將會(huì)把OSGi技術(shù)從理論落地到實(shí)踐之中,結(jié)合目前使用范圍最廣的OSGi實(shí)現(xiàn)Equinox和一個(gè)穿插整個(gè)部分的完整案例來講解OSGi技術(shù)的使用。第三部分包括第5至11章:第5章 介紹了Equinox和OSGi的關(guān)系、Equinox的組成,以及如何獲取、安裝、使用和調(diào)試Equinox的代碼。本章奠定了整個(gè)第三部分的技術(shù)基礎(chǔ)。第6章 嘗試實(shí)現(xiàn)了一個(gè)名為“Neonat”的基于Equinox框架的Telnet BBS,這個(gè)項(xiàng)目將迭代貫穿于第三部分。另外,還從浩瀚龐大的Equinox源碼中挑選出四個(gè)關(guān)鍵功能點(diǎn)進(jìn)行源碼解析。讀者在理解了Equinox這幾個(gè)關(guān)鍵功能點(diǎn)是如何實(shí)現(xiàn)的之后,與前面第一部分介紹的OSGi規(guī)范的理論相互對(duì)照和印證,可以更好地理解OSGi的技術(shù)原理,知道為何要這樣設(shè)計(jì)和實(shí)現(xiàn)。第7章 介紹了服務(wù)端OSGi的應(yīng)用,分析了OSGi的HTTP Service規(guī)范的使用和原理,及如何為Neonat添加Web訪問模塊。第8章 介紹了OSGi的User Admin服務(wù)的基本使用,以及如何為Neonat添加用戶管理模塊,如何實(shí)現(xiàn)用戶權(quán)限控制。第9章 介紹了OSGi的Preferences服務(wù),重新實(shí)現(xiàn)了Neonat的數(shù)據(jù)訪問模塊,展示了如何使用Preferences服務(wù)來持久化非事務(wù)性數(shù)據(jù)。第10章 介紹了聲明式服務(wù)的使用。聲明式服務(wù)規(guī)范的制定,推動(dòng)了OSGi服務(wù)從程序化的服務(wù)模型向聲明式的服務(wù)模型發(fā)展,這對(duì)整個(gè)OSGi來說也是一項(xiàng)非常有意義的進(jìn)化,令OSGi的服務(wù)真正成為一項(xiàng)可統(tǒng)一分配、使用和管理的資源。第11章 介紹了OSGi R5中最新出現(xiàn)的Subsystem規(guī)范,這是OSGi R5相對(duì)R4.3最重要的改進(jìn)。在制定了Subsystem規(guī)范(及其相關(guān)的Respository和Resolver等規(guī)范)后,表明OSGi對(duì)企業(yè)級(jí)開發(fā)的支持已經(jīng)達(dá)到相當(dāng)完善的程度了。Subsystem讓各個(gè)軟件廠商的OSGi企業(yè)級(jí)容器有了通用的程序發(fā)布格式,讓OSGi支持者能向同一個(gè)方向努力,推動(dòng)企業(yè)級(jí)OSGi的發(fā)展,這點(diǎn)將是有深遠(yuǎn)影響的。第四部分 最佳實(shí)踐學(xué)習(xí)過OSGi的原理、規(guī)范和各種服務(wù)的使用后,第四部分筆者將針對(duì)開發(fā)實(shí)踐中遇到的具體問題進(jìn)行分析、講解,介紹OSGi的各種最佳實(shí)踐。第四部分包括12至14章:第12章 介紹了OSGi的最佳實(shí)踐,包括Bundle命名方法、模塊劃分、依賴關(guān)系處理、保持OSGi動(dòng)態(tài)性、管理程序啟動(dòng)順序、使用API基線管理模塊版本等各方面的實(shí)踐技巧。第13章 介紹了Spring DM的原理、使用,以及如何把基于Spring的程序引入到OSGi環(huán)境之中。第14章 講解了單元測(cè)試和集成測(cè)試在OSGi程序中的意義,展示了在OSGi環(huán)境中如何進(jìn)行程序測(cè)試,以及相關(guān)測(cè)試工具的使用??闭`和支持在本書交稿的時(shí)候,筆者并沒有想象中那樣興奮或輕松,在寫作之時(shí)那種“戰(zhàn)戰(zhàn)兢兢、如履薄冰”感覺依然縈繞在心頭。在寫作過程中,在每一章、每一節(jié)落筆之時(shí),筆者都在考慮如何寫才能把這個(gè)知識(shí)點(diǎn)有條理地講述出來,都在擔(dān)心會(huì)不會(huì)由于自己理解有偏差而誤導(dǎo)了大家。囿于作者水平和寫作時(shí)間,書中存在不妥之處在所難免,所以特別開辟了一個(gè)讀者郵箱,讀者有任何意見、建議都?xì)g迎與筆者聯(lián)系。另外,讀者可以從華章公司的網(wǎng)站本書的相應(yīng)頁面下載書中所涉及的源碼。寫書與寫程序一樣,作品一定都有不完美之處,因?yàn)椴煌昝?,我們才有不斷追求完美的?dòng)力。

內(nèi)容概要

本書是原創(chuàng)Java技術(shù)圖書領(lǐng)域繼《深入理解Java虛擬機(jī)》后的又一實(shí)力之作,也是全球首本基于最新OSGi R5.0規(guī)范的著作。理論方面,既全面解讀了OSGi規(guī)范,深刻揭示了OSGi原理,詳細(xì)講解了OSGi服務(wù),又系統(tǒng)地介紹了Equinox框架的使用方法,并通過源碼分析了該框架的工作機(jī)制;實(shí)踐方面,不僅包含一些典型的案例,還總結(jié)了大量的最佳實(shí)踐,極具實(shí)踐指導(dǎo)意義。
全書共14章,分4個(gè)部分。第一部分(第1章):走近OSGi,主要介紹了什么是OSGi以及為什么要使用OSGi。第二部分(第2~4章):OSGi規(guī)范與原理,對(duì)最新的OSGi R5.0中的核心規(guī)范進(jìn)行了全面的解讀,首先講解了OSGi模塊的建立、描述、依賴關(guān)系的處理,然后講解了Bundle的啟動(dòng)原理和調(diào)度管理,最后講解了與本地及遠(yuǎn)程服務(wù)相關(guān)的內(nèi)容。第三部分:OSGi服務(wù)與Equinox應(yīng)用實(shí)踐(第5~11章),不僅詳細(xì)講解了OSGi服務(wù)綱要規(guī)范和企業(yè)級(jí)規(guī)范中最常用的幾個(gè)子規(guī)范和服務(wù)的技術(shù)細(xì)節(jié),還通過一個(gè)基于Equinox的BBS案例演示了Equinox的使用方法,最重要的是還通過源碼分析了Equinox關(guān)鍵功能的實(shí)現(xiàn)機(jī)制和原理。第四部分:最佳實(shí)踐(第12~14章),總結(jié)了大量關(guān)于OSGi的最佳實(shí)踐,包括從Bundle如何命名、模塊劃分、依賴關(guān)系處理到保持OSGi動(dòng)態(tài)性、管理程序啟動(dòng)順序、使用API基線管理模塊版本等各方面的實(shí)踐技巧,此外還介紹了Spring DM的原理以及如何在OSGi環(huán)節(jié)中進(jìn)行程序測(cè)試。

作者簡(jiǎn)介

周志明,資深Java技術(shù)專家,對(duì)JavaEE企業(yè)級(jí)應(yīng)用開發(fā)、OSGi、Java虛擬機(jī)和工作流等都有深入的研究,并在大量的實(shí)踐中積累了豐富的經(jīng)驗(yàn)。尤其精通Java虛擬機(jī),撰寫了大量與JVM相關(guān)的經(jīng)典文章,被各大技術(shù)社區(qū)爭(zhēng)相轉(zhuǎn)載,是ITeye等技術(shù)社區(qū)公認(rèn)的Java虛擬機(jī)方面的領(lǐng)袖人物之一,著有經(jīng)典著作《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐》(2年內(nèi)重印十?dāng)?shù)次,獲得業(yè)界多個(gè)圖書獎(jiǎng)項(xiàng)),廣獲讀者好評(píng)?,F(xiàn)任遠(yuǎn)光軟件股份有限公司平臺(tái)開發(fā)部經(jīng)理兼平臺(tái)架構(gòu)師,先后參與過國(guó)家電網(wǎng)、南方電網(wǎng)等多個(gè)國(guó)家級(jí)大型ERP項(xiàng)目的平臺(tái)架構(gòu)工作,對(duì)軟件系統(tǒng)架構(gòu)也有深刻的認(rèn)識(shí)和體會(huì)。謝小明,資深Java技術(shù)專家,具有豐富的JavaEE企業(yè)級(jí)應(yīng)用開發(fā)開發(fā)經(jīng)驗(yàn),對(duì)OSGi、Spring、Hibernate等技術(shù)和框架有比較深入的研究和認(rèn)識(shí)。喜歡鉆研運(yùn)行與JVM之上的其他語言,如Scala和Clojure等。現(xiàn)任遠(yuǎn)光軟件股份有限公司平臺(tái)開發(fā)部平臺(tái)架構(gòu)師,先后參加與過國(guó)家電網(wǎng)、南方電網(wǎng)等多個(gè)國(guó)家級(jí)大型ERP項(xiàng)目的平臺(tái)架構(gòu)工作。

書籍目錄

前言第一部分 走近OSGi第1章 Java模塊化之路 21.1 什么是OSGi 21.1.1 OSGi規(guī)范的演進(jìn) 41.1.2 Java模塊化規(guī)范之爭(zhēng) 71.2 為什么使用OSGi 111.2.1 OSGi能讓軟件開發(fā)變得更容易嗎 121.2.2 OSGi能讓系統(tǒng)變得更穩(wěn)定嗎 131.2.3 OSGi能讓系統(tǒng)運(yùn)行得更快嗎 141.2.4 OSGi能支撐企業(yè)級(jí)開發(fā)嗎 151.3 本章小結(jié) 16第二部分 OSGi規(guī)范與原理第2章 模塊層規(guī)范與原理 182.1 OSGi規(guī)范概要 182.2 Bundle 202.3 描述元數(shù)據(jù) 212.3.1 預(yù)定義標(biāo)記 212.3.2 使用可視化工具 272.4 Bundle的組織與依賴 312.4.1 導(dǎo)出和導(dǎo)入Package 312.4.2 約束規(guī)則與示例 382.4.3 校驗(yàn)Bundle有效性 442.5 OSGi的類加載架構(gòu) 452.5.1 父類加載器 462.5.2 Bundle類加載器 472.5.3 其他類加載器 492.5.4 類加載順序 502.6 定義執(zhí)行環(huán)境 512.7 本地化 542.8 本章小結(jié) 55第3章 生命周期層規(guī)范與原理 563.1 Bundle標(biāo)識(shí) 563.2 Bundle狀態(tài)及轉(zhuǎn)換 573.2.1 安裝過程 593.2.2 解析過程 613.2.3 啟動(dòng)過程 623.2.4 更新過程 633.2.5 停止過程 643.2.6 卸載過程 653.3 啟動(dòng)級(jí)別 653.3.1 設(shè)置啟動(dòng)級(jí)別 663.3.2 調(diào)整活動(dòng)啟動(dòng)級(jí)別 673.4 事件監(jiān)聽 683.4.1 事件類型 693.4.2 事件分派 703.5 系統(tǒng)Bundle 713.6 Bundle上下文 723.7 本章小結(jié) 73第4章 服務(wù)層規(guī)范與原理 744.1 服務(wù) 744.2 OSGi服務(wù)示例 754.3 服務(wù)屬性 804.3.1 屬性過濾器 824.3.2 預(yù)定義屬性 834.3.3 修改屬性 844.4 服務(wù)工廠 854.5 服務(wù)跟蹤器 864.6 引用服務(wù) 894.7 釋放和注銷服務(wù) 914.8 服務(wù)層事件 914.8.1 事件類型 924.8.2 事件分派 924.8.3 ServiceRegistration對(duì)象的提前請(qǐng)求 934.9 遠(yuǎn)程服務(wù) 944.9.1 準(zhǔn)備遠(yuǎn)程服務(wù)環(huán)境 944.9.2 遠(yuǎn)程服務(wù)示例 964.9.3 遠(yuǎn)程服務(wù)屬性 994.9.4 實(shí)現(xiàn)分析 1004.10 服務(wù)鉤子 1014.10.1 EventListenerHook 1014.10.2 FindHook 1014.10.3 ListenerHook 1024.10.4 服務(wù)鉤子示例 1024.11 本章小結(jié) 105第三部分 基于Equinox的OSGi應(yīng)用與實(shí)踐第5章 Equinox啟航 1085.1 建立Equinox開發(fā)環(huán)境 1095.1.1 建立運(yùn)行環(huán)境 1095.1.2 建立編譯及調(diào)試環(huán)境 1105.1.3 建立開發(fā)環(huán)境 1125.2 Equinox常用組件簡(jiǎn)介 1175.3 Equinox啟動(dòng)器 1195.4 使用代碼啟動(dòng)Equinox 1245.5 本章小結(jié) 125第6章 Equinox基礎(chǔ)應(yīng)用與源碼解析 1266.1 實(shí)踐項(xiàng)目—Neonat論壇 1266.1.1 背景與需求 1266.1.2 模塊劃分 1276.1.3 基礎(chǔ)資料模塊 1296.1.4 持久化模塊 1336.1.5 用戶交互模塊 1356.1.6 運(yùn)行效果 1406.2 Equinox源碼解析 1426.2.1 OSGi容器啟動(dòng) 1426.2.2 Bundle狀態(tài)恢復(fù) 1476.2.3 解析Bundle依賴關(guān)系 1536.2.4 OSGi類加載器實(shí)現(xiàn) 1576.3 本章小結(jié) 162第7章 服務(wù)器端OSGi 1637.1 OSGi與Web服務(wù)器 1637.2 HTTP Service規(guī)范簡(jiǎn)介 1667.2.1 服務(wù)目標(biāo) 1667.2.2 服務(wù)接口 1687.2.3 資源映射規(guī)則 1697.2.4 請(qǐng)求處理過程 1717.3 實(shí)踐項(xiàng)目—Neonat論壇的Web模塊 1717.3.1 準(zhǔn)備依賴項(xiàng) 1727.3.2 使用HTTP Service 1747.3.3 實(shí)現(xiàn)Web交互功能 1767.3.4 運(yùn)行效果 1787.4 HTTP Service源碼解析 1807.4.1 BridgeServlet與OSGi容器啟動(dòng) 1807.4.2 BridgeServlet與HTTP請(qǐng)求委派 1867.4.3 DelegateServlet實(shí)現(xiàn)原理 1887.5 本章小結(jié) 192第8章 用戶管理服務(wù) 1938.1 User Admin服務(wù)規(guī)范簡(jiǎn)介 1938.1.1 服務(wù)目標(biāo)與基礎(chǔ)概念 1938.1.2 驗(yàn)證用戶身份 1958.1.3 驗(yàn)證用戶權(quán)限 1968.1.4 User Admin事件 1978.2 實(shí)踐項(xiàng)目—Neonat論壇用戶管理模塊 1988.2.1 需求與依賴項(xiàng)分析 1988.2.2 用戶與用戶組的實(shí)現(xiàn) 2008.2.3 頁面權(quán)限 2018.2.4 用戶登錄與身份驗(yàn)證 2028.3 User Admin源碼解析 2068.3.1 用戶管理實(shí)現(xiàn) 2068.3.2 外部服務(wù)使用實(shí)踐 2088.4 本章小結(jié) 211第9章 Preferences服務(wù) 2129.1 Preferences服務(wù)規(guī)范簡(jiǎn)介 2129.1.1 服務(wù)目標(biāo) 2129.1.2 數(shù)據(jù)結(jié)構(gòu) 2149.1.3 屬性 2159.1.4 并發(fā)處理 2169.1.5 清理遺留數(shù)據(jù) 2179.2 實(shí)踐項(xiàng)目—Neonat論壇持久化模塊 2179.2.1 編碼實(shí)現(xiàn) 2179.2.2 模塊熱切換 2209.3 Preferences源碼解析 2229.3.1 數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn) 2249.3.2 屬性存取 2289.3.3 后端存儲(chǔ)系統(tǒng) 2299.4 本章小結(jié) 234第10章 聲明式服務(wù) 23510.1 聲明式服務(wù)規(guī)范簡(jiǎn)介 23610.1.1 服務(wù)目標(biāo) 23610.1.2 定義Component 23610.1.3 Component類型 23710.1.4 Component生命周期 24010.1.5 Component屬性 24510.1.6 綁定與發(fā)布服務(wù) 24510.1.7 激活與鈍化方法 25210.1.8 Component配置總結(jié) 25410.2 實(shí)踐項(xiàng)目—使用聲明式服務(wù)改造Neonat論壇 25910.2.1 可視化編輯工具 25910.2.2 DS容器管理 26310.3 DS容器源碼解析 26410.3.1 容器啟動(dòng) 26410.3.2 加載Bundle中的Component 26710.3.3 動(dòng)態(tài)依賴解析 27210.4 本章小結(jié) 274第11章 Subsystems服務(wù) 27611.1 服務(wù)目標(biāo) 27611.2 Subsystem格式 27711.3 Subsystem元數(shù)據(jù) 27811.3.1 SUBSYSTEM.MF標(biāo)識(shí) 27811.3.2 DEPLOYMENT.MF標(biāo)識(shí) 28111.4 Subsystem類型與共享策略 28311.5 組織管理Subsystem 28511.6 Subsystem部署與依賴策略 28911.7 Subsystem生命周期 29111.7.1 安裝 29211.7.2 解析 29311.7.3 啟動(dòng) 29411.7.4 停止 29411.7.5 卸載 29511.8 本章小結(jié) 295第四部分 最佳實(shí)踐第12章 OSGi最佳實(shí)踐 29812.1 Bundle相關(guān)名稱命名 29812.2 Bundle劃分原則 30012.2.1 恰如其分地分配Bundle粒度 30012.2.2 分離OSGi代碼 30012.2.3 分離接口和實(shí)現(xiàn) 30012.3 依賴關(guān)系實(shí)踐 30112.3.1 依賴分析工具 30112.3.2 避免Require-Bundle 30312.3.3 最小化依賴 30412.3.4 避免循環(huán)依賴 30412.3.5 Equinox x-*依賴 30512.4 Equinox專有類加載機(jī)制 30612.4.1 Buddy Loading類加載機(jī)制 30612.4.2 ClassLoaderDelegateHook類加載機(jī)制 30712.5 Bundle生命周期實(shí)踐 30912.5.1 啟動(dòng) 30912.5.2 停止 30912.6 服務(wù)工廠的特殊性 30912.7 處理非OSGi的JAR包 31112.8 啟動(dòng)順序?qū)嵺` 31312.8.1 避免啟動(dòng)順序依賴 31312.8.2 Start Level的使用 31312.9 Fragment Bundle實(shí)踐 31412.10 保持OSGi動(dòng)態(tài)性 31512.11 API Tools實(shí)踐 31712.11.1 API Baselines 31712.11.2 API Tools 注解 31912.11.3 API Version版本管理 32212.11.4 二進(jìn)制文件不兼容 32212.12 本章小結(jié) 322第13章 Spring Dynamic Modules實(shí)踐 32413.1 Spring DM入門 32413.1.1 Spring DM項(xiàng)目簡(jiǎn)介 32413.1.2 安裝Spring DM 32513.1.3 簡(jiǎn)單的Spring DM示例 32613.1.4 Bundle和Spring上下文 33113.1.5 命名空間 33313.2 Spring DM進(jìn)階 33713.2.1 Spring DM擴(kuò)展配置 33713.2.2 Web Extender 34413.2.3 Spring DM服務(wù)約束 34513.2.4 在Spring上下文中使用BundleContext 34613.3 Spring DM企業(yè)應(yīng)用 34613.3.1 規(guī)劃OSGi組件 34713.3.2 在Spring DM中使用JPA 34813.3.3 事務(wù)管理 35313.3.4 OSGi企業(yè)規(guī)范中的JPA 35813.4 Spring DM和Blueprint 35913.5 本章小結(jié) 360第14章 構(gòu)建可測(cè)試的OSGi系統(tǒng) 36114.1 單元測(cè)試的必要性 36214.2 單元測(cè)試的重要性 36314.3 可測(cè)試代碼的特征 36414.4 OSGi單元測(cè)試 36514.4.1 如何組織測(cè)試代碼 36614.4.2 如何進(jìn)行OSGi單元測(cè)試 36714.5 OSGi集成測(cè)試 37314.5.1 Eclipse JUnit Plug-in Test 37414.5.2 Spring DM Test 37914.5.3 Pax Exam 38314.6 本章小結(jié) 384附錄A Java類加載器簡(jiǎn)介 385附錄B Equinox控制臺(tái)命令 392附錄C OSGi子規(guī)范目錄 397附錄D OSGi相關(guān)項(xiàng)目 399附錄E Equinox啟動(dòng)配置參數(shù) 401

編輯推薦

《深入理解OSGi:Equinox原理、應(yīng)用與最佳實(shí)踐》基于最新OSGi R5.0規(guī)范撰寫,繼《深入理解Java虛擬機(jī)》后的又一實(shí)力之作,全面解讀OSGi規(guī)范,深刻揭示OSGi原理,詳細(xì)講解OSGi服務(wù),系統(tǒng)地介紹Equinox框架的用法,并通過源代碼分析其工作機(jī)制,包含大量可操作性極強(qiáng)的解決方案和最佳實(shí)踐。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    深入理解OSGi PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

 

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7