OSGi實(shí)戰(zhàn)

出版時(shí)間:2013-1  出版社:人民郵電出版社  作者:Richard S. Hall,Karl Pauls,Stuart McCulloch,David Savage  譯者:郭 慶,李 楠,謝瑩瑩,張 磊  
Tag標(biāo)簽:無(wú)  

前言

  早在2000年,我剛開(kāi)始從事OSGi相關(guān)技術(shù)工作時(shí),無(wú)法預(yù)料自己會(huì)在10年后繼續(xù)從事該領(lǐng)域的工作。那時(shí),OSGi瞄準(zhǔn)了嵌入式市場(chǎng),但那不是我感興趣的領(lǐng)域。我想創(chuàng)建高動(dòng)態(tài)性、模塊化的應(yīng)用,恰巧OSGi給了我實(shí)現(xiàn)上述目標(biāo)的可能。當(dāng)時(shí),還沒(méi)有免費(fèi)的OSGi框架的實(shí)現(xiàn),所以2000年12月我在柏林自由大學(xué)工作時(shí),開(kāi)始著手開(kāi)發(fā)自己的OSGi開(kāi)源框架實(shí)現(xiàn)Oscar。后來(lái)Oscar隨我一起搬到格勒諾布爾,因?yàn)槲胰チ思s瑟夫·傅里葉大學(xué)工作。也就是在這里Oscar開(kāi)始蓬勃發(fā)展?! ‰S著OSGi技術(shù)的發(fā)展,Oscar于2004年加入了ObjectWeb開(kāi)源聯(lián)盟,后來(lái)又于2005年發(fā)展成為Apache 軟件基金會(huì)的Felix項(xiàng)目。我很幸運(yùn)地受到了OSGi聯(lián)盟的邀請(qǐng),直接參與制定OSGi第4版規(guī)范,OSGi R4規(guī)范于2004年發(fā)布。自那時(shí)起,我參與了OSGi規(guī)范制定的相關(guān)工作。起初我是一名學(xué)術(shù)研究者,2008年我加入Sun公司(已被Oracle收購(gòu))的Glass Fish團(tuán)隊(duì),最近一直從事行業(yè)相關(guān)問(wèn)題的研究。在最近10年間很多東西都發(fā)生了改變?! SGi技術(shù)已不再局限于嵌入式市場(chǎng),而是發(fā)展成為一個(gè)面向Java的成熟模塊化系統(tǒng)。這種轉(zhuǎn)變?cè)?004年Eclipse IDE采用OSGi重構(gòu)其插件系統(tǒng)時(shí),幫了很大的忙。由于Spring和其他主要的應(yīng)用服務(wù)器在企業(yè)應(yīng)用領(lǐng)域?qū)SGi技術(shù)的采納,進(jìn)一步促成了OSGi技術(shù)的持續(xù)發(fā)展。盡管Java模塊化仍在不斷發(fā)展,但在未來(lái)很長(zhǎng)一段時(shí)間里OSGi技術(shù)會(huì)扮演重要角色?,F(xiàn)在說(shuō)說(shuō)本書(shū)?! 啄暌詠?lái)我一直想寫(xiě)一本介紹OSGi的書(shū),但是考慮到任務(wù)的艱巨以及沒(méi)有時(shí)間,我并未將這一念頭付諸實(shí)踐。在2008年的夏天,我覺(jué)得是時(shí)候行動(dòng)起來(lái)了,于是開(kāi)始寫(xiě)作但很快又停滯不前了。直到Karl和Stuart以及后來(lái)David的加入,我才最終得償所愿。我們各自有著不同的OSGi經(jīng)驗(yàn),將我們各自擅長(zhǎng)的方面組合在一起,就包括了OSGi的全部?jī)?nèi)容。盡管如此,本書(shū)的寫(xiě)作仍舊歷時(shí)兩年多,期間經(jīng)歷過(guò)工作的變動(dòng)以及幾個(gè)孩子的降生。希望我們的努力能夠?qū)δ阌兴鶐椭?。  Richard S. Hall

內(nèi)容概要

  OSGi是一種標(biāo)準(zhǔn)技術(shù),用于創(chuàng)建高度模塊化的Java應(yīng)用。利用OSGi,無(wú)需停止運(yùn)行整個(gè)系統(tǒng)就可以安裝、啟動(dòng)、停止、更新或卸載組件。Oracle、BEA和IBM都在積極推動(dòng)OSGi技術(shù)的采用。  《OSGi實(shí)戰(zhàn)》作者既來(lái)自開(kāi)發(fā)一線,又參與了OSGi規(guī)范的制定,這就保障了全書(shū)內(nèi)容的權(quán)威性?!禣SGi實(shí)戰(zhàn)》全書(shū)歷時(shí)兩年多方才完成,凝聚了作者們多年來(lái)的寶貴經(jīng)驗(yàn)和辛勤汗水。內(nèi)容分三部分,涵蓋OSGi核心規(guī)范解讀、OSGi規(guī)范的實(shí)際應(yīng)用及相關(guān)高級(jí)主題,系統(tǒng)、全面、深入地闡述OSGi的重要特性,揭示了大量鮮為人知的技術(shù)細(xì)節(jié)。此外,本書(shū)還通過(guò)極具實(shí)用價(jià)值的實(shí)例示范了OSGi的各種應(yīng)用,能夠滿足各個(gè)層次讀者的需求。通過(guò)大師的指引,相信讀者一定可以輕松實(shí)現(xiàn)“入門(mén)-進(jìn)階-精通”三級(jí)跳,在OSGi世界里創(chuàng)造出無(wú)限可能。 

作者簡(jiǎn)介

《OSGi實(shí)戰(zhàn)》作者Richard S. Hall是Apache Felix 框架開(kāi)發(fā)組的一位活躍成員,該開(kāi)發(fā)組和其他組一樣都是Felix的子項(xiàng)目。2000年以后Richard參與了OSGi的開(kāi)源工作并于2004年直接加入OSGi聯(lián)盟。Richard是Apache軟件組織的一位成員,目前在Oracle的GlassFish項(xiàng)目組工作,主要工作是幫助解決OSGi相關(guān)的問(wèn)題或者從事一些其他他所擅長(zhǎng)做的事情。 Karl Pauls實(shí)現(xiàn)了Apache Felix Framework Security Provider,他也是Apache Felix框架開(kāi)發(fā)組的一位活躍成員,該項(xiàng)目組和其他組一樣都是Felix的子項(xiàng)目。Karl是Apache軟件組織的一名成員,曾經(jīng)參與了多個(gè)Apache以及其他的開(kāi)源項(xiàng)目。Karl是Luminis的一位研究員。Stuart Mcculloch主要負(fù)責(zé)Apache Felix的maven-bundle插件以及OPS4j中用來(lái)快速開(kāi)發(fā)OSGi的Pax-Construct工具。他還是Peaberry的作者,Peaberry是Guice的擴(kuò)展用來(lái)實(shí)現(xiàn)對(duì)動(dòng)態(tài)服務(wù)的注入。Stuart是Sonatype的顧問(wèn),主要負(fù)責(zé)依賴注入和模塊化。David Savage在Paremus工作,2005年后他一直致力于OSGi應(yīng)用的設(shè)計(jì)和構(gòu)建,涵蓋了眾多領(lǐng)域如:構(gòu)建工具、組件模型、數(shù)據(jù)持久化、桌面UI、管理方法、消息通信、配置、解析器以及RPC。借助Sigil子項(xiàng)目David重點(diǎn)在開(kāi)發(fā)工具領(lǐng)域進(jìn)行了深入研究,為Apache Felix 項(xiàng)目做出了貢獻(xiàn)。他同時(shí)還直接參與了OSGi聯(lián)盟有關(guān)OSGi規(guī)范的制定工作。

書(shū)籍目錄

目 錄第一部分 OSGi:模塊化、生命周期和服務(wù)第1章 揭開(kāi)OSGi的面紗 21.1 OSGi的定義和目標(biāo) 31.1.1 Java模塊化的不足 31.1.2 OSGi能幫助你嗎 61.2 OSGi架構(gòu)概覽 61.2.1 OSGi框架 71.2.2 將它們結(jié)合起來(lái) 101.3 Hello, world! 101.3.1 模塊層示例 101.3.2 生命周期層示例 121.3.3 服務(wù)層示例 131.3.4 場(chǎng)景設(shè)置 151.4 OSGi的相關(guān)技術(shù) 161.4.1 Java EE 161.4.2 Jini 171.4.3 NetBeans 171.4.4 JMX 171.4.5 輕量級(jí)容器 181.4.6 Java 業(yè)務(wù)集成 181.4.7 JSR 277 191.4.8 JSR 294 191.4.9 SCA 191.4.10 .NET 201.5 小結(jié) 20第2章 精通模塊化 212.1 什么是模塊化 212.2 為什么使用模塊化 242.3 模塊化繪圖程序 242.4 bundle 272.4.1 bundle在物理模塊化中扮演的角色 282.4.2 bundle在邏輯模塊化中扮演的角色 292.5 使用元數(shù)據(jù)定義bundle 302.5.1 可讀信息 312.5.2 bundle標(biāo)識(shí) 322.5.3 代碼可見(jiàn)性 342.5.4 類搜索順序 422.6 完成繪圖程序設(shè)計(jì) 432.6.1 提高繪圖程序的模塊化 442.6.2 啟動(dòng)新的繪圖程序 462.7 OSGi依賴解析 462.7.1 自動(dòng)解析依賴 472.7.2 使用約束保證一致性 512.8 回顧模塊化繪圖程序的好處 562.9 小結(jié) 59第3章 生命周期 603.1 生命周期管理 603.1.1 什么是生命周期管理 613.1.2 為什么需要生命周期管理 623.2 OSGi bundle的生命周期 633.2.1 將生命周期引入繪圖程序 633.2.2 OSGi框架在生命周期中的作用 653.2.3 bundles激活器的清單文件條目 663.2.4 生命周期API 673.2.5 生命周期狀態(tài)圖 723.2.6 bundle緩存和框架重啟 733.3 在bundle中使用生命周期API 743.3.1 配置bundle 753.3.2 部署bundle 763.3.3 檢查框架狀態(tài) 813.3.4 持久化bundle狀態(tài) 823.3.5 事件監(jiān)聽(tīng) 853.3.6 bundle自我銷毀 873.4 動(dòng)態(tài)擴(kuò)展繪圖程序 893.5 生命周期與模塊化 963.5.1 解析bundle 963.5.2 刷新bundle 983.5.3 當(dāng)更新操作沒(méi)有完成更新 1013.6 小結(jié) 103第4章 學(xué)習(xí)服務(wù) 1044.1 什么是服務(wù)、為什么使用服務(wù)、什么時(shí)候用服務(wù) 1044.1.1 什么是服務(wù) 1044.1.2 為什么使用服務(wù) 1064.1.3 什么時(shí)候應(yīng)該使用服務(wù) 1094.1.4 什么時(shí)候不應(yīng)該使用服務(wù) 1104.1.5 仍然不確定 1104.2 OSGi服務(wù)實(shí)戰(zhàn) 1114.2.1 發(fā)布服務(wù) 1124.2.2 查找并綁定服務(wù) 1144.3 處理動(dòng)態(tài)性 1174.3.1 避免常見(jiàn)的陷阱 1184.3.2 監(jiān)聽(tīng)服務(wù) 1214.3.3 服務(wù)跟蹤 1264.4 在繪圖示例中使用服務(wù) 1294.4.1 定義圖形服務(wù) 1294.4.2 發(fā)布圖形服務(wù) 1294.4.3 跟蹤圖形服務(wù) 1304.5 將服務(wù)關(guān)聯(lián)到模塊層和生命周期層 1314.5.1 為什么不能看到我的服務(wù) 1314.5.2 能否提供一個(gè)bundle特有的服務(wù) 1324.5.3 應(yīng)該在何時(shí)釋放服務(wù) 1334.5.4 何時(shí)注銷服務(wù) 1334.5.5 應(yīng)該將接口分開(kāi)打包嗎 1334.6 標(biāo)準(zhǔn)服務(wù) 1344.6.1 核心服務(wù) 1344.6.2 compendium服務(wù) 1354.7 小結(jié) 136第5章 深入分析模塊化特性 1385.1 管理導(dǎo)出 1385.1.1 導(dǎo)入導(dǎo)出包 1395.1.2 隱式導(dǎo)出屬性 1425.1.3 強(qiáng)制導(dǎo)出屬性 1435.1.4 導(dǎo)出過(guò)濾 1455.1.5 復(fù)制導(dǎo)出 1465.2 導(dǎo)入解耦 1475.2.1 可選導(dǎo)入 1475.2.2 動(dòng)態(tài)導(dǎo)入 1485.2.3 可選導(dǎo)入與動(dòng)態(tài)導(dǎo)入的比較 1495.2.4 日志示例 1505.3 需要的bundle 1535.3.1 聲明bundle依賴關(guān)系 1545.3.2 聚合分割包 1555.3.3 bundle依賴的相關(guān)問(wèn)題 1585.4 將bundle劃分為片段 1585.4.1 片段 1595.4.2 本地化中使用片段 1615.5 處理與環(huán)境相關(guān)的問(wèn)題 1645.5.1 依賴執(zhí)行環(huán)境 1655.5.2 構(gòu)建本地庫(kù) 1665.6 小結(jié) 168第二部分 OSGi實(shí)踐第6章 走近bundle 1706.1 將JAR轉(zhuǎn)換成bundle 1706.1.1 選取bundle標(biāo)識(shí) 1716.1.2 導(dǎo)出包 1736.1.3 發(fā)現(xiàn)需要導(dǎo)入的包 1776.1.4 嵌入與導(dǎo)入 1816.1.5 增加對(duì)生命周期的支持 1816.1.6 JAR文件轉(zhuǎn)換為bundle的簡(jiǎn)要說(shuō)明 1836.2 分割一個(gè)應(yīng)用到多個(gè)bundle 1846.2.1 創(chuàng)建一個(gè)大型bundle 1846.2.2 將代碼拆分到多個(gè)bundle中 1936.2.3 降低模塊耦合 1976.2.4 是否要轉(zhuǎn)換成bundle 2016.3 小結(jié) 204第7章 測(cè)試應(yīng)用程序 2067.1 遷移測(cè)試到OSGi 2067.1.1 容器內(nèi)測(cè)試 2077.1.2 創(chuàng)建測(cè)試bundle 2087.1.3 覆蓋所有基礎(chǔ) 2107.2 模擬OSGi 2127.2.1 測(cè)試期望的行為 2137.2.2 模擬實(shí)戰(zhàn) 2147.2.3 模擬意外情景 2157.2.4 處理多線程測(cè)試 2167.2.5 暴露競(jìng)態(tài)條件 2187.3 OSGi高級(jí)測(cè)試 2197.3.1 OSGi測(cè)試工具 2207.3.2 在多個(gè)框架中運(yùn)行測(cè)試 2217.3.3 單元測(cè)試 2257.3.4 集成測(cè)試 2267.3.5 管理測(cè)試 2287.4 小結(jié) 230第8章 調(diào)試應(yīng)用 2328.1 調(diào)試bundle 2328.1.1 調(diào)試實(shí)戰(zhàn) 2348.1.2 使用HotSwap解決問(wèn)題 2398.2 解決類加載相關(guān)問(wèn)題 2438.2.1 ClassNotFoundException與NoClassDefFoundError 2448.2.2 類型轉(zhuǎn)換問(wèn)題 2468.2.3 使用uses約束 2478.2.4 同Class.forName()劃清界限 2498.2.5 線程上下文類加載器 2528.3 追蹤內(nèi)存泄漏 2548.4 懸掛服務(wù) 2588.4.1 查找懸掛服務(wù) 2598.4.2 防止懸掛服務(wù) 2598.5 小結(jié) 261第9章 管理bundle 2629.1 包和bundle的版本控制 2629.1.1 有效的版本控制 2639.1.2 包的版本控制 2649.1.3 bundle的版本控制 2669.2 配置bundle 2679.2.1 配置管理服務(wù) 2689.2.2 元類型服務(wù) 2769.2.3 首選項(xiàng)服務(wù) 2799.3 延遲啟動(dòng)bundle 2819.3.1 激活策略 2819.3.2 使用激活策略 2839.4 小結(jié) 284第10章 管理應(yīng)用 28510.1 部署bundle 28510.1.1 管理代理 28510.1.2 OSGi bundle倉(cāng)庫(kù) 28710.1.3 部署管理服務(wù) 29410.2 指定bundle激活順序 30110.2.1 介紹啟動(dòng)級(jí)別服務(wù) 30210.2.2 使用啟動(dòng)級(jí)別服務(wù) 30310.3 小結(jié) 306第三部分 高級(jí)主題第11章 組件模型和框架 30811.1 面向組件 30811.1.1 什么是組件 30911.1.2 為什么需要組件 31011.2 OSGi與組件 31111.2.1 OSGi面向服務(wù)的組件模型 31111.2.2 改進(jìn)OSGi組件模型 31211.2.3 使用組件的繪圖示例 31611.3 聲明式服務(wù) 31611.3.1 構(gòu)建聲明式服務(wù)組件 31711.3.2 使用聲明式服務(wù)提供服務(wù) 31811.3.3 利用聲明式服務(wù)使用服務(wù) 31911.3.4 聲明式服務(wù)組件生命周期 32411.4 小結(jié) 330第12章 高級(jí)組件框架 33112.1 Blueprint容器 33112.1.1 Blueprint架構(gòu) 33212.1.2 用Blueprint提供服務(wù) 33212.1.3 通過(guò)Blueprint使用服務(wù) 33512.1.4 Blueprint組件生命周期 33912.1.5 Blueprint高級(jí)特性 34312.2 Apache Felix iPOJO 34712.2.1 構(gòu)建iPOJO組件 34812.2.2 通過(guò)iPOJO提供服務(wù) 34912.2.3 通過(guò)iPOJO使用服務(wù) 35012.2.4 iPOJO組件生命周期 35512.2.5 使用iPOJO實(shí)例化組件 35812.3 混合和匹配 36212.4 小結(jié) 364第13章 啟動(dòng)和嵌入OSGi框架 36513.1 標(biāo)準(zhǔn)啟動(dòng)和嵌入 36513.1.1 框架API概覽 36613.1.2 創(chuàng)建框架實(shí)例 36713.1.3 配置框架 36913.1.4 啟動(dòng)框架實(shí)例 37013.1.5 停止框架實(shí)例 37113.2 啟動(dòng)框架 37213.2.1 確定安裝哪些bundle 37313.2.2 干凈地關(guān)閉 37313.2.3 配置、創(chuàng)建和啟動(dòng)框架 37413.2.4 安裝bundle 37413.2.5 啟動(dòng)bundle 37513.2.6 啟動(dòng)主bundle 37513.2.7 等待關(guān)閉 37613.3 嵌入框架 37713.3.1 內(nèi)部還是外部 37813.3.2 誰(shuí)在控制 38013.3.3 嵌入式框架示例 38113.4 小結(jié) 386第14章 確保應(yīng)用程序的安全 38814.1 使用安全或者不使用安全 38814.2 安全:努力嘗試使用 39014.3 OSGi特定的權(quán)限 39314.3.1 PackagePermission 39314.3.2 BundlePermission 39414.3.3 AdminPermission 39514.3.4 ServicePermission 39614.3.5 相對(duì)文件權(quán)限 39714.4 使用條件權(quán)限管理服務(wù)管理權(quán)限 39714.4.1 條件權(quán)限 39714.4.2 條件權(quán)限管理服務(wù) 39814.4.3 bundle 位置條件 40014.4.4 使用Conditional-Permission Admin 40014.4.5 實(shí)現(xiàn)一個(gè)策略文件讀取器 40414.5 數(shù)字簽名的bundle 40514.5.1 學(xué)習(xí)術(shù)語(yǔ) 40614.5.2 創(chuàng)建證書(shū)和簽名bundle 40614.5.3 BundleSignerCondition 40814.6 本地權(quán)限 41014.7 高級(jí)權(quán)限管理 41114.7.1 自定義條件概覽 41114.7.2 基于日期的條件 41214.7.3 用戶輸入條件 41414.8 匯總 41714.9 小結(jié) 421第15章 Web應(yīng)用和Web服務(wù) 42215.1 創(chuàng)建Web應(yīng)用 42215.1.1 使用HTTP服務(wù)規(guī)范 42415.1.2 使用Web應(yīng)用規(guī)范 43215.1.3 標(biāo)準(zhǔn)WAR:Web URL處理程序 43615.2 提供和使用Web服務(wù) 43715.2.1 提供一個(gè)Web服務(wù) 43815.2.2 使用Web服務(wù) 44115.2.3 發(fā)布服務(wù) 44515.3 小結(jié) 452附錄A 構(gòu)建 bundle 453附錄B OSGi標(biāo)準(zhǔn)服務(wù) 466

編輯推薦

《OSGi實(shí)戰(zhàn)》由Richard S. Hall、Karl Pauls、Stuart McCulloch、David Savage聯(lián)手打造,系統(tǒng)、全面、深入地闡述OSGi的重要特性及其使用方法。理論與實(shí)踐相結(jié)合,能指導(dǎo)實(shí)際開(kāi)發(fā)?!禣SGi實(shí)戰(zhàn)》通過(guò)精彩的講解和貼近實(shí)戰(zhàn)的豐富示例,幫助讀者完成“入門(mén)-進(jìn)階-提高”三級(jí)跳。

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

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


    OSGi實(shí)戰(zhàn) PDF格式下載


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

 
 

  •   看了180多頁(yè),看不下去了。加上OSGI本來(lái)就晦澀難懂,翻譯水平實(shí)在是差,有些語(yǔ)句就不通順,不建議作為入門(mén)書(shū)籍來(lái)讀。
  •   怎么這么臟??!封面里面! 細(xì)節(jié)很重要哦! 對(duì)顧客要無(wú)上尊重!雖然說(shuō)內(nèi)容是本質(zhì)! 亞馬遜不精細(xì)!
  •   內(nèi)容不錯(cuò),不過(guò)印刷質(zhì)量實(shí)在對(duì)不起讀者呀
  •   書(shū)的質(zhì)量不錯(cuò),有原版英文電子文檔,再看看中文的加深理解和消化吧
  •   有助于加深對(duì)osgi思想的理解
  •   有點(diǎn)像盜版的有點(diǎn)像盜版的有點(diǎn)像盜版的
  •   osgi
  •   學(xué)習(xí)osgi必備書(shū),質(zhì)量不錯(cuò)。
  •   一直在用,想系統(tǒng)看下
  •   學(xué)習(xí)一下OSGI
  •   oracle資料
 

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

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