基于SOA构建漫游计费清算流程集成平台
2013-01-25中国移动深圳有限公司付兵兰郑锡涛肖中卿
中国移动(深圳)有限公司 | 付兵兰 郑锡涛 肖中卿
日趋激烈的市场竞争要求企业能够迅速响应外部环境的变化,及时调整现有的业务流程,而目前企业I T架构无法支持多变的业务流程,抑制了企业的发展。
漫游是移动通信网络与固定电话网络截然不同的一个关键特性,它使用户能在世界任何国家的签约运营商之间使用自己的手机进行通信,因此,运营商之间需要交换这种漫游用户的通信记录,以便向用户收取通话费用。漫游计费清算主要是通过对多种格式的漫游清算话单文件进行采集(传输)、校验、查重、批价、分拣、下发、结算处理等处理,实现归属和拜访电信运营商之间的通信费用清算。
三大弊病制约漫游计费清算系统
随着信息化的快速发展,企业内部建立了庞大的子系统群,由于初期缺乏统一规划,企业内部多套系统之间不能互联互通,漫游计费清算的各个环节如校验、查重等在不同的漫游系统(如网间漫游、国际漫游)下孤立存在,无法共享。日趋激烈的市场竞争要求企业能够迅速响应外部环境的变化,及时调整现有的业务流程,而目前企业I T架构无法支持多变的业务流程,抑制了企业的发展,其主要表现在三个方面。
1.烟囱式、垂直化的建设模式,造成各个系统资源共享差。
由于各个应用在开发之初都是基于某个需求来驱动,因此在设计时仅考虑当前系统的实现,随着需求变化,业务线增加,系统不断增多,各系统就成了一个个垂直的烟囱,基于各漫游业务线建设的系统存在太多的相似性,系统的资源如话单查重组件、话单传输组件等在笔者所在的公司的多套清算系统,十多条业务线中都重复存在,造成系统资源复用难度大,同时重复运维也带来运维成本高。
2.跨系统和跨部门的“长流程”被阻隔,无法实现端到端流程,集成度低。
目前各个漫游计费清算系统的调用流程都是分散的,以实现具体应用的“短流程”居多,如话单预处理流程,而跨系统的流程尚未实现自动衔接,如话单传输系统、话单预处理系统和话单下发系统的各个“短流程”或应用都是分散的,无法支撑端到端流程的全贯通,从而形成一个个的“信息孤岛”,集成度不高。
3.系统间关系纷繁复杂,耦合度较高。
图1 漫游计费清算流程集成平台应用架构
由于系统建设的历史原因,系统间的数据依赖强,接口技术纷繁复杂,系统间调用成本高,耦合性强。
为了解决上述问题,采用SOA技术将原有功能采用OSB(Oracle Service Bus)封装为服务进行复用,采用BPEL(BusinessProcessExecutionLanguage)构建端到端流程,集成各个分散系统并采用统一的接口技术降低系统间的耦合度。
系统设计借鉴SOA
基于SOA技术构建的漫游计费清算流程集成平台将十多条漫游计费清算业务线设计成十多个端到端的流程,每个流程由封装现有组件应用的服务组成,服务之间通过定义良好的接口进行通信,同时通过门户展示的方式对这些服务和流程进行统一的管理和监控。因此要求该系统的建设目标和原则要求如下:
1.搭建漫游计费清算流程集成平台,构建统一的企业服务总线和流程引擎。
2.服务可复用,一般服务按粒度大小分为基本服务、合成服务和组合服务三种,基本服务组合成特定功能的合成服务;基本服务按照一定的顺序组合成组合服务,服务粒度越小,可复用性越高。
3.服务松耦合,S OA封装现有组件应用为服务,并采用中立的接口定义和契约将之联系起来,中立接口因为没有强制绑定到特定的实现上而独立于硬件平台、操作系统和编程语言,使得服务是松耦合的。
4.实现典型功能的服务注册、管理、发布、封装、复用,以及流程的监控和管理。
根据以上建设目标和原则,采用TOGAF(The Open Group Architecture Framework)做企业架构规划,并根据TOGAFforSOA的SOA参考架构SOAReferenceArchitecture九层标准架构为技术蓝图,结合漫游计费清算业务实际情况,采用Oracle的SOA产品(如企业服务总线OSB和流程引擎),构建的流程集成平台的应用架构如下图1所示。
该平台共分为四大块,不仅达到了建设的目标要求,也遵循了建设原则。
流程集成平台门户展示层
采用开源的门户框架Liferay,创建基于JSP/CSS+Java Script/jQuery的用户层访问界面。用户通过门户对漫游计费清算流程集成平台的服务、流程进行管理和控制,并对实时情况进行监控和运维。门户展示层共分为三个模块:
● SOA服务管理
主要对设计时的服务和运行时的服务进行管理,主要功能有服务的发布/注册、服务目录管理、服务信息更改、服务注销、服务状态管理、服务信息查询和服务监控等。
● SOA流程管理
主要是对设计时的流程和运行时的流程实例进行管理和调度,主要功能有流程的增删改查和流程实例的起停和增删改查等。
● SOA监控运维
主要是巡检平台应用运行情况、流程运行情况、服务请求情况和事务处理情况,对出现异常的情况进行监控和报警,同时汇总生成健康报告和分析报告,并将健康情况和告警量等信息予以展示。
流程集成平台业务流程层
采用Oracle的SOASuite产品实现统一的BPEL流程集成,BPEL流程通过同步或异步的方式调用企业服务总线OSB上的Webservice服务,并通过一定的顺序将这些基础服务、合成服务和组合服务编排成可实现特定漫游业务线的流程,如网间漫游计费清算流程、国内漫游计费清算流程等,同时合成展示在门户上的人工工作流程,真正做到端到端的流程集成。
流程集成平台服务层
采用Oracle产品搭建OSB服务总线,将遗留系统的组件应用封装成通过JMS接口与OSB通信的服务,通过OSB的再次封装,以标准化的服务供流程引擎或者第三方系统调用,如封装成Webservice服务。服务层负责统一的接入遗留系统(如网间、国内和国际漫游系统)组件并集成入流程引擎供门户管理和监控。
流程集成平台基础组件层
基础组件主要包括日志管理、事务管理、异常处理、发布订阅和转换器等,用以支撑上述核心功能服务管理、流程管理和监控运维模块正常运作。
技术架构设计分层
根据上述逻辑架构,采用合适的技术进行实现,技术架构图如图2所示。
该平台门户使用公司的CMSZ Frame work for Portlet框架进行开发,核心是Struts+Spring+iBatis,但是集成了Liferay门户,该框架运行于T o mc a t容器中。门户中的服务管理和流程管理模块调用WeblogicJMX规范与运行于Weblogic容器中的流程和服务进行通信从而实现对运行时流程和服务的管理和控制。
该平台流程采用Oracle11g产品SO ASuite中的OracleBPELProcess Manager进行编排BPEL流程,流程开发使用JDeveloper Studio进行,例如网间漫游计费主流程由话单上发传输子流程、话单预处理子流程和话单下发传输子流程按照先后顺序组成。而话单上发传输子流程和话单下发传输子流程都复用了话单传输服务。流程最终运行于Weblogic容器中SOAdomain中。
漫游计费清算服务由OS B服务封装层和业务组件层组成。OS B服务封装层承担服务封装、消息流转换与预处理、协议转换等功能。业务组件层主要负责具体的业务逻辑处理,包含通过队列交互的C++应用组件与基于A x i s 2框架的We b S e r v i c e s等。OS B封装层支持丰富的协议接口,包括H T T P、J MS、F T P、S MT P等常用协议。服务请求者与服务提供者可以通过这些协议接口进行通信,使得由OS B封装的服务具有松耦合、复用性强等特点。
图2 漫游计费清算流程集成平台技术架构
BPEL流程设计规范
漫游计费清算主要业务通过BPEL流程进行集成,采用BPEL2.0规范。BPEL是一种基于XML的语言,用来描写业务过程的语言,被描写的每一个单一步骤,由Web服务来实现。外部可以调用Web服务的方式来对BPEL流程进行调用。BPEL提供了企业业务流程编排和执行的行业标准。使用BPEL设计的业务流程将一系列离散的服务集成一个端到端的业务流程,大大减少集成过程中的成本和复杂性。
漫游计费清算各个业务线流程由BPEL进行集成,每个业务线由一个数据清算主流程对各个子流程与服务进行集成,子流程由基本服务、合成服务等组成。
BPEL流程调用服务主要有两种方式,一种是one-way调用,即调用后不需要返回请求结果,另一种是双向调用,即调用后需要返回,后者又分为同步调用和异步调用。两种双向调用以预处理流程为例。每个流程实例从前端流程活动到后端服务组件之间的协调采用Correlation机制实现,即每个流程实例上下文中都有一个惟一的Correlation ID,以确定每个流程实例的独立性。
表1 服务平均调度时间
流程集成提升整体运维指标
该平台通过门户管控运行在Weblogic容器上的流程和服务,用户通过运行在Tomcat中的统一门户界面操作流程和服务,后台通过WeblogicJMX规范对运行在Weblogic容器中的BPEL流程和OSB服务进行访问并执行相关的操作。其中BPEL流程的实现是通过HTTP协议访问OSB上的代理服务,代理服务再调用业务服务,业务服务通过JMS与已经封装好的网间漫游清算系统C++应用组件进行通信,完成流程对底层已有系统组件应用的调用。该平台现已实现并处于运维阶段,前台门户各个功能模块以本地Portlet的方式集成入统一门户,客户可以根据需要定制自己常用的操作功能界面。
漫游计费清算集成与管控平台已经部署并行,通过调研原清算计费运维平台的运维效率,新一代计费清算集成与管控平台在运维效率有明显的提高并且运维成本大大降低。
1.服务调度效率
基于SOA集成的漫游清算流程并行半年,总共运行172007次,数据清算主流程平均调起时间为0.056s,如表1所示为数据清算流程中主要服务的调度时间。SOA服务对服务的调度时间平均不到0.1秒,整个数据清算主流程平均总共调度时间为0.727,可见SOA调度使用时间对整个业务流程处理影响是非常小的。
2.运维效率
基于SOA的清算集成管控平台通过统一化的流程管理与服务管理,更加容易实现服务质量的监控预警。相比老原计费运维平台需要针对不同产品线进行各自的监控与管理,基于SOA的清算集成管控平台通过统一平台进行监控实现异常流程中问题快速定位与解决。
3.运维成本
相比原计费运维平台不同业务线都有不同的运维平台,运维人员需要分别进行学习。基于SOA的清算集成管控平台所有产品线通过统一平台进行运维大大减少了运维人员的学习成本。漫游计费清算总共有3大产品线,运维成本比原来节省三分之二。