公共服务平台架构及实现毕业资料_第1页
公共服务平台架构及实现毕业资料_第2页
公共服务平台架构及实现毕业资料_第3页
公共服务平台架构及实现毕业资料_第4页
公共服务平台架构及实现毕业资料_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. SaaS介绍1.1 SaaS 概念SaaS是 Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在 21 世纪开始兴起的一种完全创新的软件应用模式。它是一种通过Internet 提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求, 通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费 用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于 Web 的软件,来管理企业经营活动, 且无需对软件进行维护, 服务提供商会全权管理和维护软件, 软件厂商在向客户提供

2、互联网 应用的同时, 也提供软件的离线操作和本地数据存储, 让用户随时随地都可以使用其定购的 软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。在这种模式下, 客户不再像传统模式那样花费大量投资用于硬件、 软件、人员,而只需 要支出一定的租赁服务费用, 通过互联网便可以享受到相应的硬件、 软件和维护服务, 享有 软件使用权和不断升级,这是网络应用最具效益的营运模式。1.2 SaaS 专用名词1. 多重租赁 (Multi-tenancy)SaaS的"多重租赁”概念就是,多个公司将其数据和业务流程托管存放在SaaS服

3、务商的同一服务器组上, 相当于服务商将一套在线软件同时出租给多个公司, 每个公司只能看到自 己的数据, 由服务商来维护这些数据和软件。 也就是说, 多个公司登录到同一网站,但登录 后看到的界面和数据,不同的公司大不相同。2. 单点登录 (Single sign-on)这个概念应用在 SaaS上,就是指把多个不同的在线应用软件服务搭建成为一种新型的 整合服务。用户通常只需要登录一次就可以使用集成好的应用软件组合。3. 基础架构平台 (Platform infrastructure)有时候SaaS的拥护者希望出现一种基础架构的平台来推动SaaS更好地发展。这是因为首先得有一个平台来支撑SaaS 软

4、件应用程序的运行,如今最著名的是国外Salesforce 公司的 APP Exchange平台,国内 800CRM 的 800APP Native 的平台与 Salesforce 兼 容。4. SaaS软件作为服务)厉害的SaaS销售代表直接用 SaaS就能解决你所有管理软件问题。比起其它软件,SaaS软件更便宜,灵活性更强,能省掉更多的麻烦。5 SaaS成熟度模型(SaaS Maturity Model)Level1 :定制开发这是最初级的成熟度模型,其定义为Ad Hoc/Custom,即特定的/定制的,对于最初级的成熟度模型, 技术架构上跟传统的项目型软件开发或者软件外包没什么区别,按照客

5、户的需求来定制一个版本, 每个客户的软件都有一份独立的代码。 不同的客户软件之间只可以共享 和重用的少量的可重用组件,库以及开发人员的经验。最初级的SaaS应用成熟度模型与传统模式的最大差别在于商业模式,即软硬件以及相应的维护职责由SaaS服务商负责,而软件使用者只需按照时间,用户数,空间等逐步支付软件租赁使用费用即可。(2)Level2:可配置第二级成熟度模型相对于最初级的成熟度模型, 增加了可配置性, 可以通过不同的配置来满足不同客户的需求, 而不需要为每个客户进行特定定制,以降低定制开发的成本。 但在第二级成熟度模型中, 软件的部署架构没有发生太大的变化,依然是为每个客户独立部署一个运行

6、实例。 只是每个运行实例运行的是同一个代码, 通过配置的不同来满足不同客户的个 性化需求。Level3:高性能的多租户架构在应用架构上, 第一级和第二级的成熟度模型与传统软件没有多大差别,只是在商业模式上符合SaaS的定义。多租户单实例的应用架构才是通常真正意义上的SaaS应用架构,即Multi-Tenant架构。多租户单实例的应用架构可以有效地降低SaaS应用的硬件及运行维护成本,最大化地发挥 SaaS应用的规模效应。要实现 Multi-Tenant架构的关键是通过一定的策 略来保证不同租户间的数据隔离, 确保不同租户既能共享同一个应用的运行实例, 又能为用 户提供独立的应用体验和数据空间。

7、Level4:可伸缩性的多租户架构在实现了多租户但单实例的应用架构之后, 随着租户数量的逐渐增加, 集中式的数据库 性能就将成为整个 SaaS应用的性能瓶颈。因此,在用户数大量增加的情况下,无须更改应 用架构,而仅需简单的增加硬件设备的数量,就可以支持应用规模的增长。不管用户多少, 都能像单用户一样方便地实施应用修改。这就是第四级也是最高级别的SaaS成熟度模型所要致力解决的问题。5. 独立软件开发者( ISV)开发软件的个人或者公司,ISV通过平台来出售自己的软件6. 软件入口ISV出售软件时,提供给用户使用的接口,即ISV开发的软件的进入网址。7. 创建子版本ISV根据软件的功能,版软件分

8、成几个不同的子版本,用户可以根据所需运用购买不同 的版本,其工作有isv完成8. 租户购买了软件的个人或者公司。9. 注册序列号isv注册软件时获得的序列号,是isv软件唯一不可变更的序列号,可不计入数据库,单必须保存在 isv 软件的配置文件中。10.免登陆由平台跳到isv软件时,不需进行再登陆,isv软件根据传过来的用户信息,直接初始化 用户信息。11.Token身份验证令牌,在 saas平台跳到isv软件时使用,用于验证跳转用户的合法性。Token动态生成,为了安全,其生命长度只有 10-20 秒。12 免登入接口由平台提供的一组验证程序,修改其中的注册序列号后绑定到isv软件,以实现用

9、户的免登入。13参与的软件 不是自己购买开发的软件,而是由别人购买并添加,其所有软件显示为参与的软件。14 AssP软件互联平台,在这既 SaaS 平台2. SaaS平台功能2.1软件注册2.1.1业务流程图注册用户点击注册软件填写软件信息和软件入口失败在用户开发的软件列表添 加此软件,获得序列号工在用户软件上绑定软件序列号提交成功调试软件失败成功1-1 -成功1F软件上架,进入商场平台管理员审核软件进入开发的软件结束失败编辑软件信息图1软件注册流程图2.1.2业务详细说明用户先注册一个平台的帐号,登录后,点击我的软件(即开发的软件)进入, 后点击注册软件,填写相关信息,提交成功后,会产生一个

10、软件注册序列号,此序 列号为核对客户软件的凭证。最后还需通过平台管理员审核,该软件才会出现在软 件商城中,才可供平台用户购买。2.1.3功能描述注册软件主要是用于给想在该平台上出售软件的第三方客户(软件提供商)提 供软件入口,同时填写软件相关详细信息,图片,类别等。注意:注册软件时需要客户填写软件入口,即客户所提供软件的发布网址,当 平台上的客户购买了软件后,点击进入使用时,将通过该软件入口进入软件。2.1.4用例图图2软件审核用例图图3注册软件用例图2.2软件编辑2.2.1业务流程图开始编辑子版本获得子版本序列号绑定序列号软件上架结束图4软件编辑流程图2.2.2业务详细说明软件注册成功并通过

11、审核后,即可在我的软件(开发的软件)中查看,编辑或删除该软件信息,同时还可为软件进行版本分类,可创建,查看,删除子版本。2.2.3功能描述在我的软件中可查看, 编辑,删除该软件信息,同时还可为软件进行版本分类, 可创建,查看,删除子版本。2.2.4用例图图5软件编辑用例图2.3软件购买2.3.1业务流程图1F进入续费页面,添*加授权个数用户是否存在进入续费页面,添加授权期限进入添加用户授权个数 ?否添加用户,把用户注册用户添加到相应软件中是授权期限未至V?进入使用J结束图6软件购买流程图2.3.2 业务详细说明用户在软件商城可查看所有平台已通过审核的软件,若用户已登录并未购买过 该软件, 则可

12、点击购买进行购买软件; 点击查看详细信息, 可查看软件的详细信息, 点击购买可进行购买 (前提是用户已登录并未购买过该软件) ,若此用户已购买过该 软件则会提示已购买并跳到购买的软件页面,用户可点击进入使用,若此用户未登 录,则提示请先注册并登录。添加用户:若租户购买的授权个数大于 1,则可添加其他用户使用软件,添加用户有两种方 式:1. 若用户已存在, 即添加已在平台上注册的用户, 则可通过注册时填写的电子邮件地址进行查找,并添加,添加成功后,对方即可在参与的软件中使用该软件。2. 若用户不存在, 即添加还未在平台上注册的用户, 则可通过创建新用户来进行添加,并把创建的信息告知对方,对方即可

13、在参与的软件中使用该软件。 若不在想让某用户使用该软件,可通过删除操作来删除。续费:租户可根据仅追加使用授权个数, 仅追加购买授权期限或同时追加个数和权限来 进行续费2.3.3 功能描述软件商城显示所有注册了并通过审核的软件,平台上已注册并登录的用户充值 后可选择相应的软件根据授权个数和授权时间进行购买。购买成功后即可在购买的 软件中查看并使用,同时还可进行续费,添加用户等操作。添加用户用于租户添加自己所购买软件的使用人员,也可根据需要进行删除。 注意:授权个数即可使用该软件的人数,客户购买了软件后即成为租户,租户 可通过添加用户操作添加用户。授权时间即该软件可使用的时间,若租户想增加授权个数

14、或增加授权人 数,即可通过续费来完成。2.3.4用例图2.4参与软件2.4.1业务流程图无业务流程图。2.4.2业务详细说明通过软件购买中的添加用户可添加用户,成功后,用户点击参加的软件中相应软件的进入使用,可使用包括自己购买的和通过其他租户添加进去使用的软件2.4.3功能描述参加的软件中显示用户可使用的软件列表,包括自己购买的和通过其他租户添加进去使用的软件2.4.4用例图软件参与者图8参与软件用例图2.5账户与个人信息2.5.1业务流程图无业务流程图。2.5.2业务详细说明用户可根据需要查看余额,进行充值,查看个人信息,修改密码等2.5.3功能描述帐户与个人信息可查看用户的余额,可进行充值

15、,查看个人信息,修改密码等操作2.5.4用例图图9帐户与个人信息用例图02.6 SaaS平台免登陆接口261业务流程图用户请求登陆SaaS软件,平台对SaaS软件传参数SaaS软件对CheckLogin.aspx请求访问调用接口判断请求接口的名称未找到相应的接口名返回调用未声明接口的错误信息存在此接口名称获取请求的参数调用接口的参数请求的参数不完全或为空返回需要请求参数为空的参数信息判断请求信息是否超时重传调用接口的Token已经超时返回超时重传的错误信息Token未超时判断请求参数信息的合法性-返回不存在或非法的参数错误信息(根据参数计算的sipsign不符合要求计算的sipsign符合要求

16、处理接口调用请求,返回结果数组图1-6-1免登陆接口的处理流程2.6.2业务详细说明用户请求访问购买的SaaS软件:用户请求使用用户购买的SaaS软件时,平台会将用户ID(User_ID),软件 ID(Application_ID),购买此软件的租户ID(Renter_ID),防止重传的Token这4个参数传值提供 软件提供商提供的网址。同时将此时生成的Token序列和时间与访问的用户id,软件id 一起保存在数据库里,Token的有效时间理应当设为 10秒到20秒左右。SaaS软件访问CheckLogin.aspx调用免登陆接口:SaaS软件在注册时候会获得一个独有的软件序列号,软件提供商在

17、软件开始运行 的代码中加入请求,访问平台判断此用户和本软件是否是合法的软件和用户,SaaS软件应该将软件序列号,时间戳(系统当前时间),请求的接口名,与传送过来的四个值用md5加密生成一个新的sipsign的值,再把sipsign,时间戳,请求的接口名和传送过来的四个值传 给平台的CheckLogin.aspx页面请求调用免登陆接口。(如图1-6-2和 图1-6-3)strin£ sipsipi =13CE27E576ED4E1 T&4E" + "AppID" + ppID + RtntarlE +sip_-apinameQi soft, vai

18、l da七皂"百芒苗"+ " sip appkey" + AppID + TimeStamp 8 + TimeStamp + "Token" + T<*ken + "UserID + UserID;SripEiL纠 =MD5 (sipsign):图1-6-2 sipsign验证的生成stxing url = WebUrl + ""Cheeliogiii. as;p(x?sipsi+ sipsiga + "UserID二"+ VserlD + ,!r4A.ppID=!'+

19、AppID + "Oentt!rID=, + RenterlD + &TimeSt:=imp= + TimeStamp + "iftJkpilT:=LjTiH=sip_apirLamieali soft, vali dateUser"图1-6-3请求接口的 URL判断请求接口的名称:请求接口理应当分为很多类型,所以在处理页面上应当做分类处理,当然目前只实现的免登陆接口,但为了以后的扩展这种业务流程上的判断不能少(接口名称的命名规则建议为:公司名.模块名.功能名,这样可以用 split做分类操作)。如果不存在此名称的接口, 则返回一个错误信息。获取请求的数据

20、:根据接口类型的不同,获取不同名称的数据参数。如果获取的某一个数据参数为空, 则返回一个错误信息。判断是否重传:根据传送过来的Token序列号和用户Token中的时间与平台上的当前时间是否超出了 传的时间限制,则返回一个错误信息。如果根据 个错误信息。Token存取的流程如图 1-6-4:id,从数据库读出相应的 Token记录,并比较Token防重传的时间限制。如果超出了防重Token从数据库读不出任何数据,也返回一SaaS软件图1-6-4 Token存取流程判断参数的合法性:根据传送过来的参数,和平台从数据库读出相应的软件序列号重新做一次sipsign的运算,再将运算结果和SaaS软件传送

21、过来的值做比较,如果相同则合法,如果不相同则返回一个错误信息。处理接口调用请求,返回结果数值:通过一系列的合法判断, 最后执行接口的处理请求, 不同的接口处理方式不同, 需 要返回结果由''特殊字符拼接成一个字符串返回给 SaaS软件(也可以返回一个xml),如果不 需要返回结果的,可以返回一个成功信息。(这部分还需要对安全性进行考虑 )2.6.3功能描述接口的实现主要是针对 SaaS软件与SaaS平台之间的关联矛盾。因为用户数据与买卖交 易数据都存放在 SaaS平台之中。当SaaS软件需要获得买卖此软件的某些合法的用户数据的 时候就需要和平台进行一定的交互,此时候就要通过接口

22、来实现此种交互。目前SaaS平台上只实现了免登陆的接口,免登陆接口实现用户从平台到第三方软件的 链接不需要二次登陆,只需要在平台上购买了此软件,则可以从平台上直接登陆第三方软件 使用。接口的种类可以有很多种,如果要扩展的话还可能要有获取购买此软件用户授权的接 口,查询购买此软件的用户信息的接口,以及其他等等。2.6.4用例图接口模块不存在用例图。2.7 SaaS软件用户初始化2.7.1业务流程图用户在平台登陆选择购买的软件进入SaaS软件调用免登陆接口5用户合法用户非法提示错误信息,返回平台判断用户所属租户是否存在本地数据存在此租户 判断用户是否存在1 本地数据不存在此租户2初始化租户信息及相

23、关信息本地数据不存在此用户 讨初始化用户信息本地数据存在此用户 载入登陆用户的权限,信息使用属于此用户的软件-图1-7-1 SaaS软件初始化流程2.7.2业务详细说明用户在平台登陆:基于SaaS平台的SaaS软件的用户都是在平台上实现注册登陆的,这样平台上管理多个SaaS软件的时候就可以一次登陆免去多个二次登陆的麻烦。用户在平台通过单点登陆 (SSO链接到SaaS软件上。选择购买的软件进入:用户可以拥有多个软件,不同的软件有不同的软件入口地址。SaaS软件调用免登陆接口:所有的软件一开始都应当判断进入用户的合法性。判断用户所属租户是否存在 初始化租户信息: 先查看本地数据库中是否存在与此租户

24、是否存在, 如果不存在则需要初始化租户及 相关的数据, 所谓的初始化租户及相关的数据不止是将租户的信息加入到本地数据库, 而且 要初始化SaaS软件的默认配置。譬如说 SaaS软件本身具有默认的几个角色,但由于SaaS软件的特性是由多个不同的租户使用, 不同的租户定义的角色有所不同, 但又具有相同的系 统默认的角色,在这种情况下就需要在初始化租户的时候初始化SaaS软件的默认配置,将系统本身默认的角色与此租户关联起来。还有一点要注意的是,SaaS软件本地数据库里的租户id就是用户在平台上的用户 id,通过这样才能判断平台上的用户是否已经在软件本地里 初始化过。判断用户是否存在 初始化用户信息

25、: 如果本地数据库没有此用户信息, 且此用户又是合法的, 则将此用户的信息存放在 数据库里。如果 SaaS软件系统功能上是分角色权限的,则需要把给此用户赋予一个最低的 权限,再由系统管理员(即是租户)提升此用户的权限。载入登陆用户的权限,信息 : 当一切判断结束后, 如果用户合法且系统初始化信息完毕则用户获得一个具有他在 此系统的权限和信息的 Session。2.7.3 功能描述SaaS软件初始化的过程也即是为了解决平台与SaaS软件之间的关联矛盾问题。但不同的是此部分必须要由软件提供者完成, 也就是软件提供者需要在用户登陆的时候就需要判断 初始化数据 (尽管从流程上看很繁琐,但必不可少 )。

26、这个初始化的过程可以解决不同租户在 软件中配置不同且又都保留系统默认配置的问题。在初始化的设计我们采用的是一对一的设计方式:图1-7-2初始化方式这种初始化方式即是每个用户就需要经历初始化判断的过程,且只有判断后才能把用户数据添加到本地数据库里。即是一个租户买了软件后添加了用户,租户可以不先登陆,用户可以先登陆(因为所有的用户都会触发初始化过程),然而只有登陆过的用户才能出现在 SaaS软件的本地数据库中。这种初始化过程是采用分别初始化,一一对应的方式。(至于基于组织结构方式进行初始化方式,我们在改进的功能点与方案中再进行描述讨论)2.7.4用例图此模块无用例图。3. SaaS平台需改进的功能

27、点与方案3.1 基于组织机构的软件用户管理方式3.1.1 原功能描述SaaS平台的设计是基于用户的软件使用方式,也就是说每个用户在平台上都是平级的, 当用户购买了软件之后他就成了这个软件的一个特定的租户, 当用户想要其他的用户使用自 己购买的软件的时候, 可以把这个软件的使用授权赋予其他平台用户, 至于具体的权责划分 就在软件中划分, 当然租户可以收回赋予的软件使用授权。 这样的方式是以个体用户为中心, 采用平级的处理来实现软件用户管理。 (这方面还需要对恶意注册进行考虑改进)3.1.2 改进后的功能描述根据新的需求,SaaS平台追加一种基于组织机构的软件用户管理方式。也就是说一个 组织机构购

28、买了一个软件后可以把软件授权赋予在所属组织机构的用户上。 这样的实现方式 可以让软件用户的管理更简单, 组织机构当然也可以回收某个用户的使用权限, 并赋予某个 用户多个软件的使用权限。同时,SaaS软件初始化的过程中可以让组织中的人员角色与SaaS软件中人员角色相对应(此功能很难实现) 。3.1.3 实现方案则必须先要添加组织机构的注册。 也就至于组织机构的里所属的用户在理念上SaaS平台也具有SaaS软件的部分特SaaS平台中并没有太大的作用,但此如果要添加基于组织机构的软件用户管理方式,是说注册的类型分为个人用户注册和组织机构注册。 是可以由用户自由添加和管理的(这种设计可以认为 点),同

29、时组织机构里的用户也可以设置职位(职位在 类信息在组织机构的初始化过程中可能要用到, 详细信息在基于组织机构的软件用户初始化 方式中讨论说明) 。那么一个基于组织机构的软件用户管理方式可以看成是一个简单的管理 系统,如图 3-1-1:基于组织结构软件用户管理* 管理组织机构用户软件授权* 赋予组织机构用户软件授权F 设置组织机构用户信息和职位删除组织机构用户添加组织机构用户图3-1-1组织机构的软件用户管理方式既然组织机构里有属于此组织机构独有的用户,那么出于安全与系统设计上的考虑我们需要让组织机构中的用户与普通的个体用户分别独立开来,所以我们要加一张组织机构用户表来专门存储组织机构用户数据,

30、同时必须要有一个数据字段来记录组织的id,如图3-1-2:组织1"用户数据信息P图3-1-2组织机构用户数据结构用户数据信息里可以存放用户的账号,密码,职位等其他用户信息。而组织机构用户是可以由组织机构随意添加的,但组织机构用户只能有其所属的组织机构管理(此部分存在一个恶意注册的问题,可以考虑每个组织机构有个添加用户的上限)。当然,组织机构用户与普通的个体用户在平台上的功能也应该有所不同,且他们涉及到的关系业务逻辑也应当有所不同,具体的设计想法如下:1, 个体用户与组织机构间没有任何关系,即是和组织机构用户没有任何关系,个体用户购买的软件授权是不可以赋予组织机构的用户的。2, 个体用

31、户是一个平级的概念,组织机构用户有上下级关系。3, 个体用户可以通过购买软件成为一个租户,组织机构用户永远都是隶 属于组织机构这个租户下的用户,同时也不具有购买软件的功能。4, 个体用户和组织机构用户登陆后所看到的页面应当是不同的。5, 个体用户只能由平台的系统管理员管理,而组织机构用户可以由组织 机构管理。软件使用授权的使用分配, 其具体的实现方式因为个体用户与组织机构的分类而进行分类处理的,普通个体用户的软件授权是赋予其他的普通个体用户,这个个体用户可以由用户自己添加也可以查找现有的个体用户的账号,这种授权方式简单但操作起来麻烦又不便管理。至于组织机构的授权方式,就是组织机构购买的软件授权

32、赋予组织机构下的组织机构用户,这种选取方式更灵活,如图3-1-33-1-4为了更好的管理组织下的用户,组织机构也需要设定一个层级关系,如图:序号爼织结构人岗姓老编号启用.停用湮辖'范围固立由话00护江西嵐较件i沫有闹公司1苦應等吏昨门a惫研世现启用全玮;H苦砒一部5畑晓眾W启用3启用段目指走厂停用£F庐硏览二郁停用项目転500000000010J停用项目指蛊图3-1-4组织机构人员层级关系又由于组织机构用户是与组织机构与个体用户的数据表是分开的,所以组织机构管理员对组织机构用户的添加,删除,修改都是可以的,且不会影响平台用户的操作和数据。要实现这部分功能, 要添加组织机构表, 组织机构用户表,方便层次管理的部门表。如 果要自定义角色的话还要添加个组织机构角色表。3.2基于组织机构的软件用户初始化方式3.2.1原功能描述原来平台上的用户都是个体用户,且都是平级的,初始化的方式是采用分别初始化,一一对应的方式。也就是说每个可以使用此软件的用户只有第一次登陆到SaaS软件中去才能在SaaS软件中初始化用户数据。这种初始化方式每次初始化的流量小,且每个用户的登陆 都能触

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论