收藏 分销(赏)

saas公共服务平台架构及实现.doc

上传人:丰**** 文档编号:4739776 上传时间:2024-10-11 格式:DOC 页数:31 大小:1.14MB
下载 相关 举报
saas公共服务平台架构及实现.doc_第1页
第1页 / 共31页
saas公共服务平台架构及实现.doc_第2页
第2页 / 共31页
点击查看更多>>
资源描述
1. SaaS简介 1.1 SaaS概念 SaaS是Software-as-a-service(软件即服务)简称,是伴随互联网技术发展和应用软件成熟,而在二十一世纪开始兴起一种完全创新软件应用模式。它是一种通过Internet提供软件模式,厂商将应用软件统一布署在自己服务器上,客户可以根据自己实际需求,通过互联网向厂约定购所需应用软件服务,按定购服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供服务。 顾客不用再购置软件,而改用向提供商租用基于Web软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用同步,也提供软件离线操作和当地数据存储,让顾客随时随地都可以使用其定购软件和服务。对于许多小型企业来说,SaaS是采用先进技术最佳途径,它消除了企业购置、构建和维护基础设施和应用程序需要。 在这种模式下,客户不再像老式模式那样花费大量投资用于硬件、软件、人员,而只需要支出一定租赁服务费用,通过互联网便可以享有到对应硬件、软件和维护服务,享有软件使用权和不停升级,这是网络应用最具效益营运模式。 1.2 SaaS 专用名词 1.多重租赁(Multi-tenancy) SaaS"多重租赁"概念就是,多种企业将其数据和业务流程托管寄存在SaaS服务商同一服务器组上,相称于服务商将一套在线软件同步出租给多种企业,每个企业只能看到自己数据,由服务商来维护这些数据和软件。也就是说,多种企业登录到同一网站,但登录后看到界面和数据,不一样企业大不相似。 2.单点登录(Single sign-on) 这个概念应用在SaaS上,就是指把多种不一样在线应用软件服务搭建成为一种新型整合服务。顾客一般只需要登录一次就可以使用集成好应用软件组合。 3.基础架构平台(Platform infrastructure)   有时候SaaS拥护者但愿出现一种基础架构平台来推进SaaS更好地发展。 这是由于首先得有一种平台来支撑SaaS软件应用程序运行,如今最著名是国外Salesforce企业APP Exchange平台,国内800CRM800APP Native平台与Salesforce兼容。 4. SaaS(软件作为服务)   厉害SaaS销售代表直接用SaaS就能处理你所有管理软件问题。比起其他软件,SaaS软件更廉价,灵活性更强,能省掉更多麻烦。 5 SaaS成熟度模型(SaaS Maturity Model) (1)Level1:定制开发 这是最初级成熟度模型,其定义为Ad Hoc/Custom,即特定/定制,对于最初级成熟度模型,技术架构上跟老式项目型软件开发或者软件外包没什么区别,按照客户需求来定制一种版本,每个客户软件均有一份独立代码。不一样客户软件之间只可以共享和重用少许可重用组件,库以及开发人员经验。最初级SaaS应用成熟度模型与老式模式最大差异在于商业模式,即软硬件以及对应维护职责由SaaS服务商负责,而软件使用者只需按照时间,顾客数,空间等逐渐支付软件租赁使用费用即可。 (2)Level2:可配置 第二级成熟度模型相对于最初级成熟度模型,增长了可配置性,可以通过不一样配置来满足不一样客户需求,而不需要为每个客户进行特定定制,以减少定制开发成本。但在第二级成熟度模型中,软件布署架构没有发生太大变化,仍然是为每个客户独立布署一种运行实例。只是每个运行实例运行是同一种代码,通过配置不一样来满足不一样客户个性化需求。 (3)Level3:高性能多租户架构 在应用架构上,第一级和第二级成熟度模型与老式软件没有多大差异,只是在商业模式上符合SaaS定义。多租户单实例应用架构才是一般真正意义上SaaS应用架构,即Multi-Tenant架构。多租户单实例应用架构可以有效地减少SaaS应用硬件及运行维护成本,最大化地发挥SaaS应用规模效应。要实现Multi-Tenant架构关键是通过一定方略来保证不一样租户间数据隔离,保证不一样租户既能共享同一种应用运行实例,又能为顾客提供独立应用体验和数据空间。 (4)Level4:可伸缩性多租户架构 在实现了多租户但单实例应用架构之后,伴随租户数量逐渐增长,集中式数据库性能就将成为整个SaaS应用性能瓶颈。因此,在顾客数大量增长状况下,不必更改应用架构,而仅需简朴增长硬件设备数量,就可以支持应用规模增长。不管顾客多少,都能像单顾客同样以便地实行应用修改。这就是第四级也是最高级别SaaS成熟度模型所要致力处理问题。 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.6 SaaS平台免登陆接口 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-2 sipsign验证生成 图 1-6-3 祈求接口URL 判断祈求接口名称: 祈求接口理应当分为诸多类型,因此在处理页面上应当做分类处理,当然目前只实现免登陆接口,但为了后来扩展这种业务流程上判断不能少(接口名称命名规则提议为:企业名.模块名.功能名,这样可以用split做分类操作)。假如不存在此名称接口,则返回一种错误信息。 获取祈求数据: 根据接口类型不一样,获取不一样名称数据参数。假如获取某一种数据参数为空,则返回一种错误信息。 判断与否重传: 根据传送过来Token序列号和顾客id,从数据库读出对应Token记录,并比较Token中时间与平台上目前时间与否超过了Token防重传时间限制。假如超过了防重传时间限制,则返回一种错误信息。假如根据Token从数据库读不出任何数据,也返回一种错误信息。 Token存取流程如图1-6-4: 图1-6-4 Token存取流程 判断参数合法性: 根据传送过来参数,和平台从数据库读出对应软件序列号重新做一次sipsign运算,再将运算成果和SaaS软件传送过来值做比较,假如相似则合法,假如不相似则返回一种错误信息。 处理接口调用祈求,返回成果数值: 通过一系列合法判断,最终执行接口处理祈求,不一样接口处理方式不一样,需要返回成果由’&’特殊字符拼接成一种字符串返回给SaaS软件(也可以返回一种xml),假如不需要返回成果,可以返回一种成功信息。(这部分还需要对安全性进行考虑) 2.6.3功能描述 接口实现重要是针对SaaS软件与SaaS平台之间关联矛盾。由于顾客数据与买卖交易数据都寄存在SaaS平台之中。当SaaS软件需要获得买卖此软件某些合法顾客数据时候就需要和平台进行一定交互,此时候就要通过接口来实现此种交互。 目前SaaS平台上只实现了免登陆接口,免登陆接口实现顾客从平台到第三方软件链接不需要二次登陆,只需要在平台上购置了此软件,则可以从平台上直接登陆第三方软件使用。 接口种类可以有诸多种,假如要扩展话还也许要有获取购置此软件顾客授权接口,查询购置此软件顾客信息接口,以及其他等等。 2.6.4用例图 接口模块不存在用例图。 2.7 SaaS软件顾客初始化 2.7.1业务流程图 图 1-7-1 SaaS软件初始化流程 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 原功能描述 本来平台上顾客都是个体顾客,且都是平级,初始化方式是采用分别初始化,一一对应方式。也就是说每个可以使用此软件顾客只有第一次登陆到SaaS软件中去才能在SaaS软件中初始化顾客数据。这种初始化方式每次初始化流量小,且每个顾客登陆都能触发租户信息初始化,但不以便是需要每个顾客登陆到软件中。 3.2.2 改善后功能描述 由于出现了基于组织构造软件顾客管理方式,对应也应当增长基于组织机构初始化方式。基于组织机构初始化方式不一样于一般个体顾客初始化方式,其应当采用是组织机构管理员登陆一次性初始化这种方式。也就是说,当组织机构购置了此软件时候需要组织机构管理员登陆SaaS软件以便于初始化。并且这种触发方式只应当由组织机构管理员来触发实现,当组织机构管理员未触发此初始化事件时候,其他组织机构顾客是无法访问SaaS软件。(这种初始化方式一次性要传送大量数据,假如发生网络冲突或中断话,要运用某些措施进行修正,当然也可以沿用本来初始化方式,不过这样就大大减少了组织机构灵活性) 3.2.3 实现方案 方式一 从最直接实现方式入手就是当组织机构管理员登陆软件时候传送大量数据,从而使得整个组织构造系统初始化。此方式如图3-2-1: 图3-2-1 组织机构初始化方式1 由于存在一种网络冲突原因,有也许在第一次初始化过程中失败。因此基于这部分考虑,在设计上我们在组织管理员初始化之后需要每个组织机构顾客在登陆SaaS软件时候都需要通过少许数据交互与平台查对一下顾客与否完毕所有初始化完毕,也就是说平台上组织机构顾客数量与软件上组织机构顾客数量进行查对比较,假如不符合话就应当调用平台上提供接口重新初始化。方式如图3-2-2: 图 3-2-2 组织机构防初始化失败方式 这种方式实现需要在平台添加一种重新初始化接口,同步SaaS软件初始化代码也要有所更改。尚有一点非常重要,就是在SaaS软件中默认配置初始化一定要放在顾客初始化前面(由于判断时候只是判断顾客数量与否初始化完毕)。 方式二(强烈不推荐) 这种方式是继续沿用本来初始化方式,也就是分别初始化,一一对应方式,此实现方式要考虑个体顾客和组织机构所构成租户id重叠问题(由于SaaS软件当地数据库租户id是和平台上顾客id有关联,目前又多了组织构造表和组织机构顾客表,即是组织机构管理员也可以成为租户,这样id就也许相似)。我们可以让个体顾客租户id用数字表达,而组织机构租户id用数字字母形成序列号表达。当然,假如采用这种方式话,SaaS软件id模式就也许不统一了。也可以在初始化过程中指明初始化类型是组织构造方式,从而用一种算法替代id数值,这种方式也可以处理个体顾客与组织机构顾客id冲突问题。 总来说,这种实现方式不利于管理,使得组织构造方式软件顾客管理灵活性大大下降,但实现起来比方式1更简朴(更改代码量少)。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服