本書基于作者多年使用0SGi的經驗而編寫,涵蓋了0SGi從/kfqN深入的知識體系,從OSGi的簡介開始,介紹OSGi的作用及基本概念;其後進入OSGi實戰,結合實例講解如何基于OSGi框架編寫模塊化、動態化的各種Java應用;最後對0SGi知識進行深入講解,通過對0SGi規範和實現框架(Equinox、Felix、Spring—DM和Apache
CXF)的分析,以及最佳實踐的介紹,幫助讀者更好地使用OSGi。
本書適合希望了解、深入掌握OSGi,以及編寫模塊化、動態化Java應用的Java架構師和開發人員閱讀。
林昊,China OSGi User Group
Director,淘寶網平台架構部架構師。自2006年開始在實際的商業產品中使用OSGi,並根據自己的經驗先後編寫了《OSGi實戰》及《OSGi進階》兩篇0pendoc。這兩篇0pendoc是到目前為止僅有的完整介紹OSGi的中文資料,為OSGi在中國的推廣起到了很大作用。個人研究方向主要為Java模塊化、動態化系統的構建,以及高性能的大型分布式Java系統構建。
曾憲杰,2002年畢業于浙江大學計算機系。先後在中科院下屬企業、先鋒電子(中國)就職。積累了豐富的Windows平台、企業級系統設計經驗。現任淘寶網平台架構部架構師,主要研究方向為大規模集群環境下的消息中間件設計、分布式數據層和分布式系統。
目錄
第1章 OSGi簡介
1.1 夢想中“即插即用”的系統
1.2 0SGi,拯救Java模塊化的規範
1.3 厚積薄發的oSGi
1.4 0SGi基本概念
1.4.1 Bundle
1.4.2 Service
1.4.3 Service—Oriented Component Model(SOCM)
1.4.4 Declarative Service
1.4.5 部署
第2章 OSGl框架簡介
2.1 Equinox
2.1.1 簡介
2.1.2 環境搭建
2.1.3 HelloWorld
2.1.4 開發傳統類型的應用
2.1.5 從外部啟動Equinox
2.2 Felix
2.2.1 簡介
2.2.2 環境搭建
2.2.3 應用的部署
2.2.4 在Eclipse中調試Felix
2.3 Spring-DM
2.3.1 簡介
2.3.2 環境搭建
2.3.3 HelloWorld
2.3.4 Web版HelloWorld
第3章 基于Spring—DM實現Petstore
3.1 “即插即用”的Petstore
3.1.1 Petstore的功能需求
3.1.2 0SGi框架的功能和設計思想
3.1.3 Petstore的設計
3.2 新一代Petstore的實現
3.2.1 環境準備
3.2.2 Utils模塊
3.2.3 Bootstrap模塊
3.2.4 ProductDal模塊
3.2.5 ShoppingCartDal模塊
3.2.6 ProductList模塊
3.2.7 ShoppingCart模塊
3.2.8 ProductManagement模塊
3.3 部署
3.4 Petstore的擴展
第4章 基于Apache CXF實現分布式Petstore
4.1 分布式OSGi
4.2 分布式Petstore的設計
4.3 Apache CXF簡介
4.3.1 CXF—DOSGi HelloWorld
4.3.2 集成Sprin9—DM的CXF—DOSGi HelloWortd
4.4 分布式Petstore的實現
4.5 部署
第5章 構建OSGi Bundle Repository
5.1 0SGi Bundle Repository的使用
5.2 Apache Felix OBR的使用
5.2.1 命令行方式的用法
5.2.2 代碼方式使用0BR
5.3 構建0SGi Bundle Repository
第6章 OSGi規範解讀
6.1 0SGi規範發展歷程
6.2 Core規範解讀
6.2.1 Module Layer
6.2.2 LifeCycle Layer
6.2.3 Service Layer
6.3 0SGi Service規範解讀
6.3.1 Log Service
6.3.2 Http Service
6.3.3 Configuration Admin Service
6.3.4 Declarative Services
6.3.5 Event Admin Service
第7章 Equinox實現分析
7.1 模塊化
7.1.1 加載並解析jar為Bundle
7.1.2 Bundle類共享及類加載機制
7.2 動態化
第8章 Felix實現分析
8.1 模塊化
8.1.1 加載並解析jar為Bundle
8.1.2 Bundle類共享及類加載機制
8.2 動態化
第9章 Spring-DM實現分析
9.1 Spring Dynamic Module概述
9.2 Bean發布為OSGi服務實現分析
9.2.1 Extender Bundle啟動
9.2.2 Bundle中的NamespaceHandler處理
9.2.3 ExtenderConfiguration處理
9.2.4 ApplicationContext處理
9.3 將OSGi Service引入為Bean
9.3.1 osgi:service的處理
9.3.2 osgi:set和osgi:list的處理
9.4 將Bundle部署到Web服務器
9.4.1 WebExtender的啟動
9.4.2 部署Bundle到Web服務器
第10章 CXF實現分析
10.1 Apache CXF-DOSGi實現分析
10.2 SingleBundle發行包
10.2.1 SingleBundle發行包的啟動
10.3 把Bundle暴露為遠程服務
10.3.1 DSW Bundle啟動
10.3.2 RegisterDistributionProviderService
10.3.3 創建Hook對象及注冊Listener
10.3.4 處理當前框架中的Bundle
10.3.5 發布遠程服務
10.4 使用遠程服務
10.4.1 Discovery Bundle啟動
10.4.2 處理當前框架中的Bundle
10.4.3 注冊遠程服務的本地存根
第11章 先睹為快︰OSGi R4.2草稿版
11.1 Core
11.1.1 Module Layer
11.1.2 Lifecycle Layer
11.1.3 Service Layer
11.1.4 Framework API
11.2 Compendium
11.2.1 Declarative Services Specification
11.2.2 Deployment Admin Specification
11.2.3 Monitor Admin Service Specification
第12章 OSGi展望
12.1 Java企業應用領域
12.2 Java標準領域
12.3 OSGi R5
索引
1.1 夢想中“即插即用”的系統
1.2 0SGi,拯救Java模塊化的規範
1.3 厚積薄發的oSGi
1.4 0SGi基本概念
1.4.1 Bundle
1.4.2 Service
1.4.3 Service—Oriented Component Model(SOCM)
1.4.4 Declarative Service
1.4.5 部署
第2章 OSGl框架簡介
2.1 Equinox
2.1.1 簡介
2.1.2 環境搭建
2.1.3 HelloWorld
2.1.4 開發傳統類型的應用
2.1.5 從外部啟動Equinox
2.2 Felix
2.2.1 簡介
2.2.2 環境搭建
2.2.3 應用的部署
2.2.4 在Eclipse中調試Felix
2.3 Spring-DM
2.3.1 簡介
2.3.2 環境搭建
2.3.3 HelloWorld
2.3.4 Web版HelloWorld
第3章 基于Spring—DM實現Petstore
3.1 “即插即用”的Petstore
3.1.1 Petstore的功能需求
3.1.2 0SGi框架的功能和設計思想
3.1.3 Petstore的設計
3.2 新一代Petstore的實現
3.2.1 環境準備
3.2.2 Utils模塊
3.2.3 Bootstrap模塊
3.2.4 ProductDal模塊
3.2.5 ShoppingCartDal模塊
3.2.6 ProductList模塊
3.2.7 ShoppingCart模塊
3.2.8 ProductManagement模塊
3.3 部署
3.4 Petstore的擴展
第4章 基于Apache CXF實現分布式Petstore
4.1 分布式OSGi
4.2 分布式Petstore的設計
4.3 Apache CXF簡介
4.3.1 CXF—DOSGi HelloWorld
4.3.2 集成Sprin9—DM的CXF—DOSGi HelloWortd
4.4 分布式Petstore的實現
4.5 部署
第5章 構建OSGi Bundle Repository
5.1 0SGi Bundle Repository的使用
5.2 Apache Felix OBR的使用
5.2.1 命令行方式的用法
5.2.2 代碼方式使用0BR
5.3 構建0SGi Bundle Repository
第6章 OSGi規範解讀
6.1 0SGi規範發展歷程
6.2 Core規範解讀
6.2.1 Module Layer
6.2.2 LifeCycle Layer
6.2.3 Service Layer
6.3 0SGi Service規範解讀
6.3.1 Log Service
6.3.2 Http Service
6.3.3 Configuration Admin Service
6.3.4 Declarative Services
6.3.5 Event Admin Service
第7章 Equinox實現分析
7.1 模塊化
7.1.1 加載並解析jar為Bundle
7.1.2 Bundle類共享及類加載機制
7.2 動態化
第8章 Felix實現分析
8.1 模塊化
8.1.1 加載並解析jar為Bundle
8.1.2 Bundle類共享及類加載機制
8.2 動態化
第9章 Spring-DM實現分析
9.1 Spring Dynamic Module概述
9.2 Bean發布為OSGi服務實現分析
9.2.1 Extender Bundle啟動
9.2.2 Bundle中的NamespaceHandler處理
9.2.3 ExtenderConfiguration處理
9.2.4 ApplicationContext處理
9.3 將OSGi Service引入為Bean
9.3.1 osgi:service的處理
9.3.2 osgi:set和osgi:list的處理
9.4 將Bundle部署到Web服務器
9.4.1 WebExtender的啟動
9.4.2 部署Bundle到Web服務器
第10章 CXF實現分析
10.1 Apache CXF-DOSGi實現分析
10.2 SingleBundle發行包
10.2.1 SingleBundle發行包的啟動
10.3 把Bundle暴露為遠程服務
10.3.1 DSW Bundle啟動
10.3.2 RegisterDistributionProviderService
10.3.3 創建Hook對象及注冊Listener
10.3.4 處理當前框架中的Bundle
10.3.5 發布遠程服務
10.4 使用遠程服務
10.4.1 Discovery Bundle啟動
10.4.2 處理當前框架中的Bundle
10.4.3 注冊遠程服務的本地存根
第11章 先睹為快︰OSGi R4.2草稿版
11.1 Core
11.1.1 Module Layer
11.1.2 Lifecycle Layer
11.1.3 Service Layer
11.1.4 Framework API
11.2 Compendium
11.2.1 Declarative Services Specification
11.2.2 Deployment Admin Specification
11.2.3 Monitor Admin Service Specification
第12章 OSGi展望
12.1 Java企業應用領域
12.2 Java標準領域
12.3 OSGi R5
索引
序
與世界的接口
幾年前,關注OSGi的人還很少的時候,林吳就和我討論如何將OSGi應用在實際工作中。程序員在編寫大量代碼後,也會遇到復用和模塊化的問題。相信每位認真的開發者都有過模塊化的嘗試,幾次之後才會發現最大的挑戰並非代碼實現,而是來自于模塊邊界的定義。如何界定模塊的邊界,需要開發者有大量的經驗和對體系的深刻理解。比較JavaBean這種JVM級別的編譯式復用,OSGi面對的無疑是更大的挑戰,它給我的印象是希望達成健壯的、可以熱插拔的、較粗粒度的模塊化邊界定義方案,幸運的是它成功了。針對這種邊界方案的各種實現,幾年之後,有了最著名的Equinox和FeliXo OSGi也已經成為各大應用服務器的一致選擇和實現標準,它成了你的代碼與世界的接口。
在這次Java進化的過程中,林吳以技術人員的敏銳和韌性始終保持著對OSGi的持續關注,我相信他不止一次地體會到了興奮和快樂。最難能可貴的是他希望將這種快樂傳遞給他人,因此,他以BlueDavy的網名編寫了《OSGi實戰》和《OSGi進階》兩份Opendoc,很長時間內這是儀有的中文OSGi入門資料,他將很多人帶入了OSGi的大門,而這本書的出版,也必將為OSGi在國內的研究和普及掀起一次高潮。
本書是林吳多年研究的心血結晶,非常高興能看到本書最終定稿出版。值得一提的是,滿江紅組織在審校範里程翻譯的《OSGi R4規範》中文版的過程中,林吳出任過Leader -職,為OSGi核心文檔的翻譯貢獻了心力。
梅花香自苦寒來,向林吳表示由衷的祝賀。
滿江紅開放技術研究組織 曹曉鋼
2009年7月于上海
幾年前,關注OSGi的人還很少的時候,林吳就和我討論如何將OSGi應用在實際工作中。程序員在編寫大量代碼後,也會遇到復用和模塊化的問題。相信每位認真的開發者都有過模塊化的嘗試,幾次之後才會發現最大的挑戰並非代碼實現,而是來自于模塊邊界的定義。如何界定模塊的邊界,需要開發者有大量的經驗和對體系的深刻理解。比較JavaBean這種JVM級別的編譯式復用,OSGi面對的無疑是更大的挑戰,它給我的印象是希望達成健壯的、可以熱插拔的、較粗粒度的模塊化邊界定義方案,幸運的是它成功了。針對這種邊界方案的各種實現,幾年之後,有了最著名的Equinox和FeliXo OSGi也已經成為各大應用服務器的一致選擇和實現標準,它成了你的代碼與世界的接口。
在這次Java進化的過程中,林吳以技術人員的敏銳和韌性始終保持著對OSGi的持續關注,我相信他不止一次地體會到了興奮和快樂。最難能可貴的是他希望將這種快樂傳遞給他人,因此,他以BlueDavy的網名編寫了《OSGi實戰》和《OSGi進階》兩份Opendoc,很長時間內這是儀有的中文OSGi入門資料,他將很多人帶入了OSGi的大門,而這本書的出版,也必將為OSGi在國內的研究和普及掀起一次高潮。
本書是林吳多年研究的心血結晶,非常高興能看到本書最終定稿出版。值得一提的是,滿江紅組織在審校範里程翻譯的《OSGi R4規範》中文版的過程中,林吳出任過Leader -職,為OSGi核心文檔的翻譯貢獻了心力。
梅花香自苦寒來,向林吳表示由衷的祝賀。
滿江紅開放技術研究組織 曹曉鋼
2009年7月于上海
網路書店
類別
折扣
價格
-
新書$239