羅愛民,施 鼎
(國防科技大學信息系統與管理學院信息系統工程重點實驗室,湖南 長沙 410073)
基于聚類分析的C4ISR系統服務關鍵要素自動提取方法
羅愛民,施鼎
(國防科技大學信息系統與管理學院信息系統工程重點實驗室,湖南長沙 410073)
從業務模型中發現和識別業務層服務是面向服務架構系統設計的關鍵活動。為面向服務架構設計,提出了一種基于聚類分析的自動化服務提取方法。該方法將服務提取問題轉換為多目標優化求解的問題,以C/U矩陣業務模型為基礎,綜合考慮服務設計中耦合度、內聚度、重用性、可維護性等原則,構建優化設計的目標函數,并提出模擬退火的求解方法。最后通過案例進行驗證。
服務;聚類;耦合度;內聚度
網址:www.sys-ele.com
信息系統體系結構設計在系統建設中發揮著越來越重要的作用。由于基于面向服務架構(service oriented architecture,SOA)技術架構正在成為系統開發主流技術體制、流行的體系結構框架,如美軍國防部體系結構框架(DoD architecture framework,DoD AF)2.0、英國國防部體系結構框架(MoD architecture framework,MoDAF)1.2、TOGAF9.1等都增加了服務相關的設計內容。如DoD AF2.0的服務視圖中,包括服務組成、服務資源流描述、服務之間關系、服務與系統關系等模型。這些都是體系結構設計中服務視圖的核心內容,其中服務組成更是最基礎的內容,它是其他服務設計內容或模型的基礎。但是目前的體系結構框架中沒有提供服務獲得的具體方法。
目前關于服務設計研究多集中在服務計算、服務標準和服務實現等方面,這些研究偏服務實現技術層面,常常忽視對業務層服務的設計與分析。應用層服務與業務模型密切相關,從業務模型中發現和提取業務層服務是SOA系統設計的關鍵活動,服務提取方法對體系結構中服務設計有重要的應用價值。
在服務設計中,傳統的服務識別和提取方法主要是設計人員憑經驗分析。這種人工分析方法難以滿足復雜系統的設計要求。針對服務識別和提取的問題,近幾年國內外學者也開展了相關的研究。文獻[1]分析了服務設計的公理化原則;文獻[2]提出了一種面向服務建模體系架構(service oriented modeling and architecture,SOMA)的方法;文獻[3-5]提出了從業務模型自動識別服務的框架,認為服務提取應該是一個多目標優化問題,但是文中沒有具體的實現方法;文獻[6-9]提出了基于圖、矩陣元素等半自動化服務提取方法。此外,有不少學者將聚類方法用于信息系統識別的研究[10 13],這些研究主要是非自動化的方式,或只考慮了單一的影響因素。本文針對信息系統體系結構設計中應用層服務提取的問題,綜合考慮服務設計的多種約束規則,將服務提取為多目標優化設計的數學問題,提出一種基于聚類分析的自動化服務提取方法。該方法能夠實現從業務模型中提取有效的服務體系,為信息系統體系結構服務視圖的產品設計提供基礎,也為SOA中服務設計提供有力的支持。
一般來說,體系結構層面的服務設計主要是應用服務的設計。應用服務與業務活動和流程是密切相關的。因此,應用服務體系的設計必須以業務模型為基礎。為便于后續分析,業務模型采用常用的C/U矩陣建模。
定義1一個業務模型可以定義為M={(BPi,BEj,PEij),i=1,…,#row,j=1,…,#column}。其中,BP表示業務活動集,BPi是第i個業務活動;BE表示業務實體集,BEj是第j個BE;#row和#column分別表示集合BP和BE元素的數量;PEij表示BPi與BEj之間的操作關系,操作關系按照數據模型的基本操作創建(C)和使用(U)來表示。
根據定義1,常用的C/U矩陣是描述業務模型的有效方式。其中,矩陣的行表示業務活動,矩陣的列表示業務實體,矩陣中每個單元表示業務活動與業務實體之間的操作關系。該模型稱為業務模型的C/U矩陣。
目前信息系統體系結構設計多采用多視圖設計方法。在多視圖體系結構設計中,業務模型主要體現在業務視圖中。因此,可根據業務視圖的內容來構建相應的業務模型。其中業務活動集來自業務活動模型(OV-5),業務實體模型與邏輯數據模型對應,邏輯數據模型來自數據信息視圖的邏輯數據模型(DIV-2)。盡管業務視圖中沒有模型詳細描述邏輯數據模型與業務活動之間的具體操作,但是業務活動模型和業務信息交換矩陣都分析了業務活動模型之間的信息交換關系。因此,在建立業務模型時,可以根據信息交換關系、業務規則模型以及需求分析中業務活動更細節的內容,定義C/U矩陣中各單元的操作類型。
構建業務模型C/U矩陣的簡單流程如下:
步驟1利用業務視圖模型,列出所有的業務活動作為C/U矩陣的行;
步驟2利用數據信息視圖模型,列出所有的邏輯數據作為C/U矩陣列;
步驟3分析業務活動與邏輯數據模型的操作關系,定義C/U矩陣中各單元的操作類型。
表1表示一個業務模型的C/U矩陣。

表1 業務模型的C/U矩陣示例
服務體系提取的核心就是按照某種原則對業務活動或功能進行合理的分組劃分,使其滿足服務設計的要求。
在業務模型的C/U矩陣中,業務模型明確了業務活動與邏輯數據之間的關系,因此可以分析C/U矩陣中定義的操作以及操作之間的關系,按照服務設計原則對類似或相關性強的活動、數據進行聚類,根據聚類結果提取服務集。每一個聚類對應一個候選服務。
定義2C/U矩陣的第k個聚類模塊Clusterk={(BPi,BEj),i。其中,lk1是該聚類模塊在C/U矩陣中的起始行,hk1是該聚類模塊在C/U矩陣中的結束行,lk2是該聚類模塊在C/U矩陣中的起始列,hk2是該聚類模塊在C/U 矩陣中的結束列,1≤l1K<hK1≤ #row并且
設存在聚類模塊

設M表示業務模型對應的C/U矩陣。一個好的聚類方案至少具有以下特點:
(1)非交互性
對于?K,N,Clusterk∩ClusterN=?。這要求每個聚類模塊在業務活動和數據模型上沒有交互關系。
(2)合并性

(3)完整性
如果一個聚類方案將C/U矩陣劃分并形成N個聚類模塊,那么這N個聚類模塊的并集覆蓋了C/U矩陣中BP集與BE集。
(4)唯一性
定義3服務Sk={Name,I,Msg,Rs}。其中,Name是服務的名稱;I是與Sk完成的活動集;Msg是與Sk相關的數據集;Rs是服務Sk與其他服務之間的關系集。
基于C/U矩陣按照聚類方法提取服務,C/U矩陣中每個聚類模塊只能唯一地被定義為一個服務,即?Clusterk,ClusterK?SK。
按照服務的定義,服務模型中I對應該聚類模塊中BP的相關集,Msg對應該聚類模塊中BE的相關集。
按照面向服務設計的基本原理,服務設計必須有助于最大限度地發揮服務的優勢。通常在服務設計中,主要考慮的約束因素為:粒度適中,低耦合度,高內聚度,可重用性,便于維護。
由于影響服務優化設計的因素多且相互關聯,因此對于復雜的業務模型,依靠人工、定性的方法對C/U矩陣進行聚類分析難以滿足設計要求。
根據基于業務模型通過聚類方法提取服務的特點,將多制約因素的聚類問題轉化為一個多目標最優求解的數學問題,通過對C/U矩陣的定量化處理,綜合考慮服務設計的多個約束因素,構建優化的目標函數,通過目標函數自動化求最優解,最終形成最優的聚類方案,即服務提取方案。
為便于定量化計算,將C/U矩陣各單元的操作變為量化的數值。量化規則是:若矩陣單元元素為C或U,則單元的值設為1,否則設為0。在實際應用中,建立C/U矩陣也可劃分為創建(Create)、讀取(Read)、更新(Update)和刪除(Delete)等4類,并針對4類操作定量化4個數值。
在前面提出的服務設計約束原則中,服務的重用性與粒度設計是相關的,粒度小的服務重用性高。可維護性與耦合度密切相關,耦合度低的服務可維護性好。為簡化求解問題,本文重點考慮耦合度、內聚度和粒度3個測度因素。
(1)內聚度
內聚度指服務內部功能以及數據關系緊密程度。服務內聚度越高,服務設計質量越高,它與聚類模塊中各單元的相關性有關。
設聚類模塊

定義聚類Clusterk的內聚度coh(k)為

式中,mij表示C/U矩陣各單元操作量化后的數值。
假設針對業務模型的C/U矩陣形成的聚類方案C中包含N個聚類模塊,即共提取N個服務,則該聚類方案的內聚度為

根據式(1)和式(2),0<coh(k)≤1,0<Coh(C)≤1。
(2)耦合度
耦合度主要指服務之間的關聯關系,即聚類模塊之間的相互關系。服務之間關聯性越小,則耦合度越低,服務設計質量越高。對于表2所示的服務聚類結果來說,假設S1和S2是兩個聚類,表中的兩個陰影部分體現S1和S2之間的關系,S1和S2的耦合程度由這兩個陰影部分單元的操作決定。如果陰影部分單元值全為0,則S1和S2之間沒有數據交互關系,則它們的耦合度為0。同理,如果陰影部分區域內非0的單元數越多,說明S1和S2之間的關聯性越大,即耦合度越大。

表2 服務聚類結果示例


根據式(3)和式(4),0<Cou(m,n)≤1,0<Cou(C)≤1。
(3)粒度
粒度主要反映聚類中包含的業務活動和邏輯數據的多少。粒度直接影響服務的重用性。
服務包含的業務活動和邏輯數據數量越多,說明服務的粒度越大,Gk越小。如果聚類Clusterk只包含1個業務活動和1個邏輯數據實體時,聚類對應的服務粒度越小,則Gk=1,達到最大值。
假設聚類方案中共包括N個服務,則這種聚類方案的粒度為

根據式(5)和式(6),0<Gk≤1,0<G≤1。
上面討論的3個因素相互制約和影響。基于構建的C/U矩陣通過聚類來提取服務體系,就是要綜合考慮上述影響因素,在這些影響因素中找到一個最佳的折中點。為此,將聚類提取服務問題轉換為一個多目標求最優解的問題。耦合度最小最優,內聚度最大最優,粒度最小最優。
構建優化目標函數

式中,C表示聚類方案;Z(C)為目標函數。考慮到耦合度、內聚度和粒度目標值的特點,定義函數f為

針對目標函數的特點,采用模擬退火算法進行優化求解[9]。模擬退火算法求解步驟如下所示。
輸入C/U矩陣,指標權重ωi(i=1,2,3)。
總之,文山州農村地區因受社會經濟、文化教育、傳播工具和交通條件等諸多因素影響,農村居民較少有機會接受無償獻血知識方面的宣傳,所以對無償獻血認識不足。只有加大農村無償獻血的宣傳力度,采取形式多樣的宣傳方式對農村進行宣傳,重點普及血液生理知識和無償獻血優惠政策,以提高無償獻血知曉率,破除舊思想、轉變新觀念、消除獻血染病等顧慮,才能提高農民無償獻血的積極性,壯大農民無償獻血隊伍,全面協調地推動文山州無償獻血工作的發展。
輸出聚類方案,滿足特定需求的聚類集合。
步驟1設置輸入參數和迭代次數。
步驟2隨機生成一個解決方案,作為Current方案
在1~#row之間生成一個隨機數作為服務的個數并賦值給變量CurrentSerυice;
等概率為每一行分配一個服務編號;
等概率為每一列分配一個服務編號;
掃描每一列分配的服務編號,若該服務編號不屬于行服務編號集,則重新分配該列服務號直至滿足條件;
將最終的服務個數更新給CurrentSerυice。
步驟3隨機生成一個相對于當前方案的候選方案
在0~CurrentSerυice之間隨機生成一個數,加1后賦值給變量NextSerυice;
隨機選擇一行和一列做為候選行和候選列;
將選擇的候選行和候選列的服務號更新為NextSerυice;
掃描每一列分配的服務編號,若該服務編號不屬于行服務編號集,則重新分配該列服務編號直至滿足條件;
掃描每一行分配的服務編號,若該服務編號不屬于列服務編號集,則重新分配該行服務編號直至滿足條件。
步驟4分析目標函數的變化,ΔE=Z(next)-Z(cuurent)。
步驟5若ΔE≥0,則用候選方案取代當前方案;若ΔE<0,則候選方案以概率eΔE/T取代當前方案。
步驟6T=1/迭代次數。
步驟7對于給定的迭代次數重復步驟3~步驟6。
為驗證上述方法的可行性,選用文獻[1]中表1定義的CRUD矩陣進行案例分析。該CRUD矩陣是以美軍后勤業務為背景建立的,其中定義了Create、Read,Update,Delete等4種操作。該CRUD矩陣具體值可參看文獻[1]。
在案例研究中,不區分文獻[1]表1中單元的Read,Update,Delete 3種操作,將這3種操作統一定義為Use操作,這樣將原來的CRUD矩陣簡化為C/U矩陣。針對修改后的C/U矩陣,利用前面提供的算法進行最優化求解。優化求解采用Matlab平臺實現,聚類結果如圖1所示。其中圖1中第一行和第一列的數字N表示對應文獻[1]表1中第N行(或列)的過程或數據,設ω1=0.4,ω2=0.3,ω3=0.4。
通過聚類計算后得到服務數量為5個(對應圖中5個陰影區域),如圖1所示。圖2是最優化求解算法的收斂速度。

圖1 聚類后的C/U矩陣

圖2 最優化求解算法的收斂速度
本文提出一種通過聚類分析提取服務的方法,將聚類分析提取服務轉化為多目標優化求解的問題,建立了目標函數,給出求解方法。這種方法能夠為服務提取提供自動化的、定量化分析方法,提高服務體系設計的科學性和效率。
服務提取是面向服務設計中的核心問題。本文提出的聚類分析方法是以業務活動與邏輯數據模型之間的關系為基礎,主要是從數據關系測角度來進行聚類分析。業務活動執行的過程對服務設計有較強的影響,在內聚度、耦合度、粒度等方面都應該考慮。因此充分結合數據和流程兩方面建立目標函數能夠更高效地設計服務體系。同時,在現有方法的基礎上,可以探索服務接口關系的自動化生成方法。
[1]Nyamekye K.Methodology of designing and evaluating reliability of the DoD net_centric ecosystem[J].International Test and Eυaluation Association Journal,2010,31(3):399-409.
[2]Arsanjani A,Ghosh S,AllamA,et al.SOMA:a method for developing service-oriented solutions[J].IBMSystems Journal,2008,47(3):377-396.
[3]Jamshidi P,Teimourzadegan R,Nikravesh A,et al.An automated method for service specification[C]//Proc.of the ACM/ IEEE International Conference on Software Engineering and Warm up Workshop,2009:25-28.
[4]Jamshidi P,Khoshnevis S,Teimourzadegan R,et al.Toward automatic transformation of enterprise business model to service model[C]//Proc.of the International Conference on Software Engineering Workshop on Principles of Engineering Serυice Oriented System,2009:70-74.
[5]Khoshnevis S,Jamshidi P,Nikravesh A,et al.ASMEM:a method for automating model evolution of service-oriented systems[R].CMU/SEI-2010SR004.
[6]Zhang L J,Zhou N,Chee YM,et al.SOMA-ME:a platform for the model-driven design of SOA solutions[J].IBM Systems Journal,2008,47(3):397-413.
[7]Jain H,Zhao H,Chinta N R.A spanning tree based approach to identifying web services[J].Web Serυice Research,2004,1(1):1-20.
[8]Wang X Z,Wang Z J,Xu X F.Semi-empirical service composition:a clustering based approach[C]//Proc.of the IEEE International Conference on Web Serυices,2011:219-226.
[9]Jamshidi P,Mansour S,Sedighiani S,et al.An automated service identification method[R].TR-ASER-2012-01.
[10]Jain H,Chalimeda N,Lvaturi N,et al.Business component identification:a formal approach[C]//Proc.of the 5th IEEE International Conference on Enterprise Distributed Object Computing,2001:183-187.
[11]Fayad M E.Accomplishing software stability[J].Communications of the ACM,2002,45(1):111-115.
[12]Lee J K,Jung S J,Kim S D.Component identification method with coupling and cohesion[C]//Proc.of the 8th Asia-Pacific Software Engineering,2001:79-86.
[13]MenascéD A,Casalicchio E,Dubey V.On optimal service selection in service oriented architectures[J].Performance Eυaluation,2010,67(8):659-675.
Research on automatic identification method for key elements of service in C4ISR based on clustering
LUO Ai-min,SHI Ding
(Department of Information System and Management,Science and Technology on Information Systems Engineering Laboratory,National Uniυersity of Defense Technology,Changsha 410073,China)
A key process in the design of the service oriented architecture(SOA)system is to identify application level service from business models.An automated service identification method is provided based on clustering.Based on the business model of the C/U matrix,service identification is formulated as a multi-objective optimization problem.An optimization objective function is presented that derives service design principles,such as coupling,cohesion,reusability and maintainability,and the solving method of the simulated annealing optimization is provided.A case is given to illustrate the method.
service;clustering;coupling;cohesion
TP 303
A
10.3969/j.issn.1001-506X.2016.05.17
1001-506X(2016)05-1081-05
2015-02-02;
2015-08-16;網絡優先出版日期:2015-12-23。
網絡優先出版地址:http://www.cnki.net/kcms/detail/11.2422.TN.20151223.1111.024.html
國家自然科學基金(71171197)資助課題
羅愛民(1970-),女,教授,博士,主要研究方向為信息系統工程。
E-mail:amluo@nudt.edu.cn
施鼎(1991-),男,碩士研究生,主要研究方向為信息系統工程。
E-mail:1148307406@qq.com