SOA集成连锁遗留系统及其案例研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SOA集成连锁遗留系统及其案例研究
利用SOA集成连锁遗留系统及其案例研究
百思买全球连锁江苏五星电器信息中心陈剑
1.现代连锁业面临的新挑战——信息壁垒
近年来连锁业的发展环境和条件逐渐成熟,连锁业的发展不断进行提速,行业规模不断壮大。
根据最新的连锁业的经营指标,今年上半年,连锁业的前10强的半年的销售额均超过了90亿元。
伴随着连锁业规模的不断增大,连锁行业发展与连锁业的信息化同步进行。
目前,连锁业是信息化水平较高的行业之一,也是非常关注信息化的行业之一。
随着连锁业管理理念的质变,当代的连锁管理日益重视整体管理。
提倡连锁有机体内的系统信息交互和企业的信息流的顺畅。
目前的连锁企业大多数都已经上了各种信息化系统,包括ERP,CRM,DSS,Report Service,ManPower Manag e等,但是,各种系统现在绝大多数处于各自为政的独立状态,而且由于连锁的特殊情况,基本上都是外包开发、陆续上马的。
各个系统一般由不同的软件供应商、服务提供商、外包提供商开发,比较著名的行业厂商有:北京长益,武汉金力等。
这些系统使用不同的数据库,运行于不同的平台,因此在互相交互信息过程中存在着天然缺陷。
客观上存在以下问题:
1) 各个外包单位开发的系统使用了不同的开发技术,运行于不同的平台上;
2) 系统封装性高,系统内部耦合度高,缺少开放性;
3) 需要用户现有的系统有较深入的了解,才能二次开发和集成;
4) 未形成统一的流程概念和统一的业务模型;
5)各业务系统之间的平台兼容问题、组件依赖关系问题以及对资源的有效利用问题,都成为了企业构建完整的信息平台的障碍。
经过长时间的探索和实践,许多连锁的企业开始发现,存在于企业内部的信息壁垒成为阻止企业信息交互的瓶颈,同时上下游企业的信息交互也存在许多障碍。
但是,由于现有系统中已经集成了大量的
历史数据,因此抛开现有的系统重新立项,无论是从经济上、业务上、效率上、技术上考虑都不现实。
许多CIO
开始意识到各种系统之间必须要进行交互,实现必要的互操作性。
因此,如何整合现有业务流程,打破企业自身的信息壁垒,提高信息交换速度、进行现有系统的无缝集成是连锁企业现今面临的新课题。
这些问题有些是以前的开发技术所实现不了的,或者是为了实现交互的开销过大。
SOA的出现给此类问题带来了解决方案。
2 SOA的架构、模型、涉及具体技术
2.1 SOA的架构设计浅析
SOA (面向服务的体系结构service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的
接口和协议联系起来,使得构建在各种不同系统中的服务可以以一种统一和通用的方式进行交互,其本质上是一组服务的集合和这些服务之间的相互沟通。
服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
目前市面上对SOA的理论性的描述的材料非常多,但是实际中进行了SOA
实践的商业系统非常少,部分由于现有的商业连锁对于技术反映比较滞后,另外也由于SOA目前尚未有大规模的铺开的应用。
以下笔者结合在某全国前十的超大型实际项目中的一个SOA案例来给出一种进行和遗留系统集成的解决方案。
2.2 一个现实系统的SOA的模型
图一一个SOA的数据模型
如图(一)所示,SOA的本质实际上在原有的遗留系统上包装了一个新的服务层,服务层实际是若干接口(Interface)的集合。
利用服务层将原有系统的服务转化为服务接口,所有的接口根据SOA接口的协议提供统一的服务定义和调用方式,而忽略具体的调用细节。
对服务的使用者而言,实际上是粗粒度的调用操作,整个过程是透明的。
实际的服务细节则由各个遗留系统提供,服务接口负责数据的格式、
类型等转换工作,因此工作流和数据流不需要再关注细节的系统,因此实现了各个系统的数据交换。
由此,SOA最大程度的兼容了现有的系统,同时提供了现有系统没有的开放性。
由于SOA提供底层系统的粗粒度服务,因此SOA和其它企业架构方法相比,具有较高的业务敏捷性。
由于上层的接口通常是以高层的粗粒度操作而存在。
因此,设计人员可以根据目前的接口而进行服务的拼装工作。
拼装的服务元素由原有系统的基础服务所构成,因此开发量可以降低很大。
2.3 SOA的涉及技术
实施SOA兼容遗留系统时,处理具体的技术细节相当重要。
由于每种遗留系统基本上都有自己的技术架构,因此需要有相当的技术手段。
对于遗留系统,我们归纳如下:
1.使用VB,DELPH,VC等语言开发的C/S结构的系统;
2.使用ASP,PHP,PERL等语言开发的B/S结构的系统;
3.使用PB,LOTUS等开发的基于工具平台的专有系统;
4.使用J2EE,.NET开发的B/S结构的系统
5.其他使用第三方工具的解决方案;
在数据库的使用上,目前的连锁企业的数据库一般以ORACLE,SYBASE为主。
我们在实施SOA进行集成系统时,主要使用了JAVA技术开发了具体的SOA 实现。
由于JAVA技术具有优秀的平台兼容性,同时许多协议层本身和JAVA技术结合的非常紧密,因此JAVA是非常适合的一种实现方式。
本系统大量的使用了当代新兴的技术,包含的技术要点包括以下:
1.开发了兼容多数据源的共享数据池,使得各种不同的数据库可以进行交换数据,从而最大限度的保证了数据的兼容性;实现跨越数据库级
别的访问;
2.使用了SOAP协议,HTTP/HTTPS协议进行通信,使得协议层能够最大兼容;利用HTTP协议,基本可以处理所有的B/S结构的
遗留系统(因
为浏览器本身使用HTTP/HTTPS协议通信),使用此类办法对2000年
——2004年开发的B/S的系统非常有效;使用其它的兼容的Java We
b Service 技术例如jax-rpc也能够获得此目的;
3.对于VB,DELPH,VC等开发的系统,使用JAVA的本地化技术来调用接口,或者做成类似CORBA的IDL的形式,然后利用JAVA 反向调度,
在程序中固化;
4.始终以XML进行数据描述方式、语义定义、配置描述和在多系统中进行软交换;
5.存JAVA技术开发的,我们使用IoC,AOP等最新技术来处理,.NET技术系统本身可以使用WEB SERVICE 与JAVA进行通信;
6.专有的技术平台利用厂商工具开发接口;
通过以上方法,基本上可以实现对现有的各类系统的数据提取和方法兼容。
如图二
图二兼容系统处理
3 典型案例分析
某大型连锁集团由于业务需要,决定增开网上商城业务,考虑到该连锁未来的发展,连锁决定使用轻量级的J2EE技术来实施B2B业务系统。
由于网上商城
的数据需求来自于大量的现有系统,而全面的数据交互需要又使得数据交互量大,开发困难,同时还有数据风险。
为了最大限度使用现有系统,因此,SOA就成为了系统选择。
我们从整个业务流程中抽取出一个流程模型即:
产品展示:需要提取ERP系统的商品数据和资料;该ERP系统使用VC+SQLS ERVER开发;
客户服务记录:需要提取CRM系统提供客户资料,在没有数据情
况下要回写数据到CRM系统;该系统使用ASP+SQLSERVER开发;
定单填写和网络支付:需要进行定单记录并且和银行系统交互;需要调用银联接口;
售后服务和销单:需要下行数据到售后系统;该售后系统使用PB+SYBASE
开发;
整个业务流程由一个工作流来进行控制,可以描述为一个有限自动机,以客户登陆为开始,以客户提单成功为结束,关于轻量级J2EE 的B/S结构流程,详细可以参考《Professional Java Development with the Spring Framework》。
以一个简化客户订单提交为例。
客户在企业的门户上获取各种产品查询信息,而该信息从ERP的供应接口上获得(命名为Product Detail Service的接口)。
客户使用产品查询服务(可能是个远程服务)得到产品的相关详细信息。
如果客户曾经在有注册信息,那么可能从CRM系统的接口上获得客户资料(CRM Service接口),也可以提供一个新的注册服务(Register Service接口)。
客户提供为订货的WEB 服务所需要的数据。
在完成订单的过程中需要调用在线银行的支付服务(Bank Pay Service接口);一旦Bank Pay Service接口给出成功信息,则启动连锁的配送、安装等售后服务(After Sale Service 接口)进程。
我们看到,整个订单管理过程的完成就是使用SOA协议开发的各种接口构成的工作流(WorkFlow Service)的完成过程,在该过程中,我们使用了Product Detail Service,CRM Service,Bank Pay Service,After Sale Service这一系列的服务接口。
而这些服务来自于不同的系统,使用不同的程序语言开发,运行于不同的平台上,仅使用相同的协议进行通信、交换数据、互操作而已。
必须注意,如果仅仅是提取数据的接口,不需要进行安全操作,如果需要进行数据写入的系统,最好启动一个专有的进程调用存储过程来完成(现代数据库系统基本都提供存储过程)。
同样,对于厂家的结算过程中,也可以使用SOA来进行互操作的动作,许多互操作的动作,包括和上游厂家核对销售数据,报告返修
率等等,都可以此项技术。
SOA给各类不同的系统之间的通讯和集成提供了一个平台和通路。
4 小结
从上面的可以看出,SOA具有互操作性好、流程再造、支持多种客户类型、伸缩性好、可用性高等特点。
SOA将能够帮助企业站在一个新的高度理解企业级架构中的各个环节,它将帮助连锁企业系统迅速整合,并以更迅速、更可靠、更开放的方式和上下游的企业进行无侵入性的业务系统对接。
SOA在连锁企业中的应用,将会解决连锁企业信息化过程中,以前的开发技术所不能解决的制约因素,使企业具有更高的效率及更优良的服务水平,加速消
除企业的内部壁垒和加强企业竞争力。
相信随着信息技术的发展,SOA在连锁企业中一定会得到更为广泛的应用。