中國(guó)移動(dòng)(深圳)有限公司 | 付兵蘭 鄭錫濤 肖中卿
日趨激烈的市場(chǎng)競(jìng)爭(zhēng)要求企業(yè)能夠迅速響應(yīng)外部環(huán)境的變化,及時(shí)調(diào)整現(xiàn)有的業(yè)務(wù)流程,而目前企業(yè)I T架構(gòu)無法支持多變的業(yè)務(wù)流程,抑制了企業(yè)的發(fā)展。
漫游是移動(dòng)通信網(wǎng)絡(luò)與固定電話網(wǎng)絡(luò)截然不同的一個(gè)關(guān)鍵特性,它使用戶能在世界任何國(guó)家的簽約運(yùn)營(yíng)商之間使用自己的手機(jī)進(jìn)行通信,因此,運(yùn)營(yíng)商之間需要交換這種漫游用戶的通信記錄,以便向用戶收取通話費(fèi)用。漫游計(jì)費(fèi)清算主要是通過對(duì)多種格式的漫游清算話單文件進(jìn)行采集(傳輸)、校驗(yàn)、查重、批價(jià)、分揀、下發(fā)、結(jié)算處理等處理,實(shí)現(xiàn)歸屬和拜訪電信運(yùn)營(yíng)商之間的通信費(fèi)用清算。
隨著信息化的快速發(fā)展,企業(yè)內(nèi)部建立了龐大的子系統(tǒng)群,由于初期缺乏統(tǒng)一規(guī)劃,企業(yè)內(nèi)部多套系統(tǒng)之間不能互聯(lián)互通,漫游計(jì)費(fèi)清算的各個(gè)環(huán)節(jié)如校驗(yàn)、查重等在不同的漫游系統(tǒng)(如網(wǎng)間漫游、國(guó)際漫游)下孤立存在,無法共享。日趨激烈的市場(chǎng)競(jìng)爭(zhēng)要求企業(yè)能夠迅速響應(yīng)外部環(huán)境的變化,及時(shí)調(diào)整現(xiàn)有的業(yè)務(wù)流程,而目前企業(yè)I T架構(gòu)無法支持多變的業(yè)務(wù)流程,抑制了企業(yè)的發(fā)展,其主要表現(xiàn)在三個(gè)方面。
1.煙囪式、垂直化的建設(shè)模式,造成各個(gè)系統(tǒng)資源共享差。
由于各個(gè)應(yīng)用在開發(fā)之初都是基于某個(gè)需求來驅(qū)動(dòng),因此在設(shè)計(jì)時(shí)僅考慮當(dāng)前系統(tǒng)的實(shí)現(xiàn),隨著需求變化,業(yè)務(wù)線增加,系統(tǒng)不斷增多,各系統(tǒng)就成了一個(gè)個(gè)垂直的煙囪,基于各漫游業(yè)務(wù)線建設(shè)的系統(tǒng)存在太多的相似性,系統(tǒng)的資源如話單查重組件、話單傳輸組件等在筆者所在的公司的多套清算系統(tǒng),十多條業(yè)務(wù)線中都重復(fù)存在,造成系統(tǒng)資源復(fù)用難度大,同時(shí)重復(fù)運(yùn)維也帶來運(yùn)維成本高。
2.跨系統(tǒng)和跨部門的“長(zhǎng)流程”被阻隔,無法實(shí)現(xiàn)端到端流程,集成度低。
目前各個(gè)漫游計(jì)費(fèi)清算系統(tǒng)的調(diào)用流程都是分散的,以實(shí)現(xiàn)具體應(yīng)用的“短流程”居多,如話單預(yù)處理流程,而跨系統(tǒng)的流程尚未實(shí)現(xiàn)自動(dòng)銜接,如話單傳輸系統(tǒng)、話單預(yù)處理系統(tǒng)和話單下發(fā)系統(tǒng)的各個(gè)“短流程”或應(yīng)用都是分散的,無法支撐端到端流程的全貫通,從而形成一個(gè)個(gè)的“信息孤島”,集成度不高。
3.系統(tǒng)間關(guān)系紛繁復(fù)雜,耦合度較高。
圖1 漫游計(jì)費(fèi)清算流程集成平臺(tái)應(yīng)用架構(gòu)
由于系統(tǒng)建設(shè)的歷史原因,系統(tǒng)間的數(shù)據(jù)依賴強(qiáng),接口技術(shù)紛繁復(fù)雜,系統(tǒng)間調(diào)用成本高,耦合性強(qiáng)。
為了解決上述問題,采用SOA技術(shù)將原有功能采用OSB(Oracle Service Bus)封裝為服務(wù)進(jìn)行復(fù)用,采用BPEL(BusinessProcessExecutionLanguage)構(gòu)建端到端流程,集成各個(gè)分散系統(tǒng)并采用統(tǒng)一的接口技術(shù)降低系統(tǒng)間的耦合度。
基于SOA技術(shù)構(gòu)建的漫游計(jì)費(fèi)清算流程集成平臺(tái)將十多條漫游計(jì)費(fèi)清算業(yè)務(wù)線設(shè)計(jì)成十多個(gè)端到端的流程,每個(gè)流程由封裝現(xiàn)有組件應(yīng)用的服務(wù)組成,服務(wù)之間通過定義良好的接口進(jìn)行通信,同時(shí)通過門戶展示的方式對(duì)這些服務(wù)和流程進(jìn)行統(tǒng)一的管理和監(jiān)控。因此要求該系統(tǒng)的建設(shè)目標(biāo)和原則要求如下:
1.搭建漫游計(jì)費(fèi)清算流程集成平臺(tái),構(gòu)建統(tǒng)一的企業(yè)服務(wù)總線和流程引擎。
2.服務(wù)可復(fù)用,一般服務(wù)按粒度大小分為基本服務(wù)、合成服務(wù)和組合服務(wù)三種,基本服務(wù)組合成特定功能的合成服務(wù);基本服務(wù)按照一定的順序組合成組合服務(wù),服務(wù)粒度越小,可復(fù)用性越高。
3.服務(wù)松耦合,S OA封裝現(xiàn)有組件應(yīng)用為服務(wù),并采用中立的接口定義和契約將之聯(lián)系起來,中立接口因?yàn)闆]有強(qiáng)制綁定到特定的實(shí)現(xiàn)上而獨(dú)立于硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言,使得服務(wù)是松耦合的。
4.實(shí)現(xiàn)典型功能的服務(wù)注冊(cè)、管理、發(fā)布、封裝、復(fù)用,以及流程的監(jiān)控和管理。
根據(jù)以上建設(shè)目標(biāo)和原則,采用TOGAF(The Open Group Architecture Framework)做企業(yè)架構(gòu)規(guī)劃,并根據(jù)TOGAFforSOA的SOA參考架構(gòu)SOAReferenceArchitecture九層標(biāo)準(zhǔn)架構(gòu)為技術(shù)藍(lán)圖,結(jié)合漫游計(jì)費(fèi)清算業(yè)務(wù)實(shí)際情況,采用Oracle的SOA產(chǎn)品(如企業(yè)服務(wù)總線OSB和流程引擎),構(gòu)建的流程集成平臺(tái)的應(yīng)用架構(gòu)如下圖1所示。
該平臺(tái)共分為四大塊,不僅達(dá)到了建設(shè)的目標(biāo)要求,也遵循了建設(shè)原則。
流程集成平臺(tái)門戶展示層
采用開源的門戶框架Liferay,創(chuàng)建基于JSP/CSS+Java Script/jQuery的用戶層訪問界面。用戶通過門戶對(duì)漫游計(jì)費(fèi)清算流程集成平臺(tái)的服務(wù)、流程進(jìn)行管理和控制,并對(duì)實(shí)時(shí)情況進(jìn)行監(jiān)控和運(yùn)維。門戶展示層共分為三個(gè)模塊:
● SOA服務(wù)管理
主要對(duì)設(shè)計(jì)時(shí)的服務(wù)和運(yùn)行時(shí)的服務(wù)進(jìn)行管理,主要功能有服務(wù)的發(fā)布/注冊(cè)、服務(wù)目錄管理、服務(wù)信息更改、服務(wù)注銷、服務(wù)狀態(tài)管理、服務(wù)信息查詢和服務(wù)監(jiān)控等。
● SOA流程管理
主要是對(duì)設(shè)計(jì)時(shí)的流程和運(yùn)行時(shí)的流程實(shí)例進(jìn)行管理和調(diào)度,主要功能有流程的增刪改查和流程實(shí)例的起停和增刪改查等。
● SOA監(jiān)控運(yùn)維
主要是巡檢平臺(tái)應(yīng)用運(yùn)行情況、流程運(yùn)行情況、服務(wù)請(qǐng)求情況和事務(wù)處理情況,對(duì)出現(xiàn)異常的情況進(jìn)行監(jiān)控和報(bào)警,同時(shí)匯總生成健康報(bào)告和分析報(bào)告,并將健康情況和告警量等信息予以展示。
流程集成平臺(tái)業(yè)務(wù)流程層
采用Oracle的SOASuite產(chǎn)品實(shí)現(xiàn)統(tǒng)一的BPEL流程集成,BPEL流程通過同步或異步的方式調(diào)用企業(yè)服務(wù)總線OSB上的Webservice服務(wù),并通過一定的順序?qū)⑦@些基礎(chǔ)服務(wù)、合成服務(wù)和組合服務(wù)編排成可實(shí)現(xiàn)特定漫游業(yè)務(wù)線的流程,如網(wǎng)間漫游計(jì)費(fèi)清算流程、國(guó)內(nèi)漫游計(jì)費(fèi)清算流程等,同時(shí)合成展示在門戶上的人工工作流程,真正做到端到端的流程集成。
流程集成平臺(tái)服務(wù)層
采用Oracle產(chǎn)品搭建OSB服務(wù)總線,將遺留系統(tǒng)的組件應(yīng)用封裝成通過JMS接口與OSB通信的服務(wù),通過OSB的再次封裝,以標(biāo)準(zhǔn)化的服務(wù)供流程引擎或者第三方系統(tǒng)調(diào)用,如封裝成Webservice服務(wù)。服務(wù)層負(fù)責(zé)統(tǒng)一的接入遺留系統(tǒng)(如網(wǎng)間、國(guó)內(nèi)和國(guó)際漫游系統(tǒng))組件并集成入流程引擎供門戶管理和監(jiān)控。
流程集成平臺(tái)基礎(chǔ)組件層
基礎(chǔ)組件主要包括日志管理、事務(wù)管理、異常處理、發(fā)布訂閱和轉(zhuǎn)換器等,用以支撐上述核心功能服務(wù)管理、流程管理和監(jiān)控運(yùn)維模塊正常運(yùn)作。
根據(jù)上述邏輯架構(gòu),采用合適的技術(shù)進(jìn)行實(shí)現(xiàn),技術(shù)架構(gòu)圖如圖2所示。
該平臺(tái)門戶使用公司的CMSZ Frame work for Portlet框架進(jìn)行開發(fā),核心是Struts+Spring+iBatis,但是集成了Liferay門戶,該框架運(yùn)行于T o mc a t容器中。門戶中的服務(wù)管理和流程管理模塊調(diào)用WeblogicJMX規(guī)范與運(yùn)行于Weblogic容器中的流程和服務(wù)進(jìn)行通信從而實(shí)現(xiàn)對(duì)運(yùn)行時(shí)流程和服務(wù)的管理和控制。
該平臺(tái)流程采用Oracle11g產(chǎn)品SO ASuite中的OracleBPELProcess Manager進(jìn)行編排BPEL流程,流程開發(fā)使用JDeveloper Studio進(jìn)行,例如網(wǎng)間漫游計(jì)費(fèi)主流程由話單上發(fā)傳輸子流程、話單預(yù)處理子流程和話單下發(fā)傳輸子流程按照先后順序組成。而話單上發(fā)傳輸子流程和話單下發(fā)傳輸子流程都復(fù)用了話單傳輸服務(wù)。流程最終運(yùn)行于Weblogic容器中SOAdomain中。
漫游計(jì)費(fèi)清算服務(wù)由OS B服務(wù)封裝層和業(yè)務(wù)組件層組成。OS B服務(wù)封裝層承擔(dān)服務(wù)封裝、消息流轉(zhuǎn)換與預(yù)處理、協(xié)議轉(zhuǎn)換等功能。業(yè)務(wù)組件層主要負(fù)責(zé)具體的業(yè)務(wù)邏輯處理,包含通過隊(duì)列交互的C++應(yīng)用組件與基于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é)議。服務(wù)請(qǐng)求者與服務(wù)提供者可以通過這些協(xié)議接口進(jìn)行通信,使得由OS B封裝的服務(wù)具有松耦合、復(fù)用性強(qiáng)等特點(diǎn)。
圖2 漫游計(jì)費(fèi)清算流程集成平臺(tái)技術(shù)架構(gòu)
漫游計(jì)費(fèi)清算主要業(yè)務(wù)通過BPEL流程進(jìn)行集成,采用BPEL2.0規(guī)范。BPEL是一種基于XML的語(yǔ)言,用來描寫業(yè)務(wù)過程的語(yǔ)言,被描寫的每一個(gè)單一步驟,由Web服務(wù)來實(shí)現(xiàn)。外部可以調(diào)用Web服務(wù)的方式來對(duì)BPEL流程進(jìn)行調(diào)用。BPEL提供了企業(yè)業(yè)務(wù)流程編排和執(zhí)行的行業(yè)標(biāo)準(zhǔn)。使用BPEL設(shè)計(jì)的業(yè)務(wù)流程將一系列離散的服務(wù)集成一個(gè)端到端的業(yè)務(wù)流程,大大減少集成過程中的成本和復(fù)雜性。
漫游計(jì)費(fèi)清算各個(gè)業(yè)務(wù)線流程由BPEL進(jìn)行集成,每個(gè)業(yè)務(wù)線由一個(gè)數(shù)據(jù)清算主流程對(duì)各個(gè)子流程與服務(wù)進(jìn)行集成,子流程由基本服務(wù)、合成服務(wù)等組成。
BPEL流程調(diào)用服務(wù)主要有兩種方式,一種是one-way調(diào)用,即調(diào)用后不需要返回請(qǐng)求結(jié)果,另一種是雙向調(diào)用,即調(diào)用后需要返回,后者又分為同步調(diào)用和異步調(diào)用。兩種雙向調(diào)用以預(yù)處理流程為例。每個(gè)流程實(shí)例從前端流程活動(dòng)到后端服務(wù)組件之間的協(xié)調(diào)采用Correlation機(jī)制實(shí)現(xiàn),即每個(gè)流程實(shí)例上下文中都有一個(gè)惟一的Correlation ID,以確定每個(gè)流程實(shí)例的獨(dú)立性。
表1 服務(wù)平均調(diào)度時(shí)間
該平臺(tái)通過門戶管控運(yùn)行在Weblogic容器上的流程和服務(wù),用戶通過運(yùn)行在Tomcat中的統(tǒng)一門戶界面操作流程和服務(wù),后臺(tái)通過WeblogicJMX規(guī)范對(duì)運(yùn)行在Weblogic容器中的BPEL流程和OSB服務(wù)進(jìn)行訪問并執(zhí)行相關(guān)的操作。其中BPEL流程的實(shí)現(xiàn)是通過HTTP協(xié)議訪問OSB上的代理服務(wù),代理服務(wù)再調(diào)用業(yè)務(wù)服務(wù),業(yè)務(wù)服務(wù)通過JMS與已經(jīng)封裝好的網(wǎng)間漫游清算系統(tǒng)C++應(yīng)用組件進(jìn)行通信,完成流程對(duì)底層已有系統(tǒng)組件應(yīng)用的調(diào)用。該平臺(tái)現(xiàn)已實(shí)現(xiàn)并處于運(yùn)維階段,前臺(tái)門戶各個(gè)功能模塊以本地Portlet的方式集成入統(tǒng)一門戶,客戶可以根據(jù)需要定制自己常用的操作功能界面。
漫游計(jì)費(fèi)清算集成與管控平臺(tái)已經(jīng)部署并行,通過調(diào)研原清算計(jì)費(fèi)運(yùn)維平臺(tái)的運(yùn)維效率,新一代計(jì)費(fèi)清算集成與管控平臺(tái)在運(yùn)維效率有明顯的提高并且運(yùn)維成本大大降低。
1.服務(wù)調(diào)度效率
基于SOA集成的漫游清算流程并行半年,總共運(yùn)行172007次,數(shù)據(jù)清算主流程平均調(diào)起時(shí)間為0.056s,如表1所示為數(shù)據(jù)清算流程中主要服務(wù)的調(diào)度時(shí)間。SOA服務(wù)對(duì)服務(wù)的調(diào)度時(shí)間平均不到0.1秒,整個(gè)數(shù)據(jù)清算主流程平均總共調(diào)度時(shí)間為0.727,可見SOA調(diào)度使用時(shí)間對(duì)整個(gè)業(yè)務(wù)流程處理影響是非常小的。
2.運(yùn)維效率
基于SOA的清算集成管控平臺(tái)通過統(tǒng)一化的流程管理與服務(wù)管理,更加容易實(shí)現(xiàn)服務(wù)質(zhì)量的監(jiān)控預(yù)警。相比老原計(jì)費(fèi)運(yùn)維平臺(tái)需要針對(duì)不同產(chǎn)品線進(jìn)行各自的監(jiān)控與管理,基于SOA的清算集成管控平臺(tái)通過統(tǒng)一平臺(tái)進(jìn)行監(jiān)控實(shí)現(xiàn)異常流程中問題快速定位與解決。
3.運(yùn)維成本
相比原計(jì)費(fèi)運(yùn)維平臺(tái)不同業(yè)務(wù)線都有不同的運(yùn)維平臺(tái),運(yùn)維人員需要分別進(jìn)行學(xué)習(xí)?;赟OA的清算集成管控平臺(tái)所有產(chǎn)品線通過統(tǒng)一平臺(tái)進(jìn)行運(yùn)維大大減少了運(yùn)維人員的學(xué)習(xí)成本。漫游計(jì)費(fèi)清算總共有3大產(chǎn)品線,運(yùn)維成本比原來節(jié)省三分之二。