注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計JAVA及其相關深入理解OSGi:Equinox原理、應用與最佳實踐

深入理解OSGi:Equinox原理、應用與最佳實踐

深入理解OSGi:Equinox原理、應用與最佳實踐

定 價:¥79.00

作 者: 周志明;謝小明
出版社: 機械工業(yè)出版社
叢編項:
標 簽: Java Java Script J2EE 程序設計 計算機/網(wǎng)絡

ISBN: 9787111408871 出版時間: 2013-02-01 包裝: 平裝
開本: 16開 頁數(shù): 432 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

前言
第一部分 走近OSGi
第1章 Java模塊化之路 / 2
1.1 什么是OSGi / 2
1.1.1 OSGi規(guī)范的演進 / 4
1.1.2 Java模塊化規(guī)范之爭 / 7
1.2 為什么使用OSGi / 11
1.2.1 OSGi能讓軟件開發(fā)變得更容易嗎 / 12
1.2.2 OSGi能讓系統(tǒng)變得更穩(wěn)定嗎 / 13
1.2.3 OSGi能讓系統(tǒng)運行得更快嗎 / 14
1.2.4 OSGi能支撐企業(yè)級開發(fā)嗎 / 15
1.3 本章小結(jié) / 16
第二部分 OSGi規(guī)范與原理
第2章 模塊層規(guī)范與原理 / 18
2.1 OSGi規(guī)范概要 / 18
2.2 Bundle / 20
2.3 描述元數(shù)據(jù) / 21
2.3.1 預定義標記 / 21
2.3.2 使用可視化工具 / 27
2.4 Bundle的組織與依賴 / 31
2.4.1 導出和導入Package / 31
2.4.2 約束規(guī)則與示例 / 38
2.4.3 校驗Bundle有效性 / 44
2.5 OSGi的類加載架構(gòu) / 45
2.5.1 父類加載器 / 46
2.5.2 Bundle類加載器 / 47
2.5.3 其他類加載器 / 49
2.5.4 類加載順序 / 50
2.6 定義執(zhí)行環(huán)境 / 51
2.7 本地化 / 54
2.8 本章小結(jié) / 55
第3章 生命周期層規(guī)范與原理 / 56
3.1 Bundle標識 / 56
3.2 Bundle狀態(tài)及轉(zhuǎn)換 / 57
3.2.1 安裝過程 / 59
3.2.2  解析過程 / 61
3.2.3 啟動過程 / 62
3.2.4 更新過程 / 63
3.2.5 停止過程 / 64
3.2.6 卸載過程 / 65
3.3 啟動級別 / 65
3.3.1 設置啟動級別 / 66
3.3.2 調(diào)整活動啟動級別 / 67
3.4 事件監(jiān)聽 / 68
3.4.1 事件類型 / 69
3.4.2 事件分派 / 70
3.5 系統(tǒng)Bundle / 71
3.6 Bundle上下文 / 72
3.7 本章小結(jié) / 73
第4章 服務層規(guī)范與原理 / 74
4.1 服務 / 74
4.2 OSGi服務示例 / 75
4.3 服務屬性 / 80
4.3.1 屬性過濾器 / 82
4.3.2 預定義屬性 / 83
4.3.3 修改屬性 / 84
4.4 服務工廠 / 85
4.5 服務跟蹤器 / 86
4.6 引用服務 / 89
4.7 釋放和注銷服務 / 91
4.8 服務層事件 / 91
4.8.1 事件類型 / 92
4.8.2 事件分派 / 92
4.8.3 ServiceRegistration對象的提前請求 / 93
4.9 遠程服務 / 94
4.9.1 準備遠程服務環(huán)境 / 94
4.9.2 遠程服務示例 / 96
4.9.3 遠程服務屬性 / 99
4.9.4 實現(xiàn)分析 / 100
4.10 服務鉤子 / 101
4.10.1 EventListenerHook / 101
4.10.2 FindHook / 101
4.10.3 ListenerHook / 102
4.10.4 服務鉤子示例 / 102
4.11 本章小結(jié) / 105
第三部分 基于Equinox的OSGi應用與實踐
第5章 Equinox啟航 / 108
5.1 建立Equinox開發(fā)環(huán)境 / 109
5.1.1 建立運行環(huán)境 / 109
5.1.2 建立編譯及調(diào)試環(huán)境 / 110
5.1.3 建立開發(fā)環(huán)境 / 112
5.2 Equinox常用組件簡介 / 117
5.3 Equinox啟動器 / 119
5.4 使用代碼啟動Equinox / 124
5.5 本章小結(jié) / 125
第6章 Equinox基礎應用與源碼解析 / 126
6.1 實踐項目—Neonat論壇 / 126
6.1.1 背景與需求 / 126
6.1.2 模塊劃分 / 127
6.1.3 基礎資料模塊 / 129
6.1.4 持久化模塊 / 133
6.1.5 用戶交互模塊 / 135
6.1.6 運行效果 / 140
6.2 Equinox源碼解析 / 142
6.2.1 OSGi容器啟動 / 142
6.2.2 Bundle狀態(tài)恢復 / 147
6.2.3 解析Bundle依賴關系 / 153
6.2.4 OSGi類加載器實現(xiàn) / 157
6.3 本章小結(jié) / 162
第7章 服務器端OSGi / 163
7.1 OSGi與Web服務器 / 163
7.2 HTTP Service規(guī)范簡介 / 166
7.2.1 服務目標 / 166
7.2.2 服務接口 / 168
7.2.3 資源映射規(guī)則 / 169
7.2.4 請求處理過程 / 171
7.3 實踐項目—Neonat論壇的Web模塊 / 171
7.3.1 準備依賴項 / 172
7.3.2 使用HTTP Service / 174
7.3.3 實現(xiàn)Web交互功能 / 176
7.3.4 運行效果 / 178
7.4 HTTP Service源碼解析 / 180
7.4.1 BridgeServlet與OSGi容器啟動 / 180
7.4.2 BridgeServlet與HTTP請求委派 / 186
7.4.3 DelegateServlet實現(xiàn)原理 / 188
7.5 本章小結(jié) / 192
第8章 用戶管理服務 / 193
8.1 User Admin服務規(guī)范簡介 / 193
8.1.1 服務目標與基礎概念 / 193
8.1.2 驗證用戶身份 / 195
8.1.3 驗證用戶權限 / 196
8.1.4 User Admin事件 / 197
8.2 實踐項目—Neonat論壇用戶管理模塊 / 198
8.2.1 需求與依賴項分析 / 198
8.2.2 用戶與用戶組的實現(xiàn) / 200
8.2.3 頁面權限 / 201
8.2.4 用戶登錄與身份驗證 / 202
8.3 User Admin源碼解析 / 206
8.3.1 用戶管理實現(xiàn) / 206
8.3.2 外部服務使用實踐 / 208
8.4 本章小結(jié) / 211
第9章 Preferences服務 / 212
9.1 Preferences服務規(guī)范簡介 / 212
9.1.1 服務目標 / 212
9.1.2 數(shù)據(jù)結(jié)構(gòu) / 214
9.1.3 屬性 / 215
9.1.4 并發(fā)處理 / 216
9.1.5 清理遺留數(shù)據(jù) / 217
9.2 實踐項目—Neonat論壇持久化模塊 / 217
9.2.1 編碼實現(xiàn) / 217
9.2.2 模塊熱切換 / 220
9.3 Preferences源碼解析 / 222
9.3.1 數(shù)據(jù)結(jié)構(gòu)實現(xiàn) / 224
9.3.2 屬性存取 / 228
9.3.3 后端存儲系統(tǒng) / 229
9.4 本章小結(jié) / 234
第10章 聲明式服務 / 235
10.1 聲明式服務規(guī)范簡介 / 236
10.1.1 服務目標 / 236
10.1.2 定義Component / 236
10.1.3 Component類型 / 237
10.1.4 Component生命周期 / 240
10.1.5 Component屬性 / 245
10.1.6 綁定與發(fā)布服務 / 245
10.1.7 激活與鈍化方法 / 252
10.1.8 Component配置總結(jié) / 254
10.2 實踐項目—使用聲明式服務改造Neonat論壇 / 259
10.2.1 可視化編輯工具 / 259
10.2.2 DS容器管理 / 263
10.3 DS容器源碼解析 / 264
10.3.1 容器啟動 / 264
10.3.2 加載Bundle中的Component / 267
10.3.3 動態(tài)依賴解析 / 272
10.4 本章小結(jié) / 274
第11章 Subsystems服務 / 276
11.1 服務目標 / 276
11.2 Subsystem格式 / 277
11.3 Subsystem元數(shù)據(jù) / 278
11.3.1 SUBSYSTEM.MF標識 / 278
11.3.2 DEPLOYMENT.MF標識 / 281
11.4 Subsystem類型與共享策略 / 283
11.5 組織管理Subsystem / 285
11.6 Subsystem部署與依賴策略 / 289
11.7 Subsystem生命周期 / 291
11.7.1 安裝 / 292
11.7.2 解析 / 293
11.7.3 啟動 / 294
11.7.4 停止 / 294
11.7.5 卸載 / 295
11.8 本章小結(jié) / 295
第四部分 最佳實踐
第12章 OSGi最佳實踐 / 298
12.1 Bundle相關名稱命名 / 298
12.2 Bundle劃分原則 / 300
12.2.1 恰如其分地分配Bundle粒度 / 300
12.2.2 分離OSGi代碼 / 300
12.2.3 分離接口和實現(xiàn) / 300
12.3 依賴關系實踐 / 301
12.3.1 依賴分析工具 / 301
12.3.2 避免Require-Bundle / 303
12.3.3 最小化依賴 / 304
12.3.4 避免循環(huán)依賴 / 304
12.3.5 Equinox x-*依賴 / 305
12.4 Equinox專有類加載機制 / 306
12.4.1 Buddy Loading類加載機制 / 306
12.4.2 ClassLoaderDelegateHook類加載機制 / 307
12.5 Bundle生命周期實踐 / 309
12.5.1 啟動 / 309
12.5.2 停止 / 309
12.6 服務工廠的特殊性 / 309
12.7 處理非OSGi的JAR包 / 311
12.8 啟動順序?qū)嵺` / 313
12.8.1 避免啟動順序依賴 / 313
12.8.2 Start Level的使用 / 313
12.9 Fragment Bundle實踐 / 314
12.10 保持OSGi動態(tài)性 / 315
12.11 API Tools實踐 / 317
12.11.1 API Baselines / 317
12.11.2 API Tools 注解 / 319
12.11.3 API Version版本管理 / 322
12.11.4 二進制文件不兼容 / 322
12.12 本章小結(jié) / 322
第13章 Spring Dynamic Modules實踐 / 324
13.1 Spring DM入門 / 324
13.1.1 Spring DM項目簡介 / 324
13.1.2 安裝Spring DM / 325
13.1.3 簡單的Spring DM示例 / 326
13.1.4 Bundle和Spring上下文 / 331
13.1.5 <osgi:*>命名空間 / 333
13.2 Spring DM進階 / 337
13.2.1 Spring DM擴展配置 / 337
13.2.2 Web Extender / 344
13.2.3 Spring DM服務約束 / 345
13.2.4 在Spring上下文中使用BundleContext / 346
13.3 Spring DM企業(yè)應用 / 346
13.3.1 規(guī)劃OSGi組件 / 347
13.3.2 在Spring DM中使用JPA / 348
13.3.3 事務管理 / 353
13.3.4 OSGi企業(yè)規(guī)范中的JPA / 358
13.4 Spring DM和Blueprint / 359
13.5 本章小結(jié) / 360
第14章 構(gòu)建可測試的OSGi系統(tǒng) / 361
14.1 單元測試的必要性 / 362
14.2 單元測試的重要性 / 363
14.3 可測試代碼的特征 / 364
14.4 OSGi單元測試 / 365
14.4.1 如何組織測試代碼 / 366
14.4.2 如何進行OSGi單元測試 / 367
14.5 OSGi集成測試 / 373
14.5.1 Eclipse JUnit Plug-in Test / 374
14.5.2 Spring DM Test / 379
14.5.3 Pax Exam / 383
14.6 本章小結(jié) / 384
附錄A Java類加載器簡介 / 385
附錄B Equinox控制臺命令 / 392
附錄C OSGi子規(guī)范目錄 / 397
附錄D OSGi相關項目 / 399
附錄E Equinox啟動配置參數(shù) / 401

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號