張娓娓,李苗鈺,石 梅,朱省吾,黃 位,郭 軍
(1.西北大學(xué) 物聯(lián)網(wǎng)研究中心,陜西 西安 710127;2.西安思源學(xué)院,陜西 西安 710019;3.西北大學(xué) 信息學(xué)院,陜西 西安 710127;4.西北大學(xué) 京東人工智能與物聯(lián)網(wǎng)聯(lián)合研究院,陜西 西安 710127)
隨著人類社會進入信息化時代,科技信息的數(shù)量規(guī)模呈現(xiàn)出爆炸式增長,并通過互聯(lián)網(wǎng)廣泛傳播??萍夹畔①Y源種類繁多、數(shù)量巨大,包括常見的技術(shù)專利、科技文獻、科學(xué)儀器數(shù)據(jù)、技術(shù)報告等,也包括一些行業(yè)領(lǐng)域內(nèi)部的科技資源,比如電力、電信、機械電子、金融、氣象等行業(yè)特有的科技資源[1-2]。為了有效利用這些科技資源,各種科技信息服務(wù)平臺和資源庫隨之大量涌現(xiàn),如國內(nèi)比較著名的有萬方數(shù)據(jù)、維普期刊、超星數(shù)字圖書、知網(wǎng)數(shù)據(jù)等,國外的數(shù)字科技資源種類更加豐富,著名的有Elsevier、Springer、Wiley在線圖書、IEEE數(shù)據(jù)庫、ACM數(shù)據(jù)庫等,此外一些專業(yè)機構(gòu)也提供部分科技資源,如國家專利局。相比于傳統(tǒng)的紙質(zhì)文獻資料,這些基于云計算和虛擬化技術(shù)構(gòu)建的資源庫,可以讓人們通過網(wǎng)絡(luò)快速檢索需要的資料,為科學(xué)研究和技術(shù)開發(fā)提供了極其便利的條件。但是,由于科技資源的業(yè)務(wù)服務(wù)比較分散,加之各種科技資源庫相互獨立,并且科技項目、科技成果、技術(shù)專利歸屬不同部門,造成科技資源條塊分割,共享和協(xié)同服務(wù)難度很大。例如,為了申請一個科研或開發(fā)項目,人們需要了解和這個項目相關(guān)的科技資料,包括項目相關(guān)的中英文文獻、專利、相關(guān)領(lǐng)域的專家學(xué)者的著作等。有時,這些資料沒有相應(yīng)的資料庫,人們需要通過一些通用的搜索引擎工具,例如Google和百度進行搜索,然后過濾相關(guān)性不高的信息,獲得有價值的信息;有些資源雖然有專業(yè)的資料庫,例如常見的CNKI、IEEE、ACM等文獻資料庫,但是,由于這些資料庫相互獨立,人們需要分別登錄訪問,查找感興趣的信息,很不方便,而且要完成以上這些工作,需要消耗人們大量的時間和精力。為了節(jié)省查找資料的時間和精力,讓科技人員快速準確地找到所需要的信息,構(gòu)建一個有效的分布式科技資源庫和業(yè)務(wù)服務(wù)系統(tǒng)是工業(yè)界非常關(guān)心的問題,也是學(xué)術(shù)界面臨的一個挑戰(zhàn)課題。
基于云計算技術(shù)和虛擬化資源池理論,該文提出一種分布式科技資源池服務(wù)架構(gòu),并從形式化軟件開發(fā)的角度出發(fā),利用Pi演算作為描述工具,討論這種分布式科技資源池的外部交互行為,給出科技資源庫的外部交互行為的描述,以便進一步通過Pi演算的規(guī)約規(guī)則預(yù)測系統(tǒng)的行為,為系統(tǒng)平臺的設(shè)計開發(fā)提供理論依據(jù)。
云計算是近年來信息技術(shù)領(lǐng)域出現(xiàn)的一種新技術(shù),它融合了計算機領(lǐng)域中的并行計算、分布式計算、虛擬化技術(shù)、網(wǎng)絡(luò)存儲、負載均衡等先進技術(shù),能夠高效地管理和調(diào)度地理分布廣、數(shù)據(jù)類型多的信息資源,并提供有效的服務(wù),是當前學(xué)術(shù)界和工業(yè)界研究的熱點之一[1-8]。云計算環(huán)境中資源管理包括對云環(huán)境中的資源組織、數(shù)據(jù)存取等系統(tǒng)建模。云計算資源調(diào)度包括資源調(diào)度算法以及相關(guān)的資源發(fā)現(xiàn)、描述、定位、組織、分配、監(jiān)測、更新等。Google公司作為云計算領(lǐng)域的領(lǐng)導(dǎo)者,擁有最為完整和先進的云計算技術(shù)。Google通過創(chuàng)建多級分布式的數(shù)據(jù)中心,使用分布式文件系統(tǒng)GFS(Google File System)較好地解決了數(shù)據(jù)的存儲和訪問難題。Google的資源調(diào)度系統(tǒng)會根據(jù)用戶的地理位置查詢距離當前位置最近的資源并且考慮當前資源的服務(wù)能力,選擇合適的資源分配給用戶使用;Amazon公司在云計算領(lǐng)域也擁有獨特的技術(shù),它把各類資源組建成一個完全分布式、去中心化的云計算平臺,其資源調(diào)度算法依據(jù)用戶的特征、需要使用資源的種類、資源數(shù)量、資源使用時間等信息為用戶合理安排所需要的資源;另一個重要的云計算參與者是VMware公司,其主要考慮通過對物理資源的虛擬化來提高資源利用率,VMware的數(shù)據(jù)中心虛擬化管理軟件可以提供虛擬化基礎(chǔ)構(gòu)架、資源管理和應(yīng)用程序等多種服務(wù)。目前,分布式、去中心化和虛擬化技術(shù)為構(gòu)建云服務(wù)基礎(chǔ)設(shè)施IaaS提供了基本的指導(dǎo)原則[9-11],也是該文構(gòu)建科技信息服務(wù)資源池的主要理論依據(jù)。
Pi演算理論起源于20世紀80年代,由圖靈獎得主Robin Milner參照物理學(xué)大統(tǒng)一理論提出[12-13],用演算中的歸約表示由進程間的相互通信形成的動態(tài)演化。Pi演算最初是一種描述和分析通信系統(tǒng)的并發(fā)性以及移動性的計算模型,用動態(tài)演化結(jié)構(gòu)表示過程間的間歇性相互作用。由于Pi演算對于動態(tài)并發(fā)行為具有很好的描述分析能力,因而被廣泛應(yīng)用于并發(fā)系統(tǒng)的分析驗證。
關(guān)于Pi演算的研究工作主要分為兩大類:一類是理論研究,另一類是應(yīng)用研究。其中,早期的工作以理論研究為主[12-14],國內(nèi)外許多學(xué)者都開展了相關(guān)研究,文獻[14]用Pi演算的通道和表編程概念,分析同構(gòu)分布式環(huán)境下的多任務(wù)調(diào)度算法;文獻[15]則對復(fù)雜分支和同步模式進行了Pi演算描述和理論分析。Pi演算的應(yīng)用研究也十分活躍,文獻[16]基于 Petri網(wǎng)建??缃M織業(yè)務(wù)過程模型的內(nèi)部視圖,進而使得跨組織業(yè)務(wù)過程協(xié)同的驗證轉(zhuǎn)換成Pi演算的推演;文獻[17]應(yīng)用Pi演算對醫(yī)院信息系統(tǒng)中的耗材計劃管理流程建模,并應(yīng)用MWB對流程進行驗證;文獻[18]應(yīng)用Pi演算對服務(wù)交互流程進行建模描述,但其模型相對比較簡單;文獻[19]運用Pi演算對移動通信服務(wù)機制進行研究,通過模型檢測驗證服務(wù)的有效性。這些理論和應(yīng)用研究工作表明,對于分布式并發(fā)系統(tǒng)動態(tài)行為的分析描述,Pi演算仍然是一個非常有效的分析工具。該文正是利用Pi演算這種獨特優(yōu)勢,描述科技服務(wù)資源池的交互行為,進而驗證交互服務(wù)業(yè)務(wù)的有效性和可靠性。
在傳統(tǒng)中心數(shù)據(jù)庫和C/S和B/S網(wǎng)絡(luò)架構(gòu)中,用戶請求服務(wù)時,服務(wù)器都會分配固定的資源節(jié)點。但是,隨著用戶數(shù)量增加,節(jié)點的負載能力就會出現(xiàn)不足。而且,一個節(jié)點失效就可能停止整個服務(wù)。所以,這種中心節(jié)點(服務(wù)器)網(wǎng)絡(luò)架構(gòu)難以適應(yīng)大規(guī)模服務(wù)計算的需求。另一方面,考慮到網(wǎng)絡(luò)中存在大量的空閑節(jié)點,其計算資源、存儲資源并沒有得到充分有效的利用,如果將用戶請求的各類資源節(jié)點形成一個資源池,在響應(yīng)用戶服務(wù)請求時,根據(jù)資源池中的資源情況,統(tǒng)一協(xié)調(diào)地分配給用戶,替代傳統(tǒng)的中心節(jié)點和分散孤立節(jié)點的模式,就可以平衡資源節(jié)點的負載壓力,提高資源的服務(wù)效率。
云計算和虛擬化技術(shù)為分布式科技資源服務(wù)系統(tǒng)構(gòu)建提供了成熟可靠的技術(shù)基礎(chǔ),通過云計算技術(shù)可以將不同地域分布的各種科技資源進行統(tǒng)一的管理,而虛擬化技術(shù)屏蔽了繁瑣復(fù)雜的內(nèi)部訪問數(shù)據(jù)和調(diào)用資源細節(jié),為系統(tǒng)提供統(tǒng)一的讀寫操作、分布式文件存儲、彈性資源服務(wù)等[9]。依據(jù)云計算思想和虛擬化技術(shù),該文提出了一種分布式科技資源池應(yīng)用系統(tǒng)架構(gòu),如圖1所示,自下而上描述為四層模型:物理層、虛擬(資源池)層、匯聚層、應(yīng)用層,下面將對各層功能做詳細的描述。
圖1 分布式科技資源池應(yīng)用系統(tǒng)架構(gòu)
物理層:物理資源層是科技資源服務(wù)管理系統(tǒng)的基礎(chǔ)設(shè)施層,是承載各種科技資源的物理實體,由分布在不同地區(qū)、不同規(guī)格的物理設(shè)備組成,主要包括計算機、存儲設(shè)備、網(wǎng)絡(luò)設(shè)備以及基礎(chǔ)軟件等。
虛擬層:實際上也是資源池層,通過采用虛擬化技術(shù),將各種資源抽象為一個大容量的池化模型,資源的分布與組織相對上層是透明的,資源池按需為服務(wù)分配所需的資源。
匯聚層:為上層用戶提供一個高效的資源匯聚平臺,匯聚層通過判斷用戶所需資源特性選擇相應(yīng)的匯聚策略,執(zhí)行相關(guān)的匯聚算法,可以實現(xiàn)服務(wù)資源匯聚、數(shù)據(jù)匯聚和軟件構(gòu)件的匯聚。
應(yīng)用層:主要面向科技資源服務(wù)的應(yīng)用需求,通過虛擬的云計算門戶對外界提供各種業(yè)務(wù)應(yīng)用、管理應(yīng)用和其他交互應(yīng)用等。
在分布式科技資源池應(yīng)用系統(tǒng)中,匯聚層是整個系統(tǒng)的關(guān)鍵環(huán)節(jié),資源的匯聚是最重要的任務(wù),其中數(shù)據(jù)匯聚是最復(fù)雜的工作。因為在跨區(qū)域的分布式資源匯聚時,既要考慮資源的空間分布關(guān)系,還要考慮資源的時間并發(fā)關(guān)系。為了達到時間空間有效匯聚,需要對匯聚過程和方法進行描述分析,獲得理論上的性能驗證。形式化方法通常具有良好的定義和表達,是模型驗證的首選方法。因此,該文采用Pi演算這一形式化工具,對科技服務(wù)資源池的數(shù)據(jù)匯聚行為進行分析描述。首先給出Pi演算的定義,然后模型描述驗證數(shù)據(jù)匯聚方法在時間空間上的合理性和有效性。
圖2 Pi演算的圖形表示
定義:設(shè)N是一個表示名稱的可數(shù)無限集合,用a,b,x,y…表示N中的元素;A是一個代理(或過程)的集合,用P,Q,R表示A中的元素,則Pi演算的語法可定義如下:
這里,x(y).P和(y)P中的y被稱為約束名稱,P是它們的轄域。在P中出現(xiàn)的非約束名稱稱為自由名稱,P中的自由名稱的集合表示為fn(P),約束名稱的集合表示為bn(P),P中名稱的集合用n(P)表示。
公式中操作符的含義如下:
(1)0表示這個過程不做任何動作;
(3)x(y).P表示名稱x收到任何名稱后,執(zhí)行P并用收到的名稱替換y;
(4)τ.P表示從τ.P不可見的演化到P,即可認為τ是一個內(nèi)部動作;
(5)(y)P表示名稱y的作用范圍是P;
(6)P|Q表示P和Q獨立執(zhí)行并且可通過共有的名稱相互通信;
(7)P+Q表示P和Q只能有一個執(zhí)行;
(8)A(x1,x2,…,xn)表示過程A中的自由名稱;
(9)!P表示可無限重復(fù)執(zhí)行P,即認為!P=P|P|P...或!P=P|!P。
在描述數(shù)據(jù)的匯聚行為時,主要考慮從已經(jīng)建立好的獨立的科技資源庫中提取數(shù)據(jù)進行集成,其業(yè)務(wù)流程框架如圖3所示。在圖3中,空間分布的獨立資源節(jié)點由資源匯聚調(diào)度中心統(tǒng)一管理,數(shù)據(jù)資源需要經(jīng)過前期清洗之后才能進入虛擬資源池,以保證較低的數(shù)據(jù)重復(fù)率和錯誤率,資源匯聚過程既要考慮空間高效性,也要考慮時間準確性。用戶對資源的訪問可以是直接的,也可以是間接的資源鏈接地址,資源調(diào)度算法會給出一個優(yōu)化的資源服務(wù)方案。
圖3 數(shù)據(jù)資源匯聚基本框架
假設(shè)目前已經(jīng)有n個獨立的科技資源庫,分別用P1,P2,…,Pn表示,即把每一個獨立資源庫看做一個進程,則P1,P2,…,Pn的Pi演算描述如下:
…
其中,ti,ci表示從時刻ci開始的一段時間ti,也就是當從時刻ci開始在時間段ti產(chǎn)生新數(shù)據(jù)時,進程Pi發(fā)起和進程Q的通信(Q是集成的資源池),并把時間段ti內(nèi)的數(shù)據(jù)匯聚到Q中,然后把通信權(quán)轉(zhuǎn)入下一個進程。
集成后的資源庫也稱為資源池,用Q表示,把集成后的資源池Q也看作一個進程,則Q的Pi演算描述如下:
Q=x.Q
最后,集成資源池與獨立資源庫交互行為可用Pi演算描述為:
S=Q|P
則系統(tǒng)的交互行為利用Pi演算的規(guī)約規(guī)則可推演如下:
客戶訪問數(shù)據(jù)是資源池服務(wù)的基本交互業(yè)務(wù)。服務(wù)過程通常由用戶進程發(fā)起請求,供應(yīng)商服務(wù)進程提供響應(yīng),業(yè)務(wù)流程如圖4所示,圖中箭頭代表了信息的流向。為了保證不同類型數(shù)據(jù)傳輸?shù)恼_性,一般可以開辟不同的傳輸通道,圖中把發(fā)送通道和接收通道分開表示。以上資源訪問交互活動可以用Pi演算描述如下:
圖4 基本資源池服務(wù)交互流程
這里,UP是用戶進程,SP是服務(wù)商進程,res和req是邏輯獨立的用戶進程通道和服務(wù)進程通道,msg代表產(chǎn)生的消息,< >表示有方向地傳遞消息。
在構(gòu)建和集成分布式科技資源池服務(wù)系統(tǒng)時,考慮到系統(tǒng)的負載及用戶的訪問速度,需要分別在不同區(qū)域建立集成資源的備份。當用戶訪問中心資源庫(資源池)時,可以根據(jù)用戶的位置把用戶的訪問定位到不同區(qū)域的備份上,從而提高服務(wù)效率。例如,當客戶進程訪問中心資源庫Q時,Q可以把Q1的鏈接發(fā)給客戶進程,讓客戶進程訪問Q1,如圖5所示,也就是需要把圖5(a)的結(jié)構(gòu)變?yōu)閳D5(b)的結(jié)構(gòu)。在圖5(a)中,進程Q和Q1之間的連接是私有的,也就是Q和Q1之間的連接名稱的作用范圍只限于Q和Q1,而進程C在一開始并不知道這個鏈接。可以把這個鏈接名考慮為Q1的網(wǎng)址,在剛開始,客戶進程C并不知道進程Q1的網(wǎng)址,但進程Q知道,可以讓進程Q把Q1的網(wǎng)址通過它和C的管道發(fā)給C,這樣進程C就可以獲得Q1的網(wǎng)址,因而進程C可以和進程Q1實現(xiàn)通信。
圖5(a)Pi演算描述為:
S=(z)(Q|Q1)|C
圖5(b)Pi演算描述為:
S'=Q'|C'|Q1
通過Pi演算的演化規(guī)則,可以得到:
也就是說,通過Pi演算的演化規(guī)則可以從圖5(a)到達圖5(b),交互過程是可行的,不會出現(xiàn)死鎖等問題,以上分析也體現(xiàn)了Pi演算對移動行為的描述能力。
(a)初始訪問結(jié)構(gòu) (b)變遷訪問結(jié)構(gòu)圖5 客戶訪問中心數(shù)據(jù)庫時的變遷圖
針對科技資源服務(wù)業(yè)務(wù)需求,提出了一種科技資源池服務(wù)系統(tǒng)架構(gòu)模型,討論了用Pi演算對數(shù)據(jù)集成及數(shù)據(jù)訪問的外部交互行為的描述方法。通過對數(shù)據(jù)訪問交互行為的Pi演算描述,說明了訪問結(jié)構(gòu)的動態(tài)遷移。下一步的工作,可以依據(jù)所建立的Pi演算描述,用支持Pi演算規(guī)約規(guī)則的工具進一步驗證交互行為中的一些特性。例如通過數(shù)據(jù)集成模式外部交互行為的描述,進一步使用Pi演算的動態(tài)演化規(guī)則,可以判斷中心數(shù)據(jù)庫能否在某段時間內(nèi)保證對所有的獨立數(shù)據(jù)源的訪問,并且在某一個時刻只能與一個獨立資源交互。通過分析推理可知,Pi演算作為一種過程代數(shù),非常適合描述系統(tǒng)的并發(fā)行為及動態(tài)遷移行為。在實際應(yīng)用中,當建立具有并發(fā)性以及動態(tài)拓撲結(jié)構(gòu)的科技信息服務(wù)系統(tǒng)時,在系統(tǒng)投入使用前,用Pi演算對其行為進行描述并分析,有助于在系統(tǒng)開發(fā)初期及早發(fā)現(xiàn)其中存在的問題。