專利名稱:模型化的網(wǎng)格資源定位方法
技術(shù)領(lǐng)域:
模型化的網(wǎng)格資源定位方法屬于分布式技術(shù)與系統(tǒng)領(lǐng)域,尤其涉及高性能網(wǎng)格計(jì)算技術(shù)領(lǐng)域背景技術(shù)現(xiàn)代科學(xué)研究中人們求解問題的領(lǐng)域在不斷擴(kuò)大,所遇到的問題也越來越復(fù)雜,而且規(guī)模越來越大,解決這些問題所需要的計(jì)算能力也在大幅度提高,局部的計(jì)算資源已經(jīng)無法滿足需求。隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,很多組織和科研單位都擁有計(jì)算能力很強(qiáng)的超級(jí)計(jì)算機(jī),但這些機(jī)器往往因?yàn)橹皇枪铝⒌臑楸締挝环?wù)而沒有充分發(fā)揮作用,在大部分時(shí)間處于空閑狀態(tài)。因此,打破地域的限制,協(xié)同使用在網(wǎng)絡(luò)上廣泛分布的各類資源已成為必須的要求。
網(wǎng)格技術(shù)的提出和發(fā)展正是為了滿足上述這種要求,其目標(biāo)是跨地域?qū)崿F(xiàn)異構(gòu)資源的共享和協(xié)同工作,消除信息孤島和資源孤島。與它相關(guān)的技術(shù)包括網(wǎng)絡(luò)技術(shù)、XML技術(shù)、Web服務(wù)技術(shù)(web service)、高性能計(jì)算等。隨著網(wǎng)格技術(shù)的逐漸成熟,結(jié)合了面向服務(wù)理念的開放式網(wǎng)格服務(wù)架構(gòu)(Open Grid Services Architecture,OGSA)已成為網(wǎng)格界事實(shí)上的標(biāo)準(zhǔn),而Web服務(wù)資源框架(WS-Resource Framework,WSRF)是OGSA的最新實(shí)現(xiàn)規(guī)范。一個(gè)遵從OGSA架構(gòu)的網(wǎng)格系統(tǒng)(也稱為網(wǎng)格環(huán)境)通常包括以下三類實(shí)體●共享資源。真正提供計(jì)算能力、能獨(dú)立運(yùn)行的對象,如安裝了操作系統(tǒng)的計(jì)算機(jī),網(wǎng)絡(luò),存儲(chǔ)系統(tǒng)等,是網(wǎng)格系統(tǒng)賴以運(yùn)行的物質(zhì)基礎(chǔ)。網(wǎng)格中的共享資源由個(gè)人/組織(稱為“資源所有者”或“管理員”)貢獻(xiàn),對外表現(xiàn)為自治的單位個(gè)體。資源所有者可以對其貢獻(xiàn)的共享資源加以諸如“只有在機(jī)器負(fù)載不超過50%時(shí)才能被網(wǎng)格系統(tǒng)使用”之類的限定,用于限制網(wǎng)格系統(tǒng)對其共享資源的使用。加入網(wǎng)格系統(tǒng)的共享資源通常也稱為網(wǎng)格節(jié)點(diǎn),每一個(gè)網(wǎng)格節(jié)點(diǎn)在網(wǎng)格環(huán)境中都有全局唯一的標(biāo)識(shí)(比如,使用IP地址來標(biāo)識(shí)網(wǎng)格節(jié)點(diǎn))。
●網(wǎng)格服務(wù)。基于共享資源的本地運(yùn)行環(huán)境(如操作系統(tǒng))、為達(dá)到一定的功能目的,并按照特定的網(wǎng)格標(biāo)準(zhǔn)/規(guī)范(如WSRF)來開發(fā)的程序代碼。網(wǎng)格服務(wù)部署在網(wǎng)格節(jié)點(diǎn)之上,使用共享資源的計(jì)算能力來處理用戶的請求。將共享資源上配備的軟件、已有程序等具有的功能發(fā)布為網(wǎng)格服務(wù)的過程稱為服務(wù)包裝。可以將多個(gè)網(wǎng)格服務(wù)按照一定的流程進(jìn)行組合,發(fā)布為工作流網(wǎng)格服務(wù),向用戶提供更強(qiáng)大的功能。工作流服務(wù)和一般的網(wǎng)格服務(wù)對于用戶而言沒有區(qū)別,均為符合了特定網(wǎng)格標(biāo)準(zhǔn)/規(guī)范的網(wǎng)格服務(wù)。
●用戶。調(diào)用網(wǎng)格服務(wù)的實(shí)體,又稱為用戶節(jié)點(diǎn)。
網(wǎng)格環(huán)境中用戶通過訪問網(wǎng)格服務(wù)來獲得共享資源貢獻(xiàn)的計(jì)算能力。按照WSRF規(guī)范來實(shí)現(xiàn)的網(wǎng)格服務(wù)每接收到一個(gè)訪問請求,都會(huì)實(shí)時(shí)地生成服務(wù)資源或選擇一個(gè)事先已實(shí)例化好的服務(wù)資源來處理此次請求;用戶請求在處理過程中產(chǎn)生的特征則通過該服務(wù)資源的屬性來表現(xiàn)。比如,某一網(wǎng)格節(jié)點(diǎn)上部署有一個(gè)批處理服務(wù),它接到用戶提交的一個(gè)批處理任務(wù)請求后,將生成一個(gè)批處理服務(wù)資源來負(fù)責(zé)該用戶任務(wù)的執(zhí)行事宜;批處理服務(wù)資源具有“任務(wù)狀態(tài)”這一資源屬性,該屬性的值(如“隊(duì)列中”、“正在執(zhí)行”、“結(jié)束”等)則說明了對應(yīng)用戶任務(wù)的執(zhí)行情況。因此,服務(wù)資源反應(yīng)了共享資源向用戶提供計(jì)算力的情況,稱這樣的服務(wù)資源為網(wǎng)格資源。具體地說,網(wǎng)格資源是在共享資源之上的一個(gè)邏輯概念,它們通過虛擬化和聚合共享資源的計(jì)算能力來向用戶提供與網(wǎng)格服務(wù)對應(yīng)的功能。一個(gè)網(wǎng)格資源的訪問地址(即定位信息)在整個(gè)網(wǎng)格環(huán)境中都是全局唯一的。
網(wǎng)格服務(wù)和網(wǎng)格資源之間是互相對應(yīng)的。不同的網(wǎng)格服務(wù)它們對應(yīng)的網(wǎng)格資源也不同。依據(jù)WSRF規(guī)范,這種對應(yīng)關(guān)系有“一般”和“Singleton”兩種模式。Singleton模式的網(wǎng)格服務(wù)在運(yùn)行期間只會(huì)對應(yīng)一個(gè)網(wǎng)格資源,所有請求均由該網(wǎng)格資源來完成;一般模式的網(wǎng)格服務(wù)在運(yùn)行期間可對應(yīng)多個(gè)網(wǎng)格資源,這些資源既能在接收用戶請求后動(dòng)態(tài)實(shí)例化,也可在初始化時(shí)就預(yù)先生成??傮w上來說,Singleton模式使用得較少,而一般模式較為普遍。鑒于網(wǎng)格服務(wù)功能上的差異,它們對應(yīng)的網(wǎng)格資源在結(jié)構(gòu)、內(nèi)容、實(shí)現(xiàn)等方面的差別也極大,這種現(xiàn)象稱為網(wǎng)格資源的異構(gòu)性。
對于按一般模式實(shí)現(xiàn)的網(wǎng)格服務(wù),如何管理其對應(yīng)的網(wǎng)格資源,完全由資源所有者決定。當(dāng)網(wǎng)格節(jié)點(diǎn)對同時(shí)處理的任務(wù)數(shù)有一定限制時(shí),一般會(huì)采用“事先生成一組網(wǎng)格資源供網(wǎng)格服務(wù)選擇”的辦法,通過網(wǎng)格資源的數(shù)目來限定用戶請求的數(shù)目。也可將“事先生成”和“動(dòng)態(tài)實(shí)例化”這兩種辦法混合使用首先生成一組網(wǎng)格資源以備使用;當(dāng)用戶請求到來時(shí),如果有空閑的網(wǎng)格資源就從中選取一個(gè),請求處理完畢后網(wǎng)格資源回歸空閑狀態(tài);如果沒有空閑的網(wǎng)格資源,將動(dòng)態(tài)實(shí)例化新的網(wǎng)格資源,請求處理完畢后網(wǎng)格資源將被銷毀。不論哪一種方式,網(wǎng)格節(jié)點(diǎn)上的網(wǎng)格資源均是動(dòng)態(tài)變化的一是資源屬性的值隨著用戶請求的執(zhí)行而發(fā)生變化,二是網(wǎng)格資源可隨著用戶請求的到來而實(shí)時(shí)生成,隨著用戶請求的處理完畢而消亡。
當(dāng)用戶訪問網(wǎng)格系統(tǒng)時(shí),首先需要知道系統(tǒng)中網(wǎng)格節(jié)點(diǎn)、網(wǎng)格服務(wù)和網(wǎng)格資源的信息,才能判斷該網(wǎng)格系統(tǒng)能否滿足他的計(jì)算需求。為達(dá)到這一目的,通常選定某些網(wǎng)格節(jié)點(diǎn)為注冊節(jié)點(diǎn),負(fù)責(zé)維護(hù)系統(tǒng)中全部或部分網(wǎng)格節(jié)點(diǎn)、網(wǎng)格服務(wù)、及網(wǎng)格資源的信息。注冊節(jié)點(diǎn)是一個(gè)邏輯上的概念,用戶總能獲知注冊節(jié)點(diǎn)的訪問方法。通過注冊節(jié)點(diǎn),用戶可以查詢到該注冊節(jié)點(diǎn)維護(hù)的任何信息。一個(gè)網(wǎng)格系統(tǒng)中可以有一個(gè)或多個(gè)注冊節(jié)點(diǎn),每一個(gè)需要注冊的實(shí)體可以到任意注冊節(jié)點(diǎn)上進(jìn)行注冊,注冊的內(nèi)容稱為注冊實(shí)體的元數(shù)據(jù),比如CPU類型、操作系統(tǒng)、當(dāng)前狀態(tài)、磁盤容量、部署的應(yīng)用軟件、訪問地址和協(xié)議等。元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),用于給出數(shù)據(jù)的結(jié)構(gòu)和意義,為一個(gè)抽象概念。這里的元數(shù)據(jù)向用戶展示了網(wǎng)格系統(tǒng)中注冊實(shí)體的狀態(tài)、特征和功能等方面的內(nèi)容。
綜上所述,在遵從OGSA框架和WSRF規(guī)范的網(wǎng)格環(huán)境中,自治的網(wǎng)格節(jié)點(diǎn)按照一定的標(biāo)準(zhǔn)和協(xié)議把本地對外共享的資源按照其確定的資源模型進(jìn)行服務(wù)化包裝,并根據(jù)實(shí)際情況來動(dòng)態(tài)生成或使用預(yù)先初始化好的網(wǎng)格資源。不同網(wǎng)格節(jié)點(diǎn)上的網(wǎng)格資源在語法和語義(結(jié)構(gòu)和內(nèi)容)上都可能有所不同,呈現(xiàn)異構(gòu)性,且它們的組織管理方式也可能不同。用戶在使用網(wǎng)格資源所呈現(xiàn)的計(jì)算能力之前,必須先對網(wǎng)格資源進(jìn)行定位。
目前的網(wǎng)格資源定位方案大多采用“層次注冊-直接索引”的形式,如Globus Toolkit中的Monitoring and Discovery System(MDS),可將注冊節(jié)點(diǎn)組建為任意層次,多個(gè)注冊節(jié)點(diǎn)之間可以互相注冊,甚至構(gòu)成環(huán)狀的索引關(guān)系;網(wǎng)格資源的信息可通過其直接注冊的注冊節(jié)點(diǎn)依次逐層到達(dá)其他注冊節(jié)點(diǎn)。這種“層次注冊-直接索引”的方式雖然具有良好的組織性,但其工作對象為網(wǎng)格資源,粒度過于細(xì)化,主要存在以下幾個(gè)缺點(diǎn)●當(dāng)系統(tǒng)規(guī)模增大時(shí),網(wǎng)格資源的數(shù)目也相應(yīng)增多,在層次結(jié)構(gòu)中處于高層的注冊節(jié)點(diǎn)需要維護(hù)的注冊信息急劇增加,容易造成單點(diǎn)失效,可擴(kuò)展性差;●由于網(wǎng)格資源的動(dòng)態(tài)性,需要保證網(wǎng)格資源自身和多個(gè)注冊節(jié)點(diǎn)上保存信息的一致性。當(dāng)網(wǎng)格資源的信息變化頻繁時(shí),一致性維護(hù)將產(chǎn)生大量開銷;●因?yàn)樽怨?jié)點(diǎn)都是同構(gòu)的,這要求系統(tǒng)中所有網(wǎng)格節(jié)點(diǎn)上的網(wǎng)格資源都必須按照相同的規(guī)范/標(biāo)準(zhǔn)(甚至是相同的工具)來實(shí)現(xiàn),靈活性差。
在“層次注冊-直接索引”的背景下,模型化的網(wǎng)格資源定位方法基于網(wǎng)格節(jié)點(diǎn)自治的特性,將注冊節(jié)點(diǎn)的工作對象從網(wǎng)格節(jié)點(diǎn)上的動(dòng)態(tài)網(wǎng)格資源轉(zhuǎn)向相對靜態(tài)的資源模型,放松了對網(wǎng)格節(jié)點(diǎn)實(shí)現(xiàn)網(wǎng)格資源所采用規(guī)范/工具上的限制,既增加了靈活性,又簡化了注冊節(jié)點(diǎn)上注冊信息的一致性維護(hù)和可擴(kuò)展性問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種模型化的網(wǎng)格資源定位方法,以便為實(shí)現(xiàn)網(wǎng)格環(huán)境下的資源共享奠定基礎(chǔ)。本方法以網(wǎng)格節(jié)點(diǎn)的自治性為出發(fā)點(diǎn),通過相對靜態(tài)的網(wǎng)格節(jié)點(diǎn)資源模型關(guān)聯(lián)其上異構(gòu)且動(dòng)態(tài)的網(wǎng)格資源,并將與該資源模型對應(yīng)的網(wǎng)格資源定位線索作為元數(shù)據(jù)注冊到注冊節(jié)點(diǎn)。由于網(wǎng)格節(jié)點(diǎn)資源模型的靜態(tài)性,采用本方法能有效解決由網(wǎng)格資源的動(dòng)態(tài)性所引起的注冊信息一致性維護(hù)問題,同時(shí)可以提高可擴(kuò)展性;另一方面,網(wǎng)格節(jié)點(diǎn)可采用任意喜歡的方式對本地共享資源進(jìn)行網(wǎng)格服務(wù)化包裝,既體現(xiàn)了網(wǎng)格節(jié)點(diǎn)的自治性,又增強(qiáng)了提高系統(tǒng)的靈活性。
為更好地說明本發(fā)明的內(nèi)容,首先進(jìn)行如下說明和名詞解釋
1.資源模型。網(wǎng)格節(jié)點(diǎn)對外表現(xiàn)為自治的單位個(gè)體,但其內(nèi)部可能包含有多個(gè)子個(gè)體。資源模型是對網(wǎng)格節(jié)點(diǎn)進(jìn)行抽象后的結(jié)果,主要包括邏輯實(shí)體(LogicEntities)和邏輯實(shí)體間關(guān)系(Relations)兩部分邏輯實(shí)體表示網(wǎng)格節(jié)點(diǎn)的內(nèi)在元素;關(guān)系表示兩個(gè)內(nèi)在元素之間的聯(lián)系,也稱為建模關(guān)系,具有一對一(1∶1),一對多(1∶N),多對多(N∶N)等數(shù)量描述屬性。比如,可以將集群類型的網(wǎng)格節(jié)點(diǎn)抽象為“內(nèi)部節(jié)點(diǎn)”和“進(jìn)程”這兩個(gè)元素;進(jìn)程是運(yùn)行在內(nèi)部節(jié)點(diǎn)上的,故這兩個(gè)元素間有“運(yùn)行在”這一聯(lián)系;一個(gè)內(nèi)部節(jié)點(diǎn)上可以運(yùn)行多個(gè)進(jìn)程,而一個(gè)進(jìn)程只能在一個(gè)內(nèi)部節(jié)點(diǎn)上,故“內(nèi)部結(jié)點(diǎn)”和“進(jìn)程”之間是一對多的關(guān)系;因此,按上述方式建模的資源模型包括“內(nèi)部節(jié)點(diǎn)”和“進(jìn)程”這兩個(gè)邏輯實(shí)體,以及“運(yùn)行在(一對多)”這一建模關(guān)系。為簡單起見,建模關(guān)系的數(shù)量描述屬性只在必要的地方才提到,其它均省略。對于包含N個(gè)邏輯實(shí)體的資源模型,數(shù)學(xué)定義如下所示ResourceModel={LogicEntities,Relations}LogicEntites={LogicEntityi|i=1,2,...,N}Relations={R(i,j)=<log icEntityi,log icEntityj>|i≠j,i∈{1,...,N},j∈{1,...,N}}R(i,j)(1∶N-1)=R(j,i)(N-1∶1)2.連通的資源模型。對網(wǎng)格節(jié)點(diǎn)進(jìn)行建模的過程是人為的,因而按照不同目的進(jìn)行抽象的結(jié)果往往是不同的。比如,從分布式系統(tǒng)組成的角度出發(fā),可以將機(jī)群建模為包含“內(nèi)部節(jié)點(diǎn)”、“進(jìn)程”、和“集群間網(wǎng)絡(luò)”這三個(gè)邏輯實(shí)體,以及“運(yùn)行在”這一關(guān)系的資源模型。在一個(gè)資源模型中,如果兩個(gè)邏輯實(shí)體間存在有直接的關(guān)系,或可通過與一個(gè)或多個(gè)其他邏輯實(shí)體間的關(guān)系來間接聯(lián)系,稱這兩個(gè)邏輯實(shí)體是連通的。若任意兩個(gè)邏輯實(shí)體間均能連通,則稱該資源模型是連通的。連通兩個(gè)邏輯實(shí)體的一組建模關(guān)系序列稱為這兩個(gè)邏輯實(shí)體間的一條路徑,如<R(i,k1),R(k2,k3),…,R(ka,j)>是LogicEntityi和LogicEntityj間的一條路徑,其中,i∈{1,…,N},j∈{1,…,N},kx∈{1,…,N},i≠j,kx≠i,kx≠j,且kx≠ky,x,y=1,2,…,a,a≤N-2。對于上面的例子,因?yàn)橹挥幸粋€(gè)“運(yùn)行在”的關(guān)系,只能聯(lián)系“內(nèi)部節(jié)點(diǎn)”和“進(jìn)程”這兩個(gè)邏輯實(shí)體,而“集群間網(wǎng)絡(luò)”跟其他邏輯實(shí)體之間沒有關(guān)系存在,處于孤立的狀態(tài),故該資源模型是不連通的。
3.資源模型的遍歷線索和網(wǎng)格節(jié)點(diǎn)的資源定位線索。資源定位線索是針對具有連通資源模型的網(wǎng)格節(jié)點(diǎn)來定義的。在網(wǎng)格節(jié)點(diǎn)進(jìn)行服務(wù)包裝的過程中,將資源模型中的每一個(gè)邏輯實(shí)體都實(shí)現(xiàn)為一個(gè)網(wǎng)格服務(wù),而把建模關(guān)系實(shí)現(xiàn)為網(wǎng)格資源的一個(gè)屬性。網(wǎng)格服務(wù)與網(wǎng)格資源之間是互相對應(yīng)的,因此網(wǎng)格資源與邏輯實(shí)體之間也存在映射關(guān)系;一個(gè)邏輯實(shí)體參與的每一個(gè)建模關(guān)系都將是與該邏輯實(shí)體對應(yīng)的網(wǎng)格資源上的一個(gè)屬性。
資源模型可看作是以邏輯實(shí)體為頂點(diǎn),建模關(guān)系為邊的圖,因而可具有生成樹。在一個(gè)連通的資源模型中,從邏輯實(shí)體LE出發(fā)可以到達(dá)其他任意邏輯實(shí)體;按照生成樹的思想,將LE到達(dá)其他任意邏輯實(shí)體的路徑集合組織為一棵以LE為根、建模關(guān)系為非根節(jié)點(diǎn)的樹,稱為資源模型的一條遍歷線索;[2]網(wǎng)格節(jié)點(diǎn)上的所有網(wǎng)格資源都與資源模型中的一個(gè)邏輯實(shí)體對應(yīng),因而從任意一個(gè)網(wǎng)格資源GR出發(fā),通過對應(yīng)于建模關(guān)系的網(wǎng)格資源屬性構(gòu)成的序列,能到達(dá)其他任意網(wǎng)格資源;[3]假設(shè)GR對應(yīng)的邏輯實(shí)體為LE,對于一條以LE為根的遍歷線索,將根節(jié)點(diǎn)LE替換成GR的定位信息,非根節(jié)點(diǎn)(即建模關(guān)系)替換為對應(yīng)的網(wǎng)格資源屬性,稱替換完成后的樹為網(wǎng)格節(jié)點(diǎn)的一條資源定位線索。
因?yàn)閮蓚€(gè)邏輯實(shí)體間可能不止一條路徑,故以同一個(gè)邏輯實(shí)體為根的遍歷線索也可能有多條。對應(yīng)地,以同一個(gè)網(wǎng)格資源為根的資源定位線索也可能有多個(gè)。
4.網(wǎng)格資源的索引路徑。在資源模型中,一個(gè)邏輯實(shí)體可通過一條路徑到達(dá)另一個(gè)邏輯實(shí)體,將這條路徑中的建模關(guān)系依次換成對應(yīng)的網(wǎng)格資源屬性,則可以得到一條網(wǎng)格資源間的索引路徑。假設(shè)<R(LEk1,LEk2),R(LEk2,LEk3),…,R(LEk(i-1),LEki)>為資源模型中從邏輯資源LEki到邏輯資源LEi的一條路徑,與R(LEi,LEj)對應(yīng)的網(wǎng)格資源屬性為RP(LEi,LEj),則與這條路徑對應(yīng)的索引路徑為<RP(LEk1,LEk2),RP(LEk2,LEk3),…,RP(LEk(i-1),LEki)>。
5.每一個(gè)網(wǎng)格資源在網(wǎng)格環(huán)境中都能通過它的訪問地址(即定位信息)來唯一標(biāo)識(shí),故在不會(huì)引起歧義的地方網(wǎng)格資源的定位信息也可直接用網(wǎng)格資源來代替。
本發(fā)明的主要特征為在OGSA架構(gòu)和WSRF規(guī)范的支持下,網(wǎng)格節(jié)點(diǎn)采用面向模型的思想,依據(jù)其資源模型來構(gòu)建向注冊節(jié)點(diǎn)注冊的元數(shù)據(jù),使得用戶節(jié)點(diǎn)可以通過向注冊節(jié)點(diǎn)查詢網(wǎng)格節(jié)點(diǎn)的資源定位線索,并據(jù)此來對網(wǎng)格節(jié)點(diǎn)上的動(dòng)態(tài)網(wǎng)格資源進(jìn)行查找定位。首先對網(wǎng)格節(jié)點(diǎn)進(jìn)行資源建模,保證其資源模型為一個(gè)連通的邏輯實(shí)體關(guān)系網(wǎng)絡(luò);確定邏輯實(shí)體與網(wǎng)格資源、建模關(guān)系與網(wǎng)格資源屬性的映射關(guān)系,并據(jù)此來實(shí)現(xiàn)和初始化網(wǎng)格節(jié)點(diǎn)上的網(wǎng)格服務(wù)和網(wǎng)格資源;任意選取某個(gè)網(wǎng)格資源為資源定位入口,依據(jù)資源模型中的遍歷線索構(gòu)建出一條資源定位線索,并將其作為網(wǎng)格節(jié)點(diǎn)的元數(shù)據(jù)向注冊節(jié)點(diǎn)注冊。用戶節(jié)點(diǎn)通過資源模型理解網(wǎng)格節(jié)點(diǎn)上網(wǎng)格資源間的聯(lián)系后,根據(jù)資源定位線索,從資源定位入口出發(fā)能對網(wǎng)格節(jié)點(diǎn)上的動(dòng)態(tài)網(wǎng)格資源進(jìn)行有效定位。
基于上述特征,模型化的網(wǎng)格資源定位方法的發(fā)明內(nèi)容包括1.網(wǎng)格節(jié)點(diǎn)的資源建模和服務(wù)化包裝實(shí)現(xiàn)。網(wǎng)格節(jié)點(diǎn)的資源所有者或管理員首先對本地物理資源進(jìn)行建模,保證其資源模型的全連通性,并確定邏輯實(shí)體與網(wǎng)格資源、建模關(guān)系與網(wǎng)格資源屬性的映射關(guān)系,將網(wǎng)格節(jié)點(diǎn)實(shí)現(xiàn)為與資源模型對應(yīng)的網(wǎng)格資源關(guān)系網(wǎng)絡(luò)。具體包括1)根據(jù)實(shí)際情況給出網(wǎng)格節(jié)點(diǎn)的一個(gè)初始資源模型InitRM(具有N個(gè)邏輯實(shí)體),判斷該模型是否是連通的,如果不是,則進(jìn)行以下操作[1]將InitRM看成以邏輯實(shí)體為頂點(diǎn),建模關(guān)系為邊的圖,找出資源模型中不相交的連通子圖,使得InitRM=P1∪P2∪…∪Pm,m≤n[2]分別從每個(gè)連通子圖Pi(i=1,…,m)中任意選出一個(gè)邏輯實(shí)體LEPi[3]在InitRM中添加一個(gè)輔助性邏輯實(shí)體LEn+1和m個(gè)輔助性建模關(guān)系<LEn+1,LEpi>,i=1,…,m注意步驟[3]的目的是使m個(gè)不相交的連通子圖之間互相連通,最簡單的方法直接就是添加m-1個(gè)的建模關(guān)系;也可以是添加k個(gè)輔助性邏輯實(shí)體LEn+1,…,LEn+k和m+k-1個(gè)輔助性建模關(guān)系。選取何種辦法完全取決于資源所有者。InitRM添加了輔助性邏輯實(shí)體和建模關(guān)系后成為了一個(gè)連通的資源模型FCRM。
2)邏輯實(shí)體與網(wǎng)格資源、建模關(guān)系與網(wǎng)格資源屬性的映射關(guān)系。網(wǎng)格節(jié)點(diǎn)的服務(wù)包裝基于FCRM進(jìn)行,將FCRM中的每一個(gè)邏輯實(shí)體都實(shí)現(xiàn)為一個(gè)網(wǎng)格服務(wù),而把每一個(gè)建模關(guān)系實(shí)現(xiàn)為網(wǎng)格資源的一個(gè)屬性。因?yàn)榫W(wǎng)格服務(wù)與網(wǎng)格資源是互相對應(yīng)的,故網(wǎng)格資源與邏輯實(shí)體之間也是相互映射的,邏輯實(shí)體間的建模關(guān)系也用于表示網(wǎng)格資源間的聯(lián)系;一個(gè)邏輯實(shí)體參與的每一個(gè)建模關(guān)系都將是與所有映射為該邏輯實(shí)體的網(wǎng)格資源上的一個(gè)屬性。具體包括[1]對于輔助性邏輯實(shí)體,即非初始資源模型InitRM中的邏輯實(shí)體,實(shí)現(xiàn)為Singleton模式的網(wǎng)格服務(wù),具有唯一的一個(gè)網(wǎng)格資源;而InitRM中的邏輯實(shí)體可實(shí)現(xiàn)為一般模式或Singleton模式的網(wǎng)格服務(wù)。
如果邏輯實(shí)體LEi和LEj間存在著建模關(guān)系R(i,j),R(i,j)對應(yīng)資源屬性為RP(i,j),則無論對應(yīng)LEi還是對應(yīng)LEj的網(wǎng)格資源都具有資源屬性RP(i,j);[3]RP(i,j)的值為列表類型,每一項(xiàng)都存儲(chǔ)著與該網(wǎng)格資源具有建模關(guān)系R(i,j)的其他網(wǎng)格資源的訪問地址(即定位信息);[4]如果邏輯實(shí)體LEi和LEj間的建模關(guān)系為R(i,j)(1:N),則對應(yīng)LEi的網(wǎng)格資源上RP(i,j)的值只有一項(xiàng),而對應(yīng)LEj的網(wǎng)格資源上R(i,j)的值可有多項(xiàng)。
3)將網(wǎng)格節(jié)點(diǎn)的連通資源模型、邏輯實(shí)體與網(wǎng)格資源的映射、建模關(guān)系與網(wǎng)格資源屬性的映射用XML語言表示,并以文件的形式保存在網(wǎng)格節(jié)點(diǎn)本地。
2.將網(wǎng)格資源定位過程中涉及到的對象在邏輯上分為注冊節(jié)點(diǎn)、網(wǎng)格節(jié)點(diǎn)和用戶節(jié)點(diǎn),三者之間的總體關(guān)系和交互流程圖如附圖1和附圖2所示。其中,1)用戶節(jié)點(diǎn)為發(fā)起網(wǎng)格資源定位的網(wǎng)格實(shí)體。
2)網(wǎng)格節(jié)點(diǎn)通過網(wǎng)格資源來向用戶節(jié)點(diǎn)提供計(jì)算能力。如附圖3所示,網(wǎng)格節(jié)點(diǎn)具有一個(gè)實(shí)時(shí)存儲(chǔ)空間,其用于網(wǎng)格資源定位的模塊包括■初始化服務(wù)模塊InitResources。用于網(wǎng)格節(jié)點(diǎn)的初始化操作,主要負(fù)責(zé)網(wǎng)格節(jié)點(diǎn)運(yùn)行環(huán)境的初始化工作,工作流程如下 在實(shí)時(shí)存儲(chǔ)空間中加載以XML文件的形式保存的資源模型、邏輯實(shí)體與網(wǎng)格資源的映射、以及建模關(guān)系與網(wǎng)格資源屬性的映射。為方便描述,以ModelDescription代表該XML文件的內(nèi)容。
根據(jù)ModelDescription,以及資源所有者對本地計(jì)算能力共享方面的設(shè)置(如網(wǎng)格節(jié)點(diǎn)啟動(dòng)時(shí)預(yù)先初始化的各類網(wǎng)格資源的數(shù)目、各類網(wǎng)格資源的最大數(shù)目等,通常用配置文件保存這些設(shè)置),實(shí)例化網(wǎng)格服務(wù)和網(wǎng)格資源,將它們的信息在實(shí)時(shí)存儲(chǔ)空間以XML的方式保存。
構(gòu)建資源定位線索。資源模型中的兩個(gè)邏輯實(shí)體間可能存在有多條連通路徑,因而兩個(gè)網(wǎng)格資源間也對應(yīng)地可能有多條索引路徑,進(jìn)而網(wǎng)格節(jié)點(diǎn)上的資源定位線索也可有多條,需要選定其中的一條作為注冊元數(shù)據(jù)。操作步驟如下a)從已經(jīng)實(shí)例化的網(wǎng)格資源中隨機(jī)選取一個(gè)網(wǎng)格資源GR作為資源定位入口;b)依據(jù)邏輯實(shí)體與網(wǎng)格資源之間的映射,找出GR在資源模型中對應(yīng)的邏輯實(shí)體LE;c)在資源模型中隨機(jī)選出一條LE為根的遍歷線索TGlue;d)將TGlue的根替換為GR的定位信息,并依據(jù)建模關(guān)系與網(wǎng)格資源屬性的映射,將TGlue中的非根節(jié)點(diǎn)替換為對應(yīng)的網(wǎng)格資源屬性。這樣,就得到了一條以GR為資源定位入口的資源定位線索。
將資源定位線索作為網(wǎng)格節(jié)點(diǎn)的注冊信息向注冊節(jié)點(diǎn)注冊。
■模型元數(shù)據(jù)服務(wù)模塊ModelMetadata。從作用上來說,它以XML的形式向用戶提供網(wǎng)格節(jié)點(diǎn)的資源建模及網(wǎng)格資源實(shí)現(xiàn)方案的可讀說明,即網(wǎng)格節(jié)點(diǎn)資源模型、邏輯實(shí)體與網(wǎng)格資源的映射、以及建模關(guān)系與網(wǎng)格資源屬性的映射等內(nèi)容的XML描述。該模塊提供的方法包括資源模型輸出接口XMLObject GetResourceModel()功能被用戶節(jié)點(diǎn)調(diào)用,用于獲取網(wǎng)格節(jié)點(diǎn)的資源模型輸入無輸出向用戶節(jié)點(diǎn)返回資源模型(包括邏輯實(shí)體和建模關(guān)系)的XML描述操作訪問實(shí)時(shí)存儲(chǔ)空間,提取ModelDescription中資源模型的XML描述部分映射關(guān)系輸出接口XMLObject GetModelMapping()功能被用戶節(jié)點(diǎn)調(diào)用,用于獲取網(wǎng)格節(jié)點(diǎn)上網(wǎng)格資源的實(shí)現(xiàn)方案,即邏輯實(shí)體與網(wǎng)格資源的映射、以及建模關(guān)系與網(wǎng)格資源屬性的映射輸入無輸出向用戶返回用XML描述的映射關(guān)系,包括邏輯實(shí)體與網(wǎng)格資源的映射,和建模關(guān)系與網(wǎng)格資源屬性的映射操作訪問實(shí)時(shí)存儲(chǔ)空間中,獲取ModelDescription中用于描述上述映射的部分內(nèi)容描述輸出接口XMLObject GetAll( )
功能被用戶節(jié)點(diǎn)調(diào)用,用于獲取網(wǎng)格節(jié)點(diǎn)的ModelDescription輸入無輸出向用戶返回以XML形式表述的ModelDescription操作訪問實(shí)時(shí)存儲(chǔ)空間中,獲取ModelDescription■直接查詢服務(wù)模塊RelationService。用戶通過該模塊查詢與特定網(wǎng)格資源具有特定建模關(guān)系的網(wǎng)格資源的定位信息。提供的查詢接口為XMLObject Query( )功能被用戶節(jié)點(diǎn)調(diào)用,返回與指定網(wǎng)格資源具有指定建模關(guān)系的網(wǎng)格資源的定位信息輸入由用戶節(jié)點(diǎn)指定,包括●一個(gè)網(wǎng)格資源(initResource)定位信息,以字符串表示;●一個(gè)網(wǎng)格資源屬性relationship,該網(wǎng)格資源屬性必須能對應(yīng)為一個(gè)建模關(guān)系,且是initResource所具有的,以字符串表示。
輸出向用戶返回以列表類型表示的網(wǎng)格資源定位信息,列表中的每一項(xiàng)都為一個(gè)網(wǎng)格資源定位信息的XML描述操作訪問實(shí)時(shí)存儲(chǔ)空間,從當(dāng)前initResource的信息中提取出relationship這個(gè)資源屬性的值■定位服務(wù)模塊LocationService。提供復(fù)雜的網(wǎng)格資源定位服務(wù),用戶通過該模塊可獲得與指定網(wǎng)格資源具有指定直接或間接聯(lián)系的網(wǎng)格資源的定位信息。提供的定位接口為XMLObject Query( )功能被用戶節(jié)點(diǎn)調(diào)用,返回與指定網(wǎng)格資源具有指定直接或間接聯(lián)系的網(wǎng)格資源的定位信息輸入由用戶節(jié)點(diǎn)指定,包括●一個(gè)網(wǎng)格資源(GR)的定位信息,以字符串表示;●一條網(wǎng)格資源的索引路徑LocationChain=<RP(LEk1,LEk2),RP(LEk2,LEk3),…,RP(LEki,LEkj)>;●一組過濾規(guī)則filterRule,指定與GR具有某種建模關(guān)系的網(wǎng)格資源的定位信息是否返回。
輸出向用戶返回以列表類型表示的網(wǎng)格資源定位信息,列表中的每一項(xiàng)都是用XML描述的網(wǎng)格資源定位信息。
操作(a)設(shè)定需要向用戶返回的網(wǎng)格資源定位信息列表為Results,另有兩個(gè)列表Temp1和Temp2用于臨時(shí)存儲(chǔ),將Results、置為空,把GR加入Temp1;(b)如果Temp1為空,直接返回Results;否則
i.取出LocationChain的第一個(gè)網(wǎng)格資源屬性RP,之后將RP從LocationChain刪除;ii.對于每一個(gè)Temp1中的網(wǎng)格資源crg,若crg具備RP這個(gè)資源屬性,調(diào)用RelationService,將其RP中包含的每一個(gè)網(wǎng)格資源定位信息都加入Temp2;iii.如果filterRule中指定要將這些網(wǎng)格資源的定位信息返回,則將Temp2中的元素拷貝至Results;(c)若LocationChain中還有網(wǎng)格資源屬性,先清空Temp1,將Temp2的所有元素拷貝至Temp1,之后清空Temp2,重復(fù)進(jìn)行步驟(b),(d)如果LocationChain中已經(jīng)沒有剩余的網(wǎng)格資源屬性,向用戶返回Results。
3)注冊節(jié)點(diǎn)提供資源定位線索的注冊/注銷服務(wù)和查詢服務(wù)。如附圖4所示,它配置有實(shí)時(shí)存儲(chǔ)空間和備份存儲(chǔ)空間這兩個(gè)存儲(chǔ)部分,并包含如下模塊■注冊服務(wù)模塊RegisterService用于注冊網(wǎng)格節(jié)點(diǎn)的資源定位線索,提供的注冊接口為boolear register( )功能被網(wǎng)格節(jié)點(diǎn)調(diào)用,用于注冊網(wǎng)格節(jié)點(diǎn)的資源定位線索輸入由網(wǎng)格節(jié)點(diǎn)給出,包括●網(wǎng)格節(jié)點(diǎn)的標(biāo)識(shí)gridSiteID;●網(wǎng)格節(jié)點(diǎn)gridSiteID的一條資源定位線索LG;輸出向網(wǎng)格節(jié)點(diǎn)返回表示注冊成功與否的布爾值操作首先檢查實(shí)時(shí)存儲(chǔ)空間是否已保存有g(shù)ridSiteID的LG這條資源定位線索,如果沒有,則以XML的形式將gridSiteID和LG添加到實(shí)時(shí)存儲(chǔ)空間中。若操作成功,返回true,否則返回false。
■注銷服務(wù)模塊UnregisterService用于注銷網(wǎng)格節(jié)點(diǎn)的資源定位線索,可訪問的注銷接口為boolean unregister( )功能被網(wǎng)格節(jié)點(diǎn)調(diào)用,用于注銷網(wǎng)格節(jié)點(diǎn)的資源定位線索輸入由網(wǎng)格節(jié)點(diǎn)給出,包括●網(wǎng)格節(jié)點(diǎn)的標(biāo)識(shí)gridSiteID;●網(wǎng)格節(jié)點(diǎn)gridSiteID的一條資源定位線索LG;輸出向網(wǎng)格節(jié)點(diǎn)返回表示注銷成功與否的布爾值操作從實(shí)時(shí)存儲(chǔ)空間中刪除gridSiteID的資源定位線索LG。如果刪除成功,返回true,否則返回false。若實(shí)時(shí)存儲(chǔ)空間中原本就沒有該gridSiteID的資源定位線索LG,則不需要進(jìn)行刪除操作,直接返回true。
■索引服務(wù)模塊IndexService提供網(wǎng)格節(jié)點(diǎn)資源定位線索的索引服務(wù),提供的查找接口為XMLObject find()功能被用戶節(jié)點(diǎn)調(diào)用,用于查詢網(wǎng)格節(jié)點(diǎn)的資源定位線索輸入由用戶節(jié)點(diǎn)給出,目標(biāo)網(wǎng)格節(jié)點(diǎn)的標(biāo)識(shí)gridSite輸出以列表的形式向用戶節(jié)點(diǎn)gridSite所有在該注冊節(jié)點(diǎn)上注冊的資源定位線索,每一個(gè)資源定位線索都以XML表示操作檢索實(shí)時(shí)存儲(chǔ)空間,如果保存有一條或多條gridSite的資源定位線索,則將它們組織成列表的形式向用戶節(jié)點(diǎn)返回3.網(wǎng)格節(jié)點(diǎn)上的網(wǎng)格資源具有動(dòng)態(tài)性的特點(diǎn),它們能被定位的前提是網(wǎng)格節(jié)點(diǎn)完成初始化,進(jìn)入正常運(yùn)行狀態(tài)。用戶在定位網(wǎng)格資源之前,首先需要獲得網(wǎng)格節(jié)點(diǎn)和其資源定位線索,這意味著注冊節(jié)點(diǎn)的初始化完成及其注冊/檢索服務(wù)的正常工作。
1)網(wǎng)格節(jié)點(diǎn)整體的工作流程如附圖5所示,包括網(wǎng)格節(jié)點(diǎn)的初始化和運(yùn)行流程兩部分。
■網(wǎng)格節(jié)點(diǎn)的初始化由初始化服務(wù)InitResource來完成,之后網(wǎng)格節(jié)點(diǎn)進(jìn)入正常工作狀態(tài)。
■網(wǎng)格節(jié)點(diǎn)正常工作時(shí),時(shí)刻監(jiān)聽是否有來自于用戶節(jié)點(diǎn)關(guān)于資源定位的請求,如果有,進(jìn)行以下處理操作[1]接收并判斷用戶請求,提取輸入?yún)?shù);[2]若為模型元數(shù)據(jù)服務(wù)ModelMetadata的請求,則由被調(diào)用的接口(GetResourceModel、GetModelMapping、或GetAll)向用戶節(jié)點(diǎn)返回網(wǎng)格節(jié)點(diǎn)資源模型和/或映射關(guān)系的XML描述,轉(zhuǎn)[5];[3]若為直接查詢服務(wù)RelationService的請求,則根據(jù)輸入?yún)?shù)返回與指定網(wǎng)格資源具有指定建模關(guān)系的所有網(wǎng)格資源的定位信息——此過程由RelationService的查詢接口來完成,轉(zhuǎn)[5];[4]若為定位服務(wù)LocationService的請求,則由從請求輸入中提取出查詢起始的網(wǎng)格資源、資源索引線索、和結(jié)果過濾規(guī)則,調(diào)用RelationService接口來依次查詢,并根據(jù)過濾規(guī)則想用戶返回結(jié)果——此過程由LocationService的定位接口來完成,轉(zhuǎn)[5];[5]向用戶返回請求結(jié)果后,回到等待狀態(tài)。
2)注冊節(jié)點(diǎn)整體的工作流程見附圖5,包括初始化、請求偵聽處理和數(shù)據(jù)備份部分。
■注冊節(jié)點(diǎn)初始化的主要步驟[1]復(fù)位注冊節(jié)點(diǎn)的運(yùn)行環(huán)境;[2]依據(jù)備份存儲(chǔ)空間中的注冊信息備份文件,加載前面已經(jīng)注冊的網(wǎng)格節(jié)點(diǎn)及其資源定位線索等信息;[3]啟動(dòng)請求偵聽處理流程和數(shù)據(jù)備份流程。
■請求偵聽處理流程啟動(dòng)之后時(shí)刻偵聽是否有來自于用戶節(jié)點(diǎn)或網(wǎng)格節(jié)點(diǎn)的請求,若有,進(jìn)行如下操作[1]接收并判斷用戶請求,提取輸入?yún)?shù);[2]如果是注冊服務(wù)RegisterService的請求,首先判斷是否為重復(fù)注冊,如果不是,則保存到實(shí)時(shí)存儲(chǔ)空間——該過程由其register接口來完成;[3]如果是注銷服務(wù)UnregisterService的請求,從實(shí)時(shí)存儲(chǔ)空間中刪除由請求參數(shù)指定的注冊信息——該過程由其unregister接口來完成;[4]如果是索引服務(wù)IndexService的請求,則按照輸入?yún)?shù)指定的索引關(guān)鍵字檢索實(shí)時(shí)存儲(chǔ)空間——該過程由其find接口來完成;[5]向用戶返回請求的結(jié)果,回到等待狀態(tài)。
■數(shù)據(jù)備份流程為注冊信息的維護(hù)流程,與請求偵聽處理流程并行運(yùn)行,定期將實(shí)時(shí)存儲(chǔ)空間中的注冊信息(即網(wǎng)格節(jié)點(diǎn)的資源定位線索)保存到備份存儲(chǔ)空間,便于注冊節(jié)點(diǎn)下一次初始化時(shí)進(jìn)行注冊信息的加載。它的工作流程為[1]啟動(dòng)數(shù)據(jù)備份的計(jì)時(shí)器;[2]判斷是否為備份時(shí)刻,如果是,則從實(shí)時(shí)存儲(chǔ)空間中提取出所有注冊信息,以XML文件的形式保存至備份存儲(chǔ)空間,該XML文件將覆蓋上一次保存的備份文件;[3]等待下一次備份時(shí)刻的到來。
4.對網(wǎng)格資源的定位操作由用戶節(jié)點(diǎn)發(fā)起。用戶節(jié)點(diǎn)首先向注冊節(jié)點(diǎn)查詢得到選定網(wǎng)格節(jié)點(diǎn)的資源定位線索,然后通過與選定網(wǎng)格節(jié)點(diǎn)之間一次或多次交互,得到選定網(wǎng)格節(jié)點(diǎn)上所有它所關(guān)心的網(wǎng)格資源的定位信息。具體流程如附圖7所示,主要步驟有[1]用戶節(jié)點(diǎn)判斷自身是否已有目標(biāo)網(wǎng)格節(jié)點(diǎn)TGS的資源定位線索,如果沒有,訪問注冊節(jié)點(diǎn)的索引服務(wù)來獲取TGS的資源定位線索GRLG;[2]用戶節(jié)點(diǎn)判斷自身是否理解TGS的資源模型,若否,則通過TGS的模型元數(shù)據(jù)服務(wù),獲取用XML表示的如下內(nèi)容中的一項(xiàng)或多項(xiàng)資源模型的XML描述、網(wǎng)格資源與邏輯實(shí)體間的映射、網(wǎng)格資源屬性與建模關(guān)系間的映射。這樣,用戶節(jié)點(diǎn)可以全面理解TGS上所有網(wǎng)格資源之間的聯(lián)系;[3]基于對TGS上所有網(wǎng)格資源間的聯(lián)系的理解,對于該網(wǎng)格節(jié)點(diǎn)上用戶所關(guān)心的任意一個(gè)網(wǎng)格資源GR,從GRLG中抽取出GR與資源定位入口Entry之間的索引路徑LPath;[4]如果GR與Entry之間存在直接的建模關(guān)系,即LPath中只包含一個(gè)元素,則將Entry和LPath作為請求參數(shù),向TGS的直接查詢服務(wù)發(fā)送請求,轉(zhuǎn)[6];[5]若GR與Entry之間不是直接的建模關(guān)系,則設(shè)置結(jié)果過濾規(guī)則filterRule,將Entry、LPath和filterRule作為請求參數(shù),向TGS的定位服務(wù)發(fā)送請求;[6]判斷TGS上是否還存在需要進(jìn)行定位的網(wǎng)格資源,若有,重復(fù)步驟[3]~[5],直至對TGS上用戶所關(guān)心的所有網(wǎng)格資源都進(jìn)行了定位。
測試環(huán)境為包括8臺(tái)256M內(nèi)存、2×1300MHz、操作系統(tǒng)為Linux(Redhat 9.0)的PC機(jī),以及兩臺(tái)1G內(nèi)存、Pentium(R)42.4GHz、操作系統(tǒng)為Windows XP SP2的服務(wù)器,這些機(jī)器通過100Mbps的網(wǎng)絡(luò)進(jìn)行互連。
在一臺(tái)Windows服務(wù)器上運(yùn)行一個(gè)注冊節(jié)點(diǎn),另一臺(tái)Windows服務(wù)器上運(yùn)行一個(gè)網(wǎng)格節(jié)點(diǎn)。測試用的網(wǎng)格節(jié)點(diǎn)資源定位線索的高度為3(包括資源定位入口),稱資源定位入口為第一層網(wǎng)格資源;與資源定位入口具有直接建模關(guān)系的網(wǎng)格資源為第二層網(wǎng)格資源;與第二層網(wǎng)格資源具有直接建模關(guān)系而與第一層網(wǎng)格資源間接聯(lián)系的網(wǎng)格資源為第三層網(wǎng)格資源。
在8臺(tái)Linux機(jī)器上運(yùn)行用戶節(jié)點(diǎn)(每臺(tái)Linux機(jī)器上可模擬多個(gè)用戶節(jié)點(diǎn))??紤]到用戶節(jié)點(diǎn)對網(wǎng)格資源的定位可以通過定位服務(wù)或直接查詢服務(wù)來進(jìn)行,而定位服務(wù)是通過調(diào)用直接查詢服務(wù)來處理請求的,不需要向用戶返回中間結(jié)果,故通過定位服務(wù)定位一個(gè)網(wǎng)格資源所需要的時(shí)間總是小于通過多次訪問直接查詢服務(wù)逐漸定位至目標(biāo)網(wǎng)格資源所消耗的時(shí)間。因此,在本測試中用戶節(jié)點(diǎn)均通過直接查詢服務(wù)逐漸定位網(wǎng)格節(jié)點(diǎn)上各層次的網(wǎng)格資源首先訪問注冊節(jié)點(diǎn)獲取網(wǎng)格節(jié)點(diǎn)的資源定位線索,這同時(shí)也就得到了資源定位入口的定位信息(這一階段所消耗的時(shí)間稱為第一層網(wǎng)格資源的定位時(shí)間);然后通過訪問網(wǎng)格資源定位入口,得到網(wǎng)格節(jié)點(diǎn)上的第二層網(wǎng)格資源的定位信息;再通過訪問第二層網(wǎng)格資源得到第三層網(wǎng)格資源的定位信息。分別稱從訪問注冊節(jié)點(diǎn)時(shí)刻開始,到獲得第二層網(wǎng)格資源和第三層網(wǎng)格資源的定位信息為第二層網(wǎng)格資源的定位時(shí)間和第三層網(wǎng)格資源的定位時(shí)間。
通過控制Linux機(jī)器上模擬的用戶節(jié)點(diǎn)數(shù)目可實(shí)現(xiàn)網(wǎng)格節(jié)點(diǎn)上不同的訪問速率,即網(wǎng)格節(jié)點(diǎn)每秒鐘接收到的網(wǎng)格資源定位請求的數(shù)目。測量網(wǎng)格節(jié)點(diǎn)處理網(wǎng)格資源定位請求所消耗的CPU占用率、用戶節(jié)點(diǎn)定位各層次網(wǎng)格資源所需要的平均時(shí)間,結(jié)果如附圖12和附圖13所示。
從測試的數(shù)據(jù)可以看到,網(wǎng)格節(jié)點(diǎn)每秒鐘能處理120次以上的網(wǎng)格資源定位請求,用戶節(jié)點(diǎn)對網(wǎng)格節(jié)點(diǎn)上的網(wǎng)格資源進(jìn)行定位的時(shí)間均在毫秒級(jí)別(在本試驗(yàn)范圍內(nèi)不超過500毫秒),這說明系統(tǒng)具有一定的可擴(kuò)展性,驗(yàn)證了模型化的網(wǎng)格資源定位方法的有效性。
圖1.網(wǎng)格資源定位的總體關(guān)系圖。
圖2.網(wǎng)格資源定位總體流程圖。
圖3.網(wǎng)格節(jié)點(diǎn)的資源模型、遍歷線索和資源定位線索示意圖。
圖4.網(wǎng)格節(jié)點(diǎn)關(guān)于資源定位的模塊和數(shù)據(jù)存儲(chǔ)分布圖。
圖5.注冊節(jié)點(diǎn)的模塊和數(shù)據(jù)存儲(chǔ)分布圖。
圖6.網(wǎng)格節(jié)點(diǎn)關(guān)于資源定位的工作流程。
圖7.注冊節(jié)點(diǎn)的工作流程。
圖8.用戶節(jié)點(diǎn)對一個(gè)網(wǎng)格節(jié)點(diǎn)上的網(wǎng)格資源進(jìn)行定位的流程圖。
圖9.集群資源模型及其對應(yīng)網(wǎng)格資源的實(shí)現(xiàn)示意。
圖10.集群的不同注冊方案示意圖●EPR(X)為X的訪問地址,即X的定位信息。
圖11.用戶節(jié)點(diǎn)對集群上的網(wǎng)格資源進(jìn)行定位的示意圖●EPR(X)為X的訪問地址,即X的定位信息;●EPRs(X,Y)為X和Y的定位信息組成的列表;●{進(jìn)程}表示只返回對應(yīng)進(jìn)程的網(wǎng)格資源的定位信息;●{*}表示返回所有相關(guān)網(wǎng)格資源的定位信息。
圖12.網(wǎng)格節(jié)點(diǎn)處理網(wǎng)格資源定位請求所消耗的CPU占用率情況。
圖13.用戶節(jié)點(diǎn)定位網(wǎng)格節(jié)點(diǎn)上各層次網(wǎng)格資源所需要的平均時(shí)間。
具體實(shí)施例方式
Web服務(wù)資源框架WSRF(WS Resource Framework)是OGSA(Open Grid ServicesArchitecture)的最新實(shí)現(xiàn)規(guī)范,其基本思想為“有狀態(tài)的資源,無狀態(tài)的服務(wù)”,包括WS-ResourceProperties、WS-ResourceLifetime、WS-RenewableReferences、WS-ServiceGroup和WS-BaseFaults等五個(gè)技術(shù)規(guī)范。有關(guān)WSRF的具體內(nèi)容可以參考http//www.oasis-open.org/committees/wsrf。
Web服務(wù)分布式管理WSDM(Web Services Distributed Management)包括MUWS(ManagementUsing Web Services)和MOWS(Management Of Web Services)兩部分,前者定義了如何表示和訪問作為Web服務(wù)資源的可管理性接口,后者定義了如何將Web服務(wù)作為資源來管理以及如何使用MUWS描述和訪問可管理性。具體內(nèi)容可以參考http//www.oasis-open.org/committees/tc home.php?wg_abbrev=wsdm。
Apache MUSE是WSRF和WSDM的一個(gè)開源項(xiàng)目,為程序員進(jìn)一步開發(fā)遵循WSRF和WSDM規(guī)范的Web服務(wù)和網(wǎng)格應(yīng)用提供了工作平臺(tái)。模型化的網(wǎng)格資源定位方法就是基于ApacheMUSE 1.0(http//ws.apache.org/muse)來實(shí)現(xiàn)的。
1.網(wǎng)格節(jié)點(diǎn)的資源模型與網(wǎng)格資源/資源屬性間映射的實(shí)現(xiàn)將網(wǎng)格節(jié)點(diǎn)建模為一個(gè)連通的資源模型。對網(wǎng)格節(jié)點(diǎn)進(jìn)行服務(wù)包裝時(shí),將資源模型中的邏輯實(shí)體分別實(shí)現(xiàn)為一個(gè)遵從WSRF規(guī)范的網(wǎng)格服務(wù)。按照WSRF規(guī)范,一個(gè)網(wǎng)格服務(wù)管理有多個(gè)動(dòng)態(tài)生成的網(wǎng)格資源,這也就指出了網(wǎng)格資源和邏輯實(shí)體之間的映射;同時(shí),將邏輯實(shí)體參與的每一個(gè)建模關(guān)系均用WSDM的Relationship來實(shí)現(xiàn),這些Relationship都將作為邏輯實(shí)體對應(yīng)的網(wǎng)格資源的資源屬性(WSRF的ResourceProperty)。
2.實(shí)例下面以集群為例闡述網(wǎng)格節(jié)點(diǎn)建模及其網(wǎng)格資源的實(shí)現(xiàn)和定位。集群的一個(gè)資源模型和對應(yīng)的網(wǎng)格資源實(shí)現(xiàn)如附圖9所示。集群中的主機(jī)、主機(jī)上的進(jìn)程以及集群之間的網(wǎng)絡(luò)路徑分別對應(yīng)邏輯實(shí)體LE_主機(jī)、LE_進(jìn)程和LE_網(wǎng)絡(luò),而主機(jī)和進(jìn)程之間有一對多的“宿主”關(guān)系,故LE_主機(jī)和LE_進(jìn)程之間有“R_運(yùn)行有”這個(gè)一對多的關(guān)系。為使資源模型連通,附加邏輯實(shí)體LE_機(jī)群和兩個(gè)一對多的關(guān)系“R_為前端”和“R_連接到”。實(shí)現(xiàn)時(shí)上述4個(gè)邏輯實(shí)體都對應(yīng)為WSRF服務(wù),分別為集群服務(wù)(Singleton模式)、主機(jī)服務(wù)、網(wǎng)絡(luò)服務(wù)和進(jìn)程服務(wù);3個(gè)建模關(guān)系實(shí)現(xiàn)為WSDM的Relationship,分別是“為前端”、“連接到”和“運(yùn)行有”,它們將被相應(yīng)地添加為上述WSRF服務(wù)的資源屬性。
網(wǎng)格節(jié)點(diǎn)有多個(gè)不同的資源定位線索,因而向注冊節(jié)點(diǎn)注冊時(shí)有多種方案。附圖10示例了集群的兩種資源定位線索1)以集群服務(wù)的Singleton資源為資源定位入口,從該資源出發(fā)通過“為前端”和“連接到”這兩個(gè)資源屬性可定位到所有主機(jī)服務(wù)和網(wǎng)絡(luò)服務(wù)的資源,而通過主機(jī)服務(wù)資源,可以由“運(yùn)行有”這一資源屬性定位至所有進(jìn)程服務(wù)的資源;2)以網(wǎng)絡(luò)服務(wù)的資源“路徑1”為資源定位入口,從“路徑1”出發(fā)通過“連接到”這一資源屬性能對集群服務(wù)的Singleton資源進(jìn)行定位,進(jìn)而可依次通過“為前端”和“運(yùn)行有”這兩個(gè)資源屬性逐漸到達(dá)所有主機(jī)服務(wù)的資源和進(jìn)程服務(wù)的資源。
集群初始化完成進(jìn)入正常工作狀態(tài)后,主機(jī)、網(wǎng)絡(luò)和進(jìn)程這三個(gè)服務(wù)的網(wǎng)格資源集合隨著用戶的請求動(dòng)態(tài)變化。雖然網(wǎng)格資源是動(dòng)態(tài)生成的,但總可以通過資源定位線索來對其進(jìn)行檢索。附圖11為用戶節(jié)點(diǎn)定位集群上網(wǎng)格資源的一個(gè)示意流程圖。用戶節(jié)點(diǎn)從注冊節(jié)點(diǎn)A處獲得集群的第一種資源定位線索后,通過集群的模型元數(shù)據(jù)服務(wù)ModelMetadata返回的結(jié)果,可以理解集群上所有網(wǎng)格資源間的聯(lián)系。
1)若用戶節(jié)點(diǎn)需要定位所有主機(jī)和進(jìn)程的網(wǎng)格資源,首先抽取出它們與集群服務(wù)的Singleton資源之間的索引線索(在附圖11中表示為“為前端---運(yùn)行有”),設(shè)置結(jié)果過濾規(guī)則為所有網(wǎng)格資源的定位信息都全部返回(在附圖11中表示為{*}),然后向集群的定位服務(wù)發(fā)送請求。見附圖11中的4~5所示。
2)若用戶節(jié)點(diǎn)只需要定位所有進(jìn)程的網(wǎng)格資源,同樣地,也先抽取出它們與集群服務(wù)的Singleton資源之間的索引線索(“為前端---運(yùn)行有”),此時(shí)設(shè)置結(jié)果過濾規(guī)則為只返回進(jìn)程的網(wǎng)格資源的定位信息(在附圖11中表示為{Process}),再向集群的定位服務(wù)發(fā)送請求,如附圖11中的6-7所示。
3)若用戶節(jié)點(diǎn)需要定位網(wǎng)絡(luò)服務(wù)的網(wǎng)格資源,抽取出它們與集群服務(wù)的Singleton資源之間的索引線索(“連接到”),因?yàn)樵撍饕€索只包含一個(gè)元素,故向集群的直接查詢服務(wù)發(fā)送請求,見附圖11中的8~9。
需要的硬件環(huán)境CPU1GHz或以上、內(nèi)存256M或以上。網(wǎng)格節(jié)點(diǎn)、注冊節(jié)點(diǎn)和用戶節(jié)點(diǎn)可以運(yùn)行在一個(gè)局域網(wǎng)范圍內(nèi),也可以運(yùn)行在由多個(gè)子網(wǎng)組成的一個(gè)廣域網(wǎng)范圍內(nèi)。
網(wǎng)格節(jié)點(diǎn)和注冊節(jié)點(diǎn)需要的軟件環(huán)境支持JDK4.2的操作系統(tǒng)、Java4.2運(yùn)行時(shí)環(huán)境、Apache Tomcat 5.0.28、Apache Muse 1.0用戶節(jié)點(diǎn)需要的軟件環(huán)境支持JDK4.2的操作系統(tǒng)、Java4.2運(yùn)行時(shí)環(huán)境。
權(quán)利要求
1.模型化的網(wǎng)格資源定位方法,其特征在于,依次含有以下步驟步驟(1).在支持Web服務(wù)資源框架WSRF規(guī)范的一個(gè)遵從開放式網(wǎng)格服務(wù)架構(gòu)OGSA的網(wǎng)格系統(tǒng)中,把在網(wǎng)格資源定位過程中所涉及到的節(jié)點(diǎn)分為網(wǎng)格節(jié)點(diǎn)、用戶節(jié)點(diǎn)和注冊節(jié)點(diǎn),其中用戶節(jié)點(diǎn)為發(fā)起網(wǎng)格資源定位的網(wǎng)格實(shí)體;網(wǎng)格節(jié)點(diǎn)通過網(wǎng)格資源來向用戶提供計(jì)算能力,所述網(wǎng)格資源是指資源所有者加入網(wǎng)格系統(tǒng)的共享資源;注冊節(jié)點(diǎn)是管理員指定的一個(gè)或多個(gè)網(wǎng)格節(jié)點(diǎn),負(fù)責(zé)維護(hù)網(wǎng)格系統(tǒng)中稱之為邏輯實(shí)體的全部或部分網(wǎng)格節(jié)點(diǎn)、網(wǎng)格服務(wù)及網(wǎng)格資源的信息,所述網(wǎng)格服務(wù)部署在網(wǎng)格節(jié)點(diǎn)上,是一種按照所述WSRF規(guī)范來開發(fā)的具有設(shè)定功能的程序代碼,以供網(wǎng)格服務(wù)使用共享資源的計(jì)算能力來處理用戶的請求;所述網(wǎng)格資源是一種服務(wù)資源,其屬性就是用戶請求所提交的任務(wù)當(dāng)前所處的執(zhí)行狀態(tài),該屬性是網(wǎng)格服務(wù)在處理用戶請求時(shí)產(chǎn)生的一個(gè)特征,從而形成了邏輯實(shí)體與網(wǎng)格資源之間的映射;步驟(2).由網(wǎng)格節(jié)點(diǎn)初始化模塊依次執(zhí)行以下初始化步驟步驟(2.1).在實(shí)時(shí)存儲(chǔ)空間中加載一個(gè)XML文件,該文件的內(nèi)容ModelDescription含有全連通的資源模型、邏輯實(shí)體與網(wǎng)格資源的映射以及建模關(guān)系與網(wǎng)格資源屬性的映射,其中資源模型ResourceModel={邏輯實(shí)體群LogicEntities,建模關(guān)系Relations},LogicEntities={邏輯實(shí)體logicEntityi,i=1,2,...,N,N代表邏輯實(shí)體數(shù)},Relations=R(i,j)=<logicEntityi,logicEntityj>,j∈{1,2,...,N},i≠j,R(i,j)(1:N-1)=R(j,i)(N-1:1),R(i,j)(1:N-1)表示一個(gè)邏輯實(shí)體i可對應(yīng)多個(gè)邏輯實(shí)體j的關(guān)系,R(j,i)(N-1:1)則反之;所述邏輯實(shí)體表示該網(wǎng)格節(jié)點(diǎn)的內(nèi)在元素,建模關(guān)系表示兩個(gè)內(nèi)在元素間的關(guān)系,從而形成了建模關(guān)系與網(wǎng)格資源屬性之間的映射;建立一個(gè)全連通的資源模型按以下步驟進(jìn)行首先,根據(jù)網(wǎng)格節(jié)點(diǎn)的實(shí)際,給出一個(gè)初始的由N個(gè)邏輯實(shí)體和建模關(guān)系構(gòu)成的資源模型,用InitRM表示,若該資源模型不連通,則把該InitRM看成以邏輯實(shí)體為頂點(diǎn),以建模關(guān)系為邊的圖,找出途中不相交的連通子圖,共m個(gè);其次,分別從每個(gè)連通子圖中任意選出一個(gè)邏輯實(shí)體,再在該InitRM中添加一個(gè)輔助性邏輯實(shí)體和m個(gè)一對一的輔助性建模關(guān)系,使m個(gè)不相交的連通子圖通過該輔助性邏輯實(shí)體而相互連通;步驟(2.2).根據(jù)ModelDescription以及資源所有者在配置文件中設(shè)置的當(dāng)網(wǎng)格節(jié)點(diǎn)啟動(dòng)時(shí)預(yù)先初始化的各類網(wǎng)格資源的數(shù)目以及各類網(wǎng)格資源的最大數(shù)目,實(shí)例化網(wǎng)格服務(wù)和網(wǎng)格資源,并在實(shí)時(shí)存儲(chǔ)空間以XML文件形式保存這些信息;步驟(2.3).按以下步驟構(gòu)建資源定位線索步驟(2.3.1).從已經(jīng)實(shí)例化的網(wǎng)格資源中隨機(jī)選取一個(gè)網(wǎng)格資源GR作為資源定位入口;步驟(2.3.2).依據(jù)邏輯實(shí)體與網(wǎng)格資源之間的映射,找出網(wǎng)格資源GR在資源模型中對應(yīng)的邏輯實(shí)體LE;步驟(2.3.3).在資源模型中隨機(jī)選出一條以步驟(2.3.2)所述邏輯實(shí)體LF為根的資源模型遍歷線索,用TGlue表示;步驟(2.3.4).把步驟(2.3.3)所選的根LE替換為網(wǎng)格資源的定位信息,并根據(jù)建模關(guān)系與網(wǎng)格資源屬性之間的映射,把所述遍歷線索TGlue中的非根節(jié)點(diǎn)也替換為對應(yīng)的網(wǎng)格資源屬性,從而獲得一條以網(wǎng)格資源GR為資源定位入口的資源定位線索;步驟(2.4).在該網(wǎng)格節(jié)點(diǎn)中再設(shè)置以下模塊模型元數(shù)據(jù)服務(wù)模塊ModelMetadata網(wǎng)格節(jié)點(diǎn)訪問實(shí)時(shí)存儲(chǔ)空間提取內(nèi)容描述ModelDescription中的XML描述部分,其中映射關(guān)系輸出接口XMLObject GetModelMapping向用戶輸出以XML形式描述的邏輯實(shí)體與網(wǎng)格資源之間以及建模關(guān)系與網(wǎng)格資源屬性之間的映射關(guān)系;內(nèi)容描述ModelDescription輸出接口XMLObject GetAll訪問實(shí)時(shí)存儲(chǔ)空間向用戶輸出以XML形式表述的內(nèi)容描述ModelDescription;直接查詢服務(wù)模塊RelationService輸入由用戶節(jié)點(diǎn)發(fā)出的一以字符串表示的網(wǎng)格資源定位信息和一個(gè)以字符串表示的網(wǎng)格資源屬性,向用戶輸出以列表類型表示的網(wǎng)格資源定位信息,列表中的每一項(xiàng)都是一個(gè)網(wǎng)格資源定位信息的XML描述;定位服務(wù)模塊LocationService輸入由用戶節(jié)點(diǎn)發(fā)出的所選網(wǎng)格資源GR的定位信息以及一條網(wǎng)格資源的索引路徑LocationChain=<RP(k1,k2),RP(k2,k3),…,RP(ki,kj)>,其中,RP(k1,kj)為對應(yīng)建模關(guān)系R(ki,kj)的網(wǎng)格資源屬性,邏輯實(shí)體logicEntityk1為與GR對應(yīng)的邏輯實(shí)體;此外,一組過濾規(guī)則filterRule,用來指定與網(wǎng)格資源GR有特定建模關(guān)系的那些網(wǎng)格資源的定位信息是否返回;該模塊向用戶返回由用戶指定的且以列表類型表示的網(wǎng)格資源定位信息;步驟(3).在注冊節(jié)點(diǎn)上設(shè)置以下模塊注冊服務(wù)模塊RegisterService輸入由網(wǎng)格節(jié)點(diǎn)從實(shí)時(shí)存儲(chǔ)空間提取且由網(wǎng)格節(jié)點(diǎn)發(fā)出的網(wǎng)格節(jié)點(diǎn)標(biāo)識(shí)gridSiteID以及該標(biāo)識(shí)的一條資源定位線索LG;輸出是向網(wǎng)格節(jié)點(diǎn)返回用布爾值表示的注冊成功與否的信息;注銷服務(wù)模塊UnregisterService輸入由網(wǎng)格節(jié)點(diǎn)發(fā)出并且再從實(shí)時(shí)存儲(chǔ)空間刪除的網(wǎng)格節(jié)點(diǎn)標(biāo)識(shí)以及與該標(biāo)識(shí)相應(yīng)的一條資源定位線索LG,向網(wǎng)格節(jié)點(diǎn)返回用布爾值表示的注銷成功與否的信息;索引服務(wù)模塊IndexService輸入由用戶節(jié)點(diǎn)發(fā)出的網(wǎng)格節(jié)點(diǎn)標(biāo)識(shí)gridSiteID,查詢實(shí)時(shí)存儲(chǔ)空間,向用戶節(jié)點(diǎn)輸出以列表類型表示的該網(wǎng)格節(jié)點(diǎn)的資源定位線索信息,列表中的每一項(xiàng)都是一條網(wǎng)格資源定位線索的XML描述;步驟(4).按以下步驟執(zhí)行由用戶節(jié)點(diǎn)發(fā)起的模型化網(wǎng)格資源定位方法步驟(4.1).網(wǎng)格節(jié)點(diǎn)向注冊節(jié)點(diǎn)注冊資源行為線索;步驟(4.2).用戶節(jié)點(diǎn)向注冊節(jié)點(diǎn)索取自己所關(guān)心的眾多目標(biāo)網(wǎng)格節(jié)點(diǎn)TGS的資源定位線索GRLG;步驟(4.3).注冊節(jié)點(diǎn)向用戶節(jié)點(diǎn)發(fā)送步驟(4.2)中所述目標(biāo)網(wǎng)格節(jié)點(diǎn)的資源定位線索GRLG;步驟(4.4).用戶根據(jù)自身需求向目標(biāo)網(wǎng)格節(jié)點(diǎn)索取用XML文件表示的以下內(nèi)容的一項(xiàng)或多項(xiàng)資源模型的XML描述,網(wǎng)格資源與邏輯實(shí)體之間的映射以及網(wǎng)格資源屬性與建模關(guān)系的映射;步驟(4.5).用戶從眾多網(wǎng)格節(jié)點(diǎn)上選定一個(gè)網(wǎng)格節(jié)點(diǎn),從自己所關(guān)心的網(wǎng)格資源GR所屬的資源定位線索GRLG中取出自己所關(guān)心的網(wǎng)格資源GR與資源定位入口Entry之間的索引路徑LPath;步驟(4.6).用戶判斷步驟(4.5)中所述網(wǎng)格資源GR與資源定位入口Entry之間是否有直接的建模關(guān)系若有則把該Entry和LPath作為請求參數(shù),向所選定目標(biāo)網(wǎng)格節(jié)點(diǎn)的直接查詢服務(wù)模塊發(fā)送請求,轉(zhuǎn)步驟(4.7);若沒有則設(shè)置過濾規(guī)則filterRule,把該Entry,LPath和該filterRule作為請求參數(shù)向選定的目標(biāo)網(wǎng)格節(jié)點(diǎn)的定位服務(wù)模塊發(fā)送請求,轉(zhuǎn)步驟(4.7);步驟(4.7).若還有需要定位的網(wǎng)格資源,則重復(fù)步驟(4.3)~(4.6),直至對該選定的目標(biāo)網(wǎng)格節(jié)點(diǎn)TGS上用戶所關(guān)心的所有的網(wǎng)格資源都進(jìn)行了定位。
全文摘要
模型化的網(wǎng)格資源定位方法屬于網(wǎng)格系統(tǒng)中網(wǎng)格資源定位技術(shù)領(lǐng)域,其特征在于基于由邏輯實(shí)體和建模關(guān)系組成的網(wǎng)格資源模型,在該模型中,基于邏輯實(shí)體與網(wǎng)格資源之間以及建模關(guān)系與網(wǎng)格資源屬性之間的映射關(guān)系,把以用戶所需網(wǎng)格資源在資源模型中對應(yīng)的邏輯實(shí)體為根的資源遍歷線索轉(zhuǎn)化為一條以該網(wǎng)格資源為資源定位入口,即作為根節(jié)點(diǎn)來用于替換所選邏輯實(shí)體的資源定位線索,用戶節(jié)點(diǎn)只需要從注冊節(jié)點(diǎn)中獲取事先由網(wǎng)格節(jié)點(diǎn)注冊的資源定位線索,便可從對應(yīng)的網(wǎng)格節(jié)點(diǎn)中獲取已定位的網(wǎng)格資源,此時(shí),網(wǎng)格節(jié)點(diǎn)相應(yīng)地要把遍歷線索中的非根節(jié)點(diǎn)替換為對應(yīng)的網(wǎng)格資源屬性。本方法可擴(kuò)展性及靈活性均好,而且也簡化了注冊節(jié)點(diǎn)上注冊信息的一致性維護(hù)問題。
文檔編號(hào)H04L12/24GK101079736SQ20071010032
公開日2007年11月28日 申請日期2007年6月8日 優(yōu)先權(quán)日2007年6月8日
發(fā)明者武永衛(wèi), 胡美枝, 鄭緯民 申請人:清華大學(xué)