魏笑笑,楊象馳
(西安郵電學(xué)院信息與管理工程系,西安710061)
隨著互聯(lián)網(wǎng)的發(fā)展,電信企業(yè)內(nèi)部、企業(yè)之間的信息技術(shù)應(yīng)用日趨廣泛.電信行業(yè)信息化中建立了大量的企業(yè)級應(yīng)用系統(tǒng),這些系統(tǒng)相對獨立又相互依賴,存在大量的信息交互.由于信息系統(tǒng)版本多、系統(tǒng)間共享數(shù)據(jù)和信息程度差,從而形成一個個信息孤島.這些應(yīng)用程序有的是企業(yè)的關(guān)鍵業(yè)務(wù),不能全部替換或放棄,且引入各種新的應(yīng)用和系統(tǒng)是基于新的體系結(jié)構(gòu),與原有的體系架構(gòu)有很大的差異,因此,實施企業(yè)應(yīng)用的整體集成是企業(yè)必須解決的問題[1-2].本文針對電信企業(yè)ERP及CRM應(yīng)用系統(tǒng),設(shè)計基于SOA(Service-Oriented Architecture,面向服務(wù)架構(gòu))的ERP及CRM應(yīng)用集成方案,并能在業(yè)務(wù)需求變化的環(huán)境中動態(tài)調(diào)整,以適應(yīng)實際新的業(yè)務(wù)需求.
SOA是一種進行系統(tǒng)開發(fā)的新的體系架構(gòu),在基于SOA架構(gòu)的系統(tǒng)中,具體應(yīng)用程序的功能是由一些松耦合并且具有統(tǒng)一接口定義方式的組件(service)組合構(gòu)建起來的.以服務(wù)為中心整合人員、流程及信息,并能實現(xiàn)企業(yè)內(nèi)外部的應(yīng)用集成;是業(yè)務(wù)驅(qū)動架構(gòu),將IT和業(yè)務(wù)結(jié)合得更緊密,大大提高IT開發(fā)和運行效率.作為新一代的體系架構(gòu),SOA以其易于部署、高效、靈活、復(fù)用等特點,徹底實現(xiàn)企業(yè)系統(tǒng)整合和業(yè)務(wù)靈活配置[3-4].
基于SOA架構(gòu)的應(yīng)用系統(tǒng)是通過標(biāo)準(zhǔn)化的服務(wù)接口連接起來,進行數(shù)據(jù)交換.它屏蔽了不同平臺、編程語言、操作系統(tǒng)和硬件架構(gòu)之間的差異.在這種模式下,一個應(yīng)用或部分應(yīng)用是一種服務(wù),可以被重用和共享.與傳統(tǒng)架構(gòu)相比,SOA讓整個IT環(huán)境變得更富有彈性,能快速響應(yīng)業(yè)務(wù)需求,從而實現(xiàn)更好的業(yè)務(wù)靈活性,提升企業(yè)競爭優(yōu)勢.企業(yè)的信息化建設(shè)是一個持續(xù)過程,實施SOA可以充分保護已有系統(tǒng)的投資,通過建立一個能夠屏蔽底層系統(tǒng)復(fù)雜性的基礎(chǔ)架構(gòu),為IT資源的自由流動構(gòu)建一個基礎(chǔ)平臺[5].然后,將原有系統(tǒng)中的各項業(yè)務(wù)功能封裝成服務(wù),并根據(jù)需求進行重新組合,最終復(fù)合成新的業(yè)務(wù)系統(tǒng),提高業(yè)務(wù)和服務(wù)的創(chuàng)新能力.SOA的價值還在于解決在Internet環(huán)境下的不同商業(yè)應(yīng)用之間的業(yè)務(wù)集成.
基于SOA的CRM與ERP整合系統(tǒng)是建立在“l(fā)eave-and-layer”架構(gòu)之上,這意味著在不用對現(xiàn)有的企業(yè)系統(tǒng)做修改的前提下,系統(tǒng)可對外提供Web服務(wù)接口,因為它們已經(jīng)被可以提供Web服務(wù)接口的應(yīng)用層做了一層封裝,SOA可以將系統(tǒng)和應(yīng)用迅速轉(zhuǎn)換為服務(wù).SOA不僅覆蓋來自于打包應(yīng)用、定制應(yīng)用和遺留系統(tǒng)中的信息,而且還覆蓋來自于如安全、內(nèi)容管理、搜索等IT架構(gòu)中的功能和數(shù)據(jù).基于SOA的應(yīng)用能很容易地從這些基礎(chǔ)服務(wù)架構(gòu)中添加功能,使企業(yè)業(yè)務(wù)部門設(shè)計開發(fā)出新的功能應(yīng)用.設(shè)計思想充分體現(xiàn)是“重用”和“互操作”,突出服務(wù),以服務(wù)為基本單元,每一項服務(wù)完成實際業(yè)務(wù)流程中的一項任務(wù),從而將電信企業(yè)的IT資源整合成可操作的、基于標(biāo)準(zhǔn)的服務(wù),并且能夠被重新組合和重用,達到快速滿足業(yè)務(wù)需求的目的.本文以某市電信公司的整合方案為例,由于整個整合方案龐大,僅以用戶信息部分來進行分析.原有ERP與CRM系統(tǒng)中都有賬戶信息管理模塊,但存在部分信息不完整同時又有部分信息重復(fù)的問題.本文將ERP與CRM系統(tǒng)中的賬戶信息管理整合成一個“服務(wù)”來統(tǒng)一管理,從而達到對異地數(shù)據(jù)庫的統(tǒng)一操作以及保持數(shù)據(jù)一致等目標(biāo).系統(tǒng)問題分析框架如圖1所示.
圖1 系統(tǒng)問題分析框架
使用SOA的思想可以將原有兩套系統(tǒng)的賬戶管理模塊進行組合封裝并形成一個通用的“賬戶管理服務(wù)”,這個服務(wù)符合Web Service的一系列標(biāo)準(zhǔn),它擁有固定格式的輸入輸出接口并被置于企業(yè)服務(wù)總線ESB上.以后對賬戶信息的任何操作都必須通過此服務(wù)來進行,這樣才使得數(shù)據(jù)能保持一致性和完整性.賬戶信息管理服務(wù)主要包括的核心功能:①對外部屏蔽異構(gòu)數(shù)據(jù)庫;②對兩套系統(tǒng)數(shù)據(jù)庫記錄的增刪保持一致性;③列名映射機制;④數(shù)據(jù)恢復(fù).
客戶信息服務(wù)內(nèi)部有如下用例:增加客戶、刪除客戶、查詢客戶信息、更新客戶信息、恢復(fù)客戶信息、更新數(shù)據(jù)庫表結(jié)構(gòu)、驗證身份、列映射.根據(jù)需求基于SOA架構(gòu)采用分層的設(shè)計思想和方法,自底向上為Database,Original System Component,Enterprise Services Bus,Services和Clients等層次.組件層是原有系統(tǒng)的模塊,按照功能分別封裝為不同的組件.企業(yè)服務(wù)總線為服務(wù)提供一個統(tǒng)一的平臺,并屏蔽組件之間的差異性,服務(wù)可以低耦合地接入到服務(wù)總線上.服務(wù)層提供了獲取企業(yè)范圍組件,業(yè)務(wù)單元特定組件的機制,并且以服務(wù)描述的形式具體化了它們的接口子集.客戶端包括其他瀏覽器和其他服務(wù)或者應(yīng)用程序,服務(wù)層使用HTTP與瀏覽器進行交互,對于其他服務(wù)和應(yīng)用程序,則通過SOAP提供服務(wù)接口.賬戶信息服務(wù)是對原系統(tǒng)的整合,它事實上是一個代理(proxy),而CRM和ERP的客戶信息管理是最終的目標(biāo)(Real Subject),通過把proxy封裝成一個服務(wù),達到統(tǒng)一處理賬戶信息的目的.系統(tǒng)架構(gòu)分析如圖2所示.
圖2 架構(gòu)分析
1)接口設(shè)計
經(jīng)過分析類到設(shè)計類的映射,分析各設(shè)計類的功能,類的域和方法將進一步實現(xiàn).主要的邊界類、實體類、控制類有:Request Handle類:負責(zé)與ERP管理員、CRM管理員、服務(wù)管理員的接口.Mapping Hand le類:負責(zé)與映射表的接口.InfoServiceController類:負責(zé)對操作的順序進行控制的協(xié)調(diào),以實現(xiàn)用例的行為.Account Record Manager類:賬戶數(shù)據(jù)記錄的操作類,對賬戶記錄的增加、刪除、更新、查詢等操作.Database Manager類:數(shù)據(jù)庫結(jié)構(gòu)或整體的操作類,對數(shù)據(jù)庫表結(jié)構(gòu)更新和賬戶信息恢復(fù)操作.Privilege類:權(quán)限類,在調(diào)用服務(wù)時對申請賬戶的權(quán)限進行驗證.
接口設(shè)計的核心實現(xiàn)包含在Account Manager-System包中,RequestHand le作為惟一提供外部接口的類接受請求,通過調(diào)用其request函數(shù)和傳遞參數(shù)來操作賬戶信息.參數(shù)包括操作類型request-Type,當(dāng)前賬戶account,操作參數(shù)requestParameters.原系統(tǒng)存在CRM和ERP兩大子系統(tǒng),賬戶信息管理系統(tǒng)旨在為兩個子系統(tǒng)提供統(tǒng)一的對賬戶信息操作的接口,在CRM子系統(tǒng)中與賬戶管理相關(guān)的是CRMManager,作為外部接口與服務(wù)交互,ERP子系統(tǒng)中同樣設(shè)置一個管理員.包之間的接口和交互關(guān)系如圖3所示.
賬戶信息管理服務(wù)是兩套系統(tǒng)整合后的一個服務(wù),它作為一個子系統(tǒng)對其他服務(wù)提供業(yè)務(wù)功能的接口.Request和Response分別是請求和答復(fù)的接口,兩個接口提供客戶信息管理、更新、驗證和同步等功能.
圖3 包之間的接口和交互關(guān)系
2)類的交互設(shè)計
整合系統(tǒng)的狀態(tài)圖如圖4所示.在整合系統(tǒng)中,無論是管理員還是外部用戶,對于賬戶管理的各項操作都必須通過調(diào)用服務(wù)來完成.比如,CRM系統(tǒng)需要添加一條賬戶信息,必須同步更新ERP的數(shù)據(jù)庫.當(dāng)CRM管理員向服務(wù)的接口Request-Handle提出申請并將addRecord作為參數(shù)調(diào)用request()函數(shù)后,RequestHandle首先檢測申請者(CRM管理員)是否具有增加記錄的權(quán)限,然后由于增加記錄屬于AccountRecordManager的范圍,選擇其作為處理類,接著CRM和ERP端都將收到添加記錄的操作調(diào)用,分別對本方的數(shù)據(jù)庫進行插入操作,最后添加成功作為返回值到達申請者CRM管理員處.如果申請的是增加或刪除列的服務(wù),則應(yīng)選擇作為DatabaseManager處理類.
圖4 整合系統(tǒng)的狀態(tài)圖
3)數(shù)據(jù)庫的設(shè)計
由于舊系統(tǒng)各自存在自己的數(shù)據(jù)庫,因而整合后的新系統(tǒng)數(shù)據(jù)庫設(shè)計區(qū)別于完全開發(fā)一個新的數(shù)據(jù)庫設(shè)計方式,既要保留在新系統(tǒng)中仍可以使用的原有數(shù)據(jù)庫表,又要添加原有數(shù)據(jù)庫中缺乏的表,并同時對重復(fù)的數(shù)據(jù)表進行整合、歸類和統(tǒng)一等.經(jīng)分析,抽取ERP中供應(yīng)商信息、ERP中客戶信息以及CRM中供應(yīng)商信息、CRM中客戶信息4張表,并新建了供應(yīng)商信息擴展、客戶信息擴展、供應(yīng)商信息映射以及客戶信息映射4張表,這些表構(gòu)成了賬戶信息服務(wù)的核心數(shù)據(jù)庫表.根據(jù)表結(jié)構(gòu)需求,構(gòu)造數(shù)據(jù)庫表的邏輯模式如圖5所示.
圖5 核心數(shù)據(jù)庫模式設(shè)計
大多數(shù)電信公司IT資源對組件化、模塊化、互操作性和伸縮性不能提供足夠的支持,企業(yè)級應(yīng)用系統(tǒng)的分別實施,缺乏標(biāo)準(zhǔn)接口,系統(tǒng)之間受到信息孤立、數(shù)據(jù)不一致等問題的困擾.本系統(tǒng)采用SOA的思想和方法,實現(xiàn)服務(wù)之間的標(biāo)準(zhǔn)化接口、服務(wù)之間的松耦合和信息靈活交換,建立ERP和CRM數(shù)據(jù)的統(tǒng)一,消除數(shù)據(jù)的不一致和冗余,實現(xiàn)了數(shù)據(jù)列意義的實名映射,實現(xiàn)數(shù)據(jù)的異?;謴?fù).增強電信企業(yè)運營服務(wù)系統(tǒng)的靈活性,提高了運營效率.
[1]楊象馳.基于SOA的郵政物流信息系統(tǒng)規(guī)劃[J].計算機工程與設(shè)計,2007,19(10):4825-4827.
[2]SANDY C.SOA&Web2.0-新商業(yè)語言[M].北京:清華大學(xué)出版社,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]陳 偉,康建初.面向電信運營的策略管理系統(tǒng)研究與實現(xiàn)[J].微計算機信息,2008(2-3):10-12.
[5]胡 文,任 永.基于智能手機的物流CRM的研究[J].哈爾濱商業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008,24(5):547-549,556.