第1篇 SaaS商业模式第1章 SaaS的前世今生 2
1.1 什么是SaaS 3
1.1.1 SaaS的产生 3
1.1.2 SaaS基本概念 6
1.1.3 SaaS与ASP的异同 8
1.2 SaaS软件的优势 9
1.2.1 给用户的优势 10
1.2.2 给软件商的优势 14
1.3 SaaS的缺点及解决办法 16
1.3.1 依赖互联网 16
1.3.2 数据安全性 17
1.3.3 数据保密性 19
1.4 SaaS成功案例 20
1.4.1 Salesforce.com 20
1.4.2 Google.com 22
1.4.3 Alisoft.com 24
1.4.4 其他SaaS案例 26
1.5 小结 29
第2篇 SaaS应用架构第2章 SaaS成熟度模型 32
2.1 SaaS的规模效应 33
2.2 SaaS成熟度模型分级 36
2.2.1 Level 1:定制开发 36
2.2.2 Level 2:可配置 37
2.2.3 Level 3:高性能的多租户架构 39
2.2.4 Level 4:可伸缩性的多租户架构 41
2.3 如何选择合适的SaaS成熟度模型 43
2.3.1 产品所面向的客户群的特征与需求 43
2.3.2 产品的租户数量级别 44
2.3.3 团队的开发能力与愿意付出的开发/改造成本 45
2.4 SaaS软件的成熟度模型的渐进步骤 46
2.5 小结 47
第3章 构建Multi-Tenant应用 48
3.1 第一阶段:做项目 49
3.1.1 发现商机 49
3.1.2 “4+1”视图 50
3.1.3 设备托管 58
3.2 第二阶段:做产品 59
3.2.1 设备共享 59
3.2.2 创业之旅 61
3.2.3 可配置化 62
3.3 第三阶段:多租户 63
3.3.1 成长的烦恼 63
3.3.2 如何转化成SaaS多租户模式 65
3.3.3 SaaS多租户设计 70
3.3.4 SaaS多租户模式的威力 72
3.4 小结 73
第4章 高性能的Multi-Tenant最佳实践 74
4.1 数据库层性能优化 75
4.1.1 建立合适的索引 76
4.1.2 消除大数据表连接 77
4.1.3 避免复杂SQL 78
4.2 应用层性能优化 78
4.2.1 Cache 79
4.2.2 统计和报表计算 82
4.2.3 基于Tenant的索引搜索 84
4.2.4 异步操作 85
4.3 Web层性能优化 87
4.3.1 Web开发的性能优化策略 88
4.3.2 Http服务器的性能优化策略 91
4.4 性能监控 93
4.5 优化的效果 95
4.6 小结 95
第5章 Multi-Tenant应用的可配置性 98
5.1 数据可配置 100
5.1.1 定制字段 101
5.1.2 预分配字段 102
5.1.3 名称值对 104
5.1.4 方案比较 106
5.2 功能可配置 107
5.2.1 原子功能划分 108
5.2.2 功能包设计 111
5.2.3 功能使用校验 115
5.3 界面可配置 116
5.3.1 系统菜单可配置 116
5.3.2 页面元素可配置 118
5.4 流程可配置 119
5.5 配置元数据管理 119
5.5.1 配置元数据 120
5.5.2 租户配置数据 123
5.5.3 配置元数据服务 125
5.6 可配置系统运行 125
5.6.1 系统菜单框架 126
5.6.2 功能页面容器 127
5.6.3 扩展数据引擎 128
5.6.4 功能引擎 128
5.7 小结 128
第6章 可伸缩的SaaS应用架构 130
6.1 伸缩性(Scalable)的概念 132
6.2 应用服务器层的水平扩展 133
6.2.1 基于Session复制的水平扩展方式 134
6.2.2 基于Session Sticky的水平扩展方式 137
6.2.3 基于Cache的集中式Session实现水平扩展 138
6.2.4 三种水平扩展方式的比较 139
6.3 数据库层的水平扩展 139
6.3.1 数据库的垂直切分 140
6.3.2 数据库的读/写分离技术 141
6.3.3 数据库的水平切分 142
6.3.4 三种数据库层的水平扩展方案对比 145
6.4 小结 146
第7章 SaaS系统安全 148
7.1 应用安全 150
7.1.1 身份认证 150
7.1.2 权限管理 153
7.1.3 日志记录 156
7.1.4 应用监控 157
7.2 数据安全 158
7.2.1 数据隔离 158
7.2.2 数据库连接安全 159
7.2.3 敏感数据加密 160
7.2.4 数据量监控 164
7.3 网络安全 165
7.3.1 安全传输 165
7.3.2 网络攻击防范 167
7.3.3 网络监控 168
7.4 小结 168
第8章 离线应用 170
8.1 系统分析 171
8.1.1 离线应用的4大核心问题 172
8.1.2 离线应用架构 173
8.1.3 相关技术背景 175
8.2 本地使用 176
8.2.1 网络状态检测 176
8.2.2 离线页面支持 178
8.3 本地存储 178
8.3.1 本地数据库支持 178
8.3.2 本地数据存储 179
8.4 数据同步 180
8.4.1 增量数据处理 180
8.4.2 多用户冲突 183
8.5 数据传输 185
8.6 离线应用开发工具介绍 186
8.6.1 本地数据库 187
8.6.2 本地服务 188
8.6.3 工作者线程池 190
8.6.4 Gears待发展的内容 192
8.7 小结 192
第3篇 SaaS基础架构——云计算第9章 分布式文件存储 194
9.1 大文件的分布式存储 195
9.1.1 GFS 195
9.1.2 HDFS 197
9.2 小文件的分布式存储 202
9.2.1 ADFS(Alibaba Distributed File System) 203
9.2.2 小文件存储的另外方案介绍 208
9.3 小结 209
第10章 分布式数据库 210
10.1 基于列的结构化分布式数据库 211
10.1.1 HBase数据库数据结构 211
10.1.2 HBase系统架构 214
10.1.3 HBase实践 215
10.2 基于代理的分布式数据库 217
10.3 基于列的分布式关系数据库 237
10.4 小结 241
第11章 分布式Cache 242
11.1 单层的分布式Cache 243
11.2 多层的分布式Cache 245
11.3 改进的多层分布式Cache 245
11.4 小结 246
第12章 分布式计算 248
12.1 MapReduce分布式计算框架 249
12.2 文件下载的分布式计算 252
12.2.1 中心索引方式 253
12.2.2 分布式的结构化方式 254
12.2.3 改进模型 256
12.3 小结 258
第4篇 开放的SaaS平台第13章 Open API 260
13.1 Open API的商业价值分析 263
13.1.1 Open API的出现、起源与现状 264
13.1.2 Google Maps API带来开放潮流 265
13.1.3 Mashup在Open API的时代 266
13.1.4 Open API的分类 268
13.1.5 Open API的系统架构与运营 276
13.2 Open API相关产品 279
13.3 Open API的实现技术 282
13.3.1 远程接口技术 282
13.3.2 远程接口设计最佳实践 289
13.4 Open API与API托管平台 290
13.5 服务集成平台设计与实现 293
13.6 小结 297
第14章 开放的SaaS平台 298
14.1 PaaS 299
14.1.1 插件模式 301
14.1.2 七巧板模式 303
14.1.3 云计算模式 304
14.1.4 服务托管模式 310
14.2 互联提升价值 311
14.2.1 拓展软件的能力:聚合互联网资源 313
14.2.2 应用互联的价值链 313
14.2.3 基础设施提供 316
14.2.4 互联需开放平台 316
14.3 软件互联平台 317
14.3.1 软件大市场 318
14.3.2 软件生态圈 319
14.4 小结 323
第15章 结束语 324
15.1 SaaS发展趋势 325
15.1.1 SaaS平台化 325
15.1.2 SaaS产业链 326
15.1.3 SaaS移动化 327
15.1.4 服务即软件 328
15.2 软件行业的未来 330
15.2.1 通过互联网使用软件的用户越来越多 330
15.2.2 软件和服务的界限会越来越模糊 330
15.2.3 软件和服务会越来越个性化 331
15.2.4 软件产业大融合 331
参考资料 333