魏笑笑,杨象驰
(西安邮电学院信息与管理工程系,西安710061)
随着互联网的发展,电信企业内部、企业之间的信息技术应用日趋广泛.电信行业信息化中建立了大量的企业级应用系统,这些系统相对独立又相互依赖,存在大量的信息交互.由于信息系统版本多、系统间共享数据和信息程度差,从而形成一个个信息孤岛.这些应用程序有的是企业的关键业务,不能全部替换或放弃,且引入各种新的应用和系统是基于新的体系结构,与原有的体系架构有很大的差异,因此,实施企业应用的整体集成是企业必须解决的问题[1-2].本文针对电信企业ERP及CRM应用系统,设计基于SOA(Service-Oriented Architecture,面向服务架构)的ERP及CRM应用集成方案,并能在业务需求变化的环境中动态调整,以适应实际新的业务需求.
SOA是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(service)组合构建起来的.以服务为中心整合人员、流程及信息,并能实现企业内外部的应用集成;是业务驱动架构,将IT和业务结合得更紧密,大大提高IT开发和运行效率.作为新一代的体系架构,SOA以其易于部署、高效、灵活、复用等特点,彻底实现企业系统整合和业务灵活配置[3-4].
基于SOA架构的应用系统是通过标准化的服务接口连接起来,进行数据交换.它屏蔽了不同平台、编程语言、操作系统和硬件架构之间的差异.在这种模式下,一个应用或部分应用是一种服务,可以被重用和共享.与传统架构相比,SOA让整个IT环境变得更富有弹性,能快速响应业务需求,从而实现更好的业务灵活性,提升企业竞争优势.企业的信息化建设是一个持续过程,实施SOA可以充分保护已有系统的投资,通过建立一个能够屏蔽底层系统复杂性的基础架构,为IT资源的自由流动构建一个基础平台[5].然后,将原有系统中的各项业务功能封装成服务,并根据需求进行重新组合,最终复合成新的业务系统,提高业务和服务的创新能力.SOA的价值还在于解决在Internet环境下的不同商业应用之间的业务集成.
基于SOA的CRM与ERP整合系统是建立在“leave-and-layer”架构之上,这意味着在不用对现有的企业系统做修改的前提下,系统可对外提供Web服务接口,因为它们已经被可以提供Web服务接口的应用层做了一层封装,SOA可以将系统和应用迅速转换为服务.SOA不仅覆盖来自于打包应用、定制应用和遗留系统中的信息,而且还覆盖来自于如安全、内容管理、搜索等IT架构中的功能和数据.基于SOA的应用能很容易地从这些基础服务架构中添加功能,使企业业务部门设计开发出新的功能应用.设计思想充分体现是“重用”和“互操作”,突出服务,以服务为基本单元,每一项服务完成实际业务流程中的一项任务,从而将电信企业的IT资源整合成可操作的、基于标准的服务,并且能够被重新组合和重用,达到快速满足业务需求的目的.本文以某市电信公司的整合方案为例,由于整个整合方案庞大,仅以用户信息部分来进行分析.原有ERP与CRM系统中都有账户信息管理模块,但存在部分信息不完整同时又有部分信息重复的问题.本文将ERP与CRM系统中的账户信息管理整合成一个“服务”来统一管理,从而达到对异地数据库的统一操作以及保持数据一致等目标.系统问题分析框架如图1所示.
图1 系统问题分析框架
使用SOA的思想可以将原有两套系统的账户管理模块进行组合封装并形成一个通用的“账户管理服务”,这个服务符合Web Service的一系列标准,它拥有固定格式的输入输出接口并被置于企业服务总线ESB上.以后对账户信息的任何操作都必须通过此服务来进行,这样才使得数据能保持一致性和完整性.账户信息管理服务主要包括的核心功能:①对外部屏蔽异构数据库;②对两套系统数据库记录的增删保持一致性;③列名映射机制;④数据恢复.
客户信息服务内部有如下用例:增加客户、删除客户、查询客户信息、更新客户信息、恢复客户信息、更新数据库表结构、验证身份、列映射.根据需求基于SOA架构采用分层的设计思想和方法,自底向上为Database,Original System Component,Enterprise Services Bus,Services和Clients等层次.组件层是原有系统的模块,按照功能分别封装为不同的组件.企业服务总线为服务提供一个统一的平台,并屏蔽组件之间的差异性,服务可以低耦合地接入到服务总线上.服务层提供了获取企业范围组件,业务单元特定组件的机制,并且以服务描述的形式具体化了它们的接口子集.客户端包括其他浏览器和其他服务或者应用程序,服务层使用HTTP与浏览器进行交互,对于其他服务和应用程序,则通过SOAP提供服务接口.账户信息服务是对原系统的整合,它事实上是一个代理(proxy),而CRM和ERP的客户信息管理是最终的目标(Real Subject),通过把proxy封装成一个服务,达到统一处理账户信息的目的.系统架构分析如图2所示.
图2 架构分析
1)接口设计
经过分析类到设计类的映射,分析各设计类的功能,类的域和方法将进一步实现.主要的边界类、实体类、控制类有:Request Handle类:负责与ERP管理员、CRM管理员、服务管理员的接口.Mapping Hand le类:负责与映射表的接口.InfoServiceController类:负责对操作的顺序进行控制的协调,以实现用例的行为.Account Record Manager类:账户数据记录的操作类,对账户记录的增加、删除、更新、查询等操作.Database Manager类:数据库结构或整体的操作类,对数据库表结构更新和账户信息恢复操作.Privilege类:权限类,在调用服务时对申请账户的权限进行验证.
接口设计的核心实现包含在Account Manager-System包中,RequestHand le作为惟一提供外部接口的类接受请求,通过调用其request函数和传递参数来操作账户信息.参数包括操作类型request-Type,当前账户account,操作参数requestParameters.原系统存在CRM和ERP两大子系统,账户信息管理系统旨在为两个子系统提供统一的对账户信息操作的接口,在CRM子系统中与账户管理相关的是CRMManager,作为外部接口与服务交互,ERP子系统中同样设置一个管理员.包之间的接口和交互关系如图3所示.
账户信息管理服务是两套系统整合后的一个服务,它作为一个子系统对其他服务提供业务功能的接口.Request和Response分别是请求和答复的接口,两个接口提供客户信息管理、更新、验证和同步等功能.
图3 包之间的接口和交互关系
2)类的交互设计
整合系统的状态图如图4所示.在整合系统中,无论是管理员还是外部用户,对于账户管理的各项操作都必须通过调用服务来完成.比如,CRM系统需要添加一条账户信息,必须同步更新ERP的数据库.当CRM管理员向服务的接口Request-Handle提出申请并将addRecord作为参数调用request()函数后,RequestHandle首先检测申请者(CRM管理员)是否具有增加记录的权限,然后由于增加记录属于AccountRecordManager的范围,选择其作为处理类,接着CRM和ERP端都将收到添加记录的操作调用,分别对本方的数据库进行插入操作,最后添加成功作为返回值到达申请者CRM管理员处.如果申请的是增加或删除列的服务,则应选择作为DatabaseManager处理类.
图4 整合系统的状态图
3)数据库的设计
由于旧系统各自存在自己的数据库,因而整合后的新系统数据库设计区别于完全开发一个新的数据库设计方式,既要保留在新系统中仍可以使用的原有数据库表,又要添加原有数据库中缺乏的表,并同时对重复的数据表进行整合、归类和统一等.经分析,抽取ERP中供应商信息、ERP中客户信息以及CRM中供应商信息、CRM中客户信息4张表,并新建了供应商信息扩展、客户信息扩展、供应商信息映射以及客户信息映射4张表,这些表构成了账户信息服务的核心数据库表.根据表结构需求,构造数据库表的逻辑模式如图5所示.
图5 核心数据库模式设计
大多数电信公司IT资源对组件化、模块化、互操作性和伸缩性不能提供足够的支持,企业级应用系统的分别实施,缺乏标准接口,系统之间受到信息孤立、数据不一致等问题的困扰.本系统采用SOA的思想和方法,实现服务之间的标准化接口、服务之间的松耦合和信息灵活交换,建立ERP和CRM数据的统一,消除数据的不一致和冗余,实现了数据列意义的实名映射,实现数据的异常恢复.增强电信企业运营服务系统的灵活性,提高了运营效率.
[1]杨象驰.基于SOA的邮政物流信息系统规划[J].计算机工程与设计,2007,19(10):4825-4827.
[2]SANDY C.SOA&Web2.0-新商业语言[M].北京:清华大学出版社,2007:19-80.
[3]RICK R.Understand Enterprise Service Bus scenariosand solutions in Service-Oriented Architecture[EB/OL]http://www-900.ibm/developerworks,2004.
[4]陈 伟,康建初.面向电信运营的策略管理系统研究与实现[J].微计算机信息,2008(2-3):10-12.
[5]胡 文,任 永.基于智能手机的物流CRM的研究[J].哈尔滨商业大学学报:自然科学版,2008,24(5):547-549,556.