李華
(貴州師范大學,貴州貴陽550001)
基于面向服務架構的遺留系統與領域需求匹配研究
李華
(貴州師范大學,貴州貴陽550001)
為了不重新開發基于面向服務架構的系統,充分利用遺留系統的價值,將遺留系統集成到面向服務架構中,本文研究基于面向服務架構的遺留系統集成模式.通過分析領域需求和遺留系統,將分析結果進行形式化表示,采用XML文檔進行描述,設計一種匹配算法,計算遺留系統中各個節點和領域需求中各個服務的匹配程度,用以指導遺留系統向面向服務架構的遷移.
面向服務架構;遺留系統集成;匹配算法
面向服務架構(Service-Oriented Architec2ture,SOA)是一種面向服務的分布式體系結構[1],是集成遺留系統的一個最佳的體系結構.它通過建立、合并、可重用的服務體系,為不同的開發平臺、操作系統、數據庫系統等信息應用系統提供了一個相互交織平臺,充分利用和挖掘遺留系統的價值,將遺留系統遷移到SOA架構中,高效、重復地利用現有IT技術,避免重復性開發,降低集成成本,降低應用風險.
構建基于SOA的系統架構,關鍵是要結合需求,重新組合和使用松散耦合的粗粒度應用組件.如圖1所示的基于SOA系統架構.一是,實現了“軟件即服務”功能,可以直接調用使用服務層,降低了人對軟件代理交互的依賴性.二是,可以根據業務需求集成具備傳統管理業務系統功能的獨立服務構件,系統管理各類業務系統,用戶通過統一認證單點登錄各業務應用系統,用戶根據業務需求應用所需服務構件.三是,預留大量服務構件集成接口,以滿足未來陸續增加新的業務服務需求和集成其他業務軟件系統服務.

圖1 基于SOA系統架構
其中,用戶交互層通過統一的個性化服務訪問接口,為每一類用戶提供個性化的界面,訪問系統的各種不同的子系統或服務,可以快速響應各種業務流程的變化,滿足業務不斷變化和擴展的需求以及異構環境下跨平臺業務集成的需求.服務組裝層實現了服務構件的用戶級自由組裝,除了可以根據一定的業務邏輯立體化聚合各個粒度服務構件,還可以按照一定的業務流程跨組織聚合各個聚合服務.數據資源層自動針對數據庫的表關系、視圖關系抽取出不同的數據實體,然后通過數據轉換、數據過濾,完成異質數據庫間的數據交互,在數據集統一集成整體集成架構,并保證各個業務系統的獨立性.統一數據中心完全封裝業務數據,提供數據實體所需要的所有公共數據,避免了數據的冗余,保證了數據的一致性和完整性.
基于SOA架構的遺留系統集成模式如圖2所示.

圖2 遺留系統集成模式
該集成模式,首先,根據業務需求中功能、接口等信息的描述,進行自上而下的分解,功能解析器根據業務功能的描述,在常用業務流程庫中進行查找,沒有查找到則根據領域知識庫和領域詞典對業務需求描述進行分析,并生成相應的業務流程,加入到業務流程庫中,完成解析功能.其次,根據業務需求解析結果和遺留系統分析出可用的服務及其相關信息,用形式化方法表示業務流程分析結果和遺留系統的分析結果.然后,設計匹配算法對業務流程分析和遺留系統分析結果進行匹配計算,得到遺留系統和領域需求的匹配程度.最后,通過決策分析分析遺留系統向面向服務體系結構遷移的方式.
4.1 遺留系統分析和領域需求分析
遺留系統分析從數據信息、邏輯信息、實際應用信息、文檔信息和代碼信息等五個層面進行,分析結果用有向無環圖表示,設每個節點帶有相關節點信息由Nodefather、Infordoc、InforuMl、Inforcode、Infordata、Inforlog、Nodeson組成.為了將遺留系統的分析結果和領域需求的分析結果進行匹配計算,采用XML文檔對遺留系統的分析結果進行描述,統一定義一個XML模版對遺留系統分析結果進行描述:
…………
……
……
……
選擇面向對象的分析方法,將領域需求分解成用戶所需求的粒度服務,分析結果也用帶節點信息的有向無環圖表示,其中每個節點向量的相關信息定義為由Nodefather、Inforfunction、Infordata、Nodeson組成.分析結果用XML文檔進行描述,分析結果的XML模版定義如下:
……
……
……
通過對領域需求和遺留系統分別進行自頂向下和自底向上的分析,將遺留系統劃分為業務組件層、粗粒度組件層和細粒度組件層,領域需求劃分為業務流程層、復合服務層和原子服務層,得到圖3所示分析結果.

圖3 遺留系統和領域需求分析結果描述
4.2 匹配算法
首先,對遺留系統和領域需求中的所有節點信息行成一個文檔集.然后,將遺留系統和領域需求分析結果所形成的兩個XML文檔中的各個節點之間進行相似度計算,就可以得到遺留系統中各個節點和領域需求中各個服務的匹配程度.
計算遺留系統和領域需求中的節點在各自文檔集中的權重,計算結果為一個由關鍵字和節點組成的權重矩陣,每個節點在有向無環圖中代表一個向量,表示為
定義標記信息,遺留系統有向無環圖的業務組件層節點集合SL={L1,L2,…..,Lt},遺留系統有向無環圖的業務組件層每個節點的子節點集合Ss(Li)={Li1,Li2,……,Lil},遺留系統有向無環圖的粗粒度組件層節點集合SLS={Ls1,Ls2,……,Lsk},領域需求的業務流程層節點用集合SD= {D1,D2,…..,Dm},用標記Ma表示遺留系統節點和領域需求的節點構成的M*N相似度矩陣,N=T+K.
算法輸入為遺留系統分析結果文檔XMLlegacy和領域需求的分析結果文檔XMLDomain,相似度閾值λ.
算法輸出為遺留系統中的節點和領域需求中的節點所構成的相似度矩陣Ma=M*(T+K)=M*N.

領域需求業務流程層的節點和遺留系統業務組件層的節點所計算出的相似度結果若小于λ,可將相似度值直接賦值為0.
4.3 案例分析
我們以某中學教育管理軟件中的學生綜合素質評價系統為研究對象.

對學生綜合素質評價系統和SOA架構下學生評價領域需求進行分析,分析結果XML文檔樹形結構如圖4所示.

圖4 XML文檔顯示結果
讀取分析XML文件,按照對應節點信息,將XML文檔劃分為若干個TXT文件,每個TXT文件存儲對應節點的信息.根據生成的遺留系統文檔集和領域需求文檔集,利用海量分詞軟件進行處理,再根據向量空間模型計算文檔集中任意兩個文檔之間的相似度,用以指導學生綜合素質評價系統向SOA架構的遷移.
我們研究領域模型、遺留系統分析方法,分別對遺留系統和領域需求進行分析,并將分析結果用形式化的方式表示出來,用XML文檔存儲.結合遺留系統分析結果和領域需求的分析結果,設計一種匹配算法將兩者進行匹配計算,可以得到遺留系統中各個節點和領域需求中各個服務的匹配程度,用以指導遺留系統向面向服務架構的遷移.
〔1〕毛新生.SOA原理.方法.實踐.電子工業出版社,2007.
〔2〕邱岳,吳潔明.基于SOA的應用集成策略研究與實現[J].計算機時代,2008(02).
〔3〕姜文,李斌勇,黃義平.基于SOA的遺留系統集成研究與應用[J].軟件導刊,2009,8(7).
〔4〕呂鳴劍,孟東升.基于SOA架構的企業集成系統設計與實現.現代電子技術,2009(9).
TP311
A
1673-260X(2013)07-0020-03
貴州省科學技術基金項目(黔科合J字LKS[2010]35)