專利名稱:一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng)及配置方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)格門戶的配置方法,屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù):
網(wǎng)格是構(gòu)建在互聯(lián)網(wǎng)上的新興技術(shù)。虛擬試驗(yàn)網(wǎng)格將試驗(yàn)環(huán)境中分布的各種異構(gòu) 資源(包括計(jì)算資源、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、設(shè)備資源等)整合為一臺(tái)虛擬的超級(jí) 計(jì)算機(jī),實(shí)現(xiàn)在動(dòng)態(tài)變化的多個(gè)虛擬組織間共享資源和協(xié)同工作,并向用戶提供一致的接 口和服務(wù),用于需要高性能計(jì)算能力的虛擬試驗(yàn)。在網(wǎng)格應(yīng)用中的網(wǎng)格資源和服務(wù)通常以 API接口或命令行接口的方式呈現(xiàn)給終端用戶,這需要用戶對(duì)復(fù)雜的網(wǎng)格環(huán)境有清晰的認(rèn) 識(shí)和配置,這會(huì)導(dǎo)致非專業(yè)用戶難以掌握網(wǎng)格系統(tǒng)的使用方法。因此,網(wǎng)格門戶應(yīng)運(yùn)而生, 旨在方便用戶與網(wǎng)格服務(wù)和網(wǎng)格資源的交互。網(wǎng)格門戶是用來訪問網(wǎng)格服務(wù)與資源的可定 制、個(gè)性化的WEB接口,是為最終的網(wǎng)格用戶提供的使高級(jí)問題求解方法易于使用的途徑。 網(wǎng)格門戶可以被看成一系列的WEB應(yīng)用服務(wù)器,其作用表現(xiàn)為為網(wǎng)格服務(wù)和網(wǎng)格資源信 息收集提供安全的環(huán)境,并提供工具使用戶能夠應(yīng)用網(wǎng)格服務(wù)和網(wǎng)格資源來完成自己的任 務(wù);為用戶提供一個(gè)網(wǎng)格軟硬件資源視圖和快速利用網(wǎng)格的計(jì)算能力;保證用戶的開發(fā)包 括作業(yè)提交、安全認(rèn)證、信息監(jiān)控等關(guān)鍵問題。網(wǎng)格門戶的意義在于它對(duì)網(wǎng)格用戶隱藏了網(wǎng) 格計(jì)算實(shí)現(xiàn)的復(fù)雜性和具體細(xì)節(jié),使用戶可以透明地使用網(wǎng)格資源,為用戶的工作和生活 提供最方便和最快捷的支持。作為用戶進(jìn)入網(wǎng)格系統(tǒng)的入口點(diǎn),網(wǎng)格門戶軟件設(shè)計(jì)的好壞直接影響到網(wǎng)格系統(tǒng) 的可用性,它也是提高網(wǎng)格系統(tǒng)使用效率的關(guān)鍵性因素之一。鑒于其重要性,目前有許多專 門針對(duì)網(wǎng)格門戶技術(shù)進(jìn)行研究的項(xiàng)目。勞倫斯伯克利國家試驗(yàn)室開發(fā)的GPDK提供了開發(fā) 網(wǎng)格門戶的中間件軟件包,不能支持一般的網(wǎng)格計(jì)算腳本,只支持Java CoG提供的Globus 服務(wù)Java接口。GPDK將網(wǎng)格服務(wù)的調(diào)用接口封裝在動(dòng)作頁面(Action Page)和顯示頁面 (View Page)中,以JSP形式實(shí)現(xiàn),需要針對(duì)各個(gè)網(wǎng)格服務(wù)專門開發(fā)這兩個(gè)頁面,缺乏靈活 性。其后,GridLab開發(fā)的GridSphere門戶框架基于Portal技術(shù)開發(fā),將門戶系統(tǒng)中的功 能分為了 6個(gè)Porlet,對(duì)網(wǎng)格服務(wù)不能單獨(dú)配置,沒有插件對(duì)象的概念。計(jì)算機(jī)仿真,2006 年第23卷中《基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng)》采用MDA方法構(gòu)建網(wǎng)格門戶系統(tǒng)架構(gòu),實(shí) 現(xiàn)“構(gòu)建一次門戶頁面模型完成多個(gè)不同Portal平臺(tái)上的網(wǎng)格門戶”,僅僅關(guān)注網(wǎng)格門戶 在顯示層上的變化,與網(wǎng)格服務(wù)沒有關(guān)聯(lián),也沒有考慮到網(wǎng)格服務(wù)的調(diào)用和存儲(chǔ)等問題。計(jì) 算機(jī)集成制造系統(tǒng),2006年第12卷,《基于Microsoft. Net的有限元應(yīng)用網(wǎng)格門戶研究》的 門戶核心由門戶引擎、事務(wù)邏輯和表現(xiàn)邏輯三部分組成。事務(wù)邏輯執(zhí)行門戶中的功能調(diào)用, 表示邏輯負(fù)責(zé)將功能執(zhí)行結(jié)果轉(zhuǎn)化為html頁面,門戶中無法反映網(wǎng)格服務(wù)的屬性、類別及 調(diào)用等信息。計(jì)算機(jī)工程與設(shè)計(jì),2006年第27卷,《基于JSF的網(wǎng)格門戶設(shè)計(jì)與實(shí)現(xiàn)》利用 了 JSF技術(shù)豐富了網(wǎng)格門戶的表現(xiàn)能力,但其模型與WEB頁面標(biāo)記綁定對(duì)應(yīng),只能對(duì)網(wǎng)格服 務(wù)的顯示進(jìn)行配置,不能配置網(wǎng)格服務(wù)本身,也不能實(shí)現(xiàn)運(yùn)行時(shí)編譯。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種基于XML語言的網(wǎng)格 門戶配置系統(tǒng)及方法,該方法能夠?qū)W(wǎng)格門戶進(jìn)行動(dòng)態(tài)的界面配置,并自動(dòng)關(guān)聯(lián)網(wǎng)格服務(wù) 的顯示、實(shí)現(xiàn)和存儲(chǔ)。本發(fā)明系統(tǒng)的技術(shù)解決方案是一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng),包括插 件對(duì)象、宿主框架、WEB應(yīng)用服務(wù)器和瀏覽器;插件對(duì)象,包括多個(gè)網(wǎng)格服務(wù),用外觀定義文件描述所有網(wǎng)格服務(wù)的顯示模式,用 xml文件描述所有網(wǎng)格服務(wù)的屬性、表單信息和運(yùn)行邏輯,用腳本文件描述所有網(wǎng)格服務(wù)的 執(zhí)行過程;上述外觀定義文件、xml文件和腳本文件三者組成了網(wǎng)格服務(wù)模型;宿主框架,在網(wǎng)格門戶配置系統(tǒng)運(yùn)行時(shí),與插件對(duì)象進(jìn)行連接,解析插件對(duì)象中的 外觀定義文件和xml文件,將插件對(duì)象中包含的網(wǎng)格服務(wù)功能解釋為可供用戶閱讀、使用 的功能頁面,顯示在瀏覽器中;在用戶通過瀏覽器調(diào)用網(wǎng)格服務(wù)時(shí),接受WEB應(yīng)用服務(wù)器提 交的調(diào)用網(wǎng)格服務(wù)指令,根據(jù)插件對(duì)象的位置信息及解析出的插件對(duì)象存儲(chǔ)信息,在指定 的計(jì)算機(jī)上創(chuàng)建該網(wǎng)格服務(wù)對(duì)應(yīng)的工作目錄,在工作目錄中調(diào)用插件對(duì)象的腳本文件,并 將調(diào)用成功與否的信息返回給WEB應(yīng)用服務(wù)器;接受TOB應(yīng)用服務(wù)器提交的獲取網(wǎng)格服務(wù) 執(zhí)行結(jié)果的指令,列出網(wǎng)格服務(wù)工作目錄下的結(jié)果文件列表,并將列表信息返回給WEB應(yīng) 用服務(wù)器;WEB應(yīng)用服務(wù)器,接收瀏覽器的請(qǐng)求,在接收到調(diào)用網(wǎng)格服務(wù)或獲取網(wǎng)格服務(wù)執(zhí)行 結(jié)果的指令時(shí),轉(zhuǎn)發(fā)給宿主框架,并將宿主框架返回的處理結(jié)果傳遞給瀏覽器;瀏覽器,瀏覽器顯示網(wǎng)格門戶界面,接受用戶對(duì)網(wǎng)格服務(wù)調(diào)用或獲取結(jié)果的請(qǐng)求, 向WEB應(yīng)用服務(wù)器發(fā)出相應(yīng)指令,并獲取WEB應(yīng)用服務(wù)器返回的處理結(jié)果,將其展示給用 戶。所述的xml文件中主要信息包括插件基本信息,標(biāo)簽為plugin,支持的屬性為id和authority ;插件存儲(chǔ)信息,標(biāo)簽為storage,支持的屬性為server和time ;網(wǎng)格服務(wù)基本信息,標(biāo)簽為service,支持的屬性為ID和name ;網(wǎng)格服務(wù)表單信息,標(biāo)簽包括info和option ;網(wǎng)格服務(wù)動(dòng)作信息,標(biāo)簽為action,支持的屬性包括id、label、Shfile和result ; shfile屬性標(biāo)記該網(wǎng)格服務(wù)被觸發(fā)后應(yīng)執(zhí)行的腳本,腳本中用參數(shù)形式引用option標(biāo)簽 中指定的輸入項(xiàng)。所述的宿主框架包括顯示servlet、調(diào)用服務(wù)servlet、查看服務(wù)結(jié)果servlet和 插件信息結(jié)構(gòu)四個(gè)部分;顯示servlet、調(diào)用服務(wù)servlet、查看服務(wù)結(jié)果servlet分別負(fù)責(zé) 網(wǎng)格服務(wù)的三個(gè)操作顯示網(wǎng)格服務(wù)頁面、調(diào)用單個(gè)網(wǎng)格服務(wù)和查看單個(gè)網(wǎng)格服務(wù)的狀態(tài), 插件信息結(jié)構(gòu)是宿主框架在運(yùn)行時(shí)構(gòu)建的一個(gè)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),存儲(chǔ)了解析后的插件對(duì)象的 fn息ο所述的顯示servlet工作流程如下第一步,從WEB應(yīng)用服務(wù)器獲取插件顯示指令;第二步,使用DOM解析器解析插件對(duì)象的邏輯定義文件,解析plugin標(biāo)簽、 storage 標(biāo)簽、service 標(biāo)簽、option 標(biāo)簽禾口 action 標(biāo)簽;
5
第三步,檢查是否存儲(chǔ)過插件信息結(jié)構(gòu),如果是,則轉(zhuǎn)到第五步,如果不是,則轉(zhuǎn)到 第四步;第四步,將第二步解析出的插件基本信息、存儲(chǔ)信息、網(wǎng)格服務(wù)基本信息、網(wǎng)格服 務(wù)表單信息和網(wǎng)格服務(wù)動(dòng)作信息存儲(chǔ)至插件信息結(jié)構(gòu);第五步,根據(jù)插件信息結(jié)構(gòu),將插件對(duì)象的網(wǎng)格服務(wù)表單信息轉(zhuǎn)化為頁面控件元 素,與插件對(duì)象的外觀定義文件合并為新的html文件,發(fā)送至TOB應(yīng)用服務(wù)器。調(diào)用服務(wù)servlet工作流程如下第一步,從WEB應(yīng)用服務(wù)器獲取調(diào)用服務(wù)指令和用戶填入的表單數(shù)據(jù);第二步,從插件信息結(jié)構(gòu)中獲取對(duì)應(yīng)服務(wù)的表單信息、插件對(duì)象存儲(chǔ)信息和網(wǎng)格 服務(wù)動(dòng)作信息;第三步,根據(jù)網(wǎng)格服務(wù)動(dòng)作信息,將表單數(shù)據(jù)填入腳本文件的對(duì)應(yīng)位置,調(diào)用腳本 文件;第四步,如果腳本文件執(zhí)行成功,則轉(zhuǎn)第五步,否則發(fā)送錯(cuò)誤信息給WEB應(yīng)用服務(wù) 器;第五步,生成服務(wù)實(shí)例id,將服務(wù)實(shí)例id和第一步中由用戶填入的服務(wù)名稱和根 據(jù)插件對(duì)象存儲(chǔ)信息生成的服務(wù)具體工作目錄存儲(chǔ)至插件信息結(jié)構(gòu)中;第六步,返回服務(wù)實(shí)例id給TOB應(yīng)用服務(wù)器。查看服務(wù)結(jié)果servlet工作流程如下第一步,從WEB應(yīng)用服務(wù)器獲取查看結(jié)果指令和服務(wù)實(shí)例id號(hào);第二步,根據(jù)服務(wù)實(shí)例id,從插件信息結(jié)構(gòu)中獲取服務(wù)的工作目錄;第三步,從服務(wù)的工作目錄獲取輸出文件的列表;第四步,生成輸出文件的列表信息,返回給TOB應(yīng)用服務(wù)器。本發(fā)明方法的技術(shù)解決方案是一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置方法,步驟如 下(1)確定門戶中使用的插件對(duì)象的目錄結(jié)構(gòu)在網(wǎng)格門戶的配置中,插件對(duì)象的所有文件都放在以插件對(duì)象名稱命名的文件目 錄中,其中外觀定義文件放在該文件目錄下的WEBAPP目錄中,xml文件放在根目錄中,腳本 文件放在在該文件目錄下的bin目錄中;(2)定義各個(gè)插件的外觀定義文件外觀定義文件包括html文件和ess文件;在html文件中,標(biāo)定插件對(duì)象使用的 xml文件,在ess文件中,標(biāo)定插件對(duì)象在顯示時(shí)需要的參數(shù)值;(3)定義每個(gè)插件對(duì)象的xml文件xml文件確定插件對(duì)象的基本信息、存儲(chǔ)信息,以及該插件對(duì)象中包括的網(wǎng)格服務(wù) 的基本信息、表單信息和動(dòng)作信息;(4)定義插件對(duì)象的執(zhí)行腳本按照服務(wù)的用途,創(chuàng)建插件對(duì)象中每個(gè)網(wǎng)格服務(wù)的執(zhí)行腳本;其中執(zhí)行腳本中使 用的參數(shù)需要與xml文件中option標(biāo)簽中指定的參數(shù)名稱對(duì)應(yīng);(5)將存放插件對(duì)象的文件目錄拷貝至宿主框架的指定目錄,運(yùn)行上述門戶配置 系統(tǒng),完成網(wǎng)格門戶配置。
本發(fā)明與現(xiàn)有技術(shù)相比有益效果為(1)可擴(kuò)展的基礎(chǔ)架構(gòu)將門戶系統(tǒng)分為宿主框架和插件對(duì)象,可以隨時(shí)添加新的插件對(duì)象,或者刪除不 需要的插件對(duì)象,在增刪插件對(duì)象時(shí)不需要重新編譯或修改門戶系統(tǒng)的宿主框架,能夠應(yīng) 對(duì)大規(guī)模、多變化的網(wǎng)格應(yīng)用需求。(2)運(yùn)行時(shí)連接在網(wǎng)格門戶系統(tǒng)中,插件與宿主框架之間的連接發(fā)生在運(yùn)行時(shí)而不是編譯時(shí)。與 傳統(tǒng)的網(wǎng)格門戶系統(tǒng)相比較,這種方式能夠有效地降低門戶提供的功能對(duì)象與對(duì)象管理邏 輯之間耦合程度,易復(fù)用,具備靈活性,能使網(wǎng)格門戶系統(tǒng)配置達(dá)到最優(yōu)。(3)本發(fā)明一個(gè)插件對(duì)象中包括多個(gè)網(wǎng)格服務(wù)模型。這種方式在開發(fā)大型網(wǎng)格門 戶系統(tǒng)中,可以將同一類網(wǎng)格服務(wù)合并為一個(gè)插件,為這些網(wǎng)格服務(wù)規(guī)定同一種外觀界面 風(fēng)格、同一個(gè)存儲(chǔ)空間以及同一種認(rèn)證級(jí)別,減少了同一類網(wǎng)格服務(wù)的開發(fā)量,也降低了網(wǎng) 格服務(wù)安全配置的復(fù)雜度。(4)網(wǎng)格服務(wù)開發(fā)的專業(yè)性為單個(gè)的網(wǎng)格計(jì)算服務(wù)提供了單獨(dú)的表現(xiàn)、實(shí)現(xiàn)和控制機(jī)制,網(wǎng)格服務(wù)開發(fā)人員 只需要完成與網(wǎng)格計(jì)算服務(wù)相關(guān)的專業(yè)內(nèi)容的創(chuàng)建和展示,而無需關(guān)心網(wǎng)格服務(wù)與整個(gè)系 統(tǒng)的集成問題。(5)存儲(chǔ)透明性在用戶運(yùn)行網(wǎng)格服務(wù),用戶不需要指定網(wǎng)格服務(wù)的具體執(zhí)行目錄和輸出文件的具 體存放位置,只需要在填寫表單信息時(shí)指定網(wǎng)格服務(wù)實(shí)例的名稱,宿主框架會(huì)自動(dòng)為用戶 創(chuàng)建專用的工作目錄,存放調(diào)用網(wǎng)格服務(wù)時(shí)產(chǎn)生的數(shù)據(jù)文件。這種方式使得宿主框架可以 統(tǒng)一配置存儲(chǔ)位置,將耗費(fèi)磁盤空間較大的網(wǎng)格服務(wù)的存儲(chǔ)位置分配至磁盤空間較大的計(jì) 算機(jī)上,而將規(guī)模較小的網(wǎng)格服務(wù)存儲(chǔ)位置分配至磁盤空間較小的計(jì)算機(jī)上,更好地計(jì)劃 和使用現(xiàn)有的存儲(chǔ)器資源。(6)簡(jiǎn)單易用采用基于TOB的訪問方式,用戶在使用時(shí),不需要下載客戶端程序,也不需要安裝 任何其他系統(tǒng)補(bǔ)丁。
圖1為本發(fā)明系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明插件對(duì)象示意圖;圖3為本發(fā)明宿主框架示意圖;圖4為本發(fā)明顯示servlet工作流程圖;圖5為本發(fā)明調(diào)用服務(wù)servlet工作流程圖;圖6為本發(fā)明查看服務(wù)結(jié)果servlet工作流程圖。
具體實(shí)施例方式虛擬試驗(yàn)網(wǎng)格門戶以TOB形式表現(xiàn),將宿主框架與插件統(tǒng)一表現(xiàn)為一個(gè)大的門戶 系統(tǒng),為網(wǎng)格用戶提供系統(tǒng)的基本服務(wù),以及多個(gè)種類的網(wǎng)格計(jì)算服務(wù)。
如圖1所示,本發(fā)明系統(tǒng)以插件技術(shù)為基礎(chǔ),分為插件對(duì)象、宿主框架、Servlet控 制器和網(wǎng)站表現(xiàn)文件四部分。其中,Servlet控制器與網(wǎng)站表現(xiàn)文件分別由TOB服務(wù)器和 瀏覽器管理。在本發(fā)明中WEB服務(wù)器選擇Tomcat,瀏覽器選擇IE 6. 0,均為成熟產(chǎn)品,概不 贅述。宿主框架能夠調(diào)用插件對(duì)象,插件對(duì)象能夠在宿主框架上實(shí)現(xiàn)自己的服務(wù)邏輯,而二 者的交互基于一種公共的通信契約。插件與宿主框架之間的連接發(fā)生在運(yùn)行時(shí)而不是編譯 時(shí)。這種方式能夠有效地降低門戶提供的功能對(duì)象與對(duì)象管理邏輯之間耦合程度,易復(fù)用, 具備靈活性,能使網(wǎng)格門戶系統(tǒng)配置達(dá)到最優(yōu)。下面詳細(xì)介紹插件對(duì)象和宿主框架的實(shí)現(xiàn) 過程。一、插件對(duì)象插件對(duì)象的實(shí)現(xiàn)示意圖如圖2所示。在設(shè)計(jì)插件的過程中,將邏輯層作為插件層中單獨(dú)的子層提出來。在進(jìn)行系統(tǒng)開 發(fā)時(shí),可以將各個(gè)功能封裝到單個(gè)的功能插件中,更加有利于系統(tǒng)功能之間的解耦合,同時(shí) 多個(gè)模塊也可以進(jìn)行并行開發(fā)進(jìn)而提高開發(fā)效率。插件對(duì)象的定義包括插件外觀定義文件、邏輯定義文件(即xml文件)和腳本文 件。下面給出這些定義文件的示例。插件外觀定義文件-index, html 和 layout, mda. xsl <HTML><HEAD>〈ΜΕΤΑ http-equiv_ "refresh" content =“0 ;URL = demo, xml'7 />
</HEAD>
〈/HTML〉
< ? xmlversion="10‘? >
〈xsl:stylesheetversion="1.0"
xmlnsxsl = “ http://www.w3.org/1999/XSL/Transform"
xmlns:hg = ” http/Vwww. hypergrid. com/2000/HyperGrid" >
〈xsl:variablenameimg—path〃 >img</xslvariable)
〈xsl:variablenamemain—color〃 >#006699〈/xsl:variable)
〈xsl:variablenamebold—color" >#36cafa〈/xsl:variable)
〈xsl:variablenameborder—color" >#FFCC33〈/xsl:variable)
〈xsl:variablenamenavigation_bg_co1or“>#B2DlE0</xsl:variable〉
〈xsl:variablenamebold—color2“ >#42c6e7〈/xsl:variable)
〈xsl:variablenamemain—color2 ” >#d2e7ec〈/xsl:variable)
〈xsl:include href =../common—layout· xsl“/>
〈xsl:variablenamefile_actions“ >l</xsl:variable)
〈xsl:variablenamestreaming—download">l</xsl:variable)
〈/xsl:stylesheet)
邏輯定義文件——demo.xml:
< ? xmlversion="1 0‘? >
8
< ? xml-stylesheet href = “ layout, mda. xsl" type=" text/xsl" ? ><hg:plugin id = “ mda. demo “ authority = “ ${HG_DEFAULT_
AUTHORITY}
="list"
="text"
="text"
="text"
="text"
="list"
="list"
’ xmlns:hg =" http://www.hypergrid.com/2000/HyperGrid" > <hg: storage server=" $ {HG_SP00LER_DIR} 〃 ttl = 〃 IOd" > <hg:service id = " nastran" > <hg:name>NASTRAN</hg:name) < ! —Version>l. CKNersion—> <hg:info>ffelcome to Nastran</hg:info>
<hg:option id = " PROJECT " label = " Project:
type
>
<hg:embed uri =" </hg:option)
<hg:option id =
/mda. demo/list, projects" />
CPUTIME " label = " CPU time:
type
extra ="
minutes" >30</hg:option)
<hg:option id = “ MEMORY “ label = “ RAM memory: “ type extra=" MB" >100</hg:option)
<hg:option id = " SCRATCH" label = " Scratch area size:" type extra=" GB" >5</hg:option)
<hg: option id=" MEMSCRATCH" label=" SMEM parameter: " type extra = “ Mb “ />
<hg: option id = " VERSION" label=" Version: " type=" list" > <hg:option label =" 70. 5" >70. 5</hg:option) <hg:option label =" 70. 1" >70. 7</hg:option) </hg:option)
<hg:option id = " QUEUE " label = " Computing queue: " type
<hg:embed uri = </hg:option) <hg:optionid =
/mda. demo/list, queues" />
ACUSTICA
label = " Acustic job:
type〈hg:optionlabel
〈hg:optionlabel
</hg:option>
<hg:optionid =converter:‘‘type=" list">
〈hg:optionid ="
〈hg:optionlabel
〈hg:optionlabel
</hg:option>
NO" >no</hg:option) YES" >yes</hg:option)
CONVERTITORE
label =
Hypermesh
'/>
“Convert. Π1 file" >fll</hg:option> "Convert, pch file" >pch</hg:option)
<hg:option id = “ INPUT “ label = “ Input file 1: “ type =〃 rfh" base=" $H0ME〃 /><hg:option id = “ INPUT2 “ label = “ Input file 2: “ type =〃 rfh" base=" $H0ME〃 /><hg: option id = " LIBRARY" label=" Include library: " type =〃 list" ><hg:option label = " [No library]" ></hg:option)<hg:ambed uri = " //mda. demo/list, nastran. lib" /></hg: option)<hg:option id = " MAILU " label = " Mail address " type =〃 text" /><hg:action id = " submit" label=" Submit job" result = " text/ html "shfile = " $EF_R00T/plugins/demo/mda/bin/demo. xml. sh nastran " ></ hg:action></hg:service)</hg:storage)</hg:plugin>腳本文件-demo. xml. sh:# ! /bin/shBASE = $H0ME/· mdadb/nastran_libPROJECTS = “ dirname $0VprojectPROJECT_IDS =、dirname $0VprojidNASTRAN_R00T = $HG_R00T/plugins/demo/mdaNASTRAN_PREFS_PATH = $ NASTRAN_R00T/prefsexport NASTRAN_R00Tfake_computing () {HG_SP00LER_NAME = 〃 $1 simulation"export HG_SP00LER_NAMEHG_C0MMAND = " $MDA_R00T/bin/fake_app$l“ ;export HG_C0MMANDHG_J0B_NAME = " $1 simulation" ;export HG_J0B_NAME${HG_R00T}/plugins/demo/bin/job. submit}case" $1〃 innastran)fake_computing $1 ;;*)echo" Unknown service“;;Esac其中,對(duì)插件邏輯定義文件中的主要信息進(jìn)行詳細(xì)說明 插件基本信息,標(biāo)簽為plugin,支持的屬性為id和authority ; 插件存儲(chǔ)信息,標(biāo)簽為storage,支持的屬性為server和time ;
網(wǎng)格服務(wù)基本信息,標(biāo)簽為service,支持的屬性為ID和name ; 網(wǎng)格服務(wù)表單信息,標(biāo)簽包括info和option,Info標(biāo)簽可以引入html代碼,主要用于網(wǎng)格服務(wù)的文本介紹。option標(biāo)簽表示 服務(wù)表單上的輸入項(xiàng),其屬性包括id、label、target和type。type屬性表示表單輸入項(xiàng)的 類型,包括文本輸入項(xiàng)、列表控件、下拉列表控件、復(fù)選框和單選按鈕。 網(wǎng)格服務(wù)動(dòng)作信息,標(biāo)簽為action,支持的屬性包括id、label、shfile和 result。shfile屬性標(biāo)記該網(wǎng)格服務(wù)被觸發(fā)后應(yīng)執(zhí)行的腳本。腳本中用參數(shù)形式引用 option標(biāo)簽中指定的輸入項(xiàng)。(2)宿主框架宿主框架的實(shí)現(xiàn)示意圖如圖3所示。宿主框架的作用是以一定的標(biāo)準(zhǔn)解析多個(gè)不同的插件,將插件的輸入和輸出封裝 和規(guī)范化,并將插件的功能解釋為可供用戶閱讀、使用的功能頁面。接受調(diào)用網(wǎng)格服務(wù)的指 令,根據(jù)插件配置調(diào)用指定的服務(wù)執(zhí)行文件。接受獲取網(wǎng)格服務(wù)執(zhí)行結(jié)果的指令,列出服務(wù) 指定目錄下的文件列表。宿主框架包括顯示servlet、調(diào)用服務(wù)servlet、查看服務(wù)結(jié)果servlet和插件信 息結(jié)構(gòu)四個(gè)部分。插件信息結(jié)構(gòu)為公共數(shù)據(jù)結(jié)構(gòu),記錄了各個(gè)插件的邏輯定義,包括MapStorage、 Map Plugins>Map Services、Arraylist Options、HashMap Actions。顯示servlet的示意圖如圖4所示,實(shí)現(xiàn)過程如下第一步,從WEB應(yīng)用服務(wù)器獲取插件顯示指令;第二步,使用DOM解析器解析插件對(duì)象的邏輯定義文件,解析plugin標(biāo)簽、 storage 標(biāo)簽、service 標(biāo)簽、options 標(biāo)簽禾口 action 標(biāo)簽;第三步,檢查是否存儲(chǔ)過插件信息結(jié)構(gòu),如果是,則轉(zhuǎn)到第五步,如果不是,則轉(zhuǎn)到 第四步;第四步,將第二步解析出的插件基本信息、存儲(chǔ)信息、網(wǎng)格服務(wù)基本信息、網(wǎng)格服 務(wù)表單信息和網(wǎng)格服務(wù)動(dòng)作信息存儲(chǔ)至插件信息結(jié)構(gòu);第五步,根據(jù)插件信息結(jié)構(gòu),將插件對(duì)象的網(wǎng)格服務(wù)表單信息轉(zhuǎn)化為頁面控件元 素,與插件對(duì)象的外觀定義文件合并為新的html文件,發(fā)送至TOB應(yīng)用服務(wù)器。調(diào)用服務(wù)servlet的示意圖如圖5所示,實(shí)現(xiàn)過程如下第一步,從TOB應(yīng)用服務(wù)器獲取調(diào)用服務(wù)指令和用戶填入的表單數(shù)據(jù);第二步,從插件信息結(jié)構(gòu)中獲取對(duì)應(yīng)服務(wù)的表單信息、插件對(duì)象存儲(chǔ)信息和網(wǎng)格 服務(wù)動(dòng)作信息;第三步,根據(jù)網(wǎng)格服務(wù)動(dòng)作信息,將表單數(shù)據(jù)填入腳本文件的對(duì)應(yīng)位置,調(diào)用腳本 文件;第四步,如果腳本文件執(zhí)行成功,則轉(zhuǎn)第五步,否則發(fā)送錯(cuò)誤信息給WEB應(yīng)用服務(wù) 器;第五步,生成服務(wù)實(shí)例id,將服務(wù)實(shí)例id和第一步中由用戶填入的服務(wù)名稱和根 據(jù)插件對(duì)象存儲(chǔ)信息生成的服務(wù)具體工作目錄存儲(chǔ)至插件信息結(jié)構(gòu)中;
11
第六步,返回服務(wù)實(shí)例id給TOB應(yīng)用服務(wù)器。查看服務(wù)結(jié)果servlet的示意圖如圖6所示,實(shí)現(xiàn)過程如下第一步,從TOB應(yīng)用服務(wù)器獲取查看結(jié)果指令和服務(wù)實(shí)例id號(hào);第二步,根據(jù)服務(wù)實(shí)例id,從插件信息結(jié)構(gòu)中獲取服務(wù)的工作目錄;第三步,從服務(wù)的工作目錄獲取輸出文件的列表;第四步,生成輸出文件的列表信息,返回給TOB應(yīng)用服務(wù)器。下面給出一個(gè)配置網(wǎng)格門戶的實(shí)例。在網(wǎng)格門戶原型系統(tǒng)中,門戶的界面通過模 板來配置。主要步驟有如下5步(1)確定門戶中使用的插件對(duì)象的目錄結(jié)構(gòu)。在網(wǎng)格門戶的配置中,插件對(duì)象的所有文件都放在以插件對(duì)象名稱命名的文件目 錄中,其中外觀定義文件放在該文件目錄下的WEBAPP目錄中,xml文件放在根目錄中,腳本 文件放在在該文件目錄下的bin目錄中。(2)定義各個(gè)插件的外觀定義文件外觀定義文件包括html文件和ess文件。在html文件中,標(biāo)定插件對(duì)象使用的 xml文件。在ess文件中,標(biāo)定插件對(duì)象在顯示時(shí)需要的參數(shù)值,例如頁面顏色、字體、文字 大小、列表方式等。(3)定義每個(gè)插件對(duì)象的xml文件xml文件確定插件對(duì)象的基本信息、存儲(chǔ)信息,以及該插件對(duì)象中包括的網(wǎng)格服務(wù) 的基本信息、表單信息和動(dòng)作信息。(4)定義插件對(duì)象的執(zhí)行腳本按照服務(wù)的用途,創(chuàng)建插件對(duì)象中每個(gè)網(wǎng)格服務(wù)的執(zhí)行腳本。其中執(zhí)行腳本中使 用的參數(shù)需要與xml文件中options標(biāo)簽中指定的參數(shù)名稱對(duì)應(yīng)。(5)將存放插件對(duì)象的文件目錄拷貝至宿主框架的指定目錄,運(yùn)行權(quán)利要求1所 述的門戶配置系統(tǒng),完成網(wǎng)格門戶配置。本發(fā)明未詳細(xì)說明部分屬于本領(lǐng)域技術(shù)人員公知常識(shí)。
權(quán)利要求
一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng),其特征在于包括插件對(duì)象、宿主框架、WEB應(yīng)用服務(wù)器和瀏覽器;插件對(duì)象,包括多個(gè)網(wǎng)格服務(wù),用外觀定義文件描述所有網(wǎng)格服務(wù)的顯示模式,用xml文件描述所有網(wǎng)格服務(wù)的屬性、表單信息和運(yùn)行邏輯,用腳本文件描述所有網(wǎng)格服務(wù)的執(zhí)行過程;上述外觀定義文件、xml文件和腳本文件三者組成了網(wǎng)格服務(wù)模型;宿主框架,在網(wǎng)格門戶配置系統(tǒng)運(yùn)行時(shí),與插件對(duì)象進(jìn)行連接,解析插件對(duì)象中的外觀定義文件和xml文件,將插件對(duì)象中包含的網(wǎng)格服務(wù)功能解釋為可供用戶閱讀、使用的功能頁面,顯示在瀏覽器中;在用戶通過瀏覽器調(diào)用網(wǎng)格服務(wù)時(shí),接受WEB應(yīng)用服務(wù)器提交的調(diào)用網(wǎng)格服務(wù)指令,根據(jù)插件對(duì)象的位置信息及解析出的插件對(duì)象存儲(chǔ)信息,在指定的計(jì)算機(jī)上創(chuàng)建該網(wǎng)格服務(wù)對(duì)應(yīng)的工作目錄,在工作目錄中調(diào)用插件對(duì)象的腳本文件,并將調(diào)用成功與否的信息返回給WEB應(yīng)用服務(wù)器;接受WEB應(yīng)用服務(wù)器提交的獲取網(wǎng)格服務(wù)執(zhí)行結(jié)果的指令,列出網(wǎng)格服務(wù)工作目錄下的結(jié)果文件列表,并將列表信息返回給WEB應(yīng)用服務(wù)器;WEB應(yīng)用服務(wù)器,接收瀏覽器的請(qǐng)求,在接收到調(diào)用網(wǎng)格服務(wù)或獲取網(wǎng)格服務(wù)執(zhí)行結(jié)果的指令時(shí),轉(zhuǎn)發(fā)給宿主框架,并將宿主框架返回的處理結(jié)果傳遞給瀏覽器;瀏覽器,瀏覽器顯示網(wǎng)格門戶界面,接受用戶對(duì)網(wǎng)格服務(wù)調(diào)用或獲取結(jié)果的請(qǐng)求,向WEB應(yīng)用服務(wù)器發(fā)出相應(yīng)指令,并獲取WEB應(yīng)用服務(wù)器返回的處理結(jié)果,將其展示給用戶。
2.根據(jù)權(quán)利要求1所述的一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng),其特征在于所述 的xml文件中主要信息包括插件基本信息,標(biāo)簽為plugin,支持的屬性為id和authority ;插件存儲(chǔ)信息,標(biāo)簽為storage,支持的屬性為server和time ;網(wǎng)格服務(wù)基本信息,標(biāo)簽為service,支持的屬性為ID和name ;網(wǎng)格服務(wù)表單信息,標(biāo)簽包括info和option ;網(wǎng)格服務(wù)動(dòng)作信息,標(biāo)簽為action,支持的屬性包括id、label、shfile和result ; shfile屬性標(biāo)記該網(wǎng)格服務(wù)被觸發(fā)后應(yīng)執(zhí)行的腳本,腳本中用參數(shù)形式引用option標(biāo)簽 中指定的輸入項(xiàng)。
3.根據(jù)權(quán)利要求1所述的一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng),其特征在于所述 的宿主框架包括顯示servlet、調(diào)用服務(wù)servlet、查看服務(wù)結(jié)果servlet和插件信息結(jié)構(gòu) 四個(gè)部分;顯示servlet、調(diào)用服務(wù)servlet、查看服務(wù)結(jié)果servlet分別負(fù)責(zé)網(wǎng)格服務(wù)的三 個(gè)操作顯示網(wǎng)格服務(wù)頁面、調(diào)用單個(gè)網(wǎng)格服務(wù)和查看單個(gè)網(wǎng)格服務(wù)的狀態(tài),插件信息結(jié)構(gòu) 是宿主框架在運(yùn)行時(shí)構(gòu)建的一個(gè)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),存儲(chǔ)了解析后的插件對(duì)象的信息。
4.根據(jù)權(quán)利要求3所述的一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng),其特征在于所述的 顯示servlet工作流程如下第一步,從WEB應(yīng)用服務(wù)器獲取插件顯示指令;第二步,使用DOM解析器解析插件對(duì)象的邏輯定義文件,解析plugin標(biāo)簽、storage標(biāo) 簽、service標(biāo)簽、option標(biāo)簽禾口 action標(biāo)簽;第三步,檢查是否存儲(chǔ)過插件信息結(jié)構(gòu),如果是,則轉(zhuǎn)到第五步,如果不是,則轉(zhuǎn)到第四止少;第四步,將第二步解析出的插件基本信息、存儲(chǔ)信息、網(wǎng)格服務(wù)基本信息、網(wǎng)格服務(wù)表單信息和網(wǎng)格服務(wù)動(dòng)作信息存儲(chǔ)至插件信息結(jié)構(gòu);第五步,根據(jù)插件信息結(jié)構(gòu),將插件對(duì)象的網(wǎng)格服務(wù)表單信息轉(zhuǎn)化為頁面控件元素,與 插件對(duì)象的外觀定義文件合并為新的html文件,發(fā)送至TOB應(yīng)用服務(wù)器。
5.根據(jù)權(quán)利要求3所述的一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng),其特征在于所述的 調(diào)用服務(wù)servlet工作流程如下第一步,從WEB應(yīng)用服務(wù)器獲取調(diào)用服務(wù)指令和用戶填入的表單數(shù)據(jù); 第二步,從插件信息結(jié)構(gòu)中獲取對(duì)應(yīng)服務(wù)的表單信息、插件對(duì)象存儲(chǔ)信息和網(wǎng)格服務(wù) 動(dòng)作信息;第三步,根據(jù)網(wǎng)格服務(wù)動(dòng)作信息,將表單數(shù)據(jù)填入腳本文件的對(duì)應(yīng)位置,調(diào)用腳本文件;第四步,如果腳本文件執(zhí)行成功,則轉(zhuǎn)第五步,否則發(fā)送錯(cuò)誤信息給WEB應(yīng)用服務(wù)器; 第五步,生成服務(wù)實(shí)例id,將服務(wù)實(shí)例id和第一步中由用戶填入的服務(wù)名稱和根據(jù)插 件對(duì)象存儲(chǔ)信息生成的服務(wù)具體工作目錄存儲(chǔ)至插件信息結(jié)構(gòu)中; 第六步,返回服務(wù)實(shí)例id給TOB應(yīng)用服務(wù)器。
6.根據(jù)權(quán)利要求3所述的一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng),其特征在于所述的 查看服務(wù)結(jié)果servlet工作流程如下第一步,從WEB應(yīng)用服務(wù)器獲取查看結(jié)果指令和服務(wù)實(shí)例id號(hào); 第二步,根據(jù)服務(wù)實(shí)例id,從插件信息結(jié)構(gòu)中獲取服務(wù)的工作目錄; 第三步,從服務(wù)的工作目錄獲取輸出文件的列表; 第四步,生成輸出文件的列表信息,返回給WEB應(yīng)用服務(wù)器。
7.一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置方法,其特征在于步驟如下(1)確定門戶中使用的插件對(duì)象的目錄結(jié)構(gòu)在網(wǎng)格門戶的配置中,插件對(duì)象的所有文件都放在以插件對(duì)象名稱命名的文件目錄 中,其中外觀定義文件放在該文件目錄下的WEBAPP目錄中,xml文件放在根目錄中,腳本文 件放在在該文件目錄下的bin目錄中;(2)定義各個(gè)插件的外觀定義文件外觀定義文件包括html文件和ess文件;在html文件中,標(biāo)定插件對(duì)象使用的xml文 件,在ess文件中,標(biāo)定插件對(duì)象在顯示時(shí)需要的參數(shù)值;(3)定義每個(gè)插件對(duì)象的xml文件xml文件確定插件對(duì)象的基本信息、存儲(chǔ)信息,以及該插件對(duì)象中包括的網(wǎng)格服務(wù)的基 本信息、表單信息和動(dòng)作信息;(4)定義插件對(duì)象的執(zhí)行腳本按照服務(wù)的用途,創(chuàng)建插件對(duì)象中每個(gè)網(wǎng)格服務(wù)的執(zhí)行腳本;其中執(zhí)行腳本中使用的 參數(shù)需要與xml文件中option標(biāo)簽中指定的參數(shù)名稱對(duì)應(yīng);(5)將存放插件對(duì)象的文件目錄拷貝至宿主框架的指定目錄,運(yùn)行權(quán)利要求1所述的 門戶配置系統(tǒng),完成網(wǎng)格門戶配置。
全文摘要
一種基于模型驅(qū)動(dòng)的網(wǎng)格門戶配置系統(tǒng)及配置方法,所述的系統(tǒng)包括插件對(duì)象、宿主框架、WEB應(yīng)用服務(wù)器和瀏覽器;插件對(duì)象,包括多個(gè)網(wǎng)格服務(wù),用外觀定義文件描述所有網(wǎng)格服務(wù)的顯示模式,用xml文件描述所有網(wǎng)格服務(wù)的屬性、表單信息和運(yùn)行邏輯,用腳本文件描述所有網(wǎng)格服務(wù)的執(zhí)行過程;上述外觀定義文件、xml文件和腳本文件三者組成了網(wǎng)格服務(wù)模型;宿主框架能夠調(diào)用插件對(duì)象,插件對(duì)象能夠在宿主框架上實(shí)現(xiàn)自己的服務(wù)邏輯,而二者的交互基于一種公共的通信契約。插件與宿主框架之間的連接發(fā)生在運(yùn)行時(shí)而不是編譯時(shí)。這種方式能夠有效地降低門戶提供的功能對(duì)象與對(duì)象管理邏輯之間耦合程度,易復(fù)用,具備靈活性,能使網(wǎng)格門戶系統(tǒng)配置達(dá)到最優(yōu)。
文檔編號(hào)G06F17/30GK101909082SQ201010240148
公開日2010年12月8日 申請(qǐng)日期2010年7月29日 優(yōu)先權(quán)日2010年7月29日
發(fā)明者孔文秦, 廖馨, 張灝龍, 彭健, 趙雯, 鄭宏濤 申請(qǐng)人:中國運(yùn)載火箭技術(shù)研究院