1、1 1基于 SaaS 模式的 SOA 服务分析与设计金珊 1 吴国芳 2(1.宁波大红鹰学院,浙江 宁波 315175 2.绍兴拓普信息职业技术学院,浙江 绍兴 312000)摘 要 随着信息化水平的提高和网络技术的快速发展,SaaS 已经成为被广泛推荐使用的软件服务提供方式,SaaS 应用服 务被越来越多的用户所采用。本文主要介绍基于 SOA 的SaaS 系统在中小企业信息化应用中的相关技术分析,并以宁波大红鹰 OA 系统的设计为依据。关键词 软件即服务; 企业管理 软件; 信息化; 系统体系架构0 前言我国企业在经过了 20 多年的信息化建设,财务、ERP(企业资源计划)、CRM(客户关系
2、管理 )、HR(人力资源管理)等企业管理软件已被广泛的应用。随着企业信息化向着更深层次的应用发展,在 B2B(Bussiness to Bussiness)电子商务和 ERP 系统在更深层次的应用中出现了一些问题,企业之间的物流、资金流、信息流不能实现协同运行,出现了严重的“信息孤岛”现象,一些企业不得不通过手工的方式实现系统间的数据同步,造成资源的极大浪费。目前,软件技术发展迅速并日益成熟,SaaS(Software as a Service,软件即服务) 1,WEB2.0 2,SOA(Service Oriented Architecture,面向服务的架构) 3成为软件解决方案的成熟架构
3、和支撑技术,为应用系统的服务化,以及服务化之后的多个服务之间的集成提供了坚实的技术基础。企业业务的增长,对 IT 系统的依赖程度也大大提高,并且 IT 系统支持的业务范围逐渐扩大。在企业对 IT系统扩建和升级时,如何在最大化效率的同时,最小化投入显得尤为重要。因此,利用新技术,改造并重用原有的 IT 系统,保留原有系统的优势,消除原有系统间的“信息孤岛 ”成为企业的迫切需求。1 国内外研究现状1.1 SOA 国内外研究现状与发展动态在国外,SOA 不是一个新潮的名词 4,早在 1996 年,Gartner Group 就提出了 SOA 的概念,但是由于当时的技术没能支持这种架构,迟迟没有得到有
4、效的发展。随着网络技术的不断发展,IT 从业人员也在不断地积累经验,应用一些好的模式和方法,SOA 与 Web Services 成了这两年大行其道的技术词汇。2 2在国内,SOA 还是个新鲜事物,近两年来已经有很多人开始关注这个架构,也出现了一些杂志上推荐使用该架构的文章。但存在太多炒作的成分,有很多文章都只说明了其优点,而没有实质性可参考的技术文献。在实践方面,还没有哪家企业真正实现过 SOA 架构的应用系统,只有个别模拟了该架构的小程序,例如 XML China 论坛。由此可见,国内在 SOA 方面还处于一个起步阶段。SOA 作为一个新兴的技术,存在很多不确定性,但是这种不确定性不会阻碍
5、 SOA 的发展。SOA 虽然不是包治百病的灵丹妙药,但是它在解决 Internet 环境下的不同商业应用之间的集成问题,使分布式应用具有更好的弹性和灵活性方面给企业带来了巨大的好处。因此,可以预见 SOA 的发展会对软件设计思想产生很大的影响并对分布式企业应用的不断普及起到重大的促进作用。1.2 SaaS 国内外研究现状1988 年,ASP 模式最早在美国诞生 5。ASP 是一种业务租赁模式,得到了企业的追捧,但随着互联网泡沫的破裂,技术不成熟,如远程集成问题一直没有得到很好的解决,SaaS 就随之演变而来了。它是一种通过 Internet 提供软件的模式,用户不再购买软件,而改用向提供商租
6、用基于 WEB 的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护。而在国内,SaaS 模式的运做也正展露身姿,2006 年下半年,800CRM.COM、中华网软件、金算盘软件等公司推出了支持 SaaS 的信息化解决方案。2006 年 2 月 28 日在北京举办的“2006 电子商务财富年会” 上,IEEE 服务计算委员会主席张良杰在会议上提出了未来电子商务的十大趋势,其中之一就是 SaaS 模式下的系统。1.3 国内外企业信息化现状国外企业信息化进程比较早 6,60 年代中期,MRP(物料需求计划)的概念被提出,发展到 MRPII、ERP ,2000 年美国 Gar
7、tner Group 公司提出了 ERPII 的概念,将传统 ERP 的资源优化和业务处理扩展到利用企业间协作运营的资源信息管理,实现了跨企业的合作,通过互联网交互信息。我国企业信息化经历了三个阶段,第一个阶段是单一部门的财务信息化;第二阶段是跨部门的进销存等软件;第三阶段是企业级的 ERP、CRM、HR 等系统。如今,正在走向第四阶段,实现企业间和产业链的信息化,电子商务套3 3件以企业内部信息化为基础,渐渐成为掀起产业链级信息化第四次浪潮的中坚力量。随着信息化应用向更深层次的发展,加强决策支持功能,运用 EAI、SOA等技术,加强系统的集成性与开放性是当前的热点。2 研究内容与关键技术为了
8、帮助企业解决这些问题,本文试图探索一种以客户为中心,面向自服务的方法,研究.Net 平台下的 SaaS 系统开发需要的关键技术。2.1 基于 SOA 的 SaaS 系统整体架构针对基于 SOA 的 SaaS 系统体系架构进行分析与研究,尝试设计一个以支持多用户高并发为核心的数据结构,同时建立一个允许基于 Internet 的浏览器为客户端访问企业级管理应用的系统架构。该系统还将具备多层次的安全方案以保障客户访问安全和系统数据安全,更具有灵活的扩展性和伸缩性来支持客户不断变化的业务需求和系统的长远发展。图 1 是针对宁波大红鹰 OA 系统的整体架构的设计。图 1 宁波大红鹰 OA 系统的全局架构
9、2.2 数据访问模型中间件设计一些必要的模型设计,可以实现 SaaS 系统模块之间松散耦合。本文中,结合宁波大红鹰卷烟厂 OA 设计,为实现数据独立性,切换不同的服务时模型自适应客户需求,快速访问数据库,提供了如图 2 所示的数据访问模型和图 3 所客户端IE IE其他系统应用程序应用程序Web表示层(Web 页面)Web 服务层业务外观层业务规则层业务实体系统框架数据访问层数据库4 4示的模型实现的主要类图。Web 服务接口客户访问接口方法成员 选择服务服务说明实现SQL数据服务实现OLEDB数据服务实现ODBC数据服务图 2 基于 Web Services 的数据访问模型图 3 模型实现的
10、主要类图2.3 多用户高并发的数据模型研究如何在数据共享和隔离策略间保持平衡的前提下,设计一个高效且成本最优的 SaaS 系统的数据模型。同时为技术关键问题,例如如何构建一个弹性架构以支持数目不定的客户、怎样消除大容量并发访问数据库对系统性能造成的压力以及怎样允许用户按需扩展自定义数据等提出切实可行的解决方案。在 SaaS 系统中,所使用的可伸缩可配置的这类系统架构可以通过负载均衡来为众多的用户服务,每个用户的数据都可以单独存放,同时提供可供配置的5 5元数据为每个用户提供唯一的用户体验。图 4 支持多用户高并发的系统架构用户 B负载均衡实例 A实例 B用户 A基于这种架构的 SaaS 系统,
11、可以支持多用户,因为我们可以在不用修改系统架构的基础上就可以随着需求的变化而变化,任何的变动可以很方便地作用于大数量用户环境中,和修改一个客户端服务一样方便。2.4 多层次数据安全性在基于 SOA 架构的平台上运行的程序,几乎所有的信息都通过 SOAP 来传递,因此,SOAP 的安全对整个系统有着非常重大的意义。以 SOAP 为基础,构建一种基于 SOAP 消息的 Web 服务消息安全模型势在必行。基于这个原因,宁波大红鹰 OA 系统构架设计了一种基于 SOAP 的 Web 服务消息安全模型,如图 5 所示。SOAP消息 SOAP 消息 SOAP 消息SOAP消息安全代理包SOAP消息安全代理
12、包提供者Web 服务安全平台 UDDI 注册中心请 求 者6 6图 5基于 SOAP的 Web服务安全模型这个平台定义了两个模块:第一,UDDI 注册中心,主要对服务提供者和请求者进行管理并颁发证书,以提供认证和权限;第二,Web 服务安全平台,主要针对双方的身份认证过程和授权控制过程,服务双方都要获得安全平台颁发的证书才能保证双方身份的正确性。其中,SOAP 消息安全代理包中包含了签名处理和加密处理。(一)SOAP 消息签名请求者应对 SOAP 消息做一次签名,连同签名一起发送,当提供者接收到了消息后,一边验证身份,一边对其签名进行认证,以确定消息在传输过程中并未被修改。我们可以如此实现:1
13、、客户端 SOAP 中添加签名,如下所示:mywebserv.RequestSoapContext.Security.Tokens.Add(untoken)mywebserv.RequestSoapContext.Security.Elements.Add(New_MesageSignature(untoken)mywebserv.WebMethod以上代码实现了客户端根据 UsernameToken 生成签名,然后把签名加在SOAP 消息中。2、服务端不动我们只要在客户端发送的 SOAP 中加入过签名,服务端就会自动认证签名的有效性,服务端先验证用户名/密码,然后使用客户端传递用户名和密码对
14、签名进行认证,如果失败了,就说明该消息中途被篡改了,该请求就不成立了。(二)SOAP 加密客户端根据 UsernameToken 对 SOAP 进行加密,把密文加在 SOAP 消息中。服务端则自动对该消息进行解密。服务端验证用户名和密码,然后使用客户端传递的用户名和密码对解密数据进行验证。服务端通过 WSE 自动从 windows 活动目录中取得密码,或者通过 AuthenticateToken 方法取得密码。同样,如果验证失败,则响应错误信息。实现方法如下:mywebserv.RequestSoapContext.Security.Tokens.Add(untoken)mywebserv.R
15、equestSoapContext.Security.Elements.Add(New_Microsoft.Web.S7 7ervices2.Security.EncryptedData(untoken)mywebserv.WebMethod以上实现方法均在 WSE2.0 中实现。3 结论基于 SOA 的 SaaS 系统的实现对于中国的中小企业具有特殊的意义,因为目前国外的主流企业套件对于中小企业的商业定位往往从欧美实际出发,标准过高。而中国的中小企业虽然在营业收入和利润等硬指标上往往还达不到这些标准,但由于业务复杂度高和 IT 软硬件基础的薄弱,企业管理软件的实施难度绝不逊色于欧美大企业。从
16、这一角度出发,为国内的中小企业提供真正按需定制的基于 SaaS 模式的企业管理软件,也许可以成为一个可以在短时间内提升国内中小企业管理水平的捷径。参考文献:1Abhijit Dubey and Dilip Wagle, “Delivering software as a service”, The McKinsey Quarterly, Web exclusive, May 20072Stephen B Morris. “使用 Web2.0 体系结构实现更灵活的企业”EB/OL. http:/ C Brown. “基于 SOA 构建网格应用程序”EB/OL. http:/ 基于 SOA 的企业
17、信息平台研究与应用D. 上海: 复旦大学, 2007:1-84.5吴慧. SaaS 模式下的餐饮管理系统的分析与设计D.太原理工大学,2008:1-71.6马立林,李红. 基于 SaaS 的中小企业信息化模式探讨 J.中国管理信息化,2009(1):78-81.7 周进登,白振兴,武杰,李寰宇.基于扩展 UML 活动图的过程建模J,计算机应用,2009(3):708-711.8 季一木 ,陆莉莉,王汝传.基于 SOA 的校园资源规划 CRP 模型研究J, 计算机应用研究,2009(5),1810-1827.9Gerard Blokdijk. SaaS 100 Success Secrets-H
18、ow companies successfully buy, manage, host and deliver software as a serviceM. USA: Emereo Pty Ltd, 2008:135-136.10许四平. SaaS 软件即服务模型研究J. 电子科学, 2009, 9.11焦玉昌. SaaS 应用中的服务集成方法研究D.山东: 山东大学,2008:1-49.8 812刘古权,冯玉强,韩雪. SaaS 提升供应链竞争优势J.企业信息化,2009(2):102-104.13刘春玲. 基于 SaaS 模式的电子商务与 ERP 集成研究D.重庆: 重庆大学,2007:1-58.14陈连平. 面向自服务的企业应用供应方法的探索和研究D.西北工业大学,2007:1-62.15陈波. 基于 SaaS 的软件服务链研究D. 武汉理工大学, 2008:1-48.个人简介:1、 金珊(1980.4) 女 汉 复旦大学硕士 工作单位:宁波大红鹰学院 讲师 主要研究方向:企业信息化,数据挖掘,联系电话:137800868162、吴国芳(1978.2) 女 汉同济大学硕士 工作单位:绍兴托普信息职业技术学院 讲师主要研究方向:软件工程、数据库,联系电话:13777319532