王桂玲,張 峰,2,韓燕波
(1.北方工業(yè)大學(xué)云計(jì)算研究中心 北京100144;2.山東科技大學(xué)信息科學(xué)與工程學(xué)院 青島266590)
隨著Internet的快速發(fā)展和普及以及云計(jì)算的興起,數(shù)據(jù)的采集、存儲(chǔ)和傳播的數(shù)量與日俱增,但這些數(shù)據(jù)往往存儲(chǔ)在許多不同管理域的不同數(shù)據(jù)源之中。為更有效地利用這些信息,需要從多個(gè)分布、異構(gòu)和自治的數(shù)據(jù)源中集成數(shù)據(jù)。由于互聯(lián)網(wǎng)環(huán)境的開放性及動(dòng)態(tài)變化性[1,2],數(shù)據(jù)集成面臨的環(huán)境也越來越復(fù)雜。本文所探討的數(shù)據(jù)集成與傳統(tǒng)數(shù)據(jù)集成不同,其集成需求無法完全預(yù)先定義,而是即時(shí)出現(xiàn),稱為“情景數(shù)據(jù)集成”,根據(jù)即時(shí)出現(xiàn)的需求對不同來源、不同格式、不同語義、不同特點(diǎn)的數(shù)據(jù)源臨時(shí)進(jìn)行邏輯或物理上的有機(jī)集成[3]。
以公安系統(tǒng)面臨的嫌疑逃犯抓捕場景為例,各級公安干警在案件偵破過程中,要分析來自不同部門的大量數(shù)據(jù),試圖尋找有用信息。傳統(tǒng)的做法是通過查閱檔案或者直接通過常年積累的直覺經(jīng)驗(yàn),判斷眾多事件和信息之間的關(guān)聯(lián),從中發(fā)現(xiàn)有用的信息。隨著現(xiàn)代社會(huì)各部門信息系統(tǒng)的逐漸完善,公安干警逐漸可以從各類信息查詢系統(tǒng)、視頻監(jiān)控系統(tǒng)等中找尋案件線索。公安干警在定位嫌疑人的過程中,受害人信息往往易于明確,但進(jìn)一步提取信息的需求會(huì)隨著情景的變化而動(dòng)態(tài)演化。例如,當(dāng)受害人和受害地點(diǎn)確定,提取受害人的身份證信息后,可進(jìn)一步調(diào)取此受害人的社會(huì)關(guān)系信息(如移動(dòng)電話通話信息、親屬信息、QQ、微博聯(lián)系人信息、銀行卡購買記錄等通信、網(wǎng)絡(luò)多維度的相關(guān)信息)以及最近聯(lián)系人的車輛信息,通過對比事發(fā)現(xiàn)場的車牌識(shí)別歷史記錄,發(fā)現(xiàn)與此聯(lián)系人車牌一致。本案告破,此人正是兇手。
這個(gè)過程映射到軟件系統(tǒng)中,是一個(gè)對多個(gè)異構(gòu)數(shù)據(jù)源進(jìn)行抽取、轉(zhuǎn)換、查詢、連接、合并、比對等的數(shù)據(jù)集成問題。與傳統(tǒng)的數(shù)據(jù)集成不同,在此類場景中,公安干警無法事先確定提取、集成和分析哪些數(shù)據(jù)源,而只能根據(jù)當(dāng)前數(shù)據(jù)集成的結(jié)果逐步明確下一步進(jìn)行數(shù)據(jù)集成的需求。在這個(gè)過程中,數(shù)據(jù)的集成需求無法完全預(yù)先定義,是隨集成結(jié)果的逐步顯現(xiàn)而逐步明確的。用戶可以根據(jù)動(dòng)態(tài)變化的需求臨時(shí)調(diào)整數(shù)據(jù)集成的過程,這是一種典型的“情景數(shù)據(jù)集成”案例。
在這個(gè)場景中,數(shù)據(jù)來源于多個(gè)不同管理域的部門。各種部門信息系統(tǒng)的數(shù)據(jù)訪問方式、格式、語義異構(gòu),且各部門出于數(shù)據(jù)隱私保護(hù)、系統(tǒng)性能等考慮,往往不希望暴露數(shù)據(jù)源的數(shù)據(jù)模式及全部的查詢訪問信息,只允許有限制的查詢訪問。人們通常采用面向服務(wù)的數(shù)據(jù)集成技術(shù)[4],首先使用服務(wù)的方式封裝對各部門數(shù)據(jù)進(jìn)行查詢、訪問的功能,一方面可滿足部門對自身數(shù)據(jù)的保護(hù)等要求,另一方面,也有可能對異構(gòu)的數(shù)據(jù)源提供一致的訪問方式。
之前的研究提出并實(shí)現(xiàn)了一種用戶主導(dǎo)的數(shù)據(jù)服務(wù)編程方法,面向無法預(yù)先定義、即時(shí)出現(xiàn)的數(shù)據(jù)集成需求,提供數(shù)據(jù)服務(wù)的基本抽象,提出基于嵌套表格和Spreadsheet結(jié)合的數(shù)據(jù)服務(wù)編程模型及環(huán)境,使不具備專業(yè)編程知識(shí)的普通用戶可以即時(shí)進(jìn)行服務(wù)聚合[5,6]。以前數(shù)據(jù)服務(wù)的調(diào)用、結(jié)果的轉(zhuǎn)換以及處理操作完全依靠用戶手工進(jìn)行,數(shù)據(jù)服務(wù)之間的關(guān)聯(lián)關(guān)系隱含在應(yīng)用的構(gòu)造邏輯中,不利于其他用戶重用。為了方便用戶建立并重用數(shù)據(jù)服務(wù)之間的關(guān)聯(lián)關(guān)系,需要提供更加有效的手段輔助用戶顯式地描述和表達(dá)各種數(shù)據(jù)服務(wù)之間隱含的關(guān)聯(lián)關(guān)系,并可向用戶動(dòng)態(tài)地推薦,輔助用戶從各種看似無關(guān)的數(shù)據(jù)中建立關(guān)系、發(fā)現(xiàn)線索,進(jìn)行臨機(jī)決策和動(dòng)態(tài)集成。
為了顯式描述并使用服務(wù)之間的關(guān)系,可以借鑒Web頁面中超級鏈接(簡稱“超鏈”)的思想?!俺湣钡乃枷朐从诰W(wǎng)頁超級鏈接,超鏈?zhǔn)菢?gòu)成萬維網(wǎng)的關(guān)鍵要素,作為節(jié)點(diǎn)元素的一部分,卻與節(jié)點(diǎn)內(nèi)容松散耦合,具有結(jié)構(gòu)簡單、單向性、局部性[7]、松耦合、可擴(kuò)展能力和容錯(cuò)能力等很多優(yōu)良的性質(zhì)以及豐富的表達(dá)能力[8]。在Web網(wǎng)頁瀏覽中,用戶通過超鏈的導(dǎo)航,能夠自行逐步發(fā)現(xiàn)新的可用資源。而超鏈的作用并非僅限于網(wǎng)頁瀏覽,其既是面向人的,又是機(jī)器可理解的,例如在REST風(fēng)格的服務(wù)中,超鏈可用于描述應(yīng)用的狀態(tài)改變和轉(zhuǎn)移[9],從而有可能可靠地協(xié)調(diào)不同系統(tǒng)間的交互,實(shí)現(xiàn)完整的業(yè)務(wù)流程。受此啟發(fā),本文將“超鏈”的思想引入服務(wù)的設(shè)計(jì)中,希望能夠通過超鏈的支持,顯式地表達(dá)并存儲(chǔ)數(shù)據(jù)服務(wù)之間的關(guān)聯(lián)關(guān)系,使得用戶在各種服務(wù)之間簡便、快捷地導(dǎo)航,并同時(shí)完成復(fù)雜的數(shù)據(jù)集成操作,從而更好地支持人的臨機(jī)決策以加速解題的過程。
在設(shè)計(jì)一個(gè)網(wǎng)頁時(shí),提供到其他網(wǎng)頁的鏈接是事實(shí)上的標(biāo)準(zhǔn)做法。但在服務(wù)設(shè)計(jì)中,往往并不包含到其他服務(wù)或資源的鏈接,客戶端必須根據(jù)服務(wù)調(diào)用的結(jié)果,決定其下一步的行為。本文將超鏈引入數(shù)據(jù)服務(wù)模型的設(shè)計(jì)中,提出了一種具有超鏈能力的數(shù)據(jù)服務(wù)模型,用數(shù)據(jù)服務(wù)超鏈描述服務(wù)之間的前驅(qū)后繼關(guān)系,并作為建立數(shù)據(jù)服務(wù)之間有機(jī)關(guān)聯(lián)關(guān)系的核心元素。在此基礎(chǔ)上,探討了一種基于超鏈進(jìn)行數(shù)據(jù)服務(wù)即時(shí)組合的方法,并討論了超鏈智能推薦關(guān)鍵問題,以輔助用戶利用數(shù)據(jù)服務(wù)之間關(guān)聯(lián)關(guān)系的歷史,從各種看似無關(guān)的數(shù)據(jù)中建立關(guān)系,發(fā)現(xiàn)線索,進(jìn)行臨機(jī)決策。
最后,通過案例和實(shí)驗(yàn)對所提出的組合方法及其實(shí)現(xiàn)機(jī)制給予了分析和評價(jià),本文提出的基于數(shù)據(jù)服務(wù)超鏈的情景數(shù)據(jù)集成方法繼承了“超鏈”的優(yōu)良性質(zhì),支持用戶在數(shù)據(jù)服務(wù)導(dǎo)航的過程中動(dòng)態(tài)完成數(shù)據(jù)服務(wù)的組合,同時(shí)靈活支持人機(jī)決策,可以有效支持情景數(shù)據(jù)集成。
本文提出的數(shù)據(jù)服務(wù)是以提供數(shù)據(jù)資源的訪問為目的的軟件服務(wù),提供了對數(shù)據(jù)資源的抽象。數(shù)據(jù)服務(wù)之間是互相關(guān)聯(lián)的,其關(guān)聯(lián)關(guān)系通過服務(wù)超鏈顯式表征。數(shù)據(jù)服務(wù)之間的關(guān)聯(lián)關(guān)系可以有多種,本文以數(shù)據(jù)服務(wù)的輸入/輸出關(guān)聯(lián)關(guān)系為例。假設(shè)一個(gè)數(shù)據(jù)服務(wù)a輸出的一部分可作為另一個(gè)數(shù)據(jù)服務(wù)b的輸入,則客戶端可通過服務(wù)超鏈從a導(dǎo)航到b,即從應(yīng)用的一個(gè)狀態(tài)轉(zhuǎn)移到其他狀態(tài)。這里,應(yīng)用的狀態(tài)是指在某個(gè)特定的時(shí)刻系統(tǒng)中所有變量的值。例如,“受害人信息”數(shù)據(jù)服務(wù)的輸出是該受害人的唯一身份標(biāo)識(shí)ID,而“親屬關(guān)系信息”數(shù)據(jù)服務(wù)需要的輸入?yún)?shù)是某人的身份標(biāo)識(shí)ID,進(jìn)而得到該人員的親屬關(guān)系信息。兩個(gè)數(shù)據(jù)服務(wù)之間通過受害人的唯一身份標(biāo)識(shí)ID建立了關(guān)聯(lián),客戶端可以在調(diào)用“受害人信息”數(shù)據(jù)服務(wù)得到輸出結(jié)果之后,通過顯式建立的服務(wù)超鏈導(dǎo)航到“親屬關(guān)系信息”數(shù)據(jù)服務(wù),從而得到受害人的親屬關(guān)系信息。下面給出幾個(gè)關(guān)鍵的定義。
定義1(數(shù)據(jù)服務(wù))數(shù)據(jù)服務(wù)是信息系統(tǒng)對外發(fā)布數(shù)據(jù)資源的軟件服務(wù),通過數(shù)據(jù)資源封裝或組合得到,實(shí)現(xiàn)了數(shù)據(jù)資源在給定數(shù)據(jù)模型下的統(tǒng)一表示。它接收一組對該數(shù)據(jù)資源進(jìn)行HTTP標(biāo)準(zhǔn)請求的參數(shù),并返回相應(yīng)的結(jié)果數(shù)據(jù)集或響應(yīng)。一個(gè)數(shù)據(jù)服務(wù)用URI唯一標(biāo)識(shí),通過HTTP標(biāo)準(zhǔn)的方法獲取或操作數(shù)據(jù),對外暴露其輸入?yún)?shù)以及輸出的資源表述。其中,資源表述中包含了與其有單向關(guān)聯(lián)關(guān)系的數(shù)據(jù)服務(wù)超鏈及輸出的數(shù)據(jù)模式。
數(shù)據(jù)服務(wù)可表示為一個(gè)七元組(為了簡便起見,省略了對數(shù)據(jù)質(zhì)量、服務(wù)質(zhì)量以及其他非功能屬性的描述):ds=
定義2(服務(wù)超鏈)一個(gè)數(shù)據(jù)服務(wù)超鏈可表示為如下六元組:link=
定義3(原子數(shù)據(jù)服務(wù))原子數(shù)據(jù)服務(wù)是一類基本的數(shù)據(jù)服務(wù),一個(gè)原子數(shù)據(jù)服務(wù)即直接包裝數(shù)據(jù)資源得到的服務(wù),原子數(shù)據(jù)服務(wù)封裝的技術(shù)和過程不在本文的探討范圍之內(nèi),具體請參見參考文獻(xiàn)[6]。
定義4(復(fù)合數(shù)據(jù)服務(wù))復(fù)合數(shù)據(jù)服務(wù)由多個(gè)原子數(shù)據(jù)服務(wù)遵照第3節(jié)的方法即時(shí)組合而成,一個(gè)復(fù)合數(shù)據(jù)服務(wù)由多個(gè)通過數(shù)據(jù)服務(wù)超鏈關(guān)聯(lián)起來的原子數(shù)據(jù)服務(wù)構(gòu)成,對應(yīng)多個(gè)數(shù)據(jù)源查詢操作。
定義5(數(shù)據(jù)服務(wù)空間)數(shù)據(jù)服務(wù)空間是數(shù)據(jù)服務(wù)的集合,數(shù)據(jù)服務(wù)之間可能通過服務(wù)超鏈互相關(guān)聯(lián)。在一個(gè)系統(tǒng)中,新加入的原子數(shù)據(jù)服務(wù)、新生成的復(fù)合數(shù)據(jù)服務(wù)均需添加到該集合中,用戶在構(gòu)造應(yīng)用時(shí)所使用的服務(wù)全部來自于該集合。
數(shù)據(jù)服務(wù)的描述模型如圖1所示。實(shí)線框表示元素,虛線框表示屬性。表1列出了本文場景中所涉及的數(shù)據(jù)服務(wù)。
上述數(shù)據(jù)服務(wù)模型的設(shè)計(jì)思想如下。
融合了REST服務(wù)的設(shè)計(jì)思想,顯式地使用標(biāo)準(zhǔn)HTTP方法,通過數(shù)據(jù)服務(wù)超鏈完成數(shù)據(jù)服務(wù)之間的訪問,將應(yīng)用從一個(gè)狀態(tài)改變?yōu)榱硪粋€(gè)狀態(tài)。在本文提出的數(shù)據(jù)服務(wù)模型中,超鏈為什么不單獨(dú)表示,而是表示到數(shù)據(jù)服務(wù)中?這是借鑒了REST服務(wù)“超媒體作為應(yīng)用狀態(tài)引擎
(hypermedia as the engine of application state,HATEOAS)”的原則[10]。當(dāng)前客戶端對數(shù)據(jù)服務(wù)調(diào)用后,服務(wù)器以對資源的表述作為響應(yīng),其中包含一個(gè)或多個(gè)超級鏈接,用來描述下一個(gè)被允許的與服務(wù)器交互的集合??蛻舳送ㄟ^對這些超級鏈接的選擇,將應(yīng)用從一個(gè)狀態(tài)改變?yōu)榱硪粋€(gè)狀態(tài)。服務(wù)器端不保存應(yīng)用狀態(tài),提供一系列的鏈接,狀態(tài)的轉(zhuǎn)移完全由客戶端通過鏈接的選擇驅(qū)動(dòng)。借鑒這種設(shè)計(jì)思想,本文在數(shù)據(jù)服務(wù)中包含相應(yīng)的服務(wù)超鏈,通過超鏈的支持,客戶端能通過超鏈的選擇驅(qū)動(dòng)數(shù)據(jù)的操作與流轉(zhuǎn)。
圖1 數(shù)據(jù)服務(wù)描述模型
表1 “嫌疑犯確定”場景中涉及的數(shù)據(jù)服務(wù)
本文提出的數(shù)據(jù)服務(wù)將提供相應(yīng)的描述文件,支持以聲明性的方式描述數(shù)據(jù)源的基本信息以及數(shù)據(jù)服務(wù)之間的導(dǎo)航機(jī)制。以嵌套關(guān)系作為數(shù)據(jù)服務(wù)的中立數(shù)據(jù)結(jié)構(gòu),為了方便數(shù)據(jù)可視化操作,將數(shù)據(jù)資源可視化為嵌套表格的形式,具體分析見參考文獻(xiàn)[5]。
描述模型中的數(shù)據(jù)服務(wù)超鏈可以由用戶手工創(chuàng)建,也可以由機(jī)器自動(dòng)創(chuàng)建(如基于歷史記錄的方法以及信息抽取和自動(dòng)匹配的方法等),只需要將相應(yīng)的數(shù)據(jù)服務(wù)超鏈信息增加到數(shù)據(jù)服務(wù)的描述文件中即可。數(shù)據(jù)服務(wù)超鏈具體的各種自動(dòng)建立方法不在本文的探討范圍之內(nèi)。
數(shù)據(jù)服務(wù)空間提供了領(lǐng)域中的所有數(shù)據(jù)服務(wù),這些數(shù)據(jù)服務(wù)之間通過數(shù)據(jù)服務(wù)超鏈互相連接,形成一個(gè)龐大的服務(wù)網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)服務(wù)空間中的數(shù)據(jù)服務(wù)達(dá)到一定規(guī)模時(shí),將顯現(xiàn)一定的性質(zhì),如同通過網(wǎng)頁超鏈連接起來形成的Web一樣。分析數(shù)據(jù)服務(wù)空間的性質(zhì)是一個(gè)有意義的工作,但不在本文的探討范圍之內(nèi)。
本文設(shè)計(jì)的情景數(shù)據(jù)集成過程是一個(gè)復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造過程,通過基于數(shù)據(jù)服務(wù)超鏈的數(shù)據(jù)服務(wù)即時(shí)組合完成。其設(shè)計(jì)思想如下:用戶選擇并實(shí)例化當(dāng)前數(shù)據(jù)服務(wù)后,從該數(shù)據(jù)服務(wù)的數(shù)據(jù)服務(wù)超鏈集合中選擇一個(gè)數(shù)據(jù)服務(wù)超鏈,從而實(shí)例化該服務(wù)超鏈指向的下一個(gè)數(shù)據(jù)服務(wù)。以此循環(huán),直到用戶發(fā)現(xiàn)滿意的集成結(jié)果,過程終止,系統(tǒng)輸出一個(gè)復(fù)合數(shù)據(jù)服務(wù)。其形式化定義如下。
定義5(復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造過程)一個(gè)復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造過程可以表示為一個(gè)四元組
·DS={dsi|i=1,…,n}是一個(gè)有限集,由此次構(gòu)造過程中產(chǎn)生的所有數(shù)據(jù)服務(wù)實(shí)例構(gòu)成。該集合中的元素滿足:堝initDS∈DS為應(yīng)用的起始數(shù)據(jù)服務(wù)實(shí)例;坌a∈DS,堝b∈DS,使得(a,b)∈links或(b,a)∈links。每個(gè)數(shù)據(jù)服務(wù)實(shí)例有確定的狀態(tài),以dsstate表示,dsstate∈{ready,active,finished,terminated},分別表示服務(wù)實(shí)例準(zhǔn)備運(yùn)行、已啟動(dòng)、已成功完成和已終止運(yùn)行。已成功完成和已終止運(yùn)行的數(shù)據(jù)服務(wù)返回碼為標(biāo)準(zhǔn)的HTTP請求返回碼。
·States表示復(fù)合數(shù)據(jù)服務(wù)構(gòu)造和執(zhí)行過程中應(yīng)用狀態(tài)的集合,state∈States,是當(dāng)前復(fù)合數(shù)據(jù)服務(wù)構(gòu)造與運(yùn)行過程中應(yīng)用的狀態(tài),體現(xiàn)在該復(fù)合數(shù)據(jù)服務(wù)構(gòu)造和運(yùn)行過程中當(dāng)前已經(jīng)成功執(zhí)行的數(shù)據(jù)服務(wù)實(shí)例及其狀態(tài)上。
·OP是用戶操作集合,OP={selectLink,send,terminate},表示從當(dāng)前數(shù)據(jù)服務(wù)返回結(jié)果的資源表述中選擇數(shù)據(jù)服務(wù)超鏈、向數(shù)據(jù)服務(wù)超鏈指向的數(shù)據(jù)服務(wù)發(fā)送HTTP請求(get、put、delete、post等標(biāo) 準(zhǔn)操作)、終止復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造過程。op∈OP,表示當(dāng)前用戶操作。
·δ表示應(yīng)用狀態(tài)的轉(zhuǎn)移。δ(dsi,op)=dsk,表示操作op作
用于數(shù)據(jù)服務(wù)實(shí)例dsi,產(chǎn)生了新的數(shù)據(jù)服務(wù)dsk實(shí)例。狀態(tài)的轉(zhuǎn)移體現(xiàn)在該復(fù)合數(shù)據(jù)服務(wù)構(gòu)造和運(yùn)行過程中,當(dāng)前執(zhí)行的數(shù)據(jù)服務(wù)實(shí)例及其狀態(tài)的改變。以上述定義為基礎(chǔ),用狀態(tài)機(jī)圖對復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造和運(yùn)行過程進(jìn)行描述,如圖2所示,簡便起見,省略了異常情況下的應(yīng)用狀態(tài)。復(fù)合數(shù)據(jù)服務(wù)構(gòu)造和運(yùn)行過程中應(yīng)用的狀態(tài)集合為{Start,VictimInfoReady,RelativesReady,Contacts Ready,RelatedPersonReady,VehicleReady,MonitorVehicle Ready,GotSuspicious,End}。初始的數(shù)據(jù)服務(wù)實(shí)例為表1中數(shù)據(jù)服務(wù)“受害人信息”或“現(xiàn)場監(jiān)測車信息”的實(shí)例。當(dāng)“受害人信息”成功執(zhí)行后,該數(shù)據(jù)服務(wù)實(shí)例的狀態(tài)為“finished”,而相應(yīng)的應(yīng)用狀態(tài)為“VictimInfoReady”,標(biāo)識(shí)著當(dāng)前應(yīng)用已經(jīng)為下一個(gè)數(shù)據(jù)服務(wù)實(shí)例準(zhǔn)備好相應(yīng)的輸入。用戶此時(shí)從其資源表述中選擇數(shù)據(jù)服務(wù)超級鏈接“/relatives”,并向其發(fā)送HTTP get請求,觸發(fā)相應(yīng)的數(shù)據(jù)服務(wù)實(shí)例,應(yīng)用狀態(tài)改變?yōu)椤癛elativesReady”。
一旦復(fù)合數(shù)據(jù)服務(wù)構(gòu)造完畢,將自動(dòng)生成一個(gè)新的復(fù)合數(shù)據(jù)服務(wù)并對外發(fā)布,同時(shí)生成該復(fù)合數(shù)據(jù)服務(wù)構(gòu)造過程的描述文件。當(dāng)用戶訪問并執(zhí)行該復(fù)合數(shù)據(jù)服務(wù)時(shí),數(shù)據(jù)服務(wù)執(zhí)行引擎將根據(jù)該描述文件自動(dòng)化復(fù)合數(shù)據(jù)服務(wù)的執(zhí)行。
為了方便數(shù)據(jù)服務(wù)關(guān)聯(lián)關(guān)系的建立和重用,除了提供有效的手段輔助用戶手工建立數(shù)據(jù)服務(wù)超鏈之外,還可以向用戶主動(dòng)推薦數(shù)據(jù)服務(wù)超鏈,從而輔助用戶進(jìn)行臨機(jī)決策,即時(shí)進(jìn)行數(shù)據(jù)集成。
向用戶推薦數(shù)據(jù)服務(wù)超鏈的依據(jù)有兩種:基于規(guī)則或基于統(tǒng)計(jì)?;谝?guī)則的方法是領(lǐng)域?qū)<倚枰孪戎贫ú⒕S護(hù)推薦規(guī)則,通過邏輯推理得知用戶可能需要的算子;基于統(tǒng)計(jì)的方法是根據(jù)用戶構(gòu)造復(fù)合數(shù)據(jù)服務(wù)的歷史提取服務(wù)超鏈的選擇模式,并把不同模式出現(xiàn)的概率作為推薦服務(wù)超鏈的依據(jù)。相比于基于規(guī)則的方法,基于統(tǒng)計(jì)的方法無需事先制定推薦規(guī)則,可以隨著用戶構(gòu)造的復(fù)合數(shù)據(jù)服務(wù)中新型數(shù)據(jù)服務(wù)超鏈的出現(xiàn)模式進(jìn)行動(dòng)態(tài)更新,當(dāng)“數(shù)據(jù)服務(wù)空間”中積累起足夠多的數(shù)據(jù)服務(wù)超鏈,出現(xiàn)模式樣例時(shí),可實(shí)現(xiàn)相對準(zhǔn)確的推薦。因此,本文基于統(tǒng)計(jì)方法進(jìn)行數(shù)據(jù)服務(wù)超鏈的推薦。
數(shù)據(jù)服務(wù)超鏈的推薦可以轉(zhuǎn)化為條件概率的比較問題。將從數(shù)據(jù)服務(wù)a指向b的數(shù)據(jù)服務(wù)超鏈記為a→b,其中,a為該數(shù)據(jù)服務(wù)超鏈的起點(diǎn),記為aS,b為該數(shù)據(jù)服務(wù)超鏈的終點(diǎn),記為bT。對數(shù)據(jù)服務(wù)a,選擇數(shù)據(jù)服務(wù)超鏈a→b的條件概率為:
圖2 可疑數(shù)據(jù)服務(wù)對應(yīng)的狀態(tài)機(jī)示意
選擇數(shù)據(jù)服務(wù)超鏈a→c的條件概率為:
式(1)、式(2)相除,得:
用Count(x→y)表示數(shù)據(jù)服務(wù)空間中數(shù)據(jù)服務(wù)超鏈x→y的出現(xiàn)次數(shù),則:
同理,可得:
將式(4)、式(5)代入式(3),得:
因此,為數(shù)據(jù)服務(wù)a推薦某數(shù)據(jù)服務(wù)超鏈a→b的出現(xiàn)概率,等比于數(shù)據(jù)服務(wù)空間的所有超鏈中a→b出現(xiàn)的個(gè)數(shù)。根據(jù)這個(gè)結(jié)論,在推薦超鏈時(shí),通過統(tǒng)計(jì)數(shù)據(jù)服務(wù)空間中數(shù)據(jù)服務(wù)超鏈的個(gè)數(shù)對其進(jìn)行排序。
此外,還可以利用復(fù)合數(shù)據(jù)服務(wù)構(gòu)造的一些性質(zhì)提高推薦的準(zhǔn)確度。例如,復(fù)合數(shù)據(jù)服務(wù)的內(nèi)部存在數(shù)據(jù)服務(wù)超鏈組合片斷的自相似性。例如,在圖2中,利用從“受害人信息”數(shù)據(jù)服務(wù)指向“最近聯(lián)系人信息”和“親屬信息”兩個(gè)數(shù)據(jù)服務(wù)的數(shù)據(jù)服務(wù)超鏈,分別獲得受害人的親屬信息和聯(lián)系人信息,然后通過指向“合并”數(shù)據(jù)服務(wù)的服務(wù)超鏈,發(fā)送“post/union”請求將聯(lián)系人信息和親屬信息合并。在這里,由于“/union”自身的特點(diǎn),使得產(chǎn)生“/union”的輸入的數(shù)據(jù)服務(wù)超鏈組合片斷高度相似。
將復(fù)合數(shù)據(jù)服務(wù)內(nèi)部的構(gòu)造性質(zhì)稱為數(shù)據(jù)服務(wù)超鏈的局部特征,而通過整個(gè)數(shù)據(jù)服務(wù)空間內(nèi)部的數(shù)據(jù)服務(wù)超鏈計(jì)算得出的超鏈出現(xiàn)概率則體現(xiàn)了超鏈通用的使用方式,是數(shù)據(jù)服務(wù)超鏈的全局特征。
結(jié)合數(shù)據(jù)服務(wù)超鏈的局部特征和全局特征,用如下算法生成數(shù)據(jù)服務(wù)超鏈的推薦列表。
算法1數(shù)據(jù)服務(wù)超鏈推薦算法
輸入:當(dāng)前復(fù)合數(shù)據(jù)服務(wù),當(dāng)前數(shù)據(jù)服務(wù)空間,需要推薦的服務(wù)超鏈個(gè)數(shù)k。
輸出:長度為k的數(shù)據(jù)服務(wù)超鏈推薦列表。
算法流程介紹如下。
(1)利用當(dāng)前復(fù)合數(shù)據(jù)服務(wù)構(gòu)造過程中已有的數(shù)據(jù)服務(wù)超鏈片段,根據(jù)上述自相似性建立的簡化推薦規(guī)則,生成數(shù)據(jù)服務(wù)超鏈的局部推薦列表,記列表中的超鏈個(gè)數(shù)為m。
(2)若m≥k,則取前k個(gè),算法完成;若m (3)利用整個(gè)數(shù)據(jù)服務(wù)空間的數(shù)據(jù)服務(wù)超鏈,根據(jù)式(6)的概率比值計(jì)算方法,生成超鏈的全局推薦列表,從全局推薦列表中取前(k-m)個(gè)與局部推薦列表不同的數(shù)據(jù)服務(wù)超鏈,追加至局部推薦列表的末尾,該列表即最終數(shù)據(jù)服務(wù)超鏈推薦列表。 按上面的算法結(jié)合數(shù)據(jù)服務(wù)超鏈的全局特征和局部特征,可以提高服務(wù)超鏈推薦算法的準(zhǔn)確性。 以第1節(jié)介紹的場景為例,說明本文提出的基于數(shù)據(jù)服務(wù)超鏈的數(shù)據(jù)服務(wù)即時(shí)組合方法能夠滿足情景數(shù)據(jù)集成的特定需求。 公安干警小王在進(jìn)行此案件的分析時(shí),首先嘗試選用“受害人信息”數(shù)據(jù)服務(wù)并發(fā)送服務(wù)調(diào)用請求,該服務(wù)返回調(diào)用結(jié)果后,小王根據(jù)自己的辦案經(jīng)驗(yàn),嘗試選擇“最近聯(lián)系人信息”數(shù)據(jù)服務(wù),并配置其輸入?yún)?shù),建立起二者之間參數(shù)的數(shù)據(jù)關(guān)聯(lián),系統(tǒng)根據(jù)這些信息自動(dòng)建立起“受害人信息”數(shù)據(jù)服務(wù)和“最近聯(lián)系人信息”數(shù)據(jù)服務(wù)之間的數(shù)據(jù)服務(wù)超鏈。小王得到“最近聯(lián)系人信息”數(shù)據(jù)服務(wù)返回結(jié)果后,根據(jù)經(jīng)驗(yàn)進(jìn)一步選擇“親屬信息”數(shù)據(jù)服務(wù),系統(tǒng)建立起從“受害人信息”數(shù)據(jù)服務(wù)指向“親屬信息”數(shù)據(jù)服務(wù)的超鏈。此時(shí),根據(jù)前文所述的推薦算法,系統(tǒng)向其推薦“post/union”、“post/intersect”等數(shù)據(jù)服務(wù)超鏈列表,小王根據(jù)自己的辦案經(jīng)驗(yàn),從中選擇“post/union”數(shù)據(jù)服務(wù)超鏈,并配置相應(yīng)的輸入?yún)?shù)。 在上述過程中,用戶每一步都可根據(jù)當(dāng)前服務(wù)執(zhí)行請求返回的結(jié)果或系統(tǒng)推薦的數(shù)據(jù)服務(wù)超鏈進(jìn)行臨機(jī)決策,選擇下一步要請求調(diào)用的服務(wù),逐步得到滿意的結(jié)果。每一步服務(wù)執(zhí)行返回的結(jié)果若不滿意,用戶都可以選擇其他數(shù)據(jù)服務(wù),重新建立數(shù)據(jù)服務(wù)超鏈。若用戶認(rèn)為得到滿意結(jié)果,可終止構(gòu)造過程,同時(shí)保存該應(yīng)用。此時(shí),系統(tǒng)將根據(jù)上述過程自動(dòng)生成一個(gè)新的復(fù)合數(shù)據(jù)服務(wù)“嫌疑犯確定”,并可對外發(fā)布,從而方便其他公安干警訪問。 情景數(shù)據(jù)集成參照參考文獻(xiàn)[14]基于對BPEL(business process execution language,業(yè)務(wù)流程執(zhí)行語言)引擎的擴(kuò)展實(shí)現(xiàn),圖3用時(shí)序圖描述了上述復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造過程。值得指出的是,基于數(shù)據(jù)服務(wù)超鏈進(jìn)行數(shù)據(jù)服務(wù)即時(shí)組合具有即時(shí)性,可能在出現(xiàn)多次交互后才能獲得一個(gè)滿意的復(fù)合數(shù)據(jù)服務(wù),另外,不掌握編程知識(shí)的業(yè)務(wù)用戶或最終用戶在構(gòu)造復(fù)合數(shù)據(jù)服務(wù)過程中,也很少考慮路徑的優(yōu)化問題。因此,即便系統(tǒng)并不保存用戶回退的過程,在輸出的復(fù)合數(shù)據(jù)服務(wù)中也難免會(huì)包含一些冗余和非優(yōu)化的步驟。解決此問題可以從兩個(gè)方面進(jìn)行:一方面,由專家或系統(tǒng)管理員對復(fù)合數(shù)據(jù)服務(wù)進(jìn)行求精處理;另一方面,利用自動(dòng)化的方法,由系統(tǒng)利用其他用戶的構(gòu)造歷史、專家知識(shí)庫等對復(fù)合數(shù)據(jù)服務(wù)的結(jié)構(gòu)進(jìn)行分析求精。 為了定量驗(yàn)證本文數(shù)據(jù)服務(wù)超鏈推薦算法的有效性,實(shí)驗(yàn)數(shù)據(jù)集來自Yahoo!Pipes,由于其覆蓋不同的數(shù)據(jù)格式和數(shù)據(jù)來源,具有較強(qiáng)的代表性。從Yahoo!Pipes的應(yīng)用庫中取出620個(gè)含有4 857個(gè)數(shù)據(jù)服務(wù)超鏈的應(yīng)用,其中600個(gè)(含4 549個(gè)數(shù)據(jù)服務(wù)超鏈)作為樣本集(即作為支持推薦算法的數(shù)據(jù)服務(wù)空間),20個(gè)(含308個(gè)數(shù)據(jù)服務(wù)超鏈)作為測試集 (即接受數(shù)據(jù)服務(wù)超鏈推薦的對象)。Yahoo!Pipes中的應(yīng)用是以專有的圖形化方式表示的,不能直接用于推薦算法中,因此利用本文的數(shù)據(jù)服務(wù)及超鏈模型對其進(jìn)行轉(zhuǎn)換。 假設(shè)推薦算法給出的候選數(shù)據(jù)服務(wù)超鏈列表的大小為k,需要進(jìn)行數(shù)據(jù)服務(wù)超鏈推薦的復(fù)合數(shù)據(jù)服務(wù)的個(gè)數(shù)為n,第i個(gè)復(fù)合數(shù)據(jù)服務(wù)用戶需要的數(shù)據(jù)服務(wù)超鏈在推薦列表中的排名為Ri(0≤Ri≤k,Ri=0表示不在列表中),用score(i)表示對第i個(gè)復(fù)合數(shù)據(jù)服務(wù)推薦數(shù)據(jù)服務(wù)超鏈時(shí)的評分,滿分為k,不在列表中評分為0。用式(7)計(jì)算: 推薦算法的準(zhǔn)確性可用n個(gè)應(yīng)用的評分總和與滿分(k×n)的比值衡量,如式(8)所示: 由于k是直接給用戶推薦的超鏈個(gè)數(shù),取值不宜過大。本文取k=4,5,…,12,在樣本集上分別取200,300,…,600個(gè)復(fù)合數(shù)據(jù)服務(wù)對測試集進(jìn)行推薦,對不考慮自相似與考慮自相似兩種情況進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)k=5時(shí)能夠得到最佳的實(shí)驗(yàn)結(jié)果。圖4給出了k=5的實(shí)驗(yàn)結(jié)果。 圖3 復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造過程 圖4 k=5時(shí)數(shù)據(jù)服務(wù)超鏈推薦的準(zhǔn)確性 從圖4中可以看出,隨著樣本集集成應(yīng)用數(shù)量的增多,推薦算法的準(zhǔn)確性不斷提升,這說明在實(shí)際應(yīng)用中,隨著數(shù)據(jù)服務(wù)空間的演化,復(fù)合數(shù)據(jù)服務(wù)不斷增多,推薦算法的準(zhǔn)確性逐步得到提升。還可以看出,考慮數(shù)據(jù)服務(wù)超鏈組合片斷的自相似性的推薦算法準(zhǔn)確性普遍高于不考慮自相似性的情況,這說明還需要充分利用復(fù)合數(shù)據(jù)服務(wù)構(gòu)造的內(nèi)部性質(zhì)提高推薦的準(zhǔn)確度。 本節(jié)從如下3個(gè)方面對本文提出的方法與相關(guān)工作進(jìn)行比較。 (1)借鑒超鏈對服務(wù)關(guān)聯(lián)關(guān)系進(jìn)行建模的方法 比較典型的工作有韓燕波等提出的服務(wù)超鏈[11]以及IBM的研究者提出的“超級服務(wù)(HyperService)”[12]。但目前這些研究主要用來描述服務(wù)之間在業(yè)務(wù)邏輯上的相關(guān)性,即服務(wù)行為約束關(guān)系,而并不完全適用于描述數(shù)據(jù)服務(wù)之間的相關(guān)性。本文提出的數(shù)據(jù)服務(wù)超鏈基于HATEOAS原則,在用來解決本文場景中的情景數(shù)據(jù)集成問題時(shí),能夠更好地繼承超鏈所具有的結(jié)構(gòu)簡單、客戶端和服務(wù)器松耦合性更好等性質(zhì)。 (2)借鑒HATEOAS設(shè)計(jì)原則對服務(wù)進(jìn)行組合的方法 近年來,隨著REST服務(wù)在更廣范圍內(nèi)被使用,有研究者提出借鑒HATEOAS原則的服務(wù)組合方法[13~15]。這些工作的主要聚焦點(diǎn)在于如何擴(kuò)展現(xiàn)有服務(wù)組合引擎,使之支持REST服務(wù)的組合,其方法主要適合于用基于HATEOAS原則的REST服務(wù)組合方法解決傳統(tǒng)服務(wù)組合問題。本文與這些工作的相同之處在于融合了REST風(fēng)格的服務(wù)模型以及HATEOAS的設(shè)計(jì)原則,目的是更好地繼承“超鏈”的優(yōu)良性質(zhì),但與這類工作不同的是,本文工作的主要貢獻(xiàn)不在于擴(kuò)展現(xiàn)有服務(wù)組合引擎使之支持基于HATEOAS的REST服務(wù)組合,而是探討了一種通過超鏈導(dǎo)航結(jié)合超鏈的智能推薦等手段支持?jǐn)?shù)據(jù)服務(wù)構(gòu)造的新方法。 (3)服務(wù)之間關(guān)聯(lián)關(guān)系的即時(shí)推薦方法 Advisor M[16]基于Mashup應(yīng)用構(gòu)造歷史記錄進(jìn)行服務(wù)推薦,根據(jù)服務(wù)之間關(guān)聯(lián)關(guān)系的使用頻率進(jìn)行推薦,并結(jié)合AI規(guī)劃的方法為用戶推薦最可能生成用戶期望輸出的Mashup路徑。MARIO[17]則基于標(biāo)簽進(jìn)行關(guān)聯(lián)關(guān)系的推薦,生成用戶期望的流程。這些方法以生成用戶期望的整個(gè)流程為目標(biāo),比較適合于終點(diǎn)已知的場景;而本文方法更適合需求不確定、在每一步操作均需要人為參與進(jìn)行決策的情景應(yīng)用構(gòu)造。 在開放和動(dòng)態(tài)變化的互聯(lián)網(wǎng)及云環(huán)境下,數(shù)據(jù)集成的需求往往即時(shí)出現(xiàn)而無法完全預(yù)先定義,如何使用戶根據(jù)當(dāng)前業(yè)務(wù)需求以一種便于重用的方式建立數(shù)據(jù)源之間的關(guān)聯(lián)關(guān)系,并支持用戶進(jìn)行臨機(jī)決策,是傳統(tǒng)數(shù)據(jù)集成技術(shù)面臨的新挑戰(zhàn)?!熬W(wǎng)頁超鏈”作為Web導(dǎo)航與發(fā)現(xiàn)Web網(wǎng)頁的關(guān)鍵元素提供了啟發(fā),本文的新思路是借鑒網(wǎng)頁超鏈的思想,使得用戶在數(shù)據(jù)服務(wù)導(dǎo)航過程的同時(shí)完成數(shù)據(jù)的即時(shí)集成。本文提出利用“數(shù)據(jù)服務(wù)超鏈”的抽象輔助用戶顯式地描述和表達(dá)各種數(shù)據(jù)服務(wù)之間隱含的關(guān)聯(lián)關(guān)系,同時(shí)融合REST服務(wù)和HATEOAS的設(shè)計(jì)思想,在數(shù)據(jù)服務(wù)中包含相應(yīng)的服務(wù)超級鏈接,通過超鏈的支持,使客戶端能通過超級鏈接的選擇驅(qū)動(dòng)復(fù)合數(shù)據(jù)服務(wù)的構(gòu)造與運(yùn)行。 本文提出基于超鏈導(dǎo)航的情景數(shù)據(jù)集成方法和狀態(tài)機(jī)描述,并討論了基于統(tǒng)計(jì)的數(shù)據(jù)服務(wù)超鏈推薦算法,幫助用戶從各種看似無關(guān)的數(shù)據(jù)中建立關(guān)系,進(jìn)行臨機(jī)決策。結(jié)合案例進(jìn)行了分析評價(jià)及實(shí)驗(yàn),結(jié)果表明,本文提出的方法能夠有效支持情景數(shù)據(jù)集成。進(jìn)一步工作包括探討具體的數(shù)據(jù)服務(wù)超鏈的自動(dòng)生成方法,進(jìn)一步研究數(shù)據(jù)服務(wù)超鏈的性質(zhì)(如層次性、局部性等)并給出驗(yàn)證,在此基礎(chǔ)上研究數(shù)據(jù)服務(wù)空間的構(gòu)建、演化、性質(zhì)以及基于數(shù)據(jù)服務(wù)空間的智能服務(wù)超鏈推薦算法等。 1 Lv J,Ma X X,Tao X P,et al.Research and progress on internetware.Science in China(Series E),2006,36(10):1037~1080 2 Han Y B,Wang G L,Liu C,et al.Internet Computing:Theory and Practice.Beijing:Science Press,2010 3 Jhingran. Enterprise information mashups: integrating information,simply.Proceedings of the 32nd International Conference on Very Large Databases,Seoul,Korea,2006:3~4 4 Schahram D,Pichler R,Savenkov V,et al.Quality-aware service-oriented data integration:requirements,state of the art and open challenges.ACM SIGMOD Record 41,2012(1):11~19 5 Wang G L,Yang S H,Han Y B.Mashroom:end-user mashup programming using nested tables.Proceedings of the 18th International Conference on World Wide Web,WWW 2009,Madrid,Spain,April 2009:861~870 6 Han Y B,Wang G L,Ji G,et al.Situational data integration with data services and nested table.Service Oriented Computing and Applications,2013,7(2):129~150 7 Nadav E,McCurley K S.Locality,hierarchy,and bidirectionality in the web.Proceedings of Workshop on Algorithms and Models for the Web Graph,Budapest,2003 8 Luc M,Hall W.On the expressiveness of links in hypertext systems.The Computer Journal 41,1998(7):459~473 9 Thomas F R.Architectural styles and the design of networkbased software architectures.University of California,2000 10 Jim W,Parastatidis S,Robinson I.REST in Practice:Hypermedia and Systems Architecture.O'Reilly Media,Incorporated,2010 11 Yan S,Han Y,Wang J,et al.Service hyperlink for exploratory service composition.Proceedings of IEEE International Conference on e-Business Engineering,ICEBE 2007,Hong Kong,China,2007 12 Zhao C,Chun’e M,Zhang J,et al.HyperService:linking and exploring services on the web.Proceedings of 2010 IEEE International Conference on Web Services(ICWS),Miami,Florida,USA,2010 13 Rosa A,Wilde E,Bellido J.Hypermedia-driven restful service composition.Proceedings of Service-Oriented Computing,Springer Berlin Heidelberg,2011:111~120 14 Cesare P.Restful web service composition with BPEL for REST.Data & Knowledge Engineering 68,2009(9):851~866 15 Cesare P.Composing restful services with jopera.Proceedings of Software Composition,Springer Berlin Heidelberg,2009:142~159 16 Hazem E,Ivan A,Akkiraju R,et al.Mashup advisor:a recommendation tool for mashup development.Proceedings of IEEE International Conference on Web Services(ICWS’08),Beijing,China,2008:337~344 17 Anton V R,Boillet E,Feblowitz M D,et al.Wishful search:interactive composition of data mashups.Proceedings of the 17th International Conference on World Wide Web,Beijing,China,2008:775~7844 案例和實(shí)驗(yàn)
5 相關(guān)工作
6 結(jié)束語