saas公共服务平台架构及实现.docx
- 文档编号:30037859
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:22
- 大小:302.66KB
saas公共服务平台架构及实现.docx
《saas公共服务平台架构及实现.docx》由会员分享,可在线阅读,更多相关《saas公共服务平台架构及实现.docx(22页珍藏版)》请在冰豆网上搜索。
saas公共服务平台架构及实现
saas公共服务平台架构及实现
1.1SaaS概念
SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的进展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。
它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户能够依照自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时刻长短向厂商支付费用,并通过互联网获得厂商提供的服务。
用户不用再购买软件,而改用向提供商租用基于Web的软件,来治理企业经营活动,且无需对软件进行爱护,服务提供商会全权治理和爱护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据储备,让用户随时随地都能够使用其定购的软件和服务。
关于许多小型企业来讲,SaaS是采纳先进技术的最好途径,它排除了企业购买、构建和爱护基础设施和应用程序的需要。
在这种模式下,客户不再像传统模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定的租赁服务费用,通过互联网便能够享受到相应的硬件、软件和爱护服务,享有软件使用权和不断升级,这是网络应用最具效益的营运模式。
1.2SaaS专用名词
1.多重租赁(Multi-tenancy)
SaaS的"多重租赁"概念确实是,多个公司将其数据和业务流程托管存放在SaaS服务商的同一服务器组上,相当于服务商将一套在线软件同时出租给多个公司,每个公司只能看到自己的数据,由服务商来爱护这些数据和软件。
也确实是讲,多个公司登录到同一网站,但登录后看到的界面和数据,不同的公司大不相同。
2.单点登录(Singlesign-on)
那个概念应用在SaaS上,确实是指把多个不同的在线应用软件服务搭建成为一种新型的整合服务。
用户通常只需要登录一次就能够使用集成好的应用软件组合。
3.基础架构平台(Platforminfrastructure)
有时候SaaS的拥护者期望显现一种基础架构的平台来推动SaaS更好地进展。
这是因为第一得有一个平台来支撑SaaS软件应用程序的运行,现在最闻名的是国外Salesforce公司的APPExchange平台,国内800CRM的800APPNative的平台与Salesforce兼容。
4.SaaS(软件作为服务)
厉害的SaaS销售代表直截了当用SaaS就能解决你所有治理软件咨询题。
比起其它软件,SaaS软件更廉价,灵活性更强,能省掉更多的苦恼。
5SaaS成熟度模型(SaaSMaturityModel)
(1)Level1:
定制开发
这是最初级的成熟度模型,其定义为AdHoc/Custom,即特定的/定制的,关于最初级的成熟度模型,技术架构上跟传统的项目型软件开发或者软件外包没什么区不,按照客户的需求来定制一个版本,每个客户的软件都有一份独立的代码。
不同的客户软件之间只能够共享和重用的少量的可重用组件,库以及开发人员的体会。
最初级的SaaS应用成熟度模型与传统模式的最大差不在于商业模式,即软硬件以及相应的爱护职责由SaaS服务商负责,而软件使用者只需按照时刻,用户数,空间等逐步支付软件租赁使用费用即可。
(2)Level2:
可配置
第二级成熟度模型相关于最初级的成熟度模型,增加了可配置性,能够通过不同的配置来满足不同客户的需求,而不需要为每个客户进行特定定制,以降低定制开发的成本。
但在第二级成熟度模型中,软件的部署架构没有发生太大的变化,依旧是为每个客户独立部署一个运行实例。
只是每个运行实例运行的是同一个代码,通过配置的不同来满足不同客户的个性化需求。
(3)Level3:
高性能的多租户架构
(4)Level4:
可伸缩性的多租户架构
5.独立软件开发者(ISV)
开发软件的个人或者公司,ISV通过平台来出售自己的软件
6.软件入口
ISV出售软件时,提供给用户使用的接口,即ISV开发的软件的进入网址。
7.创建子版本
ISV依照软件的功能,版软件分成几个不同的子版本,用户能够依照所需运用购买不同的版本,其工作有isv完成
8.租户
购买了软件的个人或者公司。
9.注册序列号
isv注册软件时获得的序列号,是isv软件唯独不可变更的序列号,可不计入数据库,单必须储存在isv软件的配置文件中。
10.免登陆
由平台跳到isv软件时,不需进行再登陆,isv软件依照传过来的用户信息,直截了当初始化用户信息。
11.Token
身份验证令牌,在saas平台跳到isv软件时使用,用于验证跳转用户的合法性。
Token动态生成,为了安全,其生命长度只有10-20秒。
12免登入接口
由平台提供的一组验证程序,修改其中的注册序列号后绑定到isv软件,以实现用户的免登入。
13.参与的软件
不是自己购买开发的软件,而是由不人购买并添加,其所有软件显示为参与的软件。
14.AssP
软件互联平台,在这既SaaS平台
2.SaaS平台功能
2.1软件注册
2.1.1业务流程图
图1软件注册流程图
2.1.2业务详细讲明
用户先注册一个平台的帐号,登录后,点击我的软件(即开发的软件)进入,后点击注册软件,填写相关信息,提交成功后,会产生一个软件注册序列号,此序列号为核对客户软件的凭证。
最后还需通过平台治理员审核,该软件才会显现在软件商城中,才可供平台用户购买。
2.1.3功能描述
注册软件要紧是用于给想在该平台上出售软件的第三方客户(软件提供商)提供软件入口,同时填写软件相关详细信息,图片,类不等。
注意:
注册软件时需要客户填写软件入口,即客户所提供软件的公布网址,当平台上的客户购买了软件后,点击进入使用时,将通过该软件入口进入软件。
2.1.4用例图
图2软件审核用例图
图3注册软件用例图
2.2软件编辑
2.2.1业务流程图
图4软件编辑流程图
2.2.2业务详细讲明
软件注册成功并通过审核后,即可在我的软件(开发的软件)中查看,编辑或删除该软件信息,同时还可为软件进行版本分类,可创建,查看,删除子版本。
2.2.3功能描述
在我的软件中可查看,编辑,删除该软件信息,同时还可为软件进行版本分类,可创建,查看,删除子版本。
2.2.4用例图
图5软件编辑用例图
2.3软件购买
2.3.1业务流程图
图6软件购买流程图
2.3.2业务详细讲明
用户在软件商城可查看所有平台已通过审核的软件,若用户已登录并未购买过该软件,则可点击购买进行购买软件;点击查看详细信息,可查看软件的详细信息,点击购买可进行购买(前提是用户已登录并未购买过该软件),若此用户已购买过该软件则会提示已购买并跳到购买的软件页面,用户可点击进入使用,若此用户未登录,则提示请先注册并登录。
添加用户:
若租户购买的授权个数大于1,则可添加其他用户使用软件,添加用户有两种方式:
1.若用户已存在,即添加已在平台上注册的用户,则可通过注册时填写的电子邮件地址进行查找,并添加,添加成功后,对方即可在参与的软件中使用该软件。
2.若用户不存在,即添加还未在平台上注册的用户,则可通过创建新用户来进行添加,并把创建的信息告知对方,对方即可在参与的软件中使用该软件。
若不在想让某用户使用该软件,可通过删除操作来删除。
续费:
租户可依照仅追加使用授权个数,仅追加购买授权期限或同时追加个数和权限来进行续费
2.3.3功能描述
软件商城显示所有注册了并通过审核的软件,平台上已注册并登录的用户充值后可选择相应的软件依照授权个数和授权时刻进行购买。
购买成功后即可在购买的软件中查看并使用,同时还可进行续费,添加用户等操作。
添加用户用于租户添加自己所购买软件的使用人员,也可依照需要进行删除。
注意:
授权个数即可使用该软件的人数,客户购买了软件后即成为租户,租户可通过添加用户操作添加用户。
授权时刻即该软件可使用的时刻,若租户想增加授权个数或增加授权人数,即可通过续费来完成。
2.3.4用例图
图7软件购买用例图
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功能描述
帐户与个人信息可查看用户的余额,可进行充值,查看个人信息,修改密码等操作
2.5.4用例图
图9帐户与个人信息用例图
02.6SaaS平台免登陆接口
2.6.1业务流程图
图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软件在注册时候会获得一个独有的软件序列号,软件提供商在软件开始运行的代码中加入要求,访咨询平台判定此用户和本软件是否是合法的软件和用户,SaaS软件应该将软件序列号,时刻戳(系统当前时刻),要求的接口名,与传送过来的四个值用md5加密生成一个新的sipsign的值,再把sipsign,时刻戳,要求的接口名和传送过来的四个值传给平台的CheckLogin.aspx页面要求调用免登陆接口。
(如图1-6-2和图1-6-3)
图1-6-2sipsign验证的生成
图1-6-3要求接口的URL
判定要求接口的名称:
要求接口理应当分为专门多类型,因此在处理页面上应当做分类处理,因此目前只实现的免登陆接口,但为了以后的扩展这种业务流程上的判定不能少(接口名称的命名规则建议为:
公司名.模块名.功能名,如此能够用split做分类操作)。
假如不存在此名称的接口,则返回一个错误信息。
猎取要求的数据:
依照接口类型的不同,猎取不同名称的数据参数。
假如猎取的某一个数据参数为空,则返回一个错误信息。
判定是否重传:
依照传送过来的Token序列号和用户id,从数据库读出相应的Token记录,并比较Token中的时刻与平台上的当前时刻是否超出了Token防重传的时刻限制。
假如超出了防重传的时刻限制,则返回一个错误信息。
假如依照Token从数据库读不出任何数据,也返回一个错误信息。
Token存取的流程如图1-6-4:
图1-6-4Token存取流程
判定参数的合法性:
依照传送过来的参数,和平台从数据库读出相应的软件序列号重新做一次sipsign的运算,再将运算结果和SaaS软件传送过来的值做比较,假如相同则合法,假如不相同则返回一个错误信息。
处理接口调用要求,返回结果数值:
通过一系列的合法判定,最后执行接口的处理要求,不同的接口处理方式不同,需要返回结果由’&’专门字符拼接成一个字符串返回给SaaS软件(也能够返回一个xml),假如不需要返回结果的,能够返回一个成功信息。
(这部分还需要对安全性进行考虑)
2.6.3功能描述
接口的实现要紧是针对SaaS软件与SaaS平台之间的关联矛盾。
因为用户数据与买卖交易数据都存放在SaaS平台之中。
当SaaS软件需要获得买卖此软件的某些合法的用户数据的时候就需要和平台进行一定的交互,现在候就要通过接口来实现此种交互。
目前SaaS平台上只实现了免登陆的接口,免登陆接口实现用户从平台到第三方软件的链接不需要二次登陆,只需要在平台上购买了此软件,则能够从平台上直截了当登陆第三方软件使用。
接口的种类能够有专门多种,假如要扩展的话还可能要有猎取购买此软件用户授权的接口,查询购买此软件的用户信息的接口,以及其他等等。
2.6.4用例图
接口模块不存在用例图。
2.7SaaS软件用户初始化
2.7.1业务流程图
图1-7-1SaaS软件初始化流程
2.7.2业务详细讲明
用户在平台登陆:
基于SaaS平台的SaaS软件的用户差不多上在平台上实现注册登陆的,如此平台上治理多个SaaS软件的时候就能够一次登陆免去多个二次登陆的苦恼。
用户在平台通过单点登陆(SSO)链接到SaaS软件上。
选择购买的软件进入:
用户能够拥有多个软件,不同的软件有不同的软件入口地址。
SaaS软件调用免登陆接口:
所有的软件一开始都应当判定进入用户的合法性。
判定用户所属租户是否存在→初始化租户信息:
先查看本地数据库中是否存在与此租户是否存在,假如不存在则需要初始化租户及相关的数据,所谓的初始化租户及相关的数据不止是将租户的信息加入到本地数据库,而且要初始化SaaS软件的默认配置。
譬如讲SaaS软件本身具有默认的几个角色,但由于SaaS软件的特性是由多个不同的租户使用,不同的租户定义的角色有所不同,但又具有相同的系统默认的角色,在这种情形下就需要在初始化租户的时候初始化SaaS软件的默认配置,将系统本身默认的角色与此租户关联起来。
还有一点要注意的是,SaaS软件本地数据库里的租户id确实是用户在平台上的用户id,通过如此才能判定平台上的用户是否差不多在软件本地里初始化过。
判定用户是否存在→初始化用户信息:
假如本地数据库没有此用户信息,且此用户又是合法的,则将此用户的信息存放在数据库里。
假如SaaS软件系统功能上是分角色权限的,则需要把给此用户给予一个最低的权限,再由系统治理员(即是租户)提升此用户的权限。
载入登陆用户的权限,信息:
当一切判定终止后,假如用户合法且系统初始化信息完毕则用户获得一个具有他在此系统的权限和信息的Session。
2.7.3功能描述
SaaS软件初始化的过程也即是为了解决平台与SaaS软件之间的关联矛盾咨询题。
但不同的是此部分必须要由软件提供者完成,也确实是软件提供者需要在用户登陆的时候就需要判定初始化数据(尽管从流程上看专门繁琐,但必不可少)。
那个初始化的过程能够解决不同租户在软件中配置不同且又都保留系统默认配置的咨询题。
在初始化的设计我们采纳的是一对一的设计方式:
图1-7-2初始化方式
这种初始化方式即是每个用户就需要经历初始化判定的过程,且只有判定后才能把用户数据添加到本地数据库里。
即是一个租户买了软件后添加了用户,租户能够不先登陆,用户能够先登陆(因为所有的用户都会触发初始化过程),然而只有登陆过的用户才能显现在SaaS软件的本地数据库中。
这种初始化过程是采纳分不初始化,一一对应的方式。
(至于基于组织结构方式进行初始化方式,我们在改进的功能点与方案中再进行描述讨论)
2.7.4用例图
此模块无用例图。
3.SaaS平台需改进的功能点与方案
3.1基于组织机构的软件用户治理方式
3.1.1原功能描述
SaaS平台的设计是基于用户的软件使用方式,也确实是讲每个用户在平台上差不多上平级的,当用户购买了软件之后他就成了那个软件的一个特定的租户,当用户想要其他的用户使用自己购买的软件的时候,能够把那个软件的使用授权给予其他平台用户,至于具体的权责划分就在软件中划分,因此租户能够收回给予的软件使用授权。
如此的方式是以个体用户为中心,采纳平级的处理来实现软件用户治理。
(这方面还需要对恶意注册进行考虑改进)
3.1.2改进后的功能描述
依照新的需求,SaaS平台追加一种基于组织机构的软件用户治理方式。
也确实是讲一个组织机构购买了一个软件后能够把软件授权给予在所属组织机构的用户上。
如此的实现方式能够让软件用户的治理更简单,组织机构因此也能够回收某个用户的使用权限,并给予某个用户多个软件的使用权限。
同时,SaaS软件初始化的过程中能够让组织中的人员角色与SaaS软件中人员角色相对应(此功能专门难实现)。
3.1.3实现方案
假如要添加基于组织机构的软件用户治理方式,则必须先要添加组织机构的注册。
也确实是讲注册的类型分为个人用户注册和组织机构注册。
至于组织机构的里所属的用户在理念上是能够由用户自由添加和治理的(这种设计能够认为SaaS平台也具有SaaS软件的部分特点),同时组织机构里的用户也能够设置职位(职位在SaaS平台中并没有太大的作用,但此类信息在组织机构的初始化过程中可能要用到,详细信息在基于组织机构的软件用户初始化方式中讨论讲明)。
那么一个基于组织机构的软件用户治理方式能够看成是一个简单的治理系统,如图3-1-1:
图3-1-1组织机构的软件用户治理方式
既然组织机构里有属于此组织机构独有的用户,那么出于安全与系统设计上的考虑我们需要让组织机构中的用户与一般的个体用户分不独立开来,因此我们要加一张组织机构用户表来专门储备组织机构用户数据,同时必须要有一个数据字段来记录组织的id,如图3-1-2:
图3-1-2组织机构用户数据结构
用户数据信息里能够存放用户的账号,密码,职位等其他用户信息。
而组织机构用户是能够由组织机构随意添加的,但组织机构用户只能有其所属的组织机构治理(此部分存在一个恶意注册的咨询题,能够考虑每个组织机构有个添加用户的上限)。
因此,组织机构用户与一般的个体用户在平台上的功能也应该有所不同,且他们涉及到的关系业务逻辑也应当有所不同,具体的设计方法如下:
1,个体用户与组织机构间没有任何关系,即是和组织机构用户没有任何
关系,个体用户购买的软件授权是不能够给予组织机构的用户的。
2,个体用户是一个平级的概念,组织机构用户有上下级关系。
3,个体用户能够通过购买软件成为一个租户,组织机构用户永久差不多上隶
属于组织机构那个租户下的用户,同时也不具有购买软件的功能。
4,个体用户和组织机构用户登陆后所看到的页面应当是不同的。
5,个体用户只能由平台的系统治理员治理,而组织机构用户能够由组织
机构治理。
软件使用授权的使用分配,其具体的实现方式因为个体用户与组织机构的分类而进行分类处理的,一般个体用户的软件授权是给予其他的一般个体用户,那个个体用户能够由用户自己添加也能够查找现有的个体用户的账号,这种授权方式简单但操作起来苦恼又不便治理。
至于组织机构的授权方式,确实是组织机构购买的软件授权给予组织机构下的组织机构用户,这种选取方式更灵活,如图3-1-3:
图3-1-3组织机构软件授权方式
为了更好的治理组织下的用户,组织机构也需要设定一个层级关系,如图:
3-1-4
图3-1-4组织机构人员层级关系
又由于组织机构用户是与组织机构与个体用户的数据表是分开的,因此组织机构治理员对组织机构用户的添加,删除,修改差不多上能够的,且可不能阻碍平台用户的操作和数据。
要实现这部分功能,要添加组织机构表,组织机构用户表,方便层次治理的部门表。
假如要自定义角色的话还要添加个组织机构角色表。
3.2基于组织机构的软件用户初始化方式
3.2.1原功能描述
3.2.2改进后的功能描述
由于显现了基于组织结构的软件用户治理方式,相应的也应当增加基于组织机构的初始化方式。
基于组织机构的初始化方式不同于一般的个体用户初始化方式,其应当采纳的是组织机构治理员登陆一次性初始化这种方式。
也确实是讲,当组织机构购买了此软件的时候需要组织机构治理员登陆SaaS软件以便于初始化。
而且这种触发方式只应当由组织机构治理员来触发实现,当组织机构治理员未触发此初始化事件的时候,其他组织机构用户是无法访咨询SaaS软件的。
(这种初始化方式一次性要传送大量的数据,假如发生网络冲突或中断的话,要利用一些方法进行修正,因此也能够沿用原先的初始化方式,只是如此就大大降低了组织机构的灵活性)
3.2.3实现方案
方式一
从最直截了当的实现方式入手确实是当组织机构治理员登陆软件的时候传送大量的数据,从而使得整个组织结构的系统初始化。
此方式如图3-2-1:
图3-2-1组织机构初始化方式1
图3-2-2组织机构防初始化失败方式
这种方式的实现需要在平台添加一个重新初始化接口,同时SaaS软件的初始化代码也要有所更换。
还有一点专门重要,确实是在SaaS软件中默认配置的初始化一定要放在用户初始化的前面(因为判定的时候只是判定用户数量是否初始化完成)。
方式二(强烈不举荐)
这种方式是连续沿用原先的初始化方式,也确实是分不初始化,一一对应的方式,此实现方式要考虑个体用户和组织机构所构成的租户id重叠咨询题(因为SaaS软件本地的数据库的租户id是和平台上的用户id相关联的,现在又多了组织结构表和组织机构用户表,即是组织机构治理员也能够成为租户,如此id就可能相同)。
我们能够让个体用户的租户id用数字表示,而组织机构的租户id用数字字母形成的序列号表示。
因此,假如采纳这种方式的话,SaaS软件的id模式就可能不统一了。
也能够在初始化过程中指明初始化类型是组织结构方式的,从而用一种算法替换id数值,这种方式也能够解决个体用户与组织机构用户的id冲突咨询题。
总的来讲,这种实现方式不利于治理,使得组织结构方式的软件用户治理灵活性大大下降,但实现起来比方式1更简单(更换的代码量少)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- saas 公共 服务 平台 架构 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)