[論文筆記] 一種Java遺留系統服務化切分和封裝方法 (計算機學報, 2009)

李翔,懷進鵬,曾晉,高鵬. 一種Java遺留系統服務化切分和封裝方法. 計算機學報, 32(9), 2009, p1084-1815 (gs:5)算法


1. 本文研究從Java遺留系統中切分並封裝出Web服務的(半)自動化方法。函數

主要涉及到的模型和技術以下。工具

  • 靜態類結構模型,類關係圖(CRG):有向圖,定義類之間的關係和結構。類級別的切分過於粗糙,難以應用於大多數遺留系統。
  • 動態對象調用模型,對象調用圖(Object Invocation Graph, OIG):有向有權圖,表示對象之間調用關係和頻繁程度
  • 對象依賴頻度圖(Object Dependent Frequency Graph, ODFG):由CRG和OIG合併造成,表示遺留系統運行示例對象的依賴關係和程度。(S5.3)
  • 模塊依賴頻度圖(Module Depnedent Frequency Graph, MDFG):與ODFG相似,其中每一個模塊是多個對象的集合。(S5.3)
  • 執行碼重寫技術:能夠根據原系統調用過程自動生成服務及其調用代理(客戶端),本文選用了ObjectWeb ASM。(S5.1)

2. (S5.3) 基於ODFG和MDFG,本文將遺留系統的切分問題建模成「有向圖的切分問題」(所求切面必須是單向的,即圖切分後的兩個切片之間的全部邊都指向同一切片)。
   使用圖分級聚類方法得到圖的割樹(算法1);使用貪婪策略的啓發式算法加速割樹的計算過程(算法2)。性能

3. (S5.2) 中定義了遺留系統模型的服務化切分指標(目標函數),分解爲模塊度MQ、接口評價IQ和性能代價PC:代理

PQ = a * MQ + b * IQ + (1 - a - b) * PC對象

其中接口

  • PQ:表示總體的服務化切分質量(Partition Quality);
  • MQ:對模塊高內聚、低耦合的量化評價;
  • IQ:接口中操做數目和參數數目越小約好,定義爲接口中參數數目的倒數;
  • PC:評價改成服務調用帶來的性能損失。

4. 本文提到的相關工做:
(1)對遺留系統的服務化切分:傳統軟件中的構建提取技術方向能夠借鑑
特別是基於軟件元素間的全局相對性對系統進行劃分的方法it

(2)面向對象軟件的自動分解和轉換技術方向
面向對象軟件切分能夠分爲動態和靜態、在線和離線、類級別和對象級別。
針對Java語言的切分工具:Doorastha, Pangaea, Addistant, J-Orchestra。
本文主要針對面向服務的遺留系統切分應用場景,類型是動態、離線、對象級別。自動化

相關文章
相關標籤/搜索