專(zhuān)利名稱(chēng):一種基于http協(xié)議的存儲(chǔ)多節(jié)點(diǎn)集中管理和單節(jié)點(diǎn)管理相結(jié)合的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)及網(wǎng)絡(luò)通信領(lǐng)域,具體一種基于HTTP協(xié)議的存儲(chǔ)多節(jié) 點(diǎn)集中管理和單節(jié)點(diǎn)管理相結(jié)合的方法。
背景技術(shù):
目前,隨著信息化的深入發(fā)展,提供信息服務(wù)的設(shè)備越來(lái)越多。大量的設(shè)備管 理越來(lái)越成為信息管理的主要課題之一。存儲(chǔ)設(shè)備不像服務(wù)器那樣安裝非常完整 且通用的操作系統(tǒng),而且操作系統(tǒng)不統(tǒng)一,因而,在存儲(chǔ)上部署管理軟件是很復(fù) 雜的過(guò)程。當(dāng)前的做法是,存儲(chǔ)系統(tǒng)廠商內(nèi)置特定的管理系統(tǒng),而且不同廠商的 存儲(chǔ)管理系統(tǒng)相互難以兼容。
當(dāng)前,存儲(chǔ)系統(tǒng)上的管理軟件在設(shè)計(jì)上一般有兩種模式, 一是基于B/S(瀏覽 器/服務(wù)器)結(jié)構(gòu)的管理軟件,二是基于C/S(客戶(hù)端/服務(wù)器)的管理軟件。這兩種 管理軟件是兩套不同的架構(gòu)。岡而,在實(shí)現(xiàn)過(guò)程中,管理軟件廠商必須單獨(dú)去實(shí) 現(xiàn)其種的某一種。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對(duì)上述兩項(xiàng)缺點(diǎn),提出了一種新的基于HTTP協(xié)議的存儲(chǔ) 多節(jié)點(diǎn)集中管理和單節(jié)點(diǎn)管理相結(jié)合的軟件實(shí)現(xiàn)方法。這種方法是上述兩種模式
的融合,用戶(hù)可以根據(jù)需求使用其中的一種管理策略。
本發(fā)明的目的是按以下方式實(shí)現(xiàn)的,為了解決存儲(chǔ)設(shè)備管理軟件的不兼容性, 以及基于B/S和C/S兩種管理方式并存的情況下產(chǎn)品開(kāi)發(fā)效率低的問(wèn)題,在HTTP 協(xié)議的基礎(chǔ)之上構(gòu)建了新的表示層分別用來(lái)來(lái)表示靈敏據(jù)的傳輸以及管理命令的 遠(yuǎn)程調(diào)用。從而使專(zhuān)用客戶(hù)端或通用瀏覽器均能通過(guò)HTTP協(xié)議訪(fǎng)問(wèn)管理存儲(chǔ)系統(tǒng)。
在HTTP協(xié)議的基礎(chǔ)之上構(gòu)建新的表示層分別用來(lái)表示靈敏數(shù)據(jù)的傳輸以及管 理命令的遠(yuǎn)程調(diào)用,使專(zhuān)用客戶(hù)端或通用瀏覽器,均能通過(guò)HTTP協(xié)議訪(fǎng)問(wèn)管理存 儲(chǔ)系統(tǒng);還包括以下內(nèi)容
整個(gè)管理方案具有典型的拓?fù)浣Y(jié)構(gòu),在存儲(chǔ)設(shè)備子網(wǎng)上增加多節(jié)點(diǎn)管理客戶(hù) 端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管理節(jié)點(diǎn),用于對(duì)存儲(chǔ)設(shè)備進(jìn)行管理, 多節(jié)點(diǎn)管理客戶(hù)端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管理節(jié)點(diǎn)部置在同一 個(gè)物理節(jié)點(diǎn)上以節(jié)省資源,具體管理如下
l)是要管理的存儲(chǔ)節(jié)點(diǎn)此節(jié)點(diǎn)上要實(shí)現(xiàn)管理軟件的服務(wù)端程序,此服務(wù)程序在通用的http服務(wù)器之上,用特定的腳本語(yǔ)言包括—PHP、 ASP、 Per工語(yǔ)言開(kāi)發(fā);
2) 用于對(duì)多個(gè)存儲(chǔ)設(shè)備進(jìn)行集中管理使得所管理的存儲(chǔ)設(shè)備協(xié)同進(jìn)行工作;
3) 用于掃描當(dāng)前網(wǎng)絡(luò)中需要管理的存儲(chǔ)設(shè)備,并保存到一個(gè)存儲(chǔ)設(shè)備列表中; 這個(gè)存儲(chǔ)設(shè)備列表,用于一個(gè)管理節(jié)點(diǎn)在初始化時(shí)獲取有用的信息,進(jìn)而進(jìn)行多 設(shè)備管理;存儲(chǔ)設(shè)備列表釆用自動(dòng)掃描或手動(dòng)加入兩種方式生成;
4) 用于對(duì)單節(jié)點(diǎn)存儲(chǔ)設(shè)備進(jìn)行管理,管理方式采用HTTP協(xié)議,在此節(jié)點(diǎn)上, 不需要開(kāi)發(fā)新的特定的應(yīng)用程序,只采用通用的瀏覽器,具體支持哪些瀏覽器要 視步驟1)中的實(shí)現(xiàn)程序而定;
為了使C/S架構(gòu)的管理方式和B/S架構(gòu)的管理方式在接口上統(tǒng)一,在HTTP通 信的基礎(chǔ)上新增加了兩個(gè)通信層,RPC和XML/JSON,分別用于管理系統(tǒng)客戶(hù)端請(qǐng)求 與處理的映射與基于HTTP協(xié)議的數(shù)據(jù)傳輸,在實(shí)施過(guò)程中需要開(kāi)發(fā)四個(gè)通信 層,RPC來(lái)實(shí)現(xiàn)各個(gè)協(xié)議層的數(shù)據(jù)轉(zhuǎn)換;
i) XML/JSON層的設(shè)計(jì)主要用于基本HTTP的數(shù)據(jù)傳輸,在實(shí)施中,服務(wù)端根據(jù) 不同的客戶(hù)請(qǐng)求端接收和發(fā)送XML和JSON兩種格式的數(shù)據(jù);
ii) 兩種實(shí)現(xiàn)方案,從數(shù)據(jù)交換的角度來(lái)講都是請(qǐng)求-響應(yīng)模式,換句話(huà)說(shuō),這 兩種方式均是將用戶(hù)的操作轉(zhuǎn)化為一個(gè)或多個(gè)請(qǐng)求,提交給存儲(chǔ)系統(tǒng),存儲(chǔ)系統(tǒng) 執(zhí)行完成后,返回執(zhí)行結(jié)果,為了表示這個(gè)請(qǐng)求一響應(yīng)的模塊,本方案中,采用 了 RPC層專(zhuān)門(mén)處理請(qǐng)求與請(qǐng)求處理程序的對(duì)應(yīng)關(guān)系,以及結(jié)果返回的處理, 一個(gè) RPC請(qǐng)求簡(jiǎn)單描述為如下格式
Excute Command ([stat—sn] , node, in—data, out—data, status) 其中
Excute Command:要執(zhí)行的管理命令,在服務(wù)端與某個(gè)管理處理程序?qū)?yīng);
Stat」n:命令序號(hào),某些命令且并行處理時(shí),用序號(hào)使響應(yīng)用數(shù)據(jù)請(qǐng)求能夠一 一對(duì)應(yīng),對(duì)只能串行的命令;
Node:節(jié)點(diǎn)識(shí)別信息,用于識(shí)別此條命令是針對(duì)于哪個(gè)存儲(chǔ)設(shè)備,在實(shí)施中, 使用存儲(chǔ)設(shè)備的IP做為此項(xiàng)參數(shù);
In一data:執(zhí)行命令時(shí),需要傳輸給存儲(chǔ)設(shè)備的數(shù)據(jù);
Out—data:執(zhí)行完成后,傳輸?shù)娇蛻?hù)端的數(shù)據(jù);
Status:此條命令執(zhí)行的狀態(tài);
(iii)存儲(chǔ)節(jié)點(diǎn)上的RPC和管理節(jié)點(diǎn)上的RPC是用戶(hù)實(shí)現(xiàn)命令的表示,當(dāng)網(wǎng)段 掃描接收到用戶(hù)請(qǐng)求,并將其為轉(zhuǎn)化成多個(gè)或一個(gè)RPC命令,然后由管理節(jié)點(diǎn)上 的RPC通過(guò)下層命令最終傳輸給用戶(hù)界面,用戶(hù)界面調(diào)用命令對(duì)應(yīng)的處理程序,填充out—data,并修改Status后傳回管理節(jié)點(diǎn)上的—RPC;
(iv) 存儲(chǔ)節(jié)點(diǎn)上的RPC表示層和管理節(jié)點(diǎn)上的表示層用于完成RPC命令與表 示格式的轉(zhuǎn)換,同時(shí)負(fù)責(zé)將表示RPC命令的XML/JSON提交到下層傳輸;
(v) HTTP服務(wù)器和HTTP '客戶(hù)端是HTTP協(xié)議的具體實(shí)現(xiàn); 管理節(jié)點(diǎn)掃描代理處理流程
管理節(jié)點(diǎn)的執(zhí)行流程如下
1) ffl戶(hù)輸入掃描范圍包括網(wǎng)段地址、端口信息;
2) 系統(tǒng)對(duì)指定網(wǎng)段內(nèi)每個(gè)網(wǎng)絡(luò)地址進(jìn)行掃描,掃描完畢退出,否則轉(zhuǎn)到歩驟
iiij
3) 嘗試建立TCP連接,失敗轉(zhuǎn)到歩驟ii,否則,繼續(xù);
4) 驗(yàn)證建立的連接是否支持HTTP協(xié)議,不支持轉(zhuǎn)到步驟ii,否則繼續(xù);
5) 發(fā)送掃描請(qǐng)求響應(yīng),服務(wù)端返回信息確認(rèn)被管理,繼續(xù),否則轉(zhuǎn)到步驟ii; 6)將該地址及相應(yīng)屬性增加到節(jié)點(diǎn)列表;
執(zhí)行上述流程的目的是找出被管理的節(jié)點(diǎn)增到節(jié)點(diǎn)列表中,在實(shí)現(xiàn)時(shí),對(duì)增加 對(duì)節(jié)點(diǎn)列表的手動(dòng)管理接口,使得節(jié)點(diǎn)列表除了能夠自動(dòng)獲取外,還手動(dòng)增加或 修改;
多節(jié)點(diǎn)管理應(yīng)用的執(zhí)行流程
多節(jié)點(diǎn)管理需要有專(zhuān)用的管理客戶(hù)端, 一個(gè)管理客戶(hù)端需要包含HTTP協(xié)議解 析、XML或其它表示層解析、RPC解析以及用戶(hù)界面組件,這些組件共同參與以下 執(zhí)行過(guò)程
1) 多節(jié)點(diǎn)客戶(hù)端在啟動(dòng)時(shí)通過(guò)訪(fǎng)問(wèn)節(jié)點(diǎn)掃描代理更新本地的節(jié)點(diǎn)列表;
2) 等待執(zhí)行用戶(hù)操作,當(dāng)接收到用戶(hù)操作時(shí),轉(zhuǎn)到步驟iii;
3) 將用戶(hù)的操作轉(zhuǎn)化成一個(gè)或多個(gè)RPC操作;
4) 創(chuàng)建線(xiàn)程等待異步響應(yīng);
5) 將—卜.述的RPC操作轉(zhuǎn)化為指定的表示格式XML/JSON后發(fā)送到指定的存儲(chǔ)設(shè) 備進(jìn)行處理;
6) 存儲(chǔ)設(shè)備接收到指定格式RPC表示數(shù)據(jù)后,根據(jù)客戶(hù)端的類(lèi)型,選擇相應(yīng) 的解析引擎;
7) 存儲(chǔ)設(shè)各使用相應(yīng)的解析引擎將客戶(hù)端數(shù)據(jù)轉(zhuǎn)化為RPC格式,并執(zhí)行相應(yīng) 的管理程序;
8) 存儲(chǔ)設(shè)備將執(zhí)行結(jié)果填寫(xiě)到RPC的out—data和satus字段后,重新轉(zhuǎn)化為 原來(lái)的表示格式;9) 存儲(chǔ)設(shè)備將執(zhí)行結(jié)果發(fā)送回客戶(hù)端;
10) 當(dāng)所有的RPC操作完全執(zhí)行完成后,在界面上對(duì)用戶(hù)的操作做出響應(yīng); 上述過(guò)程中,用戶(hù)的操作是異步響應(yīng),或設(shè)置為同步響應(yīng),當(dāng)設(shè)置為異步響應(yīng)
時(shí),需要單獨(dú)建立線(xiàn)程或進(jìn)程等待存儲(chǔ)端響應(yīng); 單節(jié)點(diǎn)命令的執(zhí)行流程
單節(jié)點(diǎn)命令的執(zhí)行流程是采用傳統(tǒng)的ajax技術(shù),客戶(hù)端瀏覽器將用戶(hù)請(qǐng)求轉(zhuǎn) 化為多個(gè)RPC操作,并封裝發(fā)送到服務(wù)端進(jìn)行處理,等所有操作返回后,客戶(hù)端 瀏覽器顯示操作結(jié)果;
要支持單節(jié)點(diǎn)管理,每個(gè)存儲(chǔ)設(shè)備的管理系統(tǒng)除了要實(shí)現(xiàn)本方案中提到的組件 外,還要提供 -個(gè)基于HTML或FLASH技術(shù)的用戶(hù)界面供瀏覽器調(diào)用。
本發(fā)明的優(yōu)異效果是不僅是為了實(shí)現(xiàn)多節(jié)點(diǎn)集中管理和單節(jié)點(diǎn)管理相結(jié)合, 同時(shí)也是單獨(dú)實(shí)現(xiàn)多節(jié)點(diǎn)集中管理或單節(jié)點(diǎn)管理軟件的一個(gè)策略。在實(shí)現(xiàn)過(guò)程中, 其比傳統(tǒng)的實(shí)現(xiàn)方式的優(yōu)勢(shì)在于,便于擴(kuò)展新的功能,給予用戶(hù)較好的應(yīng)用體驗(yàn)。
附圖l節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)附圖2組件層次結(jié)構(gòu)附圖3掃描節(jié)點(diǎn)列表執(zhí)行流程附圖4多節(jié)點(diǎn)管理應(yīng)用執(zhí)行流程。
具體實(shí)施例方式
參照附圖對(duì)本發(fā)明的方法作以下詳細(xì)的說(shuō)明。
整個(gè)管理方案的典型拓?fù)淙鐖D1所示。在存儲(chǔ)設(shè)備子網(wǎng)上增加多節(jié)點(diǎn)管理客戶(hù) 端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管理節(jié)點(diǎn),用于對(duì)存儲(chǔ)設(shè)備進(jìn)行管理。 在真實(shí)的部署中,多節(jié)點(diǎn)管理客戶(hù)端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管 理節(jié)點(diǎn)部置在同一個(gè)物理節(jié)點(diǎn)上,用以節(jié)省資源。
1) 是要管理的存儲(chǔ)節(jié)點(diǎn)。此節(jié)點(diǎn)上要實(shí)現(xiàn)管理軟件的服務(wù)端程序, 一般地, 此服務(wù)程序可以在通用的http服務(wù)器之上,用特定的腳本語(yǔ)言(如PHP、 ASP、 Perl 等)開(kāi)發(fā)即可。其工作量與開(kāi)發(fā)一個(gè)基于C/S結(jié)構(gòu)的傳統(tǒng)管理軟件相差不大。
2) 多節(jié)點(diǎn)管理客戶(hù)端用于對(duì)多個(gè)存儲(chǔ)設(shè)備進(jìn)行集中管理。甚至可以使得所管 理的存儲(chǔ)設(shè)備協(xié)同進(jìn)行工作。
3) 節(jié)點(diǎn)掃描代理用于掃描當(dāng)前網(wǎng)絡(luò)中,需要管理的存儲(chǔ)設(shè)備,并保存到一個(gè) 存儲(chǔ)設(shè)備列表中,這個(gè)存儲(chǔ)設(shè)備列表,用于多節(jié)點(diǎn)管理客戶(hù)端在初始化時(shí)獲取有 用的信息,進(jìn)而進(jìn)行多設(shè)備管理。在實(shí)現(xiàn)上,存儲(chǔ)設(shè)備列表可采用自動(dòng)掃描或手動(dòng)加入兩種方式生成。
4)單節(jié)點(diǎn)管理客戶(hù)端用于對(duì)單節(jié)點(diǎn)存儲(chǔ)設(shè)備進(jìn)行管理。管理方式采用HTTP 協(xié)議。在此節(jié)點(diǎn)上,不需要開(kāi)發(fā)新的特定的應(yīng)用程序,只采用通用的瀏覽器即可。 具體支持哪些瀏覽器要視(l)中的實(shí)現(xiàn)程序而定。
為了使C/S架構(gòu)的管理方式和B/S架構(gòu)的管理方式在接口上統(tǒng)一,本發(fā)明在 HTTP通信(14)的基礎(chǔ)上新增加了兩個(gè)通信層RPC、 XML/JS0N。分別用于管理系統(tǒng) 客戶(hù)端請(qǐng)求與處理的映射與基于HTTP協(xié)議的數(shù)據(jù)傳輸。相應(yīng)的,在實(shí)現(xiàn)時(shí),需要 開(kāi)發(fā)用戶(hù)界面、RPC表示層、(16)、管理節(jié)點(diǎn)上的RPC來(lái)實(shí)現(xiàn)各個(gè)協(xié)議層的數(shù)據(jù)轉(zhuǎn) 換。
(i) XML/JSON層的設(shè)計(jì)主要用于基本HTTP的數(shù)據(jù)傳輸。在實(shí)現(xiàn)中,服務(wù)端可 以根據(jù)不同的客戶(hù)請(qǐng)求端接收和發(fā)送XML和JSON兩種格式的數(shù)據(jù),這樣做的主要 原因是,對(duì)于使用瀏覽器單節(jié)點(diǎn)管理應(yīng)用,JSON格式的數(shù)據(jù)相對(duì)來(lái)于比較容易解 析和識(shí)別,同時(shí),對(duì)于使用特定客戶(hù)端管理軟件的多節(jié)點(diǎn)管理應(yīng)用中,XML數(shù)據(jù)是 最佳的數(shù)據(jù)解析格式。
(ii) 兩種實(shí)現(xiàn)方案,從數(shù)據(jù)交換的角度來(lái)講都是請(qǐng)求-響應(yīng)模式。換句話(huà)說(shuō), 這兩種方式均是將用戶(hù)的操作轉(zhuǎn)化為一個(gè)或多個(gè)請(qǐng)求,提交給存儲(chǔ)系統(tǒng)。存儲(chǔ)系 統(tǒng)執(zhí)行完成后,返回執(zhí)行結(jié)果。為了表示這個(gè)請(qǐng)求一響應(yīng)的模塊,本發(fā)明,釆用 了 RPC層專(zhuān)門(mén)處理請(qǐng)求與請(qǐng)求處理程序的對(duì)應(yīng)關(guān)系,以及結(jié)果返回的處理。 一個(gè) RPC請(qǐng)求可簡(jiǎn)單描述為如下格式
Excute Command([stat—sn], node, in—data, out—data, status)
其中
Excute Command:要執(zhí)行的管理命令,在服務(wù)端與某個(gè)管理處理程序?qū)?yīng)
Stat一sn:命令序號(hào),某些命令可以且并行處理時(shí),用序號(hào)使響應(yīng)用數(shù)據(jù)請(qǐng)求能 夠一一對(duì)應(yīng)。對(duì)只能串行的命令,此項(xiàng)可選
Node:節(jié)點(diǎn)識(shí)別信息,用于識(shí)別此條命令是針對(duì)于哪個(gè)存儲(chǔ)設(shè)備。在實(shí)現(xiàn)屮, 可以使用存儲(chǔ)設(shè)備的IP做為此項(xiàng)參數(shù)。
In—data:執(zhí)行命令時(shí),需要傳輸給存儲(chǔ)設(shè)備的數(shù)據(jù)。
Out—data:執(zhí)行完成后,傳輸?shù)娇蛻?hù)端的數(shù)據(jù)。 Status:此條命令執(zhí)行的狀態(tài)。
(iii) 用戶(hù)界面和管理節(jié)點(diǎn)上的RPC是用戶(hù)實(shí)現(xiàn)命令的表示。當(dāng)網(wǎng)段掃描接收 到用戶(hù)請(qǐng)求,并將其為轉(zhuǎn)化成多個(gè)或一個(gè)RPC命令,然后由管理節(jié)點(diǎn)上的RPC通
過(guò)下層命令最終傳輸給用戶(hù)界面,用戶(hù)界面調(diào)用命令對(duì)應(yīng)的處理程序,填充_5-out—data,并修改Status后傳回管理節(jié)點(diǎn)上的RPC。
(iv) RPC表示層和(16)用于完成RPC命令與表示格式的轉(zhuǎn)換,同時(shí)負(fù)責(zé)將表 示RPC命令的XML/JS0N提交到下層傳輸。
(v) HTTP服務(wù)器和HTTP客戶(hù)端是HTTP協(xié)議的具體實(shí)現(xiàn)。 管理節(jié)點(diǎn)掃描代理處理流程 管理節(jié)點(diǎn)的執(zhí)行流程如下
1) 用戶(hù)輸入掃描范圍(網(wǎng)段地址、端口等信息);
2) 系統(tǒng)對(duì)指定網(wǎng)段內(nèi)每個(gè)網(wǎng)絡(luò)地址進(jìn)行掃描,掃描完畢退出,否則轉(zhuǎn)到(iii);
3) 嘗試建立TCP連接,失敗轉(zhuǎn)到(ii),否則,繼續(xù);
4) 驗(yàn)證建立的連接是否支持HTTP協(xié)議,不支持轉(zhuǎn)到(ii),否則繼續(xù);
5) 發(fā)送掃描請(qǐng)求響應(yīng),服務(wù)端返回信息確認(rèn)可被管理,繼續(xù),否則轉(zhuǎn)到(ii);
6) 將該地址及相應(yīng)屬性(可以響應(yīng)確認(rèn)信息中傳輸)增加到節(jié)點(diǎn)列表。
執(zhí)行上述流程的目的是找出可以被管理的節(jié)點(diǎn)增到節(jié)點(diǎn)列表中。在實(shí)現(xiàn)時(shí),可 對(duì)增加對(duì)節(jié)點(diǎn)列表的手動(dòng)管理接口,使得節(jié)點(diǎn)列表除了能夠自動(dòng)獲取外,還可以 手動(dòng)增加或修改。
多節(jié)點(diǎn)管理應(yīng)用的執(zhí)行流程
多節(jié)點(diǎn)管理需要有專(zhuān)用的管理客戶(hù)端, 一個(gè)管理客戶(hù)端需要包含HTTP協(xié)議解 析、XML或其它表示層解析、RPC解析以及用戶(hù)界面等組件。這些組件共同參與以 下執(zhí)行過(guò)程
1) 多節(jié)點(diǎn)客戶(hù)端在啟動(dòng)時(shí)通過(guò)訪(fǎng)問(wèn)節(jié)點(diǎn)掃描代理更新本地的節(jié)點(diǎn)列表;
2) 等待執(zhí)行用戶(hù)操作,當(dāng)接收到用戶(hù)操作時(shí),轉(zhuǎn)到(iii);
3) 將用戶(hù)的操作轉(zhuǎn)化成一個(gè)或多個(gè)RPC操作;
4) 創(chuàng)建線(xiàn)程等待異步響應(yīng);
5) 將上述的RPC操作轉(zhuǎn)化為指定的表示格式(XMLZJSON)后發(fā)送到指定的存儲(chǔ) 設(shè)備進(jìn)行處理;
6) 存儲(chǔ)設(shè)備接收到指定格式RPC表示數(shù)據(jù)后,根據(jù)客戶(hù)端的類(lèi)型,選擇相應(yīng) 的解析引擎;
存儲(chǔ)設(shè)備使用相應(yīng)的解析引擎將客戶(hù)端數(shù)據(jù)轉(zhuǎn)化為RPC格式,并執(zhí)行相應(yīng)的 管理程序。
8) 存儲(chǔ)設(shè)備將執(zhí)行結(jié)果填寫(xiě)到RPC的out_data和satus字段后,重新轉(zhuǎn)化為 原來(lái)的表示格式。
9) 存儲(chǔ)設(shè)備將執(zhí)行結(jié)果發(fā)送回客戶(hù)端。
10) 當(dāng)所有的RPC操作完全執(zhí)行完成后,在界面上對(duì)用戶(hù)的操作做出響應(yīng)。上述過(guò)程中,用戶(hù)的操作可以是異步響應(yīng),也可以設(shè)置為同步響應(yīng),當(dāng)設(shè)置為 異步響應(yīng)時(shí),需要單獨(dú)建立線(xiàn)程(或進(jìn)程)等待存儲(chǔ)端響應(yīng)。 單節(jié)點(diǎn)命令的執(zhí)行流程
單節(jié)點(diǎn)命令的執(zhí)行流程是采用傳統(tǒng)的ajax技術(shù)??蛻?hù)端瀏覽器,將用戶(hù)請(qǐng)求 轉(zhuǎn)化為多個(gè)RPC操作,并封裝發(fā)送到服務(wù)端進(jìn)行處理。等所有操作返回后,客戶(hù) 端瀏覽器顯示操作結(jié)果。
要支持單節(jié)點(diǎn)管理,每個(gè)存儲(chǔ)設(shè)備的管理系統(tǒng)除了要實(shí)現(xiàn)本發(fā)明中提到的組件 外,還要提供一個(gè)基于HTML或FLASH等技術(shù)的用戶(hù)界面供瀏覽器調(diào)用。
權(quán)利要求
1、一種基于HTTP協(xié)議的存儲(chǔ)多節(jié)點(diǎn)集中管理和單節(jié)點(diǎn)管理相結(jié)合的方法,其特征在于,在HTTP協(xié)議的基礎(chǔ)之上構(gòu)建新的表示層分別用來(lái)表示靈敏數(shù)據(jù)的傳輸以及管理命令的遠(yuǎn)程調(diào)用,在存儲(chǔ)設(shè)備子網(wǎng)上增加多節(jié)點(diǎn)管理客戶(hù)端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管理節(jié)點(diǎn),用于對(duì)存儲(chǔ)設(shè)備進(jìn)行管理,多節(jié)點(diǎn)管理客戶(hù)端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管理節(jié)點(diǎn)部置在同一個(gè)物理節(jié)點(diǎn)上以節(jié)省資源,具體管理步驟如下1)是要管理的存儲(chǔ)節(jié)點(diǎn)此節(jié)點(diǎn)上要實(shí)現(xiàn)管理軟件的服務(wù)端程序,此服務(wù)程序在通用的http服務(wù)器之上,用特定的腳本語(yǔ)言包括PHP、ASP、Perl語(yǔ)言開(kāi)發(fā);2)用于對(duì)多個(gè)存儲(chǔ)設(shè)備進(jìn)行集中管理使得所管理的存儲(chǔ)設(shè)備協(xié)同進(jìn)行工作;3)用于掃描當(dāng)前網(wǎng)絡(luò)中需要管理的存儲(chǔ)設(shè)備,并保存到一個(gè)存儲(chǔ)設(shè)備列表中;這個(gè)存儲(chǔ)設(shè)備列表,用于一個(gè)管理節(jié)點(diǎn)在初始化時(shí)獲取有用的信息,進(jìn)而進(jìn)行多設(shè)備管理;存儲(chǔ)設(shè)備列表采用自動(dòng)掃描或手動(dòng)加入兩種方式生成;4)用于對(duì)單節(jié)點(diǎn)存儲(chǔ)設(shè)備進(jìn)行管理,管理方式采用HTTP協(xié)議,在此節(jié)點(diǎn)上,不需要開(kāi)發(fā)新的特定的應(yīng)用程序,只采用通用的瀏覽器,具體支持哪些瀏覽器要視步驟1)中的實(shí)現(xiàn)程序而定;為了使C/S架構(gòu)的管理方式和B/S架構(gòu)的管理方式在接口上統(tǒng)一,在HTTP通信的基礎(chǔ)上新增加了兩個(gè)通信層,RPC和XML/JSON,分別用于管理系統(tǒng)客戶(hù)端請(qǐng)求與處理的映射與基于HTTP協(xié)議的數(shù)據(jù)傳輸,在實(shí)施過(guò)程中需要開(kāi)發(fā)四個(gè)通信層,RPC來(lái)實(shí)現(xiàn)各個(gè)協(xié)議層的數(shù)據(jù)轉(zhuǎn)換;i)XML/JSON層的設(shè)計(jì)主要用于基本HTTP的數(shù)據(jù)傳輸,在實(shí)施中,服務(wù)端根據(jù)不同的客戶(hù)請(qǐng)求端接收和發(fā)送XML和JSON兩種格式的數(shù)據(jù);ii)兩種實(shí)現(xiàn)方案,從數(shù)據(jù)交換的角度來(lái)講都是請(qǐng)求-響應(yīng)模式,換句話(huà)說(shuō),這兩種方式均是將用戶(hù)的操作轉(zhuǎn)化為一個(gè)或多個(gè)請(qǐng)求,提交給存儲(chǔ)系統(tǒng),存儲(chǔ)系統(tǒng)執(zhí)行完成后,返回執(zhí)行結(jié)果,為了表示這個(gè)請(qǐng)求-響應(yīng)的模塊,本方案中,采用了RPC層專(zhuān)門(mén)處理請(qǐng)求與請(qǐng)求處理程序的對(duì)應(yīng)關(guān)系,以及結(jié)果返回的處理,一個(gè)RPC請(qǐng)求簡(jiǎn)單描述為如下格式Excute Command([stat_sn],node,in_data,out_data,status)其中Excute Command要執(zhí)行的管理命令,在服務(wù)端與某個(gè)管理處理程序?qū)?yīng);Stat_sn命令序號(hào),某些命令且并行處理時(shí),用序號(hào)使響應(yīng)用數(shù)據(jù)請(qǐng)求能夠一一對(duì)應(yīng),對(duì)只能串行的命令;Node節(jié)點(diǎn)識(shí)別信息,用于識(shí)別此條命令是針對(duì)于哪個(gè)存儲(chǔ)設(shè)備,在實(shí)施中,使用存儲(chǔ)設(shè)備的IP做為此項(xiàng)參數(shù);In_data執(zhí)行命令時(shí),需要傳輸給存儲(chǔ)設(shè)備的數(shù)據(jù);Out_data執(zhí)行完成后,傳輸?shù)娇蛻?hù)端的數(shù)據(jù);Status此條命令執(zhí)行的狀態(tài);(iii)存儲(chǔ)節(jié)點(diǎn)上的RPC和管理節(jié)點(diǎn)上的RPC是用戶(hù)實(shí)現(xiàn)命令的表示,當(dāng)網(wǎng)段掃描接收到用戶(hù)請(qǐng)求,并將其為轉(zhuǎn)化成多個(gè)或一個(gè)RPC命令,然后由管理節(jié)點(diǎn)上的RPC通過(guò)下層命令最終傳輸給用戶(hù)界面,用戶(hù)界面調(diào)用命令對(duì)應(yīng)的處理程序,填充out_data,并修改Status后傳回管理節(jié)點(diǎn)上的RPC;(iv)存儲(chǔ)節(jié)點(diǎn)上的RPC表示層和管理節(jié)點(diǎn)上的表示層用于完成RPC命令與表示格式的轉(zhuǎn)換,同時(shí)負(fù)責(zé)將表示RPC命令的XML/JSON提交到下層傳輸;(v)HTTP服務(wù)器和HTTP客戶(hù)端是HTTP協(xié)議的具體實(shí)現(xiàn);a)管理節(jié)點(diǎn)掃描代理處理流程管理節(jié)點(diǎn)的執(zhí)行流程如下1)用戶(hù)輸入掃描范圍包括網(wǎng)段地址、端口信息;2)系統(tǒng)對(duì)指定網(wǎng)段內(nèi)每個(gè)網(wǎng)絡(luò)地址進(jìn)行掃描,掃描完畢退出,否則轉(zhuǎn)到步驟iii;3)嘗試建立TCP連接,失敗轉(zhuǎn)到步驟ii,否則,繼續(xù);4)驗(yàn)證建立的連接是否支持HTTP協(xié)議,不支持轉(zhuǎn)到步驟ii,否則繼續(xù);5)發(fā)送掃描請(qǐng)求響應(yīng),服務(wù)端返回信息確認(rèn)被管理,繼續(xù),否則轉(zhuǎn)到步驟ii;6)將該地址及相應(yīng)屬性增加到節(jié)點(diǎn)列表;執(zhí)行上述流程的目的是找出被管理的節(jié)點(diǎn)增到節(jié)點(diǎn)列表中,在實(shí)現(xiàn)時(shí),對(duì)增加對(duì)節(jié)點(diǎn)列表的手動(dòng)管理接口,使得節(jié)點(diǎn)列表除了能夠自動(dòng)獲取外,還手動(dòng)增加或修改;b)多節(jié)點(diǎn)管理應(yīng)用的執(zhí)行流程多節(jié)點(diǎn)管理需要有專(zhuān)用的管理客戶(hù)端,一個(gè)管理客戶(hù)端需要包含HTTP協(xié)議解析、XML或其它表示層解析、RPC解析以及用戶(hù)界面組件,這些組件共同參與以下執(zhí)行過(guò)程1)多節(jié)點(diǎn)客戶(hù)端在啟動(dòng)時(shí)通過(guò)訪(fǎng)問(wèn)節(jié)點(diǎn)掃描代理更新本地的節(jié)點(diǎn)列表;2)等待執(zhí)行用戶(hù)操作,當(dāng)接收到用戶(hù)操作時(shí),轉(zhuǎn)到步驟iii;3)將用戶(hù)的操作轉(zhuǎn)化成一個(gè)或多個(gè)RPC操作;4)創(chuàng)建線(xiàn)程等待異步響應(yīng);5)將上述的RPC操作轉(zhuǎn)化為指定的表示格式XML/JSON后發(fā)送到指定的存儲(chǔ)設(shè)備進(jìn)行處理;6)存儲(chǔ)設(shè)備接收到指定格式RPC表示數(shù)據(jù)后,根據(jù)客戶(hù)端的類(lèi)型,選擇相應(yīng)的解析引擎;7)存儲(chǔ)設(shè)備使用相應(yīng)的解析引擎將客戶(hù)端數(shù)據(jù)轉(zhuǎn)化為RPC格式,并執(zhí)行相應(yīng)的管理程序;8)存儲(chǔ)設(shè)備將執(zhí)行結(jié)果填寫(xiě)到RPC的out_data和satus字段后,重新轉(zhuǎn)化為原來(lái)的表示格式;9)存儲(chǔ)設(shè)備將執(zhí)行結(jié)果發(fā)送回客戶(hù)端;10)當(dāng)所有的RPC操作完全執(zhí)行完成后,在界面上對(duì)用戶(hù)的操作做出響應(yīng);上述過(guò)程中,用戶(hù)的操作是異步響應(yīng),或設(shè)置為同步響應(yīng),當(dāng)設(shè)置為異步響應(yīng)時(shí),需要單獨(dú)建立線(xiàn)程或進(jìn)程等待存儲(chǔ)端響應(yīng);c)單節(jié)點(diǎn)命令的執(zhí)行流程單節(jié)點(diǎn)命令的執(zhí)行流程是采用傳統(tǒng)的ajax技術(shù),客戶(hù)端瀏覽器將用戶(hù)請(qǐng)求轉(zhuǎn)化為多個(gè)RPC操作,并封裝發(fā)送到服務(wù)端進(jìn)行處理,等所有操作返回后,客戶(hù)端瀏覽器顯示操作結(jié)果;要支持單節(jié)點(diǎn)管理,每個(gè)存儲(chǔ)設(shè)備的管理系統(tǒng)除了要實(shí)現(xiàn)本方案中提到的組件外,還要提供一個(gè)基于HTML或FLASH技術(shù)的用戶(hù)界面供瀏覽器調(diào)用。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,通過(guò)在HTTP上增加RPC、XML/JS0N 兩個(gè)層次,從而統(tǒng)一了 B/S結(jié)構(gòu)與C/S結(jié)構(gòu)的管理軟件實(shí)現(xiàn),使得兩種實(shí)現(xiàn)方式 在底層通信都采用HTTP來(lái)完成。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,RPC和XML/JSON兩個(gè)通信層的 通信協(xié)議根據(jù)具體應(yīng)用單獨(dú)設(shè)計(jì)。
全文摘要
本發(fā)明提供一種基于HTTP協(xié)議的存儲(chǔ)多節(jié)點(diǎn)集中管理和單節(jié)點(diǎn)管理相結(jié)合的方法,該方法是在HTTP協(xié)議的基礎(chǔ)之上構(gòu)建新的表示層分別用來(lái)表示靈敏數(shù)據(jù)的傳輸以及管理命令的遠(yuǎn)程調(diào)用,使專(zhuān)用客戶(hù)端或通用瀏覽器,均能通過(guò)HTTP協(xié)議訪(fǎng)問(wèn)管理存儲(chǔ)系統(tǒng);在存儲(chǔ)設(shè)備子網(wǎng)上增加多節(jié)點(diǎn)管理客戶(hù)端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管理節(jié)點(diǎn),用于對(duì)存儲(chǔ)設(shè)備進(jìn)行管理,多節(jié)點(diǎn)管理客戶(hù)端、節(jié)電掃描代理和單節(jié)點(diǎn)管理客戶(hù)端三個(gè)管理節(jié)點(diǎn)部置在同一個(gè)物理節(jié)點(diǎn)上以節(jié)省資源。
文檔編號(hào)H04L29/06GK101610282SQ20091001714
公開(kāi)日2009年12月23日 申請(qǐng)日期2009年7月16日 優(yōu)先權(quán)日2009年7月16日
發(fā)明者吳慶民 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司