软件即服务
(Software as a Service)
系列课程第六讲
Saas数据模型的设计
缪玉峰
MSDN特邀讲师
Email: yufeng_miao@hotmail.com
Blog: http://yufengmiao.cnblogs.com
本次课程内容包括
• Saas的概念和基本术语
• Saas系统的基本特性和功能
• 介绍Saas平台和Saas应用的概念
• Saas系统数据库的模式(隔离和共享)
• 重点讨论共享模式的数据库设计
• 介绍共享模式的实体对象模型的设计和实
现
• 案例
-Saas应用
收听本次课程需具备的条件
• 对软件服务的概念有所了解
• 有一定的.NET 的开发知识
• 有MS SqlServer 2005数据库的基本知识
• 有架构设计的基本知识
Level 200
Saas的概念和基本术语
• Saas概念定义可在互联网上以租赁形式提
供在线软件服务的软件应用系统
• Tenant (租户) 相当于一个客户或公司,是
Saas系统的基本单位
• Tenant User(用户) 用户是隶属于某个
Tenant 的可登陆帐户,Tenant可以单独管
理自己的Tenant User
• 支持多租户(Multiple Tenant)
• 支持Try-before-buy (购买前试用)
• Customization(可自定义)
¾支持数据模型的自定义
¾支持业务
的自定义
¾支持用户界面的自定义
• Scalability (可伸缩性), 可根据客户需要为
客户配置软硬件环境
Saas系统的基本特性和功能
Saas系统的基本特性和功能
Multiple Tenant
Tenant A
Charlie Michelle
Tenant B
David
James Amy
Saas系统的基本特性和功能
可自定义数据模型
Tenant A
产品名称
生产日期
规格
……
备注
产品
Tenant B
产品
产品名称
生产日期
规格
……
备注
是否含铅
是否含汞
Saas系统的基本特性和功能
可自定义工作流
Tenant A
Create Order Manager Review Release
Create Order
Tenant B
Manager Review VP Review Release
Saas系统的基本特性和功能
可自定义的用户界面
• CSS
• Theme (Asp.NET 2.0)
• Profile (Asp.NET 2.0)
• WebParts (Asp.NET 2.0)
推荐技术
Saas平台和Saas应用的概念
Saas平台和Saas应用的概念
• Saas 平台运营商负责事项
¾Hosting (运营)
¾Tenant Signup (租户注册)
¾Authentication (用户登录认证)
¾SSO Service(单点登陆服务)
¾Subscription (服务订阅)
¾Billing (记费)
¾Maintenance, Backup (维护和数据备份)
Saas平台和Saas应用的概念
• Saas 应用供应商(AP)负责事项
¾Saas应用开发
¾SSO认证接口实现
¾系统维护和升级
Saas数据库模式 (隔离和共享)
高安全性
隔离 共享
低成本
Saas数据库模式 (隔离和共享)
Consideration
z隔离模式 (为每个Tenant采用不同的
Database)
¾具有高安全性
¾对于从非Saas应用系统转向Saas应用较容易
实现
¾适合系统较复杂,对安全性
高,价格较高
的Saas应用
¾隔离模式消耗的硬件资源较大,成本较大,不
适合价格较低的Saas应用,很难实现 Try-
before-buy的功能
Saas数据库模式 (隔离和共享)
Consideration
z共享模式 (Tenant共享同一数据库
Database)
¾相对来说数据安全性教低
¾成本较低
¾开发难度较大
¾适合对安全性要求不高的应用
¾可在互联网上以Try-before-buy推出, 产品更容
易推广
¾系统一般价格较低,有比较大的价格优势
Saas数据库模式 (隔离和共享)
三层模式
• Isolated Database
• Share Database ,
Isolated Scheme
• Share Database,
Share Schema Isolated Database
Share Database, Isolated Schema
Share Database, Share Schema
Saas数据库模式 (隔离和共享)
独立Database
• 实现方式
写一个 bat, 为每个Tenant都执行DDL语句和初始
数据库的Insert语句
Create Database TenantA
Create Database TenantB
Tenant A Tenant B
Saas 数据库模式 (隔离和共享)
共享Database,独立 Schema
• 实现方式
为每个Tenant创建单独的Schema和登陆用户,
在每个Schema中执行DDL语句和Insert语句
-创建Schema
CREATE SCHEMA TenantA AUTHORIZATION TenantA
-创建Table
CREATE TALBE TenantA.Pruduct (…….)
-为SqlServer用户设置默认Schema
ALTER USER TenantA WITH DEFAULT_SCHEMA = TenantA
Saas 数据库模式 (隔离和共享)
共享Database,共享Schema
• 所有的Tenant共享同一数据库同一Schema
¾优点
¾DBA管理较简单
¾能最大化地利用数据服务器资源
¾缺点
¾数据安全性相对较低
¾为单个Tenant备份和还原数据较复杂
共享模式的数据库设计
租户和用户
的设计
共享模式的数据库设计
认证和授权 (ADAM 的集成)
• ADAM
• 安全认证
• ADFS, SSO
共享模式的数据库设计
可自定义的实体设计
• 有限扩展
• 无限扩展
• Metadata设计
元数据
实体实体表现层
共享模式的数据库设计
可自定义的实体设计 有限扩展
z 有限扩展
¾优点
¾实现简单
¾检索速度快
¾缺点
¾扩展字段数量
受限制
¾数据冗余
SELECT * FROM MetaDataFields
WHERE TenantId=@TenantId
AND TableId = @TableId
元数据
共享模式的数据库设计
可自定义的实体设计 无限扩展
z 无限扩展
¾优点
¾扩展字段数量不受限制
¾数据没有冗余
¾能最大化地满足客户自定义的需求
¾缺点
¾实现复杂
¾检索速度慢(多表拼接)
共享模式的数据库设计
无限扩展 Metadata的设计
• 引入
扩展
表格
共享模式的数据库设计
无限扩展 Metadata的设计
Product 产品表 ExtensionValues 扩展表
MetadataFields元数据
共享模式的数据库设计
更为灵活的无限扩展设计
• 引入数
据字典
共享模式的数据库设计
支持无限扩展的实体对象模型
• 基于数据
字典的实
体设计工
具
可通过数据字典中
的实体描述自动生
成实体代码
DEMO
Saas 物流Demo系统
Saas在线社区
• http://www.cnsaas.com
– 苏州和微软共同建设并发展。
– 微软作为创始人之一,社区所涉及的技术和产品并不
限于微软。
• 第一期目标:SaaS黄页和相关技术的社区
– 帮助用户找到需要租用的软件/服务
– 软件类型将包括:CRM、HR、医疗等。
• 第二期目标:SaaS的流通平台
– 用户可以通过平台向SaaS软件的提供商支付使用费用
– 向公众提供SaaS软件的统计数据和用户的评价
微软Saas创新联盟
• 微软将在中国建立支持SaaS开发的服务机构
• 2006年在苏州建立中国第一个SaaS孵化中心
– 帮助开发商将传统应用向SaaS迁移
– SaaS孵化中心向开发商提供技术支持,包括:
• 软件架构辅助设计
• 免费的软件环境和基础件(非生产模式)
• 实验主机和网络环境
• SaaS软件参数测定和报告
• 如果希望加入SaaS孵化器可以发邮件到:
PDI@microsoft.com
• SaaS技术支持邮件:cnsaas@hotmail.com
Saas系列课程下一讲预告
––时间:时间:
44月月3030日日 14:0014:00--16:0016:00
––主题:主题:
SaaS软件即服务系列课程(7):Part 1. An
Enterprise Perspective for SaaS,WSS v3
and MOSS 2007
获取更多MSDN资源
• MSDN中文网站
http://www.microsoft.com/china/msdn
• MSDN中文网络广播
http://www.msdnwebcast.com.cn
• MSDN Flash
http://www.microsoft.com/china/newsletter/case/
msdn.aspx
• MSDN开发中心
http://www.microsoft.com/china/msdn/Developer
Center/default.mspx
Question & Answer
如需提出问题,请单击“提问”按钮并在
随后显示的浮动面板中输入问题内容。一
旦完成问题输入后,请单击“提问”按钮。