中國移動(深圳)有限公司 | 付兵蘭 鄭錫濤 肖中卿
日趨激烈的市場競爭要求企業(yè)能夠迅速響應外部環(huán)境的變化,及時調整現(xiàn)有的業(yè)務流程,而目前企業(yè)I T架構無法支持多變的業(yè)務流程,抑制了企業(yè)的發(fā)展。
漫游是移動通信網(wǎng)絡與固定電話網(wǎng)絡截然不同的一個關鍵特性,它使用戶能在世界任何國家的簽約運營商之間使用自己的手機進行通信,因此,運營商之間需要交換這種漫游用戶的通信記錄,以便向用戶收取通話費用。漫游計費清算主要是通過對多種格式的漫游清算話單文件進行采集(傳輸)、校驗、查重、批價、分揀、下發(fā)、結算處理等處理,實現(xiàn)歸屬和拜訪電信運營商之間的通信費用清算。
隨著信息化的快速發(fā)展,企業(yè)內部建立了龐大的子系統(tǒng)群,由于初期缺乏統(tǒng)一規(guī)劃,企業(yè)內部多套系統(tǒng)之間不能互聯(lián)互通,漫游計費清算的各個環(huán)節(jié)如校驗、查重等在不同的漫游系統(tǒng)(如網(wǎng)間漫游、國際漫游)下孤立存在,無法共享。日趨激烈的市場競爭要求企業(yè)能夠迅速響應外部環(huán)境的變化,及時調整現(xiàn)有的業(yè)務流程,而目前企業(yè)I T架構無法支持多變的業(yè)務流程,抑制了企業(yè)的發(fā)展,其主要表現(xiàn)在三個方面。
1.煙囪式、垂直化的建設模式,造成各個系統(tǒng)資源共享差。
由于各個應用在開發(fā)之初都是基于某個需求來驅動,因此在設計時僅考慮當前系統(tǒng)的實現(xiàn),隨著需求變化,業(yè)務線增加,系統(tǒng)不斷增多,各系統(tǒng)就成了一個個垂直的煙囪,基于各漫游業(yè)務線建設的系統(tǒng)存在太多的相似性,系統(tǒng)的資源如話單查重組件、話單傳輸組件等在筆者所在的公司的多套清算系統(tǒng),十多條業(yè)務線中都重復存在,造成系統(tǒng)資源復用難度大,同時重復運維也帶來運維成本高。
2.跨系統(tǒng)和跨部門的“長流程”被阻隔,無法實現(xiàn)端到端流程,集成度低。
目前各個漫游計費清算系統(tǒng)的調用流程都是分散的,以實現(xiàn)具體應用的“短流程”居多,如話單預處理流程,而跨系統(tǒng)的流程尚未實現(xiàn)自動銜接,如話單傳輸系統(tǒng)、話單預處理系統(tǒng)和話單下發(fā)系統(tǒng)的各個“短流程”或應用都是分散的,無法支撐端到端流程的全貫通,從而形成一個個的“信息孤島”,集成度不高。
3.系統(tǒng)間關系紛繁復雜,耦合度較高。

圖1 漫游計費清算流程集成平臺應用架構
由于系統(tǒng)建設的歷史原因,系統(tǒng)間的數(shù)據(jù)依賴強,接口技術紛繁復雜,系統(tǒng)間調用成本高,耦合性強。
為了解決上述問題,采用SOA技術將原有功能采用OSB(Oracle Service Bus)封裝為服務進行復用,采用BPEL(BusinessProcessExecutionLanguage)構建端到端流程,集成各個分散系統(tǒng)并采用統(tǒng)一的接口技術降低系統(tǒng)間的耦合度。
基于SOA技術構建的漫游計費清算流程集成平臺將十多條漫游計費清算業(yè)務線設計成十多個端到端的流程,每個流程由封裝現(xiàn)有組件應用的服務組成,服務之間通過定義良好的接口進行通信,同時通過門戶展示的方式對這些服務和流程進行統(tǒng)一的管理和監(jiān)控。因此要求該系統(tǒng)的建設目標和原則要求如下:
1.搭建漫游計費清算流程集成平臺,構建統(tǒng)一的企業(yè)服務總線和流程引擎。
2.服務可復用,一般服務按粒度大小分為基本服務、合成服務和組合服務三種,基本服務組合成特定功能的合成服務;基本服務按照一定的順序組合成組合服務,服務粒度越小,可復用性越高。
3.服務松耦合,S OA封裝現(xiàn)有組件應用為服務,并采用中立的接口定義和契約將之聯(lián)系起來,中立接口因為沒有強制綁定到特定的實現(xiàn)上而獨立于硬件平臺、操作系統(tǒng)和編程語言,使得服務是松耦合的。
4.實現(xiàn)典型功能的服務注冊、管理、發(fā)布、封裝、復用,以及流程的監(jiān)控和管理。
根據(jù)以上建設目標和原則,采用TOGAF(The Open Group Architecture Framework)做企業(yè)架構規(guī)劃,并根據(jù)TOGAFforSOA的SOA參考架構SOAReferenceArchitecture九層標準架構為技術藍圖,結合漫游計費清算業(yè)務實際情況,采用Oracle的SOA產(chǎn)品(如企業(yè)服務總線OSB和流程引擎),構建的流程集成平臺的應用架構如下圖1所示。
該平臺共分為四大塊,不僅達到了建設的目標要求,也遵循了建設原則。
流程集成平臺門戶展示層
采用開源的門戶框架Liferay,創(chuàng)建基于JSP/CSS+Java Script/jQuery的用戶層訪問界面。用戶通過門戶對漫游計費清算流程集成平臺的服務、流程進行管理和控制,并對實時情況進行監(jiān)控和運維。門戶展示層共分為三個模塊:
● SOA服務管理
主要對設計時的服務和運行時的服務進行管理,主要功能有服務的發(fā)布/注冊、服務目錄管理、服務信息更改、服務注銷、服務狀態(tài)管理、服務信息查詢和服務監(jiān)控等。
● SOA流程管理
主要是對設計時的流程和運行時的流程實例進行管理和調度,主要功能有流程的增刪改查和流程實例的起停和增刪改查等。
● SOA監(jiān)控運維
主要是巡檢平臺應用運行情況、流程運行情況、服務請求情況和事務處理情況,對出現(xiàn)異常的情況進行監(jiān)控和報警,同時匯總生成健康報告和分析報告,并將健康情況和告警量等信息予以展示。
流程集成平臺業(yè)務流程層
采用Oracle的SOASuite產(chǎn)品實現(xiàn)統(tǒng)一的BPEL流程集成,BPEL流程通過同步或異步的方式調用企業(yè)服務總線OSB上的Webservice服務,并通過一定的順序將這些基礎服務、合成服務和組合服務編排成可實現(xiàn)特定漫游業(yè)務線的流程,如網(wǎng)間漫游計費清算流程、國內漫游計費清算流程等,同時合成展示在門戶上的人工工作流程,真正做到端到端的流程集成。
流程集成平臺服務層
采用Oracle產(chǎn)品搭建OSB服務總線,將遺留系統(tǒng)的組件應用封裝成通過JMS接口與OSB通信的服務,通過OSB的再次封裝,以標準化的服務供流程引擎或者第三方系統(tǒng)調用,如封裝成Webservice服務。服務層負責統(tǒng)一的接入遺留系統(tǒng)(如網(wǎng)間、國內和國際漫游系統(tǒng))組件并集成入流程引擎供門戶管理和監(jiān)控。
流程集成平臺基礎組件層
基礎組件主要包括日志管理、事務管理、異常處理、發(fā)布訂閱和轉換器等,用以支撐上述核心功能服務管理、流程管理和監(jiān)控運維模塊正常運作。
根據(jù)上述邏輯架構,采用合適的技術進行實現(xiàn),技術架構圖如圖2所示。
該平臺門戶使用公司的CMSZ Frame work for Portlet框架進行開發(fā),核心是Struts+Spring+iBatis,但是集成了Liferay門戶,該框架運行于T o mc a t容器中。門戶中的服務管理和流程管理模塊調用WeblogicJMX規(guī)范與運行于Weblogic容器中的流程和服務進行通信從而實現(xiàn)對運行時流程和服務的管理和控制。
該平臺流程采用Oracle11g產(chǎn)品SO ASuite中的OracleBPELProcess Manager進行編排BPEL流程,流程開發(fā)使用JDeveloper Studio進行,例如網(wǎng)間漫游計費主流程由話單上發(fā)傳輸子流程、話單預處理子流程和話單下發(fā)傳輸子流程按照先后順序組成。而話單上發(fā)傳輸子流程和話單下發(fā)傳輸子流程都復用了話單傳輸服務。流程最終運行于Weblogic容器中SOAdomain中。
漫游計費清算服務由OS B服務封裝層和業(yè)務組件層組成。OS B服務封裝層承擔服務封裝、消息流轉換與預處理、協(xié)議轉換等功能。業(yè)務組件層主要負責具體的業(yè)務邏輯處理,包含通過隊列交互的C++應用組件與基于A x i s 2框架的We b S e r v i c e s等。OS B封裝層支持豐富的協(xié)議接口,包括H T T P、J MS、F T P、S MT P等常用協(xié)議。服務請求者與服務提供者可以通過這些協(xié)議接口進行通信,使得由OS B封裝的服務具有松耦合、復用性強等特點。

圖2 漫游計費清算流程集成平臺技術架構
漫游計費清算主要業(yè)務通過BPEL流程進行集成,采用BPEL2.0規(guī)范。BPEL是一種基于XML的語言,用來描寫業(yè)務過程的語言,被描寫的每一個單一步驟,由Web服務來實現(xiàn)。外部可以調用Web服務的方式來對BPEL流程進行調用。BPEL提供了企業(yè)業(yè)務流程編排和執(zhí)行的行業(yè)標準。使用BPEL設計的業(yè)務流程將一系列離散的服務集成一個端到端的業(yè)務流程,大大減少集成過程中的成本和復雜性。
漫游計費清算各個業(yè)務線流程由BPEL進行集成,每個業(yè)務線由一個數(shù)據(jù)清算主流程對各個子流程與服務進行集成,子流程由基本服務、合成服務等組成。
BPEL流程調用服務主要有兩種方式,一種是one-way調用,即調用后不需要返回請求結果,另一種是雙向調用,即調用后需要返回,后者又分為同步調用和異步調用。兩種雙向調用以預處理流程為例。每個流程實例從前端流程活動到后端服務組件之間的協(xié)調采用Correlation機制實現(xiàn),即每個流程實例上下文中都有一個惟一的Correlation ID,以確定每個流程實例的獨立性。

表1 服務平均調度時間
該平臺通過門戶管控運行在Weblogic容器上的流程和服務,用戶通過運行在Tomcat中的統(tǒng)一門戶界面操作流程和服務,后臺通過WeblogicJMX規(guī)范對運行在Weblogic容器中的BPEL流程和OSB服務進行訪問并執(zhí)行相關的操作。其中BPEL流程的實現(xiàn)是通過HTTP協(xié)議訪問OSB上的代理服務,代理服務再調用業(yè)務服務,業(yè)務服務通過JMS與已經(jīng)封裝好的網(wǎng)間漫游清算系統(tǒng)C++應用組件進行通信,完成流程對底層已有系統(tǒng)組件應用的調用。該平臺現(xiàn)已實現(xiàn)并處于運維階段,前臺門戶各個功能模塊以本地Portlet的方式集成入統(tǒng)一門戶,客戶可以根據(jù)需要定制自己常用的操作功能界面。
漫游計費清算集成與管控平臺已經(jīng)部署并行,通過調研原清算計費運維平臺的運維效率,新一代計費清算集成與管控平臺在運維效率有明顯的提高并且運維成本大大降低。
1.服務調度效率
基于SOA集成的漫游清算流程并行半年,總共運行172007次,數(shù)據(jù)清算主流程平均調起時間為0.056s,如表1所示為數(shù)據(jù)清算流程中主要服務的調度時間。SOA服務對服務的調度時間平均不到0.1秒,整個數(shù)據(jù)清算主流程平均總共調度時間為0.727,可見SOA調度使用時間對整個業(yè)務流程處理影響是非常小的。
2.運維效率
基于SOA的清算集成管控平臺通過統(tǒng)一化的流程管理與服務管理,更加容易實現(xiàn)服務質量的監(jiān)控預警。相比老原計費運維平臺需要針對不同產(chǎn)品線進行各自的監(jiān)控與管理,基于SOA的清算集成管控平臺通過統(tǒng)一平臺進行監(jiān)控實現(xiàn)異常流程中問題快速定位與解決。
3.運維成本
相比原計費運維平臺不同業(yè)務線都有不同的運維平臺,運維人員需要分別進行學習。基于SOA的清算集成管控平臺所有產(chǎn)品線通過統(tǒng)一平臺進行運維大大減少了運維人員的學習成本。漫游計費清算總共有3大產(chǎn)品線,運維成本比原來節(jié)省三分之二。