圖書簡介
J2ME為開發具有企業級性能、可靠性和價值的移動應用程式提供了極其靈活且健壯的平台。本書講述了用J2ME構建企業級應用程式的各個方面:設計、架構、工具、進程、業務問題等。
本書從新的J2ME簡檔和無線訊息傳送API到移動資料庫和Web服務工具,介紹了使平台變得更為強大的創新。這些創新使得Java開發人員(尤其是J2ME開發人員)可以利用他們的技能,給企業應用程式增加移動性。還展示了10多個完整的示例應用程式,包括本書作者在Nextel、Sun和Motorola的美國無線開發人員競賽中贏得大獎的應用程式
目錄
第Ⅰ部分緒論
第1章移動商務:前景、現實和機會 3
1.1移動商務價值觀 3
1.1.1企業對消費者(B2C) 4
1.1.2企業對企業(B2B) 4
1.1.3企業對雇員(B2E) 4
1.1.4公共服務和安全 5
1.2移動技術的採用 5
1.3尋找Killer移動應用程式 6
1.3.1移動娛樂 6
1.3.2從玩具到工具 7
1.3.3企業移動生態系統 7
1.4移動商務前景 7
1.4.1移動設備製造 7
1.4.2移動Internet服務提供商 8
1.4.3移動軟體平台提供商 8
1.4.4移動應用程式服務提供商 8
1.5小結 8
1.6參考資料 9
第2章J2ME:移動Java是否可用於企業 10
2.1為什麼選擇Java 10
2.2Java團體過程 11
2.3Java無處不在 11
2.3.1單一架構解決方案 12
2.3.2J2EE開發人員的契機 12
2.4介紹Java2MicroEdition 13
2.4.1J2ME架構 13
2.4.2J2ME組件 13
2.5競爭技術 15
2.6小結 16
2.7參考資料 16
第Ⅱ部分端到端企業應用程式
第3章智慧型客戶機範例:iFeedBack 21
3.1智慧型客戶機的優點 21
3.2介紹iFeedBack 22
3.2.1要解決的問題 22
3.2.2架構 22
3.2.3實際部署 23
3.3iFeedBack使用方案 23
3.3.1構建和部署 23
3.3.2試試看 24
3.4實現過程 25
3.4.1調用模型 25
3.4.2執行緒化模型 28
3.4.3數據交換 31
3.5小結 33
3.6參考資料 33
第4章託管智慧型客戶機 35
4.1容器管理的應用程式 35
4.1.1容器功能 35
4.1.2容器的優點 36
4.2OSGi容器 37
4.2.1Bundle 37
4.2.2標準服務 38
4.2.3綁定互動和定製服務 39
4.2.4OSGi運行時請求 39
4.3一個簡單的回顯服務示例 40
4.3.1IBMServiceManagementFramework 40
4.3.2EchoServiceBundle 42
4.3.3EchoUIConsumerBundle 44
4.4帶有HTTP前端的智慧型客戶機 47
4.4.1比薩訂購Bundle 48
4.4.2比薩訂購Servlet 50
4.4.3記錄服務 51
4.4.4HTTP服務的功能豐富UI客戶機 53
4.5移動網關 53
4.6小結 54
4.7參考資料 54
第5章移動設計模式:智慧型訂票藍圖 55
5.1開始 55
5.2運行中的智慧型訂票應用程式 56
5.2.1管理用戶偏好 56
5.2.2搜尋和購買電影票 57
5.2.3給電影打分 58
5.2.4快取電影院時間表 58
5.3重要的架構模式 59
5.3.1整體的MVC模式 59
5.3.2客戶端外觀 62
5.3.3伺服器端外觀 64
5.4實現技術 67
5.4.1處理程式鏈 67
5.4.2在HTTP上的二進制RPC 70
5.4.3客戶機端執行緒模型 73
5.5小結 75
5.6參考資料 76
第6章高級HTTP技術 77
6.1Decorator方式 77
6.1.1CustomConnector工廠類 77
6.1.2CustomConnection類 78
6.1.3Decorator的優缺點 79
6.2處理鏈方式 79
6.3通過HTTPCookie跟蹤會話 81
6.3.1通過Decorator類處理cookie 81
6.3.2通過HttpClient處理程式處理cookie 82
6.4HTTP基本認證 83
6.5HTTP摘要認證 84
6.6安全HTTP 86
6.7小結 87
6.8參考資料 87
第7章端到端最佳實踐 88
7.1受限的設備硬體 88
7.1.1輕量級庫 88
7.1.2減小應用程式記憶體占用 89
7.1.3最小化垃圾收集器 89
7.1.4使用移動門戶 90
7.1.5正確使用設計模式 91
7.2低速且不可靠的網路 91
7.2.1支持脫機模式 91
7.2.2使用遠程外觀 92
7.2.3在本地放置門戶 92
7.2.4帶緩衝的I/O 92
7.2.5加密數據 93
7.2.6有效獲取伺服器狀態 93
7.3普及設備 94
7.3.1保護設備上的數據 94
7.3.2經常同步 94
7.3.3許多設備的最佳化 94
7.3.4集中式供應 94
7.4無處不在的集成 95
7.4.1專用二進制協定 96
7.4.2使用移動RPC框架 96
7.4.3訊息傳送是我們的助手 97
7.4.4XML和Web服務 97
7.5沒有耐心的用戶 97
7.5.1利用功能豐富的UI 97
7.5.2明智使用執行緒 97
7.5.3每次一個螢幕 98
7.5.4存儲用戶偏好 98
7.5.5使用部署描述符 99
7.6小結 99
7.7參考資料 99
第Ⅲ部分移動訊息傳送應用程式
第8章電子郵件和PIM 103
8.1電子郵件基礎知識 103
8.1.1SMTP伺服器 104
8.1.2POP3和IMAP伺服器 104
8.2Mail4ME介紹 104
8.2.1傳送電子郵件 105
8.2.2接收和處理郵件訊息 106
8.2.3顯示訊息 107
8.3JavaPhoneAPI 109
8.4PDA可選包 109
8.5商業電子郵件和PIM套件 110
8.5.1Espial套件 110
8.5.2ReqWireless套件 110
8.6企業門戶伺服器 111
8.6.1BlackBerry電子郵件 111
8.6.2BlackBerryPIM 113
8.7小結 113
8.8參考資料 114
第9章會聚移動P2P訊息 115
9.1介紹WirelessMessagingAPI 115
9.1.1頂級WMA類 116
9.1.2URL和訊息連線 117
9.2運行中的WMA 118
9.2.1傳送SMS訊息 118
9.2.2同步接收SMS訊息 119
9.2.3異步接收SMS訊息 120
9.2.4通過MIDPPUSH接收SMS訊息 121
9.3WMA的參考實現 121
9.3.1運行時屬性 121
9.3.2J2MEWTKv2.0中的WMA控制台 122
9.3.3架構 123
9.4來自後端的SMS 123
9.4.1jSMSAPI 124
9.4.2SimplewireJavaSMSSDK 124
9.4.3諾基亞移動伺服器服務SDK 124
9.4.4標準化伺服器端的訊息傳送API 126
9.5超越SMS:IM會聚 126
9.5.1介紹Jabber 126
9.5.2Jabber協定:XMPP 127
9.5.3KVMJabJabber庫 128
9.5.4其他商業Jabber客戶程式 129
9.6基於SIP的IM應用程式 129
9.7小結 130
9.8參考資料 130
第10章企業訊息傳送 132
10.1移動企業訊息傳送 132
10.2JMS介紹 133
10.2.1頂層接口 133
10.2.2發布-訂閱模型 134
10.2.3點對點模型 136
10.2.4兩種訊息傳送模型的結合 137
10.3來自iBus//Mobile的移動JMS 137
10.3.1J2MEJMS客戶 138
10.3.2用於MIDP的輕量級客戶 139
10.3.3不可程式的客戶 140
10.4IBM的WebSphereMQEveryplace 140
10.4.1一個真實的移動MOM解決方案 140
10.4.2了解HelloWorld代碼 141
10.4.3存儲適配器 144
10.4.4管理佇列 145
10.4.5通信適配器 148
10.5小結 149
10.6參考資料 150
第Ⅳ部分移動資料庫和同步引擎
第11章用於CDC設備的移動資料庫 153
11.1移動資料庫 153
11.2介紹JDBC 154
11.2.1一個JDBC示例 154
11.2.2獲取Connection對象 155
11.2.3執行SQL語句 155
11.2.4抽取查詢結果 155
11.3使用PreparedStatement的可移植的有效代碼 156
11.3.1Statement接口問題 156
11.3.2使用PreparedStatement接口 156
11.4使用CallableStatement訪問存儲過程 157
11.4.1什麼是存儲過程 157
11.4.2使用CallableStatement接口 157
11.5CDC的JDBC可選包 158
11.6HSQL資料庫引擎 159
11.7iAnywhereSolutionsSQLAnywhereStudio 160
11.8IBMDB2Everyplace 161
11.9Oracle9iLite 162
11.10PointBaseMicroEdition 163
11.11示例應用程式:聯繫管理器 163
11.12小結 168
11.13參考資料 169
第12章用於MIDP設備的移動資料庫 170
12.1PointBaseMicroEdition 170
12.2OracleJ2MESODASDK 171
12.3IBMDB2eFastRecordStore 173
12.4小結 175
12.5參考資料 175
第13章資料庫同步 176
13.1同步和移動 176
13.1.1不連線但同步的架構 176
13.1.2移動資料庫的同步 177
13.2PointBaseUniSync 178
13.2.1伺服器端的程式代碼 179
13.2.2客戶端的程式代碼 181
13.3IBM的DB2Everyplace 182
13.3.1通過編程訪問DB2eSync 182
13.3.2使用MIDPFastRecordStore的Sync 183
13.4iAnywhereSolutionsMobiLink 184
13.4.1獨立的本地客戶的MobiLink 184
13.4.2通過編程訪問MobiLink 185
13.5Oracle9iMobileServer 185
13.6同步的聯繫管理器 185
13.7小結 190
13.8參考資料 190
第14章訪問後端資料庫 191
14.1對遠程資料庫的直接訪問 191
14.1.1特定於應用程式的中間件 192
14.1.2使用JDBC 192
14.1.3網關Servlet 192
14.2OracleJ2MESQLSDK 192
14.3傳統應用程式 193
14.4使用用於傳統資料庫的Simplicity 194
14.4.1Simplicity移動 194
14.4.2SimplicityEnterprise的LegacyRejuvenation 195
14.5小結 197
14.6參考資料 198
第Ⅴ部分XML和移動Web服務
第15章用於小型設備的XML 201
15.1什麼是XML 201
15.2在小型設備上使用XML 202
15.3XML分析模型 203
15.3.1SAX 203
15.3.2XMLPull 203
15.3.3文檔模型 204
15.4AmazonXML服務介紹 205
15.5通過XmlPull提供Amazon服務 208
15.6通過kDOM提供Amazon服務 210
15.7移動RSS客戶 212
15.7.1簡單的RSS例子 212
15.7.2PeekAndPick 213
15.8小結 215
15.9參考資料 215
第16章智慧型客戶上的SOAPWeb服務 216
16.1什麼是SOAPWeb服務 216
16.1.1SOAP的優點 216
16.1.2SOAPHelloWorld 217
16.1.3SOAPWeb服務的架構 218
16.2kSOAP介紹 219
16.2.1什麼是SOAP分析 219
16.2.2使用kSOAP的簡單分析的例子 220
16.2.3call()方法如何工作 220
16.2.4kSOAP訊息傳送 221
16.2.5kSOAPStub生成器 224
16.3解讀kSOAP 224
16.3.1默認映射 224
16.3.2對象結構 225
16.3.3通過數據整編自定義映射 226
16.3.4一個更複雜的例子 228
16.3.5扼要重述:kSOAPAPI 229
16.4高級kSOAP 230
16.4.1數組 230
16.4.2使用SoapTemplate檢驗文檔 230
16.5更多kSOAP的例子 231
16.5.2SmartPhrases 232
16.6什麼是kSOAPv2.0 233
16.7小結 236
16.8參考資料 236
第17章J2MEWeb服務可選包 237
17.1簡單回顧 237
17.2XMLProcessingAPI 238
17.3JAX-RPCAPI 239
17.3.1功能 240
17.3.2API 241
17.3.3用戶 241
17.4SPI的實現 242
17.5與kXML和kSOAP的比較 243
17.6小結 244
17.7參考資料 244
第18章案例研究:用於基於位置服務的移動客戶程式 245
18.1基於位置的服務 245
18.2微軟公司的MapPointWeb服務 246
18.2.1MapPointv3.0SOAPAPI 246
18.2.2聚合的API 247
18.2.3Axis外觀 248
18.3MapPointJ2ME客戶程式 250
18.3.1CDC/PP和PersonalJava客戶程式 250
18.3.2MIDP客戶程式 253
18.4增強的行車導向應用程式 253
18.4.1確定位置的技術 253
18.4.2J2ME的位置API 254
18.5小結 256
18.6參考資料 256
第Ⅵ部分高級移動安全性
第19章企業的移動安全性 259
19.1什麼是高級移動安全性 259
19.1.1基於內容的安全性 259
19.1.2分散式訪問控制 260
19.1.3設備的安全性 261
19.2輕量級移動加密工具包 261
19.3BouncyCastle輕量級API 263
19.3.1開放原始碼的作用 263
19.3.2注意事項 263
19.4IAIKMEJCE 264
19.5PhaosTechnologyMicroFoundation工具包 265
19.6NTRUjNeo的Java工具包 266
19.7B3Security 266
19.7.1B3如何工作 266
19.7.2優點 267
19.8特定於設備的API 268
19.9J2ME安全性API的標準化 268
19.10小結 268
19.11參考資料 268
第20章J2ME加密方法 270
20.1方法概述 270
20.1.1包的結構 271
20.1.2密鑰串列化 271
20.2對稱加密 271
20.2.1BouncyCastle 272
20.2.2IAIKJCE-ME 274
20.2.3PhaosMicroFoundation 274
20.2.4NTRUjNeo 276
20.3基於口令的加密 278
20.3.1BouncyCastle 279
20.3.2IAIKJCE-ME 280
20.3.3PhaosMicroFoundation 281
20.4公鑰加密 282
20.4.1BouncyCastle 283
20.4.2IAIKJCE-ME 286
20.4.3PhaosMicroFoundation 287
20.4.4NTRUjNeo 288
20.5數字簽名 291
20.5.1BouncyCastle 292
20.5.2IAIKJCE-ME 293
20.5.3PhaosMicroFoundation 293
20.5.4NTRUjNeo 295
20.6小結 297
20.7參考資料 297
附錄AJ2ME應用程式開發的基礎 298
A.1生存期方法 298
A.2UI模型 298
A.3遠程和本地數據 299
A.4代碼 299
A.5打包和創建 303
A.6部署 305
A.7小結 306
附錄B用於PDA的工具和J2ME運行時庫 307
B.1WebSphereStudioDeviceDeveloper的概述 307
B.2在PocketPC設備上安裝MIDP 309
B.3在PocketPC設備上安裝PersonalProfile 309
B.4在PocketPC設備上運行Java應用程式 310
B.5小結 310