国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于代數(shù)規(guī)約的面向服務(wù)集成方法?

2019-03-01 02:52:10劉冬梅何娟娟
計算機與數(shù)字工程 2019年1期
關(guān)鍵詞:關(guān)聯(lián)邏輯矩陣

蘭 斌 劉冬梅 陳 穎 何娟娟

(南京理工大學(xué)計算機科學(xué)與工程學(xué)院 南京 210094)

1 引言

面向服務(wù)計算(Service-oriented Computing,SOC)是一種新興的分布式計算范型,它使用面向服務(wù)架構(gòu)(Service-oriented Architecture,SOA),通過整合服務(wù)來構(gòu)建軟件解決方案[1]。SOA支持更加快速地開發(fā)業(yè)務(wù)流程以及更加輕松地對業(yè)務(wù)流程進(jìn)行改變,可以使組織更迅速地適應(yīng)他們業(yè)務(wù)環(huán)境的改變。Web服務(wù)憑借其平臺無關(guān)、軟件模塊松耦合性、異構(gòu)平臺互通性和高重用性等特征成為了SOA實現(xiàn)的首要選擇。

受到面向服務(wù)趨勢的影響,許多現(xiàn)有的非面向服務(wù)軟件系統(tǒng)為了更靈活、更快地響應(yīng)不斷改變的消費者需求,將進(jìn)行面向服務(wù)的重新設(shè)計和集成。目前對Web服務(wù)已經(jīng)有了比較充分的研究,對服務(wù)接口模型的設(shè)計以及服務(wù)組合的建模研究,成果豐碩[2~3]。但在面向服務(wù)集成的靈活性上還存在一些問題,一方面以逆向工程技術(shù)為主的白盒方法從現(xiàn)有代碼中恢復(fù)業(yè)務(wù)邏輯,再根據(jù)業(yè)務(wù)邏輯開發(fā)全新的Web服務(wù)。雖然提高了依賴源代碼的事務(wù)處理效率,但業(yè)務(wù)邏輯恢復(fù)難以保證完整性,同時通過源代碼侵入系統(tǒng)容易影響系統(tǒng)的穩(wěn)定性。另一方面以形式化技術(shù)為主的黑盒方法通過適配器來傳輸請求數(shù)據(jù)和應(yīng)用程序響應(yīng)數(shù)據(jù)。雖然避免了侵入系統(tǒng)內(nèi)部,但通用性和響應(yīng)變更的及時性方面都不夠理想。因此,面向服務(wù)集成仍是當(dāng)前研究的熱門課題。

本文分析服務(wù)集成的白盒與黑盒方法,提出一種基于代數(shù)規(guī)約的灰盒方法。首先在系統(tǒng)的形式化描述的基礎(chǔ)上,結(jié)合數(shù)據(jù)流分析提取系統(tǒng)的核心業(yè)務(wù)邏輯,其次將改進(jìn)的聚類分析算法應(yīng)用于服務(wù)鑒別,然后設(shè)計和開發(fā)新的功能組件來實現(xiàn)服務(wù)功能,最后通過實際的應(yīng)用案例和實驗分析驗證了本文方法的有效性。

2 相關(guān)工作

現(xiàn)有的研究中,面向服務(wù)集成的方法主要分為黑盒方法和白盒方法兩大類[4]。

黑盒方法是通過適配器來傳輸請求數(shù)據(jù)和應(yīng)用程序響應(yīng)數(shù)據(jù),解決了系統(tǒng)和集成環(huán)境接口不匹配的問題從而實現(xiàn)系統(tǒng)面向服務(wù)集成[5~6]。Mehta等通過一個細(xì)粒度的組件模型明確定義應(yīng)用程序界面,以遞增的方式實現(xiàn)面向服務(wù)集成[9]。Canfora等通過屏幕抓取技術(shù)動態(tài)分析用戶交互行為,收集系統(tǒng)返回的屏幕序列和交換的消息并分類包裝在SOA接口中作為Web服務(wù)來被訪問[7]。Li等提出了一種基于有窮狀態(tài)自動機描述的黑盒系統(tǒng)的服務(wù)集成方案[8],給出了包裝方案的參考模型,并對模型內(nèi)的主要包裝組件的功能進(jìn)行了描述。在理想情況下,這種集成方法僅分析應(yīng)用程序界面,忽略系統(tǒng)的內(nèi)部構(gòu)件。但是由于系統(tǒng)的多樣性和消費者需求的不斷變化,這種方法在通用性和響應(yīng)需求變更的及時性方面都存在問題。在許多情況下,借助白盒現(xiàn)代化工具研究待集成系統(tǒng)的內(nèi)部結(jié)構(gòu)是很重要的。

白盒方法通過逆向工程技術(shù)從現(xiàn)有代碼中恢復(fù)業(yè)務(wù)邏輯,然后根據(jù)業(yè)務(wù)邏輯開發(fā)全新的Web服務(wù)[10]。Chen等使用特征分析來實現(xiàn)面向服務(wù)的集成[12],特征分析包括識別系統(tǒng)特征、構(gòu)建特征模型,以及通過特征定位技術(shù)在待集成系統(tǒng)中定位特征的實現(xiàn)。Li Xiang等針對Java語言的面向?qū)ο笙到y(tǒng)構(gòu)造了一種描述軟件行為和依賴關(guān)系的圖模型,并在此基礎(chǔ)上給出了面向服務(wù)的系統(tǒng)分解算法[11]。Alahmari等從服務(wù)粒度出發(fā),定義7種不同粒度的服務(wù)原模型。通過描述業(yè)務(wù)程序的業(yè)務(wù)邏輯和對實體的CRUD操作,結(jié)合原模型來定位候選服務(wù)的粒度和數(shù)量[13~14]。這種集成方法簡化了系統(tǒng),節(jié)省了維護(hù)費用,并提高了依賴源代碼的事務(wù)處理效率。但是這種方法很難完美地恢復(fù)業(yè)務(wù)邏輯,通過源代碼侵入系統(tǒng)后系統(tǒng)的穩(wěn)定性也存在問題。

Zhang等綜合前兩種方法提出了灰盒的集成方法[17],將面向?qū)ο蟪绦蛑械暮瘮?shù)、過程和類定義為要聚類的實體,根據(jù)標(biāo)識符名稱來定義特征,采用更加強調(diào)功能的分層聚類方法提取服務(wù)。后續(xù)又提出高層次的形式概念分析和低層次的程序切片分析組合實現(xiàn)服務(wù)提?。?6],形式概念分析捕獲可重復(fù)使用的代碼段、基于符號有向圖的切分算法剔除無用代碼并調(diào)整實現(xiàn)實體的松耦合組件化。該方法雖然能夠準(zhǔn)確地定位功能代碼塊,但后續(xù)的服務(wù)提取操作仍對系統(tǒng)有一定的入侵性,很難保證不會對系統(tǒng)的穩(wěn)定性造成影響。

在已有的研究中,形式化方法憑借其準(zhǔn)確、規(guī)范的描述和驗證軟件系統(tǒng)行為和性能的優(yōu)勢被廣泛地采用。由于代數(shù)規(guī)約高度抽象、完全獨立于實現(xiàn)細(xì)節(jié),很適合對系統(tǒng)進(jìn)行抽象描述。本文以系統(tǒng)的代數(shù)規(guī)約描述為基礎(chǔ),將描述類的類子模型定義成聚類的實體,根據(jù)類和業(yè)務(wù)邏輯的關(guān)聯(lián)定義特征,采用改進(jìn)的聚類分析算法提取服務(wù),最后基于業(yè)務(wù)邏輯設(shè)計和開發(fā)實現(xiàn)服務(wù)功能的新組件。與之前的研究相比,本文提出的方法更少對系統(tǒng)進(jìn)行入侵,保證穩(wěn)定性的同時具有更高的靈活性。

3 基于代數(shù)規(guī)約的面向服務(wù)集成

基于代數(shù)規(guī)約的面向服務(wù)集成主要分為三個步驟:“自底向上”的代數(shù)規(guī)約描述類結(jié)合“自頂向下”的邏輯分析用于系統(tǒng)的理解與分析、聚類分析方法用于服務(wù)的鑒別、服務(wù)封裝技術(shù)用于服務(wù)的封裝,最后將非面向服務(wù)系統(tǒng)集成到SOA中作為Web服務(wù)并驗證服務(wù)功能。

3.1 系統(tǒng)的理解與分析

在面向服務(wù)環(huán)境下,服務(wù)集成是面向數(shù)據(jù)和功能的,因此系統(tǒng)的理解與分析主要分為面向數(shù)據(jù)的“自底向上”類描述和面向功能的“自頂向下”邏輯分析,如圖1。

圖1 面向服務(wù)集成系統(tǒng)理解圖

3.1.1 “自底向上”的類描述

本文采用代數(shù)規(guī)約語言SOFIA對系統(tǒng)進(jìn)行語義描述,稱之為系統(tǒng)的類子模型。SOFIA是Liu等在大量案例研究的基礎(chǔ)上提出的面向服務(wù)軟件的代數(shù)規(guī)約語言[20],它由若干個規(guī)約單元構(gòu)成,每個規(guī)約單元描述一個類子Sort。

定義1(類子模型)三元組

R(Relation)表 示 類 之 間 的 關(guān) 系 ,R=Si,Sj,r ,Si,Sj表示第i、j個類,r表示兩個類間具體的關(guān)系,包括extends關(guān)系和uses關(guān)系。

A(Attribute)表示類的成員變量,包過類變量和實例變量。

O(Operation)表示類的函數(shù),包過除構(gòu)造函數(shù)及成員變量get/set函數(shù)之外的所有成員函數(shù)。

以第4節(jié)中MTAC類描述中的FunctionExpression類子模型為例,其主要的SOFIA語言規(guī)約如下:

Spec FunctionExpression;

extends Expression;

uses String,F(xiàn)unction,Expression,Namespace,Bool,

VariableExpression,Integer,Vector;

Attr

name:String;

function:Function;

args:Expression;

Operation

simplify(Namespace,Bool):Expression;

differentiate(Namespace,VariableExpression):Expression;

toString(Integer):String;

prettyPrint(String,Integer,Integer):PrettyPrintBox;

getAllVariables(Vector):void;

equals(Object):Bool;

hashCode():Integer;

End

為了更好地區(qū)分類子模型間的關(guān)系,我們將uses關(guān)系分為Attribute-uses關(guān)系和Operation-uses關(guān)系。以FunctionExpression類子模型為例,它與Expression呈extends關(guān)系;與Function和Variable-Expression分別呈Attribute-uses關(guān)系和Operation-uses關(guān)系。

通過對源代碼數(shù)據(jù)流分析得到系統(tǒng)核心流程圖。核心流程圖由數(shù)據(jù)、過程和決策組成,是系統(tǒng)核心功能流程的體現(xiàn)。數(shù)據(jù)是過程的輸入輸出,過程是系統(tǒng)功能實現(xiàn)的基本組成部分,決策是數(shù)據(jù)分流的依據(jù)。

結(jié)合核心流程圖對類子模型進(jìn)行精簡。剔除與核心流程圖中數(shù)據(jù)、過程和決策無關(guān)的類。這些類是面向?qū)ο笙到y(tǒng)常用的如用戶界面、彈窗提示等功能的實現(xiàn)類,在服務(wù)鑒別過程中不需要用到這些類。此操作不對源代碼做任何的修改,只是從類子模型中剔除這些無關(guān)類,降低類子模型的復(fù)雜度,從而加快后續(xù)處理的速度。

3.1.2 “自頂向下”的邏輯分析

計算系統(tǒng)核心流程圖中除去循環(huán)決策之后的圈復(fù)雜度,根據(jù)流程圖的圈復(fù)雜度確定基本路徑,基本路徑集合表示為P={p1,p2,…,pk},其中 pk表示第k條基本路徑。

通過閱讀已有的系統(tǒng)開發(fā)文檔、人工操作、用戶評價等方式理解系統(tǒng)核心功能,結(jié)合核心流程圖中的基本路徑設(shè)計相應(yīng)的操作用例驗證核心功能的正確性并分析得出系統(tǒng)的業(yè)務(wù)邏輯,業(yè)務(wù)邏輯集合表示為L={ }bl1,bl2,…,blk,其中blk表示第k個業(yè)務(wù)邏輯。

3.2 服務(wù)鑒別

聚類技術(shù)已經(jīng)在許多學(xué)科中廣泛應(yīng)用多年。聚類分析是根據(jù)數(shù)據(jù)集的大小關(guān)系和相似度,將數(shù)據(jù)集中的實體組合成群集。應(yīng)用聚類分析前,需要定義聚類實體集、兩個實體之間的相似度和一個聚類算法。應(yīng)用聚類分析后,需要對結(jié)果進(jìn)行評估和解釋[18]。本文在系統(tǒng)理解與分析的基礎(chǔ)上改進(jìn)聚類算法用于服務(wù)鑒別。

3.2.1 改進(jìn)的聚類分析算法

從系統(tǒng)核心流程圖來看,每個核心流程實際上是過程調(diào)用數(shù)據(jù)來完成特定的系統(tǒng)部分業(yè)務(wù)邏輯。業(yè)務(wù)邏輯是對業(yè)務(wù)實體及相關(guān)業(yè)務(wù)規(guī)則的封裝,可以通過類子模型來描述。因此,本文在提取業(yè)務(wù)邏輯的時候選用的X樣本點集合是以類子模型為基礎(chǔ),以類子模型間依賴關(guān)系的強度作為關(guān)聯(lián)值。本文定義“關(guān)鍵類子模型”與“非關(guān)鍵類子模型”,作為關(guān)聯(lián)值矩陣的行和列,進(jìn)行關(guān)聯(lián)值計算。

關(guān)鍵類子模型,是指從核心流程圖中挑選出核心的、關(guān)鍵的類子模型,挑選的原則是分清業(yè)務(wù)相關(guān)類子模型的主次關(guān)系。我們依據(jù)核心流程圖中業(yè)務(wù)邏輯相關(guān)過程來確定關(guān)鍵類子模型,如果某類子模型涉及到的過程權(quán)重較大,即該類子模型用于實現(xiàn)核心的功能業(yè)務(wù),則將其作為“關(guān)鍵類子模型”的候選者。除去關(guān)鍵類子模型之外的其他類子模型稱為非關(guān)鍵類子模型。改進(jìn)算法如下:

輸入:代數(shù)規(guī)約語言SOFIA描述的類子模型

輸出:作為服務(wù)的類子模型集合

算法過程:

1)劃分m個“關(guān)鍵類子模型”的樣本點記為X={Xi}(i=1,2,…m);劃分n個“非關(guān)鍵類子模型”的樣本點記為X={Xj}(j=1,2,…n);

2)求任意兩個樣本點的過程關(guān)聯(lián)值Pij和業(yè)務(wù)邏輯關(guān)聯(lián)值Lij;

3)計算m+n個樣本點的關(guān)聯(lián)值Vij,得到以 Xi為行,Xj為列的關(guān)聯(lián)值矩陣D;

另一類研究則是以溫特為代表的建構(gòu)主義理論。溫特將文化定義為“社會共有知識”,包括微觀結(jié)構(gòu)中的共同知識和宏觀結(jié)構(gòu)中的集體知識。他認(rèn)為,大部分國家所處的重要結(jié)構(gòu)是由觀念而不是物質(zhì)力量構(gòu)成的。國際生活的特征取決于國家與國家之間相互存有的信念和期望,即霍布斯、洛克、康德三種文化哪一種占主導(dǎo)地位。它們分別基于三種角色關(guān)系,即:敵人、競爭對手、朋友。而共有觀念形成后則會塑造國家的身份,進(jìn)而影響其利益與行為。[9]

4)設(shè)定閾值Vmin;

5)ifVij≥Vmin,thenXiXj放 入 一 個 聚 集(∈collect i);

6)ifXiXk∈collect iandXkXj∈collect i,then XiXkXj∈ collect i;

7)將collect i轉(zhuǎn)化為作為服務(wù)的類子模型集合。

對于某些特殊情況:1)如果類子模型對應(yīng)的所有關(guān)聯(lián)值都小于Vmin,那么有必要根據(jù)這些類子模型對應(yīng)的業(yè)務(wù)功能,將這些非關(guān)鍵類子模型單獨作為一個服務(wù)的類子模型集合或者舍去不予考慮;2)如果某個非關(guān)鍵類子模型Xj與多個關(guān)鍵類子模型Xi(i=1,2,…,m)的關(guān)聯(lián)值都相等,且都大于Vmin,則需比較所有Vij(i=1,2,…,m)的大小,然后將Xj分配給Vij值最大的那個關(guān)鍵類子模型。

3.2.2 確定關(guān)聯(lián)值

由于業(yè)務(wù)邏輯和類子模型不是孤立存在的事物,它們通過相互作用以完成系統(tǒng)特定的功能需求。綜合考慮以上因素,本文提出關(guān)聯(lián)值計算公式:其中Ip和Il分別代表Pij和Lij的權(quán)重系數(shù),根據(jù)兩者在具體系統(tǒng)的相對重要性來確定數(shù)值。Pij表示過程關(guān)聯(lián)值,Lij表示業(yè)務(wù)邏輯關(guān)聯(lián)值,關(guān)聯(lián)值Vij為兩者加權(quán)和。

類子模型間的過程關(guān)聯(lián)主要通過類子模型關(guān)系來表示,因此,我們需要依據(jù)類子模型來計算類間的過程關(guān)聯(lián)值。3.1.1介紹了類子模型間的關(guān)系,本文設(shè)定extends關(guān)系為類子模型間最緊密的關(guān)系,其過程關(guān)聯(lián)值為3;uses關(guān)系中的Attribute-uses關(guān)系為次緊密關(guān)系,其過程關(guān)聯(lián)值為2;uses關(guān)系中的Operation-uses關(guān)系為微緊密關(guān)系,其過程關(guān)聯(lián)值為1;除以上三種關(guān)系之外的皆為稀疏關(guān)系,過程關(guān)聯(lián)值為0。

除了需要確定類子模型間的過程關(guān)聯(lián)值以外,還需要結(jié)合系統(tǒng)核心流程圖和業(yè)務(wù)邏輯來計算類子模型間的業(yè)務(wù)邏輯關(guān)聯(lián)值。業(yè)務(wù)邏輯關(guān)聯(lián)值的計算公式如下:

我們以關(guān)鍵類子模型和非關(guān)鍵類子模型作為矩陣的行和列,分別計算其過程關(guān)聯(lián)值表Pij和業(yè)務(wù)邏輯關(guān)聯(lián)值Lij,得到過程關(guān)聯(lián)值矩陣和業(yè)務(wù)邏輯關(guān)聯(lián)值矩陣,最后,由關(guān)聯(lián)值計算公式Vij=Ip×Pij+Il×Lij計算得到關(guān)聯(lián)值矩陣D。由于在業(yè)務(wù)邏輯關(guān)聯(lián)值的計算中往往一個業(yè)務(wù)邏輯涉及多個類子模型,我們設(shè)定閾值公式:

3.3 服務(wù)封裝

從本質(zhì)上說,封裝就是將非面向服務(wù)系統(tǒng)中的業(yè)務(wù)邏輯包裝成Web服務(wù),使這些Web服務(wù)能對外提供服務(wù)[15]。封裝者可以直接調(diào)用系統(tǒng)的事務(wù)處理程序,接收返回的結(jié)果再傳給Web服務(wù)的消費者,為此封裝者要知道系統(tǒng)中事務(wù)所能完成的工作以及輸入輸出參數(shù)。服務(wù)的封裝包括以下步驟:

1)新功能組件的開發(fā)

識別后的服務(wù)需要經(jīng)過封裝形成Web服務(wù)??紤]到系統(tǒng)的穩(wěn)定性,開發(fā)實現(xiàn)了服務(wù)的功能的新功能組件來作為SOA和系統(tǒng)底層實現(xiàn)的中間層結(jié)構(gòu),實現(xiàn)松耦合組件化的同時保證了系統(tǒng)的穩(wěn)定性。按照自底向上的原則,先實現(xiàn)簡單服務(wù)的功能組件,然后根據(jù)組合服務(wù)的調(diào)用關(guān)系在簡單服務(wù)功能組件的基礎(chǔ)上組合開發(fā)實現(xiàn)組合服務(wù)功能。

2)服務(wù)接口的開發(fā)

服務(wù)接口開發(fā)主要分為消息類型的定義和服務(wù)的描述。根據(jù)新功能組件的輸入輸出類型定義服務(wù)對應(yīng)的輸入輸出消息類型。通過Web服務(wù)描述語言(WSDL)對服務(wù)功能、服務(wù)可以支持的操作,以及每個操作接受和返回的參數(shù)進(jìn)行描述。

3)消息的傳輸

因為服務(wù)是面向消息的,因此傳輸機制對于服務(wù)是必需的。SOAP使用基于XML的數(shù)據(jù)結(jié)構(gòu)和超文本傳輸協(xié)議(HTTP)的組合定義了一個標(biāo)準(zhǔn)的方法來使用Internet上各種不同操作環(huán)境中的分布式對象。因此要實現(xiàn)Web服務(wù)需集成SOAP處理器以支持消息在Web上的傳輸。

4 應(yīng)用實例:MTAC

本文選取開源軟件MTAC(More than a Calculator)進(jìn)行服務(wù)集成。MTAC是一個功能強大、小而易用的數(shù)學(xué)計算工具軟件,它具有計算、求導(dǎo)和函數(shù)圖像繪制等功能。它的很多功能都能作為Web服務(wù)集成在面向服務(wù)環(huán)境中。

經(jīng)過初步的類子模型描述得知MTAC由72個類、5869行代碼組成。其中抽象類個數(shù)為3、總方法數(shù)為293、總屬性數(shù)為168。如表1所示。

表1 MTAC類子模型度量

通過對源代碼進(jìn)行數(shù)據(jù)流分析得到系統(tǒng)核心流程圖,如圖2所示。由圖可知,MTAC核心過程分為表達(dá)式解析、數(shù)字運算、功能運算和求導(dǎo)運算;核心數(shù)據(jù)為表達(dá)式;核心決策為表達(dá)式類型決策、變量個數(shù)決策、求導(dǎo)決策和計算完成決策。根據(jù)3.1.1節(jié)類子模型精簡原則,我們剔除了8個系統(tǒng)主界面類子模型、12個功能界面類子模型、8個異常類子模型、3個靜態(tài)內(nèi)部類子模型和1個主程序入口類子模型。精簡后的類子模型規(guī)模大小為40,包含兩個抽象類。

圖2 MTAC核心流程圖

從系統(tǒng)核心流程圖中除去循環(huán)決策之后的圈復(fù)雜度為4,因此可以確定基本路徑有4條,圖2中以 pi(i=1,2,3,4)表示4條基本路徑。

通過閱讀程序說明文檔和人工對程序進(jìn)行操作等面向功能的“自頂向下”的邏輯分析,結(jié)合核心流程圖中的基本路徑得出以下4個業(yè)務(wù)邏輯:

1)純數(shù)字的數(shù)字表達(dá)式運算業(yè)務(wù)邏輯bl1;

2)單個變量的求導(dǎo)運算業(yè)務(wù)邏輯bl2;

3)多個變量的功能表達(dá)式運算業(yè)務(wù)邏輯;

4)單個變量的功能表達(dá)式運算業(yè)務(wù)邏輯。

其中3)、4)業(yè)務(wù)邏輯涉及的類子模型是相同的,因此我們將3)、4)合并成一個業(yè)務(wù)邏輯:

變量的功能表達(dá)式運算業(yè)務(wù)邏輯bl3

為了清晰可見,本文實驗過程中將Function的25個子類按照功能特性合并成3個類子模型用作聚類分析,分別以Function1(S16)、Function2(S17)和Function3(S18)表示。MTAC參與聚類分析的類子模型和類的對應(yīng)關(guān)系如表2所示。

表2 MTAC類子模型度量

按照3.2.1關(guān)鍵類子模型的挑選原則選取“關(guān)鍵類子模型”,結(jié)果用集合{Si}(i=4,5,9,12)表示;其余類子模型為“非關(guān)鍵類子模型”,結(jié)果用集合{Sj}( j=1,2,3,6,7,8,10,11,13,14,15,16,17,18)表示。

根據(jù)本文3.2.2節(jié)過程關(guān)聯(lián)值設(shè)定規(guī)則,分析關(guān)鍵類子模型和非關(guān)鍵類子模型之間的關(guān)系,得到過程關(guān)聯(lián)值矩陣1。

矩陣1過程關(guān)聯(lián)值矩陣

下面求類子模型之間的業(yè)務(wù)邏輯關(guān)聯(lián)值,由上文業(yè)務(wù)邏輯的分析過程我們得知,純數(shù)字的數(shù)字表達(dá)式運算業(yè)務(wù)邏輯bl1涉及的類子模型有S4、S5、S7、S8、S11、S15,其中對 S5、S8、S11、S15會進(jìn)行多次調(diào)用,所以對應(yīng)矩陣值為2;單個變量的求導(dǎo)運算bl2涉及的類子模型有 S2、S4、S5、S8、S9、S10、S11、S12、S13、S16,其中 S5、S9、S10、S11、S12、S13、C16需調(diào)用多次,所以對應(yīng)矩陣值為2;變量的功能表達(dá)式運算業(yè)務(wù)邏輯bl3涉及的類子模型有 S2、S4、S5、S9、S10、S11、S16、S17,其中S2、S9、S10、S11、S17進(jìn)行多次調(diào)用,同理他們的矩陣值為2。建立0-1包含矩陣(如果某業(yè)務(wù)邏輯涉及到類子模型 Si,就將 Si的矩陣值記為 1,否則記為 0),另外考慮類子模型的調(diào)用次數(shù),單次調(diào)用為1,多次調(diào)用為2。

繼續(xù)考慮每個業(yè)務(wù)邏輯 bli所占的權(quán)重,本文通過每個業(yè)務(wù)邏輯關(guān)聯(lián)的功能個數(shù)來定義Wi,比如變量的功能表達(dá)式運算W3=13/25=0.52,同理Wi={1,0.24,0.52}(i=1,2,3),將這些權(quán)值乘以0-1包含矩陣得到業(yè)務(wù)邏輯關(guān)聯(lián)矩陣,如矩陣2所示。

矩陣2業(yè)務(wù)邏輯關(guān)聯(lián)矩陣

對照矩陣2,根據(jù)式(2)計算出關(guān)鍵類子模型和非關(guān)鍵類子模型的業(yè)務(wù)邏輯關(guān)聯(lián)值Lij,結(jié)果如矩陣3所示。根據(jù)式(1)計算關(guān)聯(lián)值,取 Ip=0.4,Ip=0.6,綜合矩陣1和矩陣3,得到關(guān)聯(lián)值矩陣4。

矩陣3業(yè)務(wù)邏輯關(guān)聯(lián)值矩陣

矩陣4關(guān)聯(lián)值矩陣

根據(jù)式(3)可以計算出閾值Vmin=0.499。結(jié)果顯示,兩個關(guān)鍵類子模型S4和S9聚合了類子模型S2,但是 V42=0.856

實驗結(jié)果表明,從MTAC系統(tǒng)中可以提取以下粗粒度、松耦合的服務(wù):表達(dá)式解析服務(wù);算術(shù)表達(dá)式計算服務(wù);功能表達(dá)式計算服務(wù);表達(dá)式求導(dǎo)服務(wù)。由于業(yè)務(wù)邏輯是用戶需求功能的體現(xiàn),所以在服務(wù)提供時需要將服務(wù)進(jìn)行組合以實現(xiàn)相應(yīng)的業(yè)務(wù)邏輯,最后以組合服務(wù)的形式體現(xiàn)給用戶使用:表達(dá)式解析服務(wù)+算術(shù)表達(dá)式計算服務(wù)實現(xiàn)純數(shù)字的數(shù)字表達(dá)式運算業(yè)務(wù)邏輯、表達(dá)式解析服務(wù)+功能表達(dá)式計算服務(wù)實現(xiàn)變量的功能表達(dá)式運算業(yè)務(wù)邏輯、表達(dá)式解析服務(wù)+表達(dá)式求導(dǎo)服務(wù)實現(xiàn)單個變量的求導(dǎo)運算業(yè)務(wù)邏輯。

圖3 MTAC Web服務(wù)的WSDL描述文檔

最后,利用服務(wù)封裝技術(shù)對服務(wù)進(jìn)行封裝。在MyEclipse中創(chuàng)建了一個簡單的Web服務(wù)和Web服務(wù)客戶端,開發(fā)與服務(wù)對應(yīng)的功能組件和接口,并使用Apache Tomcat和REST框架的自下而上策略進(jìn)行部署。圖3顯示了WSDL中的MTAC Web服務(wù)的接口描述。圖4顯示了從Web服務(wù)客戶端測試生成的MTAC Web服務(wù)時的屏幕截圖。

圖4 測試生成的Web服務(wù)

5 結(jié)語

本文通過分析當(dāng)前面向服務(wù)集成方法的局限性,從業(yè)務(wù)邏輯和形式化描述系統(tǒng)出發(fā),結(jié)合聚類技術(shù)和服務(wù)封裝技術(shù)提出了一種基于代數(shù)規(guī)約的面向服務(wù)集成的灰盒方法。這種方法提供了更高的適應(yīng)性,能更好地理解系統(tǒng),使得維護(hù)變得更加簡單。通過實際的應(yīng)用案例MTAC及其實驗分析驗證了本文方法的有效性。本文的工作還有待進(jìn)一步完善。首先,人工的參與和決策在規(guī)模較大的系統(tǒng)中難以保證準(zhǔn)確性和完整性。其次,對集成后系統(tǒng)的功能驗證還僅局限于實驗參與人員的手動測試。在未來的研究中,將從服務(wù)鑒別自動化和服務(wù)驗證兩方面對本文的方法進(jìn)行優(yōu)化和改進(jìn)。一方面優(yōu)化聚類算法,提供一套可用于鑒別不同類型業(yè)務(wù)邏輯的度量準(zhǔn)則,實現(xiàn)非面向服務(wù)系統(tǒng)中服務(wù)的自動化鑒別。另一方面結(jié)合代數(shù)規(guī)約語言SOFIA在Web服務(wù)自動化測試的研究成果[18~19],對服務(wù)進(jìn)行驗證。

猜你喜歡
關(guān)聯(lián)邏輯矩陣
刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
法律方法(2022年2期)2022-10-20 06:44:24
邏輯
創(chuàng)新的邏輯
“一帶一路”遞進(jìn),關(guān)聯(lián)民生更緊
奇趣搭配
女人買買買的神邏輯
37°女人(2017年11期)2017-11-14 20:27:40
智趣
讀者(2017年5期)2017-02-15 18:04:18
初等行變換與初等列變換并用求逆矩陣
矩陣
南都周刊(2015年4期)2015-09-10 07:22:44
矩陣
南都周刊(2015年3期)2015-09-10 07:22:44
阳谷县| 怀安县| 乌鲁木齐市| 随州市| 青岛市| 杭锦旗| 巴楚县| 威远县| 西平县| 江孜县| 林口县| 吉首市| 基隆市| 阜宁县| 泸水县| 黔南| 稻城县| 碌曲县| 门源| 乌鲁木齐县| 宝坻区| 焉耆| 石屏县| 泰来县| 涟水县| 称多县| 武平县| 稷山县| 丹棱县| 博野县| 乐业县| 尚志市| 安陆市| 宁蒗| 通河县| 湘阴县| 马公市| 运城市| 河北区| 金山区| 无锡市|