SaaS RES营销管理系统架构设计 .doc
《SaaS RES营销管理系统架构设计 .doc》由会员分享,可在线阅读,更多相关《SaaS RES营销管理系统架构设计 .doc(66页珍藏版)》请在三一办公上搜索。
1、 SaaS RES营销管理系统SaaS RES 系统架构设计目 录1项目背景12关键需求12.1关键功能需求12.2关键非功能性需求22.3关键商业需求32.4关键约束32.5名词解释33参考资料44系统功能分析44.1SaaS模式下功能分析44.2业务功能划分64.3子系统划分65架构设计65.1架构分析65.1.1业务实体的增、删、改及一些复杂的业务处理功能75.1.2对象的查询业务、报表业务125.1.3创建订单典型的高并发资源争用业务155.1.4数据权限控制165.1.5支持多租户的数据结构195.1.6基于单域名的租户访问方式195.1.7租户带宽上的限制205.1.8租户存储数据
2、分离和受限动态路由235.1.9租户敏感数据加密235.1.10可配置性产品模块可配置245.1.11BOSS运营系统与RES业务系统的消息交互255.1.12整合第三方系统企业级服务总线(ESB)285.1.13动静分离285.1.14伸缩性295.1.15安全性应用安全345.1.16安全性数据安全355.1.17安全性网络安全355.1.18监控服务器监控365.1.19监控网络监控365.1.20监控数据库监控365.1.21数据存储365.1.22物理空间扩展375.1.23系统升级375.2逻辑架构385.2.1制作平台和试用平台385.2.2总体架构图395.2.3最小架构图43
3、5.2.4技术架构445.2.5功能模块455.2.6模块架构详解495.3物理架构505.3.1总体架构网络拓扑图(使用存储设备)505.3.2最小架构网络拓扑图(不使用存储设备)505.3.3各层次对硬件的要求525.3.4虚拟化545.3.5模块部署图545.3.6硬件设备555.4数据架构555.5开发架构565.5.1Bundle划分规则565.5.2项目工程划分规则及项目目录结构575.5.3部署目录结构585.5.4开发技术框架使用规则595.6运行架构595.6.1登录和访问流程595.6.2与BOSS运营系统有关帐户信息的交互流程625.6.3与BOSS运营系统有关产品模块信
4、息的交互流程625.6.4与BOSS运营系统有关系统消息的交互流程626架构验证626.1.1性能626.1.2安全性626.1.3可扩展性636.1.4可运维性637风险评估647.1数据库无法支撑大量租户风险(IO瓶颈)647.2高峰期的访问风险641 项目背景SaaS源于一种简单的思想:软件即服务!随着一大批的公司,如国外的Salesforce在这个领域取得的辉煌成绩,SaaS已经彻底改变了人们对软件的观念,使用软件的人从产品消费者转换成服务消费者,而开发软件的人从产品提供者转变为服务提供者。为了顺应当今IT企业级应用的发展趋势和满足公司战略发展的需要,本架构文档旨在描述在SaaS这种商
5、业模式下,如何搭建适合目前公司现状的企业信息化系统。对于SaaS商业模式,简要描述如下: SaaS模式无论是对于用户,还是对于软件开发商都有着巨大的优势。从用户方面来看:用户可以只花少量的资金就可以使用一款软件了,并可以很直观的评估软件是否满足要求或者是否适合公司的管理模式,大大降低了软件产品的资金投入以及风险。另外,用户不需要维护软件、以及硬件本身,可以按照自己的需要定制,按需使用。大大降低了成本。最后,由于软件是托管在运营商,往往有更好的服务保障和防毒措施,用户可以放心的把这一部分的开支节省下来,去投入到更重要的地方。从软件商来看:SaaS模式大大节省了销售的成本,软件商可以把重点资源放在
6、市场推广方面,销售反而是顺理成章的事情。另外SaaS也为软件商节省了维护成本,以往的维护都是一对一的,甚至要到客户现场。这种模式势必导致成本剧增,而SaaS却能保证软件对客户的服务响应快捷和高效。最重要的是SaaS给软件商提供了稳健的经营模式,有利于企业不为销售和各种售后服务疲于奔命,而可以将更多精力放到产品的研发和推广上去,不断提高客户服务质量和系统维护水平。SaaS RES就是SaaS商业模式下的房地产营销管理系统。主要为各个房地产商提供低成本的、按需购买功能的营销解决方案。2 关键需求2.1 关键功能需求 l 与SaaS BOSS运营支撑系统进行交互:SaaS BOSS系统主要对整个RE
7、S业务系统的正常运营起到管理和支撑作用。比如创建租户第一人,配置租户可使用的产品模块,各种系统通知消息,状态查询等等。l 业务实体的的增、删、改及一些复杂的业务处理功能:对于SAAS RES系统来说,业务实体的增、删、改是最常见的操作,它们属于业务实体的维护操作,在系统的产品管理、客户管理、销售管理、服务管理和财务管理模块都普遍存在,这些操作都包括一些数据校验,业务约束等处理逻辑,除了业务实体的增、删、改等数据维护操作外,一些复杂的业务处理功能也具有相当的典型性,这些复杂的业务处理通常涉及多个业务实体的状态变化以及它们之间的业务约束,而且这些业务逻辑很大机会随着业务的发展而变化,因此,如何通过
8、合理的设计来保证以一个清晰的结构来表达这种业务模型,并能够让模型有足够的灵活性来应付将来可能发生的业务变化显得非常的关键,在架构分析中,将会以“客户下订单(即创建订单)”作为用例进行分析。l 业务数据的查询业务、报表业务:对业务数据的查询操作是贯穿整个系统所有模块的业务,而报表业务也是数据查询的一种特殊例子,它们都属于系统中非常典型的功能需求。l 创建订单典型的高并发资源争用业务:这种业务对数据在处理过程中的排他性有非常严格的要求,即业务数据在某个事务处理过程中,绝对不能受到其他事务处理的干扰,“创建订单”用例就是这一关键功能需求的典型用例,在架构分析中将会对如何保证这种事务排他性进行详细分析
9、。l 数据权限控制:数据权限控制是系统的一个典型的功能,客户管理、销售管理、服务管理、财务管理和报表等模块中都有数据权限控制的需求,数据权限控制的意思是:不同角色可以拥有同一个系统功能的使用权限,但不同角色对于同一系统功能,其可操作的数据是有可能不同的,目前系统定义了三个数据权限级别:1)全部:对应功能权限能操作所有相关数据;2)本人管辖的员工负责的数据:对应功能权限只能操作当前用户拥有的数据,以及当前用户所在部门(包括下级部门)的所有员工所拥有的数据;3)本人负责的数据:对应功能权限只能操作当前用户拥有的数据。l 需要整合第三方系统提供附加值,包括用“在线客服”为租户在线的、及时的支持服务;
10、用“SMS”为租户提供短信服务;用“EMail” 为租户提供发送业务邮件和邮件提醒服务。2.2 关键非功能性需求l 租户及用户数量:最大租户数为500。每个租户最大的用户数100,所有租户平均用户数50。平均在线人数约为:12500人。l 并发数:5% * 平均在线人数 = 625次每秒l 性能:系统及时提供相应服务的能力。包括较高的吞吐量、快速的平均响应时间、持续高速的系统处理能力。大部分操作的响应时间控制在3秒以内。l 安全性:系统为合法的租户及用户提供服务,阻止非授权租户及用户使用系统。如用户验证安全性,用户数据安全性等。l 持续可用性:系统长时间无故障运行能力,一年内无故障率达到99.
11、9%(年累计停止服务时间不超过8小时45分钟)l 易用性:系统必须易于使用。系统在升级过程中,降低或避免老客户的适应难度。l 可伸缩性:当用户数和数据量增加时,系统维持高服务质量的能力。如当业务量增大时(比如用户操作频繁或者增加了租户),可以通过增加服务器来提高性能,无需对系统进行编程级修改,也不会对最终用户的使用产生影响。l 健壮性(容错性):系统发生以下情况仍然能够正常运行:用户进行了非法操作;部分软硬件系统发生了故障;其它非正常情况。l 隔离性:减少租户与租户之间的相互影响,租户之间的数据必须良好隔离。l 可扩展性:根据SaaS产品发展需要,系统要较容易的适应新需求或需求变化。l 可移植
12、性:根据租户数量或服务水平,可容易的从一个运行环境转移到另一个不同的运行环境。(数据库的迁移需要暂时服务,其他的升级基本上对用户是透明的)l 可维护性:SaaS系统是由多角色人员一起来运营的。系统的安装、部署、扩展、升级、新租户的加入必须容易,减少出差错。系统运行的监控必须准确、及时。对故障的处理必须简单快速。l 租户端带宽有限:一个租户通常有多个用户使用系统,而访问系统时通常是共享带宽,比如ADSL(处于成本考虑,可能采用上行512K,下行2M)。2.3 关键商业需求l 系统1.0版本的规划最大租户数是500l 系统必须在2009年11初月交付l 该产品能方便IDC运营管理l 系统支持多租户
13、,按租户合同,进行灵活的模块配置,不同租户可以购买不同的业务模块2.4 关键约束l 使用Apache作Web Http Serverl 使用OSGi作应用所在环境(容器选用jetty或者tomcat,待测)l 使用MySQL5.1.3作为数据库2.5 名词解释“租户”:指购买SaaS应用的客户,比如某个开发商购买了RES,那么这个开发商就是“租户”。“租户管理员”:由SaaS服务提供商的运营人员使用。指SaaS服务提供商内部,负责管理“租户”的管理员,该管理员的职责一般是根据合同来添加租户,添加租户的“租户第一人”,修改租户信息,修改租户各种配置信息等。该角色的工作,在运营中一般由“实施工程师
14、”来完成。“租户第一人”:由租户自己使用。这个“租户第一人”是由“租户管理员”分配的,租户可以使用这个“租户第一人”给自己的系统添加用户。“用户”和“账户”在本文的描述中都是只用户用来登陆系统的用户名。3 参考资料SaaS模式系统参考架构设计.doc作者:陈操MSYQL数据库备份与恢复及SaaS下的备份策略.doc作者:莫荣广4 系统功能分析4.1 SaaS模式下功能分析从系统使用者的角度,整个系统的功能模块划分如下:图表 5.1.11 SaaS RES 1.0功能模块划分图l 系统1.0版本的产品只有普通房源,还不包括车位、花园、学籍等房地产附带产品的管理l 销售管理模块和财务管理模块是系统
15、的核心业务模块l 系统支持多租户共同使用,但租户的管理、租期管理等不属于本系统的职责,由BOSS系统负责,系统与BOSS系统进行交互,获取BOSS系统提供的租户相关信息和租户启用、停用通知等信息4.2 业务功能划分4.3 子系统划分下面站在系统构建者的角度出发,按业务处理、报表统计和基础支持三个类别把系统进行子系统划分:图表 5.1.11 SaaS RES 1.0子系统划分图l 租户信息管理子系统主要包括BOSS系统发送过来的租户相关信息,如租期到期提醒信息,租户通知信息的管理l 用户管理子系统包括了用户的身份认证,用户管理和员工、组织架构的管理。5 架构设计SaaS模式的架构设计和普通系统的
16、架构设计有所不同,SaaS除了要满足用户各种个性化要求以外,应用服务器和数据库服务器要满足成千上万的请求,因此,对系统可用性、伸缩性、扩展性以及性能提出了更高的要求。本次参考架构设计的总体原则就是:分割和缓存。5.1 架构分析下面主要综合之前的功能性和非功能性的要求,来对系统的整个架构进行分析。5.1.1 业务实体的增、删、改及一些复杂的业务处理功能分析:对于SaaS房地产营销管理系统1.0(后面统一简称为SaaS RES 1.0)来说,对业务实体的增、删、改、操作是最常见的基础功能,这些操作都有一个共同的特征改变系统中的业务实体的状态(或数据),因此,这里选择基础房间的增、删、改这一典型的功
17、能需求进行分析,以阐述对于这类对业务实体状态产生改变的操作的设计决策。决策:系统使用最常见的层式架构进行设计,按逻辑被划分为:展示层、应用服务层、领域层和数据访问层,下图展示了系统各逻辑层之间的关系:图表 5.1.11 增、删、改操作设计决策图(充血模型)l 展示层:负责为用户提供用户界面,接收用户的输入参数,提交给应用服务层执行相应业务操作,并接收应用服务层的返回结果展示给用户,其直接依赖于应用服务层。l 应用服务层:向外提供业务功能服务,它只负责系统应用级别的逻辑如事务控制、权限控制、日志处理等,以及少量的跨领域对象的业务逻辑,它通过领域层的领域对象仓库获取相关的领域对象,然后调用领域对象
18、的方法完成相应的业务,再把业务结果封装到数据传输对象(DTO)中返回给展示层,这里的DTO是作为展示层与应用服务层的数据载体,它负有装载请求数据和结果数据的职责。l 领域层:包含业务领域内的一系列相关领域对象及其仓库接口,领域对象封装其领域内的业务逻辑,领域对象通过其仓库获取和持久化。l 数据访问层(ORM):提供领域对象的持久化实现,它的作用是把领域对象的具体持久化实现细节封装起来,并利用ORM工具把数据库中的数据转换为领域对象。该层只提供持久化实现,持久化操作的接口由领域层定义,因此,该层依赖于领域层提供相关领域对象的数据结构和持久化操作接口。下面分别以系统中四个典型的功能用例来分别对业务
19、实体的增、删、改以及涉及复杂业务规则的业务操作进行详细分析:用例1:创建个人客户信息业务实体的创建操作创建个人客户信息有如下的业务约束:l 客户的姓名、性别、联系电话、客户类型、是否重点客户的标识这些属性都不能为空;l 客户的姓名和联系电话组成了客户身份的唯一标识。领域驱动设计,或者说面向对象设计的最重要规则是:把不同的职责合理的划分到不同的对象中,根据这一规则,我们对上述的业务约束进行分析:客户属性是否必填,属于客户实体自身的业务完整性约束,因此,这部分职责应该交给客户实体本身负责;客户的姓名和联系电话是客户身份的唯一标识,这意味着系统不能存在两个具有相同姓名和联系电话的客户,这就需要在创建
20、客户的时候进行检查,而这部分工作,对于客户实体来说,它并不了解其他客户实体的信息,因此,应该交由其上层,客户管理应用服务负责。根据上面的分析,我们已经可以清晰的划分职责,然后得出如下的创建个人客户的时序图:5.1.12 创建个人客户信息时序图用例2:修改个人客户信息业务实体的修改操作修改个人客户信息有如下业务约束:l 修改个人客户信息用例包含了创建个人客户信息的所有业务约束;l 当系统设置了需要开启客户信息修改审核功能时,如果修改了个人客户信息中的核心信息,并且修改个人客户信息的系统用户不具有审核功能权限,则修改后的个人客户信息不能直接更新,而是要把修改信息提交审核,审核通过后,才能更新对应的
21、个人客户信息。根据上述的业务约束进行分析,系统是否开启客户信息修改审核功能,很明显不属于个人客户实体的职责,因此它应该由应用服务层负责,同时,由于客户管理应用服务的职责是对客户信息进行管理,而客户信息修改审核功能的设置是由系统参数设置模块负责,所以,这项职责应该由系统参数设置应用服务提供,而判断是否修改了客户核心信息,很明显属于个人客户的职责。最后,根据当前系统用户是否具有审核功能权限,这部分职责应该由客户管理应用服务负责,由于权限判断是由通用权限组件提供的功能权限判断器来提供,前者会把任务委托给后者。经过上述分析,得出下述的时序图:5.1.13 修改领域对象时序图用例3:把个人客户信息放入回
22、收站业务实体的删除操作把个人客户信息放入回收站有如下的业务约束:l 参加过认筹登记的客户不能放入回收站;l 交过钱(存在财务付款记录)的客户不能放入回收站;l 下过订单的客户不能放入回收站l 正在提交审核(被修改或合并后未审核通过)的客户不能放入回收站。分析业务约束,认筹登记、财务记录、订单都属于客户实体的从属信息,即客户实体与上述实体形成聚合关系,按照领域驱动设计的理念,客户实体是上述实体的聚合根,所以,判断客户是否有过认筹登记、财务记录和订单都应该是客户实体的职责,然而我们再进一步分析,实体的职责是相对的,在不同的业务上下文,业务实体所具有的业务职责是不同的,把个人客户信息放入回收站这一个
23、用例,其业务上下文局限于客户管理,因此,在这一范围内,客户实体并没有认筹登记、财务记录和订单等概念,客户实体是一个职责单一的实体,而上述概念分别来源于销售管理服务(包括认筹登记、订单)和财务管理服务(财务记录),对于客户管理应用服务来说,其业务上下文同样与销售管理服务、财务管理服务无关,所以,判断客户是否参加过认筹登记,是否有财务记录,是否下过订单的职责既不应该由客户实体负责,也不应该由客户管理应用服务负责(由于销售和财务是客户的下游业务销售和财务都是基于客户的,所以依赖关系是前两者依赖于后者,如果由客户管理应用服务负责,则客户管理应用服务必须委托销售管理应用服务和财务管理应用服务提供判断结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SaaS RES营销管理系统架构设计 RES 营销 管理 系统 架构 设计

链接地址:https://www.31ppt.com/p-2393155.html