您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > 基于SaaS模式在线软件系统开发方案的研究
基于SaaS模式在线软件系统开发方案的研究客户关系管理(customerrelationshipmanagement,CRM),是企业信息化中非常重要的应用,但在传统的软件开发模式下,无论是企业用户还是软件供应商,CRM的应用都存在很多的问题。0引言客户关系管理(customerrelationshipmanagement,CRM),是企业信息化中非常重要的应用,但在传统的软件开发模式下,无论是企业用户还是软件供应商,CRM的应用都存在很多的问题。高成本,高门槛和高风险使很多中小型企业对CRM望而却步,也使很多大型企业很难得到预期的收效。另一方面,CRM软件供应商重复性地为各个企业开发相似的系统,软件和硬件投资的同质化非常严重,很难有效降低开发成本和提高软件创新性,并且传统的软件推广模式也不利于供应商推广CRM系统。与CRM类似,如ERP,GroupWare等企业信息化应用也存在类似问题。在这样不利于企业信息化发展的局面下,软件即为模式SaaS模式应运而生,在目前现有的软件和硬件条件下,它能很好解决以上问题。国内外已有基于SaaS模式成功地通过互联网提供企业IT应用的例子,如SalesForce、阿里软件等。1软件即为服务SaaS1.1SaaS的特点和优势软件即为服务SaaS(softwareasaservice),是一种新兴的软件模式,与传统模式相比,最明显的特点是在此模式下,软件以服务的形式开放在互联网上,用户无需购买软件和部署软件所需的相应的软硬件资源,只需浏览器就町以随时随地使用软件上所有服务功能。它的优势体现在:相对于企业用户而言,SaaS让用户以低成本,低门槛和低风险的方式使用软件服务;相对于软件供应商而言,SaaS可以借助于互联网的传播能力高效,快速地推广软件服务,并且可以避免重复工作,使软件供应商专注于提高服务质量,提高核心竞争力。1.2软件开发在SaaS模式下需要解决的关键问题(1)面向服务,基于业务。传统的软件大多是基于IT技术来构建,从IT技术的角度去满足业务的需求。但在SaaS模式下,供应商需要更为敏捷地推出服务满足用户的业务需求,这就要求在软件构架方面要以服务为粒度,以面向服务的方式构建软件。(2)高安全性。传统的CRM等企业应用都是限制在企业内部,而SaaS会把应用暴露在互联网上,因此所面临的安全威胁将远远高于传统模式,并且要让用户放心地把关键数据交给供应商管理,必须在安全方面给予足够地重视。数据管理的责权转变使得安全性在软件构架中优先级更高。(3)数据隔离。传统的CRM针对的是单个企业,程序和数据库设计都是限制在单个企业范围内,而SaaS模式系统要面向多个企业。这要求程序和数据库设计要建立在多用户模型之上,使企业之间相互独立和隔离。2SaaS系统中关键问题的解决方案SaaS模式下系统设计和开发成败的关键点在于面向服务的系统架构,安全架构和多企业数据隔离设计。下面以SaaS模式下CRM系统为例,提出针对以上关键问题的解决方案。2.1面向服务架构SOA(serviceorientedarchitecture),即面向服务架构,是以服务为粒度,基于业务来构建软件系统。本文将以SOA为基础构建S矩s系统架构,其原因有以下几点:①以业务为驱动,更敏捷地满足用户的业务需求。②提高系统复用性,更快速,代价更低地推出新服务。③更好把服务与用户自有系统相整合。④有利于把本系统的服务与其他s缸s供应商的服务进行整合。2.1.1SOA实施模式实施一个SOA项目有3种模式:Top-down、Bottom-up和Meetinthemiddle。Top-down筒而言之就是从业务模型入手,把业务过程分解成服务组件,然后再通过具体的实现技术来构建各个服务模块。Bottom-up与此正好相反,是从已存在的技术模块入手,把技术细节包装成服务模块,然后把这些服务模块组装成业务过程。Meetinthemiddle融合了前两种模式,分别从业务过程和IT技术入手,最后把业务过程和各个服务模块组装在一起。本系统的实施要求完全以业务为驱动,并且也不存在任何残留系统,所以用Top-down模式来实施SOA。2.1.2SOA实施流程概述Top-down模式决定了整个实施过程要以从业务过程到具体实现技术为路线。具体可以分为4个阶段:业务建模,构建组装,部署实施和管理监控。如图1所示。图1SOA实施周期(1)业务建模:收集和分析业务需求,建模、模拟和优化业务过程。(2)构建组装:根据业务模型,设计服务组件、组装可重用的服务组件形成业务过程。(3)部署实施:把组装好的业务过程部署到集成环境中,并使用部署环境的专有服务对各个业务过程进行管理和支持。(4)管理监控:分别从业务和IT的角度对部署好的系统以及相关资源进行管理和监控,并把监控所得的各项信息反馈给业务模型层面,使其更好地优化业务模型,进行下一轮SOA实施周期的迭代。2.1.3SOA实施的具体步骤本文将以CRM系统中的商机管理模块为例,阐述SOA实施的具体步骤。在具体的实施开发中需要相应的开发工具进行支持,在本系统开发中使用了IBM的SOA产品线,其中包括业务建模工具WBM(webshperebussiness、modeler)、集成开发工具WID(webshpereintegrationdeveloper)、程序开发工具RAD(rationalapplicationdeveloper)、部署环境WAS(webshpereapplicationserver)和、WPS(websphereprocessserver)。但SOA是标准规范而不是具体的实现技术,所以本文的解决方案不依赖具体的SOA厂商,在其他SOA厂商提供的平台上也能按照相同的思想和类似的步骤进行实施。(1)业务建模阶段。此阶段主要由业务人员参与,通过WBM完成以下工作:①分析有关商机管理的业务需求,如创建、修改、删除和查找商机信息,对商机进行结案总结等。在WBM里,创建Process,用task表示以上所有业务需求。②确定业务所涉及的角色,如销售人员、部门领导和公司领导,并确定他们之间的关系,如公司领导可以管理部门领导和销售人员,部门领导可以管理本部门的销售人员,销售人员管理属于自己的商机信息。在WBM里,在Resources里分别创建角色销售人员、部门领导和公司领导,并在Organizations里配置角色之间组织结构。③确定业务实体,如商机和人员。在WBM里,分别创建表示商机和入员的BussinessItem。并配置其相关属性。④业务建模。根据以上创建的各项业务资源,创建业务流程。⑤模拟和分析。配置所构建的业务过程涉及到的成本和产出,并对其进行模拟试验,最后得到详细和科学的分析报告,供业务人员分析,帮助其对业务过程进行优化。⑥导出业务模型,供以下实施阶段使用。(2)构建组装阶段。此阶段主要由架构师和软件开发人员参与,通过、WID和RAD完成以下工作Ⅲ:①构建总体流程和实现框架。通过上一阶段得到了业务模型,用IT的手段来实现具体的业务流程和规则。在WID里,导入上一阶段得到的业务模型,得到了符合业务需求的总体框架。②设计服务组件。面向服务组件的架构SCA(servicecomponentarchitecture)是一种全新的、跟语言无关的编程模型,它提供了一种统一的调用方式,从而使得客户可以把不同的组件类型,比如POJO、EJB、流程组件和人工交互组件等,通过一种标准的接口来封装和调用。SCA是让SOA得以实施的有效手段。在这一阶段,用SCA的规范来设计各个服务组件。在设计服务组件的过程中,需要把握好服务接口的粒度,尽可能地使服务组件得以重用。如在商机管理的模块中,可以设计一个专门服务商机管理流程的服务组件,在服务组件里构建各项操作,如创建、修改、删除和查找商机信息等等。在具体的实施中,需要、WID和RAD配合使用,在WID里定义服务接口和服务组件所处的上下文,在RAD里去实现服务组件的各个接口。③整合业务流程和服务组件。业务流程和服务组件设计好之后,需要把各个部分整合起来。业务流程是一个完整的事务单元,它需要多个服务组件的支持,通过服务组件的接口把服务组件和流程整合在一起,如果流程所需要的服务接口和服务组件提供的接口不一致,可以通过接口映射的手段,把异构的接口对接起来。(3)部署实施阶段和管理监控阶段。这两个阶段主要是把所构建的业务流程和服务组件部署到实际运行环境,并对其进行监控和管理,主要依托的是SOA部署和监控工具的支持,本系统用到部署环境WAS和WPS,监控工具WebSphereBusinessMonitor。因为涉及设计和开发的内容不多,所以在这里省略相关内容的阐述,这些内容可以通过相关产品文档得到。2.2安全架构在SaaS模式下,安全设计是整个程序设计成败的关键,并且相比于传统的企业级开发,难度要大。因为如果安全上存在隐患,用户是不敢把如客户信息等关键数据放到SaaS供应商这儿来,并且这样一个对安全要求很高的系统是开放在互联网上,面临的安全上的威胁比局域网内的要大很多。总结起来,威胁主要来自以下3个方面:(1)数据传输链路上的安全威胁。用户的浏览器通过互联网连接到远程服务器,数据上的交换极其容易被他人截获,甚至是在SaaS供应商内部,DMZ(demilitarizedzone)与保护区域内的数据交换也存在被他人截获的隐患。(2)业务逻辑上用户认证与授权的安全威胁。SaaS为多个的企业提供软件服务,因此存在不同企业间数据窃取的隐患,甚至在一个企业内部,也存在越权操作的安全隐患。(3)数据储存上的安全威胁。成百上千的企业把关键数据存放在SaaS供应商这儿,极有可能造成数据丢失和数据被窃取的严重后果。针对以上的安全隐患,本系统在数据传输,认证与授权和数据储存3个层面做安全上的设计。总架构如图2所示。图2安全设计架构(1)数据传输安全设计。本系统采用SSL(securesocketlayer)保护数据传输上安全。具体设计方案是在服务端生成密钥库和数字证书,当客户端通过HTTPS协议向服务端发送请求时,服务端向客户端发送数字证书和公钥,客户端通过已安装的公共CA证书验证服务器的可信度。客户端通过服务端发来的公钥把自己的私钥加密传输给服务端,服务端用自己的私钥解密得到客户端的私钥,在建立连接以后的数据传输中用这个对称的私钥进行加密保护。这样设计的目的在于在保证可信度和安全的前提下,尽量减轻安全因素对系统性能上的影响。在服务端内部,也是通过SSL来保护DMZ与非DMZ之间数据传输的安全性。(2)认证与授权安全设计。对系统资源和业务流程的安全保障主要是通过对用户认证与授权来完成。为了提高系统整合程度和用户认证效率,本系统采用LDAP(lightweightdirectoryaccessprotocol)来统一管理用户认证信息。认证服务器是系统的前端拦截器,通过访问LDAP服务器,对客户端的访问进行认证,并把用户的认证信息和用户的实际请求向后方服务器传递。安全策略服务器会根据用户认证信息和对资源的请求向授权服务器提取相应的授权信息,对整个集群环境下Web层和应用服务层里的资源加以安全监管。(3)数据存储安全设计。企业用户的数据在本系统中主要存储在数据库中,数据存储安全设计主要体现在以下3个方面:①数据库服务器与应用服务器相分离。通过加装防火墙等形式对数据库实施更进一步安全保障。②数据库服务器实现集群。在保证高可访问性和负载的同时,也保证了在数据遭到破坏的情况下,可通过备份信息来得以恢复。③在数据持久化层,实现对关键数据的加密存储。有些数据属于关键数据。比如客户名称,电话号码等,这些信息不能已明文的形式存放在数据库里,而应在存进数据库之前实施加密,提取数据时实施解密,这样做的好处是,当有他人通过非法手段得到数据库的情况下,通过加密的方式使关键数据得以保护。本系统采用JCE(Javacryptographicextensions)来对关键数据实施加密和解密。2.3多企业数据隔离设计多企业数据架构是多个企业数据共存,并共享同一应
本文标题:基于SaaS模式在线软件系统开发方案的研究
链接地址:https://www.777doc.com/doc-2572002 .html