集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架中的數(shù)據(jù)跟蹤_第1頁
集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架中的數(shù)據(jù)跟蹤_第2頁
集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架中的數(shù)據(jù)跟蹤_第3頁
集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架中的數(shù)據(jù)跟蹤_第4頁
集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架中的數(shù)據(jù)跟蹤_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架中的數(shù)據(jù)跟蹤王黎維1, 彭智勇2,3, 黃澤謙2 , 羅敏2(武漢大學(xué)國際軟件學(xué)院1,軟件工程國家重點實驗室2,武漢大學(xué)計算機學(xué)院3, 武漢 430072)摘 要 本文提出了一個集成數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架,它采用對象代理模型描述一系列科學(xué)任務(wù)的執(zhí)行過程,使得工作流管理操作以類似于傳統(tǒng)數(shù)據(jù)庫管理操作的方式來完成。同時,基于對象代理數(shù)據(jù)庫中的雙向指針機制,本文提出了一種新的數(shù)據(jù)跟蹤方法,該方法能提供比注釋或反向查詢更高的性能,不僅節(jié)省了大量的存儲空間,而且減少了額外的計算代價,一種部分物化中間數(shù)據(jù)的模式也被提出,用于提高數(shù)據(jù)跟蹤的高效性,實驗顯示它具有較好

2、的系統(tǒng)性能。關(guān)鍵詞 科學(xué)工作流;web服務(wù);對象代理模型;數(shù)據(jù)跟蹤121 引言 該研究得到了國家自然科學(xué)基金項目(60573095)、教育部新世紀(jì)優(yōu)秀人才計劃項目(NCET-04-0675)、中國高科技研究發(fā)展計劃(2006AA12Z210)、教育部博士點基金項目(20050486024)、教育部科學(xué)技術(shù)研究重點項目(107072)、國家重點基礎(chǔ)研究發(fā)展計劃資助(2007CB310806)資助目前,生物、醫(yī)學(xué)、生態(tài)等科學(xué)領(lǐng)域已經(jīng)面臨信息爆炸,使得這些領(lǐng)域的科學(xué)家每天不得不使用各種專業(yè)程序處理來自實驗室信息管理系統(tǒng)控制的科學(xué)實驗,大規(guī)模計算為中心的模擬或遠(yuǎn)程傳感器實時觀測的科學(xué)數(shù)據(jù),這對自動管理

3、科學(xué)實驗提出了迫切的需求。為了支持科學(xué)家進(jìn)行高效的數(shù)據(jù)管理和實驗分析,將工作流技術(shù)應(yīng)用于科學(xué)領(lǐng)域的科學(xué)工作流(Scientific Workflow,SWF)如今已成為在網(wǎng)絡(luò)基礎(chǔ)設(shè)施上進(jìn)行大規(guī)??茖W(xué)計算和協(xié)同研究的有效方法。目前在合作環(huán)境中進(jìn)行跨組織的科學(xué)實驗已經(jīng)越來越重要。由于該環(huán)境中數(shù)據(jù)和程序資源的分布和異構(gòu),使得廣泛用于工業(yè)界的Web服務(wù)技術(shù)引入到科學(xué)工作流中,用于支持來自不同平臺的計算資源的整合,如 1,2等。它將程序封裝到服務(wù)中,并通過服務(wù)調(diào)用而不是程序調(diào)用組成工作流,因此能夠跨越技術(shù)和組織的邊界對流程進(jìn)行建模。與以任務(wù)為中心的商業(yè)工作流相比,科學(xué)工作流雖然共享了商業(yè)工作流的一些特性

4、,但其主要是以數(shù)據(jù)為中心3,常常涉及大規(guī)??茖W(xué)計算,具有描述科學(xué)數(shù)據(jù)的元數(shù)據(jù)或者注釋。因此,科學(xué)工作流實際上是數(shù)據(jù)管理和流程管理的結(jié)合4。探索數(shù)據(jù)庫技術(shù)用于科學(xué)工作流管理已成為當(dāng)前的研究熱點。通常,工作流管理系統(tǒng)(WFMS)使用數(shù)據(jù)庫管理系統(tǒng)(DBMS)來存儲任務(wù)描述以及工作流數(shù)據(jù),并在DBMS之上實現(xiàn)各個工作流功能模塊。然而目前一些研究證明5,6,大多數(shù)WFMS的功能可由DBMS提供,許多成熟的數(shù)據(jù)庫技術(shù),如計劃、查詢、數(shù)據(jù)跟蹤以及并發(fā)控制等均可用于工作流管理系統(tǒng)中。采取DBMS的方式實現(xiàn)科學(xué)工作流管理,可以減少實現(xiàn)開銷,增加優(yōu)化的可能性,使其以一種類似于傳統(tǒng)數(shù)據(jù)庫操作的方式進(jìn)行工作流管理。

5、因此,采用以數(shù)據(jù)庫系統(tǒng)為核心的科學(xué)工作流管理體系架構(gòu),變得非常有意義。科學(xué)工作流最重要的功能是作為識別實驗數(shù)據(jù)的一種方式,稱其為數(shù)據(jù)跟蹤(Data Provenance)7,8,它用于提供數(shù)據(jù)的派生歷史,解釋數(shù)據(jù)的由來,這對于實驗分析,錯誤診斷以及核實實驗結(jié)果的有效性很有幫助。另外,當(dāng)產(chǎn)生實驗數(shù)據(jù)的實驗步驟發(fā)生改變時,能通過數(shù)據(jù)的派生歷史跟蹤實驗進(jìn)程,確定需要重做哪些步驟以便更新實驗結(jié)果。因此,數(shù)據(jù)跟蹤主要包含兩個重要信息:用于產(chǎn)生實驗數(shù)據(jù)的數(shù)據(jù)源,以及所經(jīng)歷的實驗步驟。 目前,數(shù)據(jù)跟蹤的重要性已經(jīng)被多個科學(xué)工作流項目所認(rèn)可,如GridDB6,Chimera9,myGRID10,CMCS11。

6、注釋和反向是目前兩種主要的數(shù)據(jù)跟蹤方法。注釋將一個數(shù)據(jù)的派生歷史搜集起來作為元數(shù)據(jù),與數(shù)據(jù)一起存放在數(shù)據(jù)庫中,用于解釋數(shù)據(jù)的來源。反向方法主要應(yīng)用逆向查詢或者逆向函數(shù),由結(jié)果數(shù)據(jù)溯源到其源數(shù)據(jù)。但兩者都有不足之處,注釋不能為細(xì)粒度的實驗數(shù)據(jù)提供良好的存儲規(guī)模,因為記錄完整的派生歷史可能超過數(shù)據(jù)本身所需要的存儲空間。反向方法從存儲的角度來看似乎更好,因為逆向函數(shù)或逆向查詢能標(biāo)識某一類數(shù)據(jù)的派生信息,但每次需要查詢數(shù)據(jù)源時,它需要產(chǎn)生一個逆向函數(shù)或逆向查詢?nèi)ビ嬎闩缮畔?,在?shù)據(jù)量大的情況下,執(zhí)行效率較低。本文,我們首先提出了一個集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架,并在此框架下著重研究基于對象代

7、理模型的數(shù)據(jù)跟蹤方法,該方法能借助實驗數(shù)據(jù)間的雙向指針實現(xiàn)數(shù)據(jù)跟蹤,能提供比注釋或反向方法更高的性能,不僅節(jié)省了大量的存儲空間,而且減少了額外的計算代價。本文的組織如下:第2節(jié)介紹了一個集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架。第3節(jié)提出了基于對象代理模型的數(shù)據(jù)跟蹤方法。第4節(jié)給出了實驗結(jié)果和分析。第5節(jié)分析并比較了一些相關(guān)工作。最后總結(jié)全文并提出下一步需要開展的工作。2 集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架集成對象代理12數(shù)據(jù)庫TOTEM的科學(xué)工作流服務(wù)框架如圖1所示,它將數(shù)據(jù)管理和工作流管理有效的結(jié)合,以對象代理數(shù)據(jù)庫來建模科學(xué)工作流,并采用類似SQL語言的方式來執(zhí)行,管理和監(jiān)控科學(xué)工作流

8、。圖1 集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架該框架使用對象代理數(shù)據(jù)庫TOTEM作為科學(xué)工作流的運行環(huán)境,提供科學(xué)工作流所必需的工作流設(shè)計和執(zhí)行功能,從而取代商業(yè)工作流引擎的核心位置。工作流設(shè)計主要用于定義工作流模式,模式定義通過對象代理數(shù)據(jù)庫中的類和代理類定義工作流中不同科學(xué)任務(wù)的輸入和輸出,通過任務(wù)輸入輸出間的對象代理關(guān)系實現(xiàn)工作流的自動執(zhí)行。工作流執(zhí)行是系統(tǒng)的核心模塊,它主要采取數(shù)據(jù)驅(qū)動的方式,使得科學(xué)任務(wù)調(diào)用相應(yīng)的科學(xué)程序?qū)μ峁┑妮斎霐?shù)據(jù)進(jìn)行計算,將執(zhí)行轉(zhuǎn)化為對數(shù)據(jù)庫的插入和更新操作從而實現(xiàn)工作流的自動執(zhí)行。其中,科學(xué)程序使用web服務(wù)描述語言(如,WSDL)將其封裝,我們稱其為科學(xué)服

9、務(wù)程序。它僅僅提供程序的接口而不必關(guān)心程序的具體實現(xiàn),隱藏了它們的異構(gòu)性,使它們能被任何類型的客戶端應(yīng)用程序存取。從圖1中我們可以看出,服務(wù)提供者使用公共的UDDI注冊器注冊服務(wù)描述,客戶端查詢UDDI得到服務(wù)描述細(xì)節(jié),找到所感興趣的服務(wù),并構(gòu)造和執(zhí)行工作流。一旦工作流中的某一任務(wù)被觸發(fā),它通過UDDI接受服務(wù)的輸入?yún)?shù),并向SOAP服務(wù)器發(fā)送合適的SOAP消息,接受SOAP消息的SOAP服務(wù)器觸發(fā)服務(wù)的實際實現(xiàn),結(jié)果被返回到SOAP服務(wù)器,再返回給客戶端。一個任務(wù)的輸出可能被直接傳遞或修改,并作為下一個任務(wù)的輸入。2.1 工作流建??茖W(xué)工作流由科學(xué)數(shù)據(jù)和操作它們的科學(xué)任務(wù)組成??茖W(xué)任務(wù)具有輸

10、入數(shù)據(jù)與輸出數(shù)據(jù),我們建模輸入、輸出數(shù)據(jù)作為對象代理數(shù)據(jù)庫TOTEM中的類和代理類,其中,科學(xué)任務(wù)的輸入數(shù)據(jù)是其直接前驅(qū)科學(xué)任務(wù)的輸出數(shù)據(jù)。工作流流程初始科學(xué)任務(wù)的輸入數(shù)據(jù)用類來定義,構(gòu)成工作流流程的所有科學(xué)任務(wù)的輸出數(shù)據(jù)定義為其輸入數(shù)據(jù)的代理類,代理類的類型根據(jù)對應(yīng)工作流模式的不同而有所不同。被科學(xué)任務(wù)調(diào)用的科學(xué)服務(wù)程序定義為輸入數(shù)據(jù)對象屬性上的讀方法。2.1.1 數(shù)據(jù)聲明定義1工作流流程初始科學(xué)任務(wù)的輸入數(shù)據(jù)被定義成類C = <O, A>。1. O是C的數(shù)據(jù)對象集。oO是C的一個數(shù)據(jù)對象。2. A是C的屬性集合。(Ta:a)A分別代表一個屬性的類型和屬性名。數(shù)據(jù)對象o的屬性a的

11、值表示為o.a。對每個屬性Ta:a,都有兩個基本方法。read(o, a) o.a,write(o, a, v)o.a := v。這里,分別代表激活、結(jié)果返回。定義2 工作流流程除初始科學(xué)任務(wù)外的其他科學(xué)任務(wù)的輸出數(shù)據(jù)基于其輸入數(shù)據(jù)來定義,前者稱為后者的代理類,后者稱為前者的源類。源類中的數(shù)據(jù)對象與其代理類中的數(shù)據(jù)對象通過雙向指針鏈接。代理數(shù)據(jù)對象擁有自己的標(biāo)識符,并通過切換操作完全或部分共享源數(shù)據(jù)對象的屬性值,同時還可以增加屬性。令Cs = <Os, As>是源類,其代理類Cd可以定義為Cd = <Od, AdAd+>。1. 代理數(shù)據(jù)對象Od = odi | odi

12、osi | ×osi × | osi, sp(osi) | jp(×osi ×) | gp(osi) = = true ,其中odi osi | ×osi × |osi表示odi是osi,×osi ×,或osi的代理數(shù)據(jù)對象,sp,jp和gp分別表示選擇,組合和分組謂詞。根據(jù)對象代理模型12,代理數(shù)據(jù)對象具有四種類型,分別是Select、Join、Group和Union,用于支持特化,聚集,分組和組合。2. AdAd+是Cd的屬性集。(1) (Tad:ad)Ad是從(Tas:as)As繼承而來的屬性。對代理數(shù)據(jù)對象

13、od的屬性值ad的計算通過切換操作最終作用到源數(shù)據(jù)對象的屬性as上。由于更新繼承的屬性值不符合科學(xué)工作流的要求,所以屬性ad的寫方法不存在,ad讀方法的切換操作定義如下:read(od, ad) fTasTad (read(os, as)(2) (Tad+ : ad+)Ad+是增加的屬性,其基本方法定義如下:read(od, ad+) od.ad+write(od, ad+, vd+)od.ad+ := vd+根據(jù)該定義,每次查詢代理數(shù)據(jù)對象繼承的屬性值仍然需要通過訪問源數(shù)據(jù)對象的切換操作來計算。由于科學(xué)計算的結(jié)果數(shù)據(jù)可能由運行時間較長的科學(xué)程序產(chǎn)生,所以最好物化繼承的屬性值以避免每次查詢時重

14、新計算它們。物化的繼承屬性的讀方法定義被修改如下:read(od, ad)od.ad.即繼承的屬性值能直接從代理數(shù)據(jù)對象中讀取。源數(shù)據(jù)對象上的更新將觸發(fā)更新遷移過程對代理數(shù)據(jù)對象進(jìn)行更新,也就是,如果增加,刪除或修改源數(shù)據(jù)對象,相應(yīng)的代理數(shù)據(jù)對象也會被增加,刪除或修改。由于源數(shù)據(jù)對象與其代理數(shù)據(jù)對象之間存在各種依賴關(guān)系和語義約束,其一致性可通過更新遷移進(jìn)行維護(hù)。2.1.2 流程聲明工作流流程的執(zhí)行可能需要連接多個科學(xué)任務(wù),任何復(fù)雜的工作流流程能被簡化成在給定數(shù)據(jù)上按某種順序執(zhí)行的科學(xué)任務(wù)序列。本框架的特點是將工作流流程看成一系列數(shù)據(jù)的相互連接,將工作流任務(wù)間的相互關(guān)系轉(zhuǎn)換為任務(wù)關(guān)聯(lián)數(shù)據(jù)間的關(guān)系

15、,同時采用對象代理數(shù)據(jù)庫根據(jù)不同的工作流模式來建立數(shù)據(jù)間的關(guān)系,利用更新遷移機制觸發(fā)工作流的自動執(zhí)行,因此能夠支持13提出的幾種常見的工作流模式,包括:順序模式,并行分支模式,同步模式,單選模式,簡單合并模式,多路合并模式,多路選擇模式等。如圖2(a)所示,任務(wù)A的輸出AOutput定義為任務(wù)B的輸入,任務(wù)B的輸出定義為類AOutput的Select型代理類BOutput。任務(wù)B對應(yīng)的科學(xué)服務(wù)程序作為AOutput中數(shù)據(jù)對象屬性上的讀方法,一旦A完成對輸入數(shù)據(jù)的計算,往AOutput中插入結(jié)果數(shù)據(jù)對象時,會觸發(fā)B的執(zhí)行,并在BOutput中派生對應(yīng)代理數(shù)據(jù)對象。圖2 對象代理模型建模工作流如圖

16、2(b)所示,任務(wù)B和C的輸出BOutput和COutput分別定義為任務(wù)A的輸出類AOutput的Select型代理類。對于并行分支模式,一旦A完成對數(shù)據(jù)的計算,往AOutput中插入一個或多個結(jié)果數(shù)據(jù)對象時,會同時觸發(fā)B和C的執(zhí)行,并在BOutput和COutput中派生對應(yīng)的代理數(shù)據(jù)對象。如圖2(c)所示,任務(wù)A,B的輸出分別定義為類AOutput,BOutput;任務(wù)C的輸出定義為AOutput和BOutput的Join型代理類COutput。對于同步模式,只有當(dāng)A和B都完成時,在AOutput和BOutput中分別產(chǎn)生數(shù)據(jù)對象,才會觸發(fā)C的執(zhí)行,并在COutput中派生一個代理數(shù)據(jù)對

17、象。同步模式中的任務(wù)同步要求轉(zhuǎn)換為Join型代理類的更新遷移。如圖2(d)所示,任務(wù)B和C的輸出分別定義為任務(wù)A的輸出AOutput的Select型代理類BOutput和COutput。對于單選模式,只有一個分支會被執(zhí)行。當(dāng)A往AOutput插入數(shù)據(jù)對象時,數(shù)據(jù)庫會根據(jù)BOutput和COutput的代理規(guī)則,觸發(fā)相應(yīng)分支的執(zhí)行,并派生相應(yīng)的代理數(shù)據(jù)對象到BOutput和COutput中。如圖2(e)所示,任務(wù)A與B的輸出分別定義為類AOutput和BOutput;任務(wù)C的輸出COutput定義為AOutput或BOutput的Select型代理類。對于簡單合并模式,只有一個分支A或B被觸發(fā)執(zhí)

18、行,一旦任務(wù)執(zhí)行完成,往AOutput或BOutput插入數(shù)據(jù),觸發(fā)C的執(zhí)行,并會在COutput中派生相應(yīng)的代理數(shù)據(jù)對象。如圖2(f)所示,任務(wù)A與B的輸出分別定義為類AOutput和BOutput;任務(wù)C的輸出COutput定義為AOutput和BOutput的Union型代理類。對于多路合并模式,A和B中任何一個分支執(zhí)行完,分別往AOutput或BOutput插入數(shù)據(jù)對象時,都會觸發(fā)C的執(zhí)行,并在COutput中派生相應(yīng)的代理數(shù)據(jù)對象。如圖2(g)所示,任務(wù)B,C和D的輸出分別定義為任務(wù)A的輸出AOutput的Select型代理類BOutput,COutput和DOutput。對于多選模

19、式,至少B,C和D中有一個分支會被執(zhí)行,當(dāng)A往AOutput插入數(shù)據(jù)對象時,數(shù)據(jù)庫會根據(jù)BOutput,COutput和DOutput的代理規(guī)則,觸發(fā)任務(wù)執(zhí)行,并派生相應(yīng)的代理數(shù)據(jù)對象到BOutput,COutput和DOutput中,從而觸發(fā)相應(yīng)分支的執(zhí)行。采用對象代理數(shù)據(jù)庫建模工作流,使得與工作流模式相關(guān)的控制邏輯由數(shù)據(jù)庫來實現(xiàn)。由于除初始任務(wù)外,所有任務(wù)的輸出都定義為該任務(wù)所有直接前驅(qū)任務(wù)的輸出類的代理類,所以一旦前驅(qū)任務(wù)往其輸出數(shù)據(jù)類中插入數(shù)據(jù),更新遷移將根據(jù)各個輸出類的代理規(guī)則,調(diào)用后繼任務(wù)進(jìn)行計算,派生對應(yīng)的代理對象到后繼任務(wù)的輸出類中。2.2. Atlas高能物理工作流的建模與執(zhí)

20、行我們引用Atlas高能物理工作流5解釋構(gòu)造和執(zhí)行工作流的過程。如圖3(a)所示,Atlas工作流包括三個科學(xué)任務(wù),分別執(zhí)行事件發(fā)生器(gen)程序,快速模擬探測器程序(atlfast)和慢速模擬探測器程序(atlsim)。gen接收一種粒子的質(zhì)量,產(chǎn)生一個event文件<pmas>.evts,該文件描述了粒子的衰變。之后event文件被分別輸入到程序atlfast 和atlsim,模擬兩種探測器對粒子衰變事件的反應(yīng),并且產(chǎn)生包含數(shù)值fImas 和sImas 的文件,兩個結(jié)果數(shù)值實際上是粒子衰變而產(chǎn)生的子粒子的質(zhì)量之和。最后,比較這兩個結(jié)果。圖3 Atlas工作流建模圖3(b)和3

21、(c)分別描述了Atlas工作流模型及對象代理數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)庫模式。對象代理數(shù)據(jù)庫語言14建立Atlas工作流如下,其中g(shù)en,atlfast和atlsim被封裝成三個科學(xué)服務(wù)程序,分別定義為event、fImas 和sImas的讀方法。第一個科學(xué)任務(wù)的輸入和輸出類定義如下:CREATE CLASS gC (pmas int);CREATE SELECTDEPUTYCLASS evts AS (SELECT gen(pmas) AS (event int) FROM gC);類gC的pmas屬性表示輸入的粒子質(zhì)量,由類gC派生的代理類evts 存儲由科學(xué)服務(wù)程序gen 產(chǎn)生的event文件

22、,其中event屬性表示文件標(biāo)識符。執(zhí)行科學(xué)服務(wù)程序atlfast和atlsim的科學(xué)任務(wù)的輸出類分別定義為類evts的Select型代理類fC及sC:CREATE SELECTDEPUTYCLASS fC AS (SELECT atlfast(event) AS (fImas int) FROM evts);CREATE SELECTDEPUTYCLASS sCAS (SELECT atlsim(event) AS (sImas int) FROM evts);fC及sC分別存放科學(xué)服務(wù)程序altfast 和atlsim 產(chǎn)生的結(jié)果數(shù)據(jù) fImas及sImas,它們表示粒子衰變得到的子粒子的

23、質(zhì)量總和。類fC和sC的Join型代理類compare比較atlfast和atlsim所產(chǎn)生的結(jié)果fImas和sImas。CREATE JOINDEPUTYCLASS compare AS (SELECT fC.fImas, sC.sImas FROM fC, sC WHERE fCevts.event = sCevts.event);因此,Atlas工作流的建立通過不斷的派生代理類組成。向類gC中插入一個數(shù)據(jù)對象將啟動Atlas工作流的自動執(zhí)行,如:INSERT INTO gC VALUES (100);一旦一個pmas值為100的數(shù)據(jù)對象被插入到gC,根據(jù)evts的代理規(guī)則,自動觸發(fā)第一個

24、科學(xué)任務(wù),也即科學(xué)服務(wù)程序gen執(zhí)行,并在evts類中產(chǎn)生它的代理數(shù)據(jù)對象evts1,同樣,evts1觸發(fā)科學(xué)服務(wù)程序atlfast和atlsim的自動執(zhí)行,并將執(zhí)行完后的結(jié)果分別添加到類fC和sC中,最終導(dǎo)致產(chǎn)生對象compare1。另外,如果gC1的pmas值被修改,所有數(shù)據(jù)對象包括evt1、fC1、sC1以及compare1將自動的重新計算。集成對象代理數(shù)據(jù)庫TOTEM的科學(xué)工作流服務(wù)框架意味著與數(shù)據(jù)庫的緊密結(jié)合。工作流的聲明和定義使用了類似SQL 的對象代理數(shù)據(jù)庫語言,觸發(fā)、查詢和執(zhí)行使用SQL來完成。因此,WFMS的管理操作以類似于傳統(tǒng)數(shù)據(jù)管理操作的方式來完成。3 基于對象代理模型的

25、數(shù)據(jù)跟蹤本節(jié)在該框架的基礎(chǔ)上提出了一種基于對象代理模型的數(shù)據(jù)跟蹤方法。區(qū)別于一般的注釋和反向等數(shù)據(jù)跟蹤方法,利用對象代理數(shù)據(jù)庫內(nèi)部對象間的雙向指針可以實現(xiàn)高效的數(shù)據(jù)跟蹤。3.1數(shù)據(jù)跟蹤該框架使用TOTEM數(shù)據(jù)庫的類、代理類為科學(xué)任務(wù)的輸入數(shù)據(jù)和輸出數(shù)據(jù)建模,其中,每一個科學(xué)任務(wù)實現(xiàn)由輸入數(shù)據(jù)到輸出數(shù)據(jù)的映射,輸入數(shù)據(jù)和輸出數(shù)據(jù)通過輸入數(shù)據(jù)類和輸出數(shù)據(jù)類中的數(shù)據(jù)對象或代理數(shù)據(jù)對象來表達(dá)。每一個數(shù)據(jù)對象或代理數(shù)據(jù)對象在數(shù)據(jù)庫中具有唯一的對象標(biāo)識OID。所以該框架可以基于對象之間的OID雙向指針來實現(xiàn)數(shù)據(jù)跟蹤。對象OID間的雙向指針通過TOTEM自身維系的雙向指針系統(tǒng)表tt_bipointer來實現(xiàn)

26、,記錄了所有對象與代理對象之間的聯(lián)系。科學(xué)任務(wù)的輸入等于該任務(wù)所有直接前驅(qū)任務(wù)的輸出數(shù)據(jù)類,科學(xué)任務(wù)的輸出定義為該任務(wù)的輸入數(shù)據(jù)類的代理類,也就是說,任務(wù)的輸出數(shù)據(jù)對象是其直接前驅(qū)任務(wù)的輸出數(shù)據(jù)對象的代理對象,通過系統(tǒng)維護(hù)的數(shù)據(jù)對象和代理數(shù)據(jù)對象間的雙向指針,可以查詢到一個任務(wù)的輸出數(shù)據(jù)對象是由其前驅(qū)任務(wù)的哪些數(shù)據(jù)對象所生成的。如圖4中的tt_bipointer結(jié)構(gòu)所示,SourceClass_oid表示源類的OID,SourceObj_oid表示源對象的OID,DeputyClass_oid表示代理類的OID,DeputyObj_oid表示代理對象的OID,可以通過DeputyObj_oid

27、直接查找到SourceObj_oid。由于科學(xué)任務(wù)的輸出是其直接前驅(qū)科學(xué)任務(wù)的輸出數(shù)據(jù)類的代理類,因此,一旦前驅(qū)任務(wù)的輸出數(shù)據(jù)類中產(chǎn)生結(jié)果數(shù)據(jù),對象代理模型的更新遷移將會自動觸發(fā)后繼任務(wù)的執(zhí)行,并派生代理數(shù)據(jù)對象到其后繼任務(wù)的輸出數(shù)據(jù)類中。同時,在系統(tǒng)表tt_bipointer中增加OID映射關(guān)系。對于Select和Union代理類中的代理對象,它與源對象在tt_bipointer系統(tǒng)表中具有一個一對一的映射關(guān)系;對于Join代理類中的代理對象,由于一個代理對象是由多個源對象產(chǎn)生的,因此,它與源對象具有多條映射關(guān)系,其中每一條映射關(guān)系表示它和其中一個源對象的對應(yīng)。另外,數(shù)據(jù)跟蹤不僅需要找到產(chǎn)生

28、數(shù)據(jù)的數(shù)據(jù)源,還需要提供產(chǎn)生這些數(shù)據(jù)所經(jīng)歷的實驗過程15。TOTEM數(shù)據(jù)庫將科學(xué)服務(wù)程序作為對象屬性的讀方法存放在tt_switching系統(tǒng)表中。如圖4中的tt_switching結(jié)構(gòu)所示,Class_oid表示類的OID,Attr表示對象屬性,Proc表示科學(xué)服務(wù)程序,借助tt_bipointer系統(tǒng)表中的DeputyClass_oid域,可以在tt_switching系統(tǒng)表中查找到DeputyObj_oid經(jīng)過了哪些科學(xué)服務(wù)程序的計算。 圖4 tt_bipointer與tt_switching圖5是Atlas工作流的tt_bipointer與tt_switching內(nèi)部結(jié)構(gòu),詳細(xì)記錄了類

29、gC中的數(shù)據(jù)對象與evts中的代理數(shù)據(jù)對象及evts中的代理數(shù)據(jù)對象與fC中代理數(shù)據(jù)對象的映射關(guān)系,其中Class_oid中的1、2和3分別表示類gC、evts和fC。從圖中可以看到,類gC中的OID為1的數(shù)據(jù)對象經(jīng)過科學(xué)服務(wù)程序gen的計算,得到evts類中OID為101的數(shù)據(jù)對象。同時,evts類中OID為101的數(shù)據(jù)對象經(jīng)過科學(xué)服務(wù)程序atlfast和atlsim后在fC類中產(chǎn)生OID為201的代理數(shù)據(jù)對象。圖5 Atlas的tt_bipointer與tt_switching內(nèi)部結(jié)構(gòu)3.2跟蹤查詢基于對象代理模型的數(shù)據(jù)跟蹤方法可以根據(jù)系統(tǒng)表tt_bipointer與tt_switchin

30、g查找到數(shù)據(jù)對象的來源和所經(jīng)歷的科學(xué)程序,即找出一個數(shù)據(jù)對象完整的派生信息,實現(xiàn)數(shù)據(jù)跟蹤。定義3 opdep表示代理操作,其中opdep分成以下三種:(1) SelectCd = select(proc(Cs)是應(yīng)用操作select到源類Cs中而形成的類,并對選擇出的數(shù)據(jù)對象應(yīng)用科學(xué)程序proc。假定一個對象odCd,根據(jù)操作select,我們定義od在類Cs中的派生信息是P(Cs) (od) = select-1 (Cs) (od) = <os, Cs, proc>,其中os為od在Cs中的源數(shù)據(jù)對象。(2) UnionCd = union(proc1(C1s), procm(C

31、ms)是應(yīng)用操作union到源類C1s,Cms中而形成的類。假定一個數(shù)據(jù)對象odCd,根據(jù)操作union,我們定義od在類C1s,Cms中的派生信息是P(C1s,Cms)(od) = union-1 (C1s,Cms)(od) = <ois, Cis, proci > |1im,其中,ois為od在Cis中的源數(shù)據(jù)對象。(3) JoinCd = join(proc1(C1s), procm(Cms)是應(yīng)用操作join到源類C1s,Cms中而形成的類。假定一個數(shù)據(jù)對象odCd,根據(jù)操作join,我們定義od在類C1s,Cms中的派生信息是P(C1s,Cms)(od) = join-1

32、 (C1s,Cms)(od) = <o1s, C1s, proc1>,<oms, Cms, procm>,其中o1s, oms分別為od在C1s,Cms中的源數(shù)據(jù)對象。如果Join操作僅僅用于比較實驗數(shù)據(jù)的結(jié)果,那么Proc可以允許為空。定義4 C1b, Cnb是基本科學(xué)類,Cd是C1b, Cnb經(jīng)過多次opdep操作生成的代理類。考慮數(shù)據(jù)對象odCd。Cd = opdep(proc1(Deputy1), prock(Deput yk),其中Deputyj是基本科學(xué)類C1b, Cnb經(jīng)派生得到的中間代理類,kj1。假設(shè)odDeputyj,od應(yīng)用操作opdep派生數(shù)據(jù)對

33、象od(定義3),并且obCib,ni1, 派生od到Deputyj中(本定義遞歸),那么ob派生od到Cd中。因此,od在C1b,Cnb中的派生信息是P(C1b,Cnb)(od) = C1b*,Cnb*。其中C1b*,Cnb*分別是<o1b, C1b, proc1>,<onb, Cnb, procn>的子集。根據(jù)定義4,考慮數(shù)據(jù)對象odCd,PQod,Cd對od在類C1b, Cnb中的跟蹤查詢表示為PQ(od, Cd, (C1b, Cnb),它主要用于查找od在類C1b, Cnb中的源數(shù)據(jù)對象以及經(jīng)歷的科學(xué)服務(wù)程序。其算法表示如下:BeginCd = opdep (p

34、roc1(Deputy1) , prock(Deputyk);PQ(od, Cd, (Deputy1,Deputyk)=Deputy1*, Deputyk*; /其中Deputy1*,Deputyk*分別是<oDeputy1d, Deputy1, proc1>,<oDeputykd, Deputyk, prock>的子集;For i =1 to n do Cib* = Null;For j=1 to k doIf Deputyj*Null Then C1b*,Cnb* = C1b*,Cnb*PQ (oDeputyjd, Deputyj, (C1b, Cnb); /oDe

35、putyjd表示od在Deputyj中的源對象;Return (C1b*, Cnb*); EndPQod,Cd計算od在C1b, Cnb中的派生信息,程序首先計算(Deputy1,Deputyk)經(jīng)過一層代理操作得到的派生信息Deputy1*,Deputyk*,然后不斷遞歸計算每一個Deputyj中oDeputyjd的派生信息。如圖5,如果我們要計算fC類中對象OID為201的數(shù)據(jù)對象的派生信息,容易發(fā)現(xiàn)這個數(shù)據(jù)對象是evts類中為101的數(shù)據(jù)對象經(jīng)過科學(xué)服務(wù)程序atlfast的計算而得到的代理數(shù)據(jù)對象,因此,它在evts類中的派生信息是P(evts)(od) = <101, evts,

36、 atlfast >。同樣,evts類中OID為101的數(shù)據(jù)對象是gC中OID為1的數(shù)據(jù)對象經(jīng)過科學(xué)服務(wù)程序gen的計算而生成的,所以O(shè)ID為1的數(shù)據(jù)對象在gC類中的派生信息為P(gC)(od) = <1, gC, gen>。由此看出,數(shù)據(jù)對象的派生信息能通過雙向指針直接構(gòu)造,節(jié)約了記錄派生信息的存儲空間,也不必使用逆向查詢或逆向函數(shù)進(jìn)行數(shù)據(jù)跟蹤,提高了查詢效率。3.3數(shù)據(jù)物化在跟蹤查詢過程中,通常需要查詢中間數(shù)據(jù)的屬性值,如追蹤fC類中OID為201的數(shù)據(jù)對象在gC中的派生信息時,需要查找evts類中OID為101的數(shù)據(jù)對象屬性值。由于該數(shù)據(jù)對象是gC類中OID為1的數(shù)據(jù)對

37、象的代理對象,為了減少額外的存儲空間,該數(shù)據(jù)對象沒有存儲實際的數(shù)值,而是通過切換操作與它的源數(shù)據(jù)對象共享,因此查詢它的屬性值時,需要通過查找它的源數(shù)據(jù)對象的屬性值再計算得到。由于該數(shù)據(jù)對象的屬性值是源數(shù)據(jù)對象的屬性值經(jīng)過復(fù)雜的科學(xué)程序計算得到,因此,會導(dǎo)致很低的追蹤性能。物化數(shù)據(jù)可以提高追蹤的性能。如果物化evts類中OID為101的數(shù)據(jù)對象屬性值,那么一旦用戶提出查詢這個數(shù)據(jù)對象的屬性值,該屬性值可以立即被找到而不必切換到類gC中OID為1的數(shù)據(jù)對象,再計算出它的值,因此物化中間數(shù)據(jù)能幫助直接查詢中間結(jié)果而不需要重新計算它們,從而增強了追蹤性能。然而,如果物化整個中間數(shù)據(jù),那么可能造成很大的

38、存儲開銷和維持代價,同時許多中間數(shù)據(jù)也許與用戶感興趣的最終數(shù)據(jù)毫不相關(guān),因此沒有必要完全物化它們。為了減少存貯和維持代價,我們提出一種部分物化中間數(shù)據(jù)的模式PM,PM只物化具有代理數(shù)據(jù)對象的中間數(shù)據(jù)。例如,我們僅僅物化evts類中需要被輸入到科學(xué)服務(wù)程序atlfast 和atlsim的對象,與完全物化evts類中數(shù)據(jù)對象相比,大大地節(jié)省了存儲空間。相對于完全物化或不物化中間數(shù)據(jù)而言,PM模式也能減少對象更新維持的代價。例如,更新gC中的一個數(shù)據(jù)對象ogc時,PM首先需要計算evts類中它的代理數(shù)據(jù)對象oevtsd的值并判斷是否引起fC類中oevtsd的代理數(shù)據(jù)對象ofcd的更新,如果不會導(dǎo)致更

39、新,根據(jù)PM的說明,oevtsd一定未被物化,因此系統(tǒng)不需要消耗額外時間將被更新的oevtsd數(shù)據(jù)對象寫入磁盤。此時,如果采用完全物化這種方式,那么系統(tǒng)需要消耗額外時間將被更新的oevtsd對象寫入磁盤。這種情況能保證與不物化這種方式相同的維持代價。如果會導(dǎo)致更新,那么oevtsd一定被物化,因此可根據(jù)被更新的oevtsd的值直接更新數(shù)據(jù)對象ofcd的屬性值,這種情況能保證與完全物化這種方式相同的維持代價。此時如果采用不物化這種方式,即oevtsd未被物化,那么就需要根據(jù)基本數(shù)據(jù)對象ogc的屬性值重新計算ofcd的屬性值,該過程經(jīng)歷了gen和atlfast兩個科學(xué)服務(wù)程序的計算,雖然此時PM需

40、要消耗額外時間將被更新的oevtsd數(shù)據(jù)對象寫入磁盤,但這個時間顯然遠(yuǎn)遠(yuǎn)少于重新計算數(shù)據(jù)的時間。因此PM也能有效的減少對象更新維持的代價。另外,由于最終數(shù)據(jù)的跟蹤查詢只與被物化的中間數(shù)據(jù)相關(guān),因此這種模式并不影響追蹤的性能。4 性能測試這個部分測試了PM模式的跟蹤性能和維持代價,并與未物化中間數(shù)據(jù)模式NM進(jìn)行了比較。4.1 實驗?zāi)P蛯嶒災(zāi)P桶凑請D3(b)的結(jié)構(gòu)設(shè)計。簡單起見,我們假設(shè)只有兩層代理類,其中第一層代理類evts存儲程序gen的結(jié)果,并且完全地繼承g(shù)C中的數(shù)據(jù)對象;第二層代理類fC存儲科學(xué)服務(wù)程序atlfast的結(jié)果,并且繼承evts中大約40%的數(shù)據(jù)對象。為了模擬真實的環(huán)境,我們假

41、設(shè)gen和atlfast分別運行3 秒和2 秒。模式NM和PM分別描述不物化和部份物化類evts。我們首先比較隨著基本類大小的增加其兩種模式在平均追蹤查詢、對象更新維持代價和存儲開銷上的性能,基本類的大小從100,000變化到500,000個對象。其次分析基本類數(shù)據(jù)對象為500,000時,隨著查詢率的增加,500,000個對象分別所需的追蹤查詢時間,更新維持時間,以及系統(tǒng)負(fù)載。更新維持代價和存儲開銷分別描述更新維持evts類和fC類的總時間以及它們總共占用的存儲空間。追蹤查詢或更新維持時,我們假設(shè)每次操作只追蹤或更新一個數(shù)據(jù)對象,并計算半小時內(nèi),成功完成的操作數(shù)量。實驗環(huán)境采用賽揚2.0G C

42、PU,256M內(nèi)存,Linux操作系統(tǒng)。4.2實驗結(jié)果圖6(a)、圖6(b)和圖6(c)分別顯示PM和NM模式的平均對象追蹤時間,維持代價和存儲開銷。圖6(d)、圖6(e)和圖6(f)分別顯示在基本類具有500,000個對象時,隨查詢率的增加,PM和NM模式所需的追蹤查詢時間,更新維持時間,以及系統(tǒng)負(fù)載。圖6 性能測試圖6(a)顯示了PM模式比NM模式取得更高的追蹤性能,并隨基本類大小的增加,NM模式消耗的追蹤時間變長。圖6(b)顯示了隨著基本類大小的增加,PM模式和NM模式的更新維持時間都增加,但PM模式有更好的維持性能。圖6(c)顯示PM模式的存儲開銷比NM模式大。圖6(d)和圖6(e)顯

43、示隨查詢率的增加,追蹤查詢時間和更新維持時間成比例的增加和減少。圖6(f) 顯示了PM模式具有更好的系統(tǒng)性能。而NM模式隨查詢率的增大,所消耗的時間呈上升趨勢。根據(jù)上述分析,由此得出在運行時間較長的科學(xué)實驗中,PM模式顯示出比NM模式更好的性能,尤其PM模式在基本類有大量數(shù)據(jù)對象而最終的數(shù)據(jù)對象僅有一小部分時顯得特別有效。當(dāng)然,由于PM模式的存儲開銷比NM模式大,如果存在大量的最終數(shù)據(jù)對象,并且這些數(shù)據(jù)對象本身是由運行時間非常短的程序產(chǎn)生,那么NM模式可能也會顯示出較好的性能。5 相關(guān)工作科學(xué)工作流技術(shù)研究在近些年得到很好的發(fā)展,特別是將web服務(wù)技術(shù)應(yīng)用到科學(xué)工作流中已引起了廣泛關(guān)注1,2,

44、15,它們通常采用基于XML的語言如WSFL,XLANG,BPEL4WS等表達(dá)web服務(wù)組合之間的控制流。然而,這些語言主要針對商業(yè)流程建模,對于將web服務(wù)應(yīng)用到以數(shù)據(jù)庫為核心的科學(xué)工作流系統(tǒng)中的研究幾乎沒有被探討。據(jù)我們所知,第一個倡導(dǎo)WFMSs和DBMSs相結(jié)合的系統(tǒng)是ZOO5。ZOO是一個桌面實驗管理環(huán)境,它使用面向?qū)ο笳Z言Moose建模工作流之間的控制流,將其表示為任務(wù)與輸入數(shù)據(jù)、輸出數(shù)據(jù)間的關(guān)系。通過在關(guān)系上安排相應(yīng)的規(guī)則來觸發(fā)任務(wù)的執(zhí)行。與ZOO類似,GridDB6同樣基于數(shù)據(jù)庫模式來構(gòu)建工作流,不同的是,它關(guān)注的是網(wǎng)格環(huán)境,并使用了更加簡單的關(guān)系模型來構(gòu)造工作流。程序的輸入和輸

45、出被建模為關(guān)系表,用戶使用功能數(shù)據(jù)建模語言FDM定義程序以及程序的輸入與輸出間的關(guān)系。通過觸發(fā)器的使用,在輸入表中插入元組能觸發(fā)程序的執(zhí)行。文獻(xiàn)16提出了一種緊密集成WFMS和DBMS的工作流建模語言。初始的輸入數(shù)據(jù)和程序被描述為活動關(guān)系表,派生的數(shù)據(jù)和程序被描述為活動視圖,工作流通過不斷的定義活動視圖而組成,程序的觸發(fā)和執(zhí)行通過SQL語句來完成。與ZOO和GridDB一樣,集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架也是基于數(shù)據(jù)庫管理系統(tǒng)為核心來實現(xiàn)科學(xué)工作流管理。它使用對象代理模型來建模工作流,表達(dá)工作流的控制邏輯,不僅能對同一任務(wù)的輸入和輸出進(jìn)行建模,還對任務(wù)間的數(shù)據(jù)關(guān)系進(jìn)行建模。最重要的是,

46、利用對象代理數(shù)據(jù)庫內(nèi)部對象間的雙向指針可以實現(xiàn)高效的數(shù)據(jù)跟蹤。作為一個關(guān)鍵組件,數(shù)據(jù)跟蹤方法已經(jīng)被很多科學(xué)工作流和數(shù)據(jù)庫領(lǐng)域研究了。主要包括注釋和反向兩種方法。反向方法主要是應(yīng)用逆向查詢或者逆向函數(shù),由結(jié)果數(shù)據(jù)溯源到其源數(shù)據(jù)。而注釋的方法則是將一個數(shù)據(jù)的派生歷史搜集起來作為元數(shù)據(jù),對源數(shù)據(jù)和處理過程進(jìn)行描述。當(dāng)前,大多工作流管理系統(tǒng)更依賴于注釋9,10,11,Chimera9分析虛擬數(shù)據(jù)目錄并提出了表示操作序列的抽象有向無環(huán)圖。一些數(shù)據(jù)跟蹤系統(tǒng)mygird10, CMCS11也使用RDF和OWL提供語義信息以便于實現(xiàn)科學(xué)工作流在合作環(huán)境中的交互,然而,CMCS對語義信息的支持比較有限,所以真正

47、在數(shù)據(jù)跟蹤信息中提供語義信息的只有myGrid,它將本體概念注釋到數(shù)據(jù)跟蹤日志以提供豐富的語義。然而,注釋描述數(shù)據(jù)對象的派生歷史,因此,既使數(shù)據(jù)是粗粒度的,注釋信息占用的存儲空間也可能比數(shù)據(jù)本身大。而在基于對象代理模型的數(shù)據(jù)跟蹤方法中,數(shù)據(jù)對象的派生歷史能通過雙向指針直接構(gòu)造,因此節(jié)約了大量的存儲空間。反向方法從存儲角度看,特別對大量細(xì)粒度的數(shù)據(jù)似乎是更佳的選擇,因為逆向函數(shù)或查詢標(biāo)識一整類數(shù)據(jù)的派生信息。許多數(shù)據(jù)庫領(lǐng)域7,17,18,19都采取這個方法為用戶提供面向數(shù)據(jù)的數(shù)據(jù)跟蹤服務(wù)。Buneman7通過反向方法確定了數(shù)據(jù)跟蹤的兩種形式,why表示數(shù)據(jù)產(chǎn)生的原因,而where提供產(chǎn)生數(shù)據(jù)的源

48、數(shù)據(jù)。Trio17使用反向方法自動地通過視圖查詢或用戶定義的函數(shù)確定元組的源數(shù)據(jù)。任何使用數(shù)據(jù)庫查詢和函數(shù)構(gòu)造工作流的系統(tǒng)均可使用這樣的技術(shù)。然而,并非所有的函數(shù)都有逆函數(shù)20,雖然文獻(xiàn)18提出一個框架以便根據(jù)弱逆向函數(shù)計算近似的源,但該文并沒有提供產(chǎn)生弱逆向函數(shù)的機制。基于對象代理模型的數(shù)據(jù)跟蹤方法與反向方法具有一些相似性,例如,也要求“反向”查詢以便找到派生該數(shù)據(jù)對象的源數(shù)據(jù)對象,但它不必使用逆向查詢或逆向函數(shù)計算數(shù)據(jù)的派生信息。反向方法雖然不會造成存儲的開銷,但每次一個數(shù)據(jù)的派生歷史被需求時,它需要產(chǎn)生一個逆向函數(shù)或逆向查詢?nèi)ビ嬎闩缮畔ⅲ跀?shù)據(jù)量大的情況下,執(zhí)行效率較低。文獻(xiàn)21也表明

49、如果有大量的派生信息需求時,這種計算信息源的方法并不是好的選擇。而基于對象代理模型的數(shù)據(jù)跟蹤方法僅僅通過源數(shù)據(jù)對象與代理數(shù)據(jù)對象之間的雙向指針便可查找到代理數(shù)據(jù)對象的派生信息,而不需要額外的計算代價。該方法也能有效的避免一些逆向函數(shù)不存在或計算不精確的問題。使用反向方法計算的派生信息通常需要存取信息源,而這些信息源可能很遙遠(yuǎn)或在一段時間內(nèi)不可取。反向方法通常需要存儲額外的輔助信息以便在數(shù)據(jù)跟蹤時減少或避免整個源存取。如通過在數(shù)據(jù)倉庫中存儲額外的輔助信息,19能減少或完全避免存取信息源。而在基于對象代理模型的數(shù)據(jù)跟蹤方法中,代理數(shù)據(jù)對象能物化一些來自源數(shù)據(jù)對象的屬性值,從而有效的解決了以上問題。

50、同時,從數(shù)據(jù)跟蹤信息語義豐富程度的角度來考慮,顯然反向方法所能給出的派生信息語義是非常有限的,通常只表示信息源極其經(jīng)歷的實驗過程?;趯ο蟠砟P偷臄?shù)據(jù)跟蹤方法能隨應(yīng)用需要在代理類中增加自己的屬性,可以更加豐富的表示數(shù)據(jù)對象的信息,彌補了反向方法表示數(shù)據(jù)不豐富的缺陷。無論是哪種數(shù)據(jù)跟蹤方法,一旦源發(fā)生改變,那么后續(xù)的數(shù)據(jù)需要使用一種類似于“維持表達(dá)式”的方式修改視圖。在我們的方法中,如果數(shù)據(jù)源改變,工作流隨后的階段可能自動地被觸發(fā),并自動更新派生的科學(xué)對象。然而,無論注釋或“反向”方法都不支持這個功能。6 結(jié)論與展望本文在分析了目前數(shù)據(jù)跟蹤方法的基礎(chǔ)上,研究并提出了一個基于對象代理模型的數(shù)據(jù)跟

51、蹤方法。該方法基于集成對象代理數(shù)據(jù)庫的科學(xué)工作流服務(wù)框架對科學(xué)工作流建模,借助對象之間的OID雙向指針來實現(xiàn)數(shù)據(jù)跟蹤,使得數(shù)據(jù)跟蹤能提供比注釋或反向查詢更高的性能。因為科學(xué)工作流的實驗方法和實驗數(shù)據(jù)通常需要被共享和重用,如何增強科學(xué)工作流的流程重用和數(shù)據(jù)重用,是我們下一步的工作。參 考 文 獻(xiàn)1 Cavalcanti M C, Targino R, Baião F, Rössle S C, Bisch P M, Pires P F, Campos M L M, Mattoso M. Managing structural genomic workflows using we

52、b services. Data & Knowledge Engineering, 2005, 53(1): 4574.2 Jaeger E, Altintas I, Zhang J, Ludäscher B, Pennington D, Michener W. A scientific workflow approach to distributed geospatial data processing using web services /Proceeding of the 17th International Conference on Scientific and

53、Statistical Database Management, Santa Barbara, CA, 2005. USA: IEEE Computer Society, 2005: 8790.3 Ludäscher B, Altintas I, Berkley C, Higgins D, Jaeger E, Jones M, Lee E A, Tao J, Zhao Y. Scientific workflow management and the Kepler system. Concurrency and Computation: Practice & Experien

54、ce, 2005, 18(10): 10391065.4 Dan M. Dynamic Workflows and Advanced Data Management for Problem Solving Environments. Blacksburg, Virginia: Virginia Tech, 2002.5 Ailamaki A, Ioannidisz Y E., Livny M. Scientific workflow management by database management /Proceeding of the 10th International Conferenc

55、e on Scientific and Statistical Database Management, Los Alamitos, CA, 1998. USA: IEEE Computer Society, 1998: 190199.6 Liu David T, Franklin M J. The design of griddb: a data-centric overlay for the scientific grid /Proceeding of the 30th International Conference on Very Large Data Bases, Toronto,

56、Canada, San, 2004. San Mateo, CA, USA: Morgan Kaufmann, 2004: 600611.7 Buneman P, Khanna S, Tan W C. Why and where: a characterization of data provenance /Proceeding of the 8th International Conference on Database Theory, London, UK, 2001. London, UK: Springer-Verlag, 2001: 316330.8 Greenwood M, Gob

57、le C, Stevens R, Zhao J, Addis M, Marvin D, Moreau L, Oinn T. Provenance of e-science experiments - experience from bioinformatics /Proceedings of the UK OST e-Science second All Hands Meeting, 2003.9 Foster I, Vockler J, Wilde M, Zhao Y. Chimera: a virtual data system for representing, querying, an

58、d automating data derivation /Proceeding of the 14th International Conference on Scientific and Statistical Database Management, Edinburgh, Scotland, UK, 2002. USA: IEEE Computer Society, 2005: 3746.10 Zhao J, Goble C A, Stevens R, Bechhofer S. Semantically linking and browsing provenance logs for E-science /Proceeding of the first International IFIP Conference on Semantics of a Networked World, Paris, France, 2004. Lond

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論