第1章 移动商务:前景、现实和机会 3
1.1 移动商务价值观 3
第Ⅰ部分 绪论 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.4 移动商务前景 7
1.4.1 移动设备制造 7
1.3.2 从玩具到工具 7
1.3.3 企业移动生态系统 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.3 Java无处不在 11
2.2 Java团体过程 11
2.3.1 单一架构解决方案 12
2.3.2 J2EE开发人员的契机 12
2.4 介绍Java 2 Micro Edition 13
2.4.1 J2ME架构 13
2.4.2 J2ME组件 13
2.5 竞争技术 15
2.6 小结 16
2.7 参考资料 16
第3章 智能客户机范例:iFeedBack 21
3.1 智能客户机的优点 21
第Ⅱ部分 端到端企业应用程序 21
3.2 介绍iFeedBack 22
3.2.1 要解决的问题 22
3.2.2 架构 22
3.2.3 实际部署 23
3.3 iFeedBack使用方案 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.6 参考资料 33
3.5 小结 33
第4章 托管智能客户机 35
4.1 容器管理的应用程序 35
4.1.1 容器功能 35
4.1.2 容器的优点 36
4.2 OSGi容器 37
4.2.1 Bundle 37
4.2.2 标准服务 38
4.2.3 绑定交互和定制服务 39
4.2.4 OSGi运行时请求 39
4.3.1 IBM Service Management Framework 40
4.3 一个简单的回显服务示例 40
4.3.2 EchoService Bundle 42
4.3.3 EchoUIConsumer Bundle 44
4.4 带有HTTP前端的智能客户机 47
4.4.1 比萨订购Bundle 48
4.4.2 比萨订购Servlet 50
4.4.3 记录服务 51
4.4.4 HTTP服务的功能丰富UI客户机 53
4.5 移动网关 53
4.6 小结 54
4.7 参考资料 54
5.1 开始 55
第5章 移动设计模式:智能订票蓝图 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.1 Decorator方式 77
6.1.1 CustomConnector工厂类 77
6.1.2 CustomConnection类 78
6.1.3 Decorator的优缺点 79
6.2 处理链方式 79
6.3 通过HTTP Cookie跟踪会话 81
6.3.1 通过Decorator类处理cookie 81
6.3.2 通过HttpClient处理程序处理cookie 82
6.4 HTTP基本认证 83
6.5 HTTP摘要认证 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.3 许多设备的优化 94
7.3.2 经常同步 94
7.3.4 集中式供应 94
7.3.1 保护设备上的数据 94
7.3 普及设备 94
7.4 无处不在的集成 95
7.4.1 专用二进制协议 96
7.4.2 使用移动RPC框架 96
7.4.3 消息传送是我们的助手 97
7.4.4 XML和Web服务 97
7.5 没有耐心的用户 97
7.5.1 利用功能丰富的UI 97
7.5.2 明智使用线程 97
7.5.4 存储用户偏好 98
7.5.3 每次一个屏幕 98
7.5.5 使用部署描述符 99
7.6 小结 99
7.7 参考资料 99
第Ⅲ部分 移动消息传送应用程序 103
第8章 电子邮件和PIM 103
8.1 电子邮件基础知识 103
8.1.1 SMTP服务器 104
8.1.2 POP3和IMAP服务器 104
8.2 Mail4ME介绍 104
8.2.1 发送电子邮件 105
8.2.2 接收和处理邮件消息 106
8.2.3 显示消息 107
8.4 PDA可选包 109
8.3 JavaPhone API 109
8.5 商业电子邮件和PIM套件 110
8.5.1 Espial套件 110
8.5.2 ReqWireless套件 110
8.6 企业门户服务器 111
8.6.1 BlackBerry电子邮件 111
8.6.2 BlackBerry PIM 113
8.7 小结 113
8.8 参考资料 114
第9章 会聚移动P2P消息 115
9.1 介绍Wireless Messaging API 115
9.1.1 顶级WMA类 116
9.1.2 URL和消息连接 117
9.2 运行中的WMA 118
9.2.1 发送SMS消息 118
9.2.2 同步接收SMS消息 119
9.2.3 异步接收SMS消息 120
9.2.4 通过MIDP PUSH接收SMS消息 121
9.3 WMA的参考实现 121
9.3.1 运行时属性 121
9.3.2 J2ME WTK v2.0中的WMA控制台 122
9.3.3 架构 123
9.4 来自后端的SMS 123
9.4.3 诺基亚移动服务器服务SDK 124
9.4.1 jSMS API 124
9.4.2 Simplewire Java SMS SDK 124
9.4.4 标准化服务器端的消息传送API 126
9.5 超越SMS:IM会聚 126
9.5.1 介绍Jabber 126
9.5.2 Jabber协议:XMPP 127
9.5.3 KVMJab Jabber库 128
9.5.4 其他商业Jabber客户程序 129
9.6 基于SIP的IM应用程序 129
9.7 小结 130
9.8 参考资料 130
10.1 移动企业消息传送 132
第10章 企业消息传送 132
10.2 JMS介绍 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.1 J2MEJMS客户 138
10.3.2 用于MIDP的轻量级客户 139
10.3.3 不可编程的客户 140
10.4 IBM的WebSphere MQ Everyplace 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
第Ⅳ部分 移动数据库和同步引擎 153
第11章 用于CDC设备的移动数据库 153
11.1 移动数据库 153
11.2 介绍JDBC 154
11.2.1 一个JDBC示例 154
11.2.4 抽取查询结果 155
11.2.3 执行SQL语句 155
11.2.2 获取Connection对象 155
11.3 使用PreparedStatement的可移植的有效代码 156
11.3.1 Statement接口问题 156
11.3.2 使用PreparedStatement接口 156
11.4 使用CallableStatement访问存储过程 157
11.4.1 什么是存储过程 157
11.4.2 使用CallableStatement接口 157
11.5 CDC的JDBC可选包 158
11.6 HSQL数据库引擎 159
11.7 iAnywhere Solutions SQL Anywhere Studio 160
11.8 IBM DB2 Everyplace 161
11.9 Oracle 9i Lite 162
11.10 PointBase Micro Edition 163
11.11 示例应用程序:联系管理器 163
11.12 小结 168
11.13 参考资料 169
第12章 用于MIDP设备的移动数据库 170
12.1 PointBase Micro Edition 170
12.2 Oracle J2ME SODA SDK 171
12.3 IBM DB2e FastRecordStore 173
12.4 小结 175
12.5 参考资料 175
13.1.1 不连接但同步的架构 176
13.1 同步和移动 176
第13章 数据库同步 176
13.1.2 移动数据库的同步 177
13.2 PointBase UniSync 178
13.2.1 服务器端的程序代码 179
13.2.2 客户端的程序代码 181
13.3 IBM的DB2 Everyplace 182
13.3.1 通过编程访问DB2e Sync 182
13.3.2 使用MIDP FastRecordStore的Sync 183
13.4 iAnywhere Solutions MobiLink 184
13.4.1 独立的本地客户的MobiLink 184
13.6 同步的联系管理器 185
13.4.2 通过编程访问MobiLink 185
13.5 Oracle9i Mobile Server 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.2 Oracle J2ME SQL SDK 192
14.3 传统应用程序 193
14.4.1 Simplicity移动 194
14.4 使用用于传统数据库的Simplicity 194
14.4.2 Simplicity Enterprise的Legacy Rejuvenation 195
14.5 小结 197
14.6 参考资料 198
第Ⅴ部分 XML和移动Web服务 201
第15章 用于小型设备的XML 201
15.1 什么是XML 201
15.2 在小型设备上使用XML 202
15.3 XML分析模型 203
15.3.1 SAX 203
15.3.2 XMLPull 203
15.3.3 文档模型 204
15.4 Amazon XML服务介绍 205
15.5 通过XmlPull提供Amazon服务 208
15.6 通过kDOM提供Amazon服务 210
15.7 移动RSS客户 212
15.7.1 简单的RSS例子 212
15.7.2 PeekAndPick 213
15.8 小结 215
15.9 参考资料 215
第16章 智能客户上的SOAP Web服务 216
16.1 什么是SOAP Web服务 216
16.1.1 SOAP的优点 216
16.1.2 SOAP Hello World 217
16.1.3 SOAP Web服务的架构 218
16.2 kSOAP介绍 219
16.2.1 什么是SOAP分析 219
16.2.2 使用kSOAP的简单分析的例子 220
16.2.3 call()方法如何工作 220
16.2.4 kSOAP消息传送 221
16.2.5 kSOAP Stub生成器 224
16.3 解读kSOAP 224
16.3.1 默认映射 224
16.3.2 对象结构 225
16.3.3 通过数据整编自定义映射 226
16.3.4 一个更复杂的例子 228
16.3.5 扼要重述:kSOAP API 229
16.4 高级kSOA P 230
16.4.1 数组 230
16.4.2 使用SoapTemplate检验文档 230
16.5 更多kSOAP的例子 231
16.5.1 Google Web服务API演示 231
16.5.2 SmartPhrases 232
16.6 什么是kSOAP v2.0 233
16.7 小结 236
16.8 参考资料 236
17.1 简单回顾 237
第17章 J2ME Web服务可选包 237
17.2 XML Processing API 238
17.3 JAX-RPC API 239
17.3.1 功能 240
17.3.2 API 241
17.3.3 用户 241
17.4 SPI的实现 242
17.5 与kXML和kSOAP的比较 243
17.6 小结 244
17.7 参考资料 244
18.1 基于位置的服务 245
第18章 案例研究:用于基于位置服务的移动客户程序 245
18.2 微软公司的MapPoint Web服务 246
18.2.1 MapPoint v3.0 SOAP API 246
18.2.2 聚合的API 247
18.2.3 Axis外观 248
18.3 MapPoint J2ME客户程序 250
18.3.1 CDC/PP和PersonalJava客户程序 250
18.3.2 MIDP客户程序 253
18.4 增强的行车导向应用程序 253
18.4.1 确定位置的技术 253
18.4.2 J2ME的位置API 254
18.6 参考资料 256
18.5 小结 256
第Ⅵ部分 高级移动安全性 259
第19章 企业的移动安全性 259
19.1 什么是高级移动安全性 259
19.1.1 基于内容的安全性 259
19.1.2 分布式访问控制 260
19.1.3 设备的安全性 261
19.2 轻量级移动加密工具包 261
19.3 Bouncy Castle轻量级API 263
19.3.1 开放源代码的作用 263
19.3.2 注意事项 263
19.4 IAIK ME JCE 264
19.5 Phaos Technology Micro Foundation工具包 265
19.6 NTRU jNeo的Java工具包 266
19.7 B3 Security 266
19.7.1 B3如何工作 266
19.7.2 优点 267
19.8 特定于设备的API 268
19.9 J2ME安全性API的标准化 268
19.10 小结 268
19.11 参考资料 268
第20章 J2ME加密方法 270
20.1 方法概述 270
20.2 对称加密 271
20.1.2 密钥串行化 271
20.1.1 包的结构 271
20.2.1 Bouncy Castle 272
20.2.2 IAIK JCE-ME 274
20.2.3 Phaos Micro Foundation 274
20.2.4 NTRU jNeo 276
20.3 基于口令的加密 278
20.3.1 Bouncy Castle 279
20.3.2 IAIK JCE-ME 280
20.3.3 Phaos Micro Foundation 281
20.4 公钥加密 282
20.4.1 Bouncy Castle 283
20.4.2 IAIK JCE-ME 286
20.4.3 Phaos Micro Foundation 287
20.4.4 NTRU jNeo 288
20.5 数字签名 291
20.5.1 Bouncy Castle 292
20.5.2 IAIK JCE-ME 293
20.5.3 Phaos Micro Foundation 293
20.5.4 NTRU jNeo 295
20.6 小结 297
20.7 参考资料 297
A.1 生存期方法 298
A.2 UI模型 298
附录A J2ME应用程序开发的基础 298
A.3 远程和本地数据 299
A.4 代码 299
A.5 打包和创建 303
A.6 部署 305
A.7 小结 306
附录B 用于PDA的工具和J2ME运行时库 307
B.1 WebSphere Studio Device Developer的概述 307
B.2 在PocketPC设备上安装MIDP 309
B.3 在PocketPC设备上安装Personal Profile 309
B.4 在PocketPC设备上运行Java应用程序 310
B.5 小结 310