專利名稱:大規模地震數據處理私有云環境下的網絡打印系統的制作方法
技術領域:
本發明屬于網絡打印技術領域,具體涉及一種大規模地震數據處理私有云環境下的網絡打印系統。
背景技術:
為了方便網上用戶輕松完成遠程打印任務,于是有了網絡打印。凡用戶能利用網絡進行共享打印的方式,都可叫網絡打印,網絡打印按其技術特點可分為以下三類第一類原始共享的連接方式。打印機通過普通并行接口,或串行接口連接在網絡上的一臺工作站、客戶機或服務器上。連接打印機的工作站或服務器將所連接的打印機設置成共享設備,供網絡上的其他計算機使用。
第二類也是通過先把打印機和一臺計算機或者工作臺相連接,與原始共享連接方式不同的是,連接打印機的計算機通常安裝了 NPMS (網絡打印管理系統),專門用作打印服務器,可以對打印機、打印任務等進行一定的管理。這種連接方式在邏輯上可以將打印服務器和打印機看成一個整體,即作為一個連接在網絡上的獨立設備。第三類網絡直接連接方式(亦稱為使用專用打印服務器方式,采用專用打印服務器,又稱為獨立打印服務器,是一種使打印機和局域網直接聯通的電子裝置,而不是一臺微機,分為內置式和外置式兩種。現在在地質勘探領域,對于收集到的地震數據大小都是以G甚至以T為單位來衡量的。這些數據的處理都是在一個集群系統中,由很多計算機節點分別并行處理的。在這種環境中每臺計算機對地震數據的頻繁的打印要求不得不依賴于網絡打印。本發明涉及的網絡打印系統是運用在處理大量地震數據的企業中,該企業在一個局域網中部署了很多計算機和服務器,而且這些計算機完成的任務相對單一,故組成了一個私有云環境。私有云是企業或組織機構根據自身評估構建和使用的內部數據中心專用云環境。通常構建在企業內部防火墻之內,不對外開放,企業IT人員能夠對其數據、安全性、服務質量進行有效控制。鑒于公有云信任和遺留等方面的不足,私有云受到許多大中型企業的青睞。目前已建設成功的私有云案例如采用IBM Blue Cloud技術的中化云計算中心和采用Cisco UCS技術的Tutor Perini云計算中心。第一種共享的方式實現網絡打印不能滿足特殊的管理需求,功能單一,不能完成對打印作業的合理分配和實時的監控,也沒有具體的打印日志記錄。針對非網絡打印機實現網絡打印,那么只能選擇第二種方式實現網絡打印,對于現有的redhat版本的網絡打印系統有很成熟的CUPSm (Common Unix Printing System, UNIX通用打印系統)。是一個類Unix操作系統的組合式印刷系統,允許一臺電腦作為打印服務器。CUPS接受一個客戶端的電腦進程,并送到相應的打印機。但是該打印機加上CUPS系統也不能完全滿足打印管理需求,一是打印的參數配置相對復雜,需要對CUPS進行深入的解剖和相應的復雜編程實現,二是已有的網絡打印系統雖然可以完成打印,但是在處理大數據量地震數據的私有云環境中,完全沒有利用到私有云帶來的高效性和易管理性的特點,最后是沒有專門針對處理大數據量地震數據的網絡打印系統,所以只有另外設計出符合該打印環境的網絡打印系統。為便于理解本發明,在此先介紹與本發明相關的現有技術如下網絡打印與共享打印最大的不同是它具有管理性,易用性和高可靠性,其中最核心的是可管理性。在一個大企業打印工作中,員工分散在各個辦公地點,對打印機所處的狀態并不清楚,也許打印機暫時不能工作,硒鼓或打印紙用盡,而員工卻渾然不知,依然浪費時間進行不可能的打印。對打印機設置更改只能通過所在服務器才可以完成,這樣的打印系統根本無法提供網絡打印的可管理性。因此,就需要通過某一個軟件來實現,網絡打印管理軟件(Network Printing Management Software,簡稱NPMS)應運而生,它也是網絡打印的核心之一,像一個神經系統支配著網絡打印的運行。第一代的BSD Lro打印系統,BSD打印系統核心的功能僅限于隊列任務。它由一個后臺程序(Ipd)及一些位于/etc目錄下的配置文件組成,在這些配置文件中有著隊列和屬性的一些定義。在相應的目錄下,還有一系列基本的用于提交、刪除和處理任務使用的命令(lpd、lprm、lpc)。 第二個使用較廣、較有影響力的基于BSD的打印系統是LPRngte](LPR NextGeneration),它保留了 printcap文件的格式,但是它還引入了一些新的屬性以使配置過程更加靈活。過濾器定義可以被獨立出來,并且還可以定義真正的I/O過濾器。用戶也可以通過在本地機主目錄下編寫printcap文件來定義自己的隊列。第三個是CUPS軟件為Unix/Linux用戶提供了以有效而可靠的方式來管理打印的方法。它生來就支持IPP (因特網打印協議),IPP協議的四個主要目的是1、幫助用戶尋找網絡上可用的打印機。2、傳送打印作業。3、傳送打印機狀態信息。4、取消打印作業。并有LPD> SMB (服務器消息塊,例如與Microsoft Windows連接的打印機)和JetDirect接口。網絡打印管理需要提供的服務有管理者可對不同的使用者權限和使用量進行管理;需要實現諸如對局域網中的打印機提供全方位的監控、管理和計費,記錄所有用戶的打印活動,有保存打印內容的功能;提供多種條件的查詢,在多臺打印機下,管理者可以很清楚地知道每臺打印機的使用情形,有效地控制管理打印流量;提供豐富的報表,從費用成本、打印機負荷等方面全面分析打印資源;組級管理,按照網絡設備的特性進行分組管理,組級管理的摹本單元就是設備組,所謂的設備組可以由打印機、掃描儀、網絡存儲或其它網絡共享設備組成。在云計算環境下,云處理計算平臺以底層服務的方式向用戶提供服務。針對大數據量的地震數據處理,參考云計算架構,結合私有云環境的特點,現有的適應私有云環境的作業處理集群系統架構一般從上到下分為客戶端層、平臺層和架構層。最上層為客戶端客戶端采用基于圖形用戶界面的友好用戶模式,用戶可通過用戶界面創建、提交作業,同時也可以監控作業運行狀態和查看作業日志文件。中間層為平臺層主要提供服務部署、計算節點資源管理;作業隊列管理、作業調度機制、作業執行控制引擎;統一的進程間通信機制、作業容錯機制;業務模塊開發工具
坐寸ο最底層為基礎架構層主要提供軟硬件資源虛擬化、高速以太網等。私有云的數據存儲管理技術云計算的特點是對分布的、海量的數據存儲、讀取后進行大量的處理、分析,向用戶提供高效的服務,云計算的特點要求云數據管理技術必須能夠高效地管理大數據集。鑒于云計算中數據的讀操作頻率遠遠大于數據的更新頻率特性,云數據管理通常采用數據庫領域中的列存儲的數據管理模式,將表按列進行劃分后存儲。現行的云數據管理技術最著名的是Google提出的BigTable技術。但是私有云由于用戶數量比較少,處理的任務也單一,沒有必要使用一個大型的分布式管理數據庫對用戶和文件進行細分和管理。所以在私有云環境中管理一個能夠存儲相關基本信息的數據庫就可以了。私有云作業執行控制系統它運行在計算節點上,主要負責作業執行程序的啟動、作業執行程序的控制執行。同時在執行任務的過程中實時的保持把信息反饋給服務器、客戶機或者是數據庫中。私有云服務調度系統主要是解析作業的相關信息,獲得作業的服務類型,根據類型查看能夠提供該服務的私有云環境中空閑的節點,使用一定的調度算法為作業分配合理的節點,然后發送作業給相關節點,并且發送啟動運行命令給節點。最后要根據作業運行的各個邏輯流程完成各個模塊的協調。
發明內容
為了克服現有技術的上述缺點,本發明提供了一種大規模地震數據處理私有云環境下的網絡打印系統,在現有的企業內部的處理大規模地震數據的私有云環境下,搭建網絡打印系統,能夠根據地震數據組織方式和用戶選擇,分剖面生成可被打印機直接打印的數據文件;能夠實現打印中停止打印,重新打印等實時交互功能;能夠實現客戶對打印中作業信息、日志信息查看和管理的功能;能夠利用消息中間件實現打印進程間通信的功能;能夠在私有云環境中傳輸打印數據文件達到IOM每秒的速度;能夠對打印作業隊列進行優先級等管理;能夠實時查看打印機狀態和實現智能調度打印任務的功能;能夠提供線程池技術,解決并行處理客戶打印作業的請求,提高打印效率的問題;能夠提供數據庫存儲作業信息和其他相關信息,并可以查看管理的功能。本發明解決其技術問題所采用的技術方案是一種大規模地震數據處理私有云環境下的網絡打印系統,包括數據庫和分別與數據庫進行通信的打印客戶端節點、打印服務器節點和打印節點,所述數據庫用于存儲與打印相關的信息,包括打印作業信息,打印日志信息,打印節點及其打印機的相關信息;打印客戶端節點實現打印作業的生成和對打印作業的監控管理打印作業的生成是指生成能被打印機識別并打印的光柵文件;對打印作業的監控管理包括打印作業管理和作業相關信息管理,其中打印作業管理包括暫停正在打印的作業、繼續打印已經暫停打印的作業、停止需要打印的作業、重新打印已經停止打印的作業、取消并刪除打印作業、啟動并打印作業;作業相關信息管理包括查看和修改打印作業信息、查看和修改打印節點及其打印機的相關信息、刪除沒有必要或者陳舊的打印日志信息、導出打印相關信息以在關鍵的打印事件中備案;打印服務器節點實現打印作業的解析和調度在打印服務器節點運行著打印作業 服務器和打印作業調度器,其中打印作業服務器在收到客戶端發送的作業請求服務后,為該作業分配一個作業ID號,將該作業加入到作業管理隊列中,然后對打印請求進行解析,在解析到打印作業的各項參數之后就向打印作業調度器發送調度請求;打印作業調度器負責查看數據庫中已經登記的具有打印功能的打印節點并反饋給打印作業服務器;打印作業服務器根據打印作業調度器反饋的信息向打印客戶端節點反饋,同時向數據庫更新打印的狀態信息;在打印期間,打印作業服務器還通過中間的控制功能轉發打印客戶端節點到打印節點之間的打印管理命令;打印作業服務器還負責管理打印節點的節點隊列;打印節點執行打印打印節點的守護進程接收來自打印客戶端節點的打印作業運行請求消息的時候,解析該請求并做好打印準備;然后啟動作業的接收線程對打印數據文件進行接收;接收完成之后,根據解析出的打印參數設置好打印機,然后開始打印作業;同時向打印作業服務器反饋打印情況,以供打印作業服務器向打印客戶端節點的及時反饋和向數據庫進行更新;其次隨著打印進度的進行,通過心跳包發送和檢查點文件記錄打印狀態確保打印的正常進行以及出錯處理;最后等待執行與打印客戶端節點的打印管理命令交互;打印客戶端節點、打印服務器節點、打印節點和數據庫之間的通信在打印客戶端節點、打印服務器節點和打印節點上都運行著守護進程,用于底層通信支持、消息創建和解 析及啟動打印作業執行;打印客戶端節點、打印服務器節點、打印節點和數據庫之間的通信都是通過底層完成的。所述打印作業信息存儲了作業的基本屬性,包括上傳打印作業的用戶、打印作業所選擇的打印機、分別在哪些節點運行打印;所述打印日志信息記錄了作業在執行打印的整個流程中發生的事情,包括何時開始打印,在整個打印過程中是否選擇了暫停、停止打印命令,何時結束打印或者打印失敗及失敗原因;所述打印節點及其打印機的相關信息是通過打印節點向服務器節點登記的時候記錄下來的信息,包括與每個打印節點連接的各臺打印機的名稱和狀態。所述光柵文件的生成機制是指以剖面為單位對三維體數據進行劃分,根據地震數據組織的特點獲取其剖面號,按剖面號順序重新組成子作業,然后分別對每一子作業進行光柵文件的生成。為了實現打印作業對于優先級不同的需求,還可使用具有不同元素的數組來對應不同的優先級,數組中每個元素作為相應優先級鏈表的鏈表頭。打印作業服務器對節點隊列的管理方式如下采用心跳包探測的方式進行打印節點的有效性檢測,當作業正常運行的時候,通過心跳包獲取打印節點的狀態信息直至打印任務成功完成;當打印節點出現異常,將該節點上正在運行的作業狀態更改為未完成,同時啟動二次調度打印作業服務器通知打印作業調度器,打印作業調度器獲取新的可用節點作為打印節點,并向新的打印節點發送打印請求;打印節點通過對檢查點文件的解析獲得打印任務進行打印,同時保持與打印作業服務器的心跳包聯系直至打印成功。所述打印作業服務器使用線程池模型當收到客戶端某用戶請求消息的時候,啟動線程池管理類,如果有空閑線程則分配一個線程給該用戶,以處理該用戶的請求;如果沒有空閑線程且超過了已經創建的線程,則擴大線程池線程的數量,以供更多用戶請求的響應;當線程池空閑線程長期過多則啟動銷毀線程功能,讓線程數量恢復到與用戶需求相一致的數量。。與現有技術相比,本發明的積極效果是充分利用了私有云的環境,使網絡打印更快捷、高效、易管理。具體表現如下(I)利用私有云中央服務節點處理打印任務,用戶只需要提交打印作業,服務器節點的調度器通過對打印機狀態信息的獲取,找到空閑或者是打印隊列少的打印機作為目標打印機,可以使得網絡打印任務能夠及時被打印機響應,使得打印變得方便快捷,同時能夠達到各打印節點負載均衡的效果。(2)在服務器節點使用線程池技術,可以快速響應不同客戶的打印請求,同時能夠把打印任務分配給多個打印機處理,實現了并行處理,使得打印變得高效。(3)利用私有云的通信和進程間消息傳遞技術,能夠方便打印節點獲得、解析和執行打印請求指令和能夠在私有云環境中快 速地傳送大數據量的地震數據文件,這也體現出高效性。(4)利用數據庫技術,能夠方便對打印作業的信息日志管理,也方便服務器對各個打印節點的實時監控以及發出正確的調度指令,同時客戶機對作業的打印管理命令通過服務器解析后轉發到打印機可以同時操作一個批次的作業,由此體現了打印任務的易管理性。
本發明將通過例子并參照附圖的方式說明,其中圖I為本發明的系統框架示意圖;圖2為本發明的數據庫搜索流程圖;圖3為作業正常運行時的調度策略示意圖;圖4為二次調度策略示意圖;圖5為線程池工作流程不意圖;圖6為大文件傳送流程示意圖。
具體實施例方式一種大規模地震數據處理私有云環境下的網絡打印系統,如圖I所示包括數據庫和分別與數據庫進行通信的打印客戶端節點、打印服務器節點和打印節點。在私有云的環境中,任何一個有打印任務的節點均稱為打印客戶端節點;打印服務器節點是指運行著并行打印控制進程的私有云服務器節點,包括打印作業服務器和打印作業調度器;打印節點是指連接有打印機的節點,每個打印節點上可以同時連接有多臺打印機。所涉及內容詳細介紹如下一、數據庫數據庫提供存儲打印相關信息,包括打印作業信息,打印日志信息,打印節點及其打印機的相關信息。三種信息支撐了數據庫中的三種表。打印作業信息存儲了作業的基本屬性,包括上傳打印作業的用戶,作業打印所選擇的打印機,分別在哪些節點運行打印等。打印日志信息記錄了作業在執行打印的整個流程中發生的事情,包括什么時候開始打印,在整個打印過程中是否選擇了暫停、停止等打印命令,什么時候結束打印或者是打印失敗及其原因等。打印節點及其打印機的相關信息是通過打印節點向服務器登記的時候記錄下來的。打印節點需要向服務器節點登記自己有哪些打印機,打印機的名稱和狀態。這樣才能方便服務器節點正確選擇和分配任務給能夠打印的打印節點。該類信息保存在數據庫中是方便客戶查詢并作出相應的作業管理,所以數據庫會提供查詢的功能。對于作業信息的查詢功能包括四個關鍵字創建時間、所屬用戶、作業名稱和所分配的打印機名。時間和后面的三個關鍵字可以形成復用形式,后面三個關鍵字只能選擇其一,這樣方便客戶更準確的進行查詢。數據庫搜索流程圖如圖2所示依次判斷每個關鍵字是否被選擇后做好標志,最后送入數據庫的查詢語言進行處理,最后把得到的結果反饋給查詢者。二、打印客戶端節點實現打印作業的生成和對打印作業的監控管理首先創建可以被打印機直接處理的數據文件;然后開始請求打印,向打印作業服務器提交打印請求;然后根據打印作業服務器反饋的打印節點信息發送打印數據文件到目的打印節點進行打印;最后向數據庫中登記包括作業名稱、創建時間、用戶等信息;同時對打印作業進行監控管理。打印客戶端節點提供打印作業的生成和監控管理功能,主要為用戶提供直觀、易 操作、友好的打印作業生成界面,以及提供在打印過程中對打印作業的狀態信息的查看功能和對打印任務的管理功能。在私有云環境中,主要是處理大數據量的地震數據,一般數據量都達到了 G級別,也會常常遇到T級別的大數據。要實現這么大數據的打印工作,首先就是要實現打印作業的生成,生成可以直接被打印機識別并打印的光柵文件(以O和I區分的黑白位圖)。對于光柵文件的生成還有一個作業生成機制。地震數據的組織方式是以道號存儲的,而且分為二維和三維數據,對于比較大的三維體數據的打印,會自動征得客戶的意見進行分剖面打印,即會以剖面為單位進行劃分,根據地震數據組織的特點獲取其剖面號,按順序重新組成子作業,然后分別進行光柵文件的生成。文件生成之后就會發送打印請求消息給打印作業服務器。光柵文件的作業生成機制所起的作用是為了使一份作業能夠同時在多臺打印機上面并行地打印,提高打印的效率。打印的紙質成果圖也可以輕松的通過作業編號重新組織成原圖。在企業的日常管理中,管理員可以從任何一臺網內的計算機上遠程管理打印服務器、打印機、打印作業文檔和其它相關信息。網絡打印系統的主要監控管理任務包括打印作業管理和作業相關信息管理兩方面,其中打印作業管理包括暫停正在打印的作業、繼續打印已經暫停打印的作業、停止需要打印的作業(使該作業狀態為等待打印)、重新打印已經停止打印的作業、取消并刪除打印作業、啟動并打印作業。作業相關信息管理包括查看和修改打印作業信息、查看和修改打印節點及打印機信息、刪除沒有必要或者陳舊的打印日志信息、導出打印相關信息以在關鍵的打印事件中備案。這些監控管理都是基于消息通信模塊和數據庫模塊完成的。打印作業的管理是通過發送命令消息到打印作業服務器,打印作業服務器轉發給打印節點,打印節點解析之后控制打印機完成的。作業相關信息的管理是通過直接訪問數據庫,形式是查看相關信息并對數據庫里的該信息進行查看、刪除等操作。三、打印服務器節點實現打印作業的解析和調度在打印服務器節點運行著打印作業服務器和打印作業調度器,其工作流程是打印作業服務器接收打印客戶端節點發出的打印請求信息,對打印請求進行解析,解析到打印作業的各項參數之后就向打印作業調度器發送調度請求;打印作業調度器負責查看數據庫中已經登記的具有打印功能的打印節點并反饋給打印作業服務器,打印作業服務器根據打印作業調度器反饋的信息向打印客戶端節點反饋,同時向數據庫更新打印的狀態信息;在打印期間,打印作業服務器還通過中間的控制功能轉發打印客戶端節點到打印節點之間的打印管理命令,以實現打印客戶端節點對打印作業的管理(包括停止打印、重新打印、取消打印等)。打印作業服務器在收到客戶端發送的作業請求服務后,為該作業分配一個作業ID號,將該作業加入到作業管理隊列中,為了實現對于優先級不同的需求,還可使用具有不同元素的數組來對應不同的優先級。數組中每個元素作為相應優先級鏈表的鏈表頭。然后解析作業需要執行的任務,如果是啟動打印任務就把解析到的相應參數發送給打印作業調度器處理,同時記錄作業的相關屬性信息到作業寫入數據庫,如作業ID號、作業文件名、提交用戶、提交時間等。
打印作業調度器獲取命令之后,會查看私有云環境中空閑可用的打印機,如果打印機都在忙,則優化選擇打印作業隊列較少的打印機,反饋給服務器。獲取打印機狀態信息是從數據庫中讀取,該信息是打印節點對打印機狀態向數據庫的實時登記。對于一個三維體數據抽其中多個剖面打印的問題和批量打印多份地震數據的問題,打印作業調度器會通過服務器向客戶征求打印策略,此時可以調用多臺打印機同時打印該作業。打印作業調度器選擇好了打印機之后就向服務器反饋,服務器通知打印客戶機,打印客戶機就向連結有打印機的打印節點發送打印命令和打印的地震數據文件。打印作業服務器除了管理作業的作業隊列外,還要管理打印節點的節點隊列,節點隊列記錄了當前系統中的所有可用節點列表以及當前各節點狀態。打印作業服務器對打印節點的有效性檢測采用心跳包探測的方式,當探測到節點故障時,將該節點上正在運行的作業狀態更改為未完成,打印作業服務器通知打印作業調度器,打印作業調度器采用二次調度的方式調度到其他正常打印節點,然后根據作業檢查點文件繼續運行。檢查點文件作用是記錄打印節點中打印機打印的作業內容,進度和狀態,以方便另外的打印機重新打印該作業并設置對應的參數。作業正常運行和二次調度策略分別如圖3、圖4所示。作業正常運行的時候,通過心跳包獲取打印節點的狀態信息直至打印任務成功完成。如果發現打印節點出現異常,則啟動二次調度。打印作業調度器獲取新的可用節點作為打印節點,并發送打印請求。打印節點通過對檢查點文件的解析獲得打印任務內容進行打印。同時保持與打印作業服務器的心跳包聯系直至打印成功。實現的調度算法有FCFS (First Come First Serviced,先到先服務)、PriorityScheduling (優先級算法)、SJF (Shortest Job First,短作業優先),HRN (HighestResponse_ration Next,最高響應比優先)等,在這里我們選擇了優先級算法作為第一調度策略,先到先服務作為第二調度策略。為了快速響應來自不同客戶端的消息請求,消息響應子模塊采用了線程池模型來滿足這一需求。線程池的規模是動態變化的。在打印作業服務器使用線程池模型,能夠快速響應來自客戶端的消息請求,尤其是當任務處理時間較短時,能夠節約線程新建銷毀的時間,提高了效率。通過對線程池大小的動態控制,有助于系統資源的利用。當一段時間內,來自客戶端的服務請求較多時,則擴大線程池的規模,增加線程的數目。當來自客戶端的請求較少時,則縮小規模,減少線程數目。線程池工作流程如圖5所示當收到客戶端請求消息的時候,啟動線程池管理類,如果有空閑線程則分配一個線程給該用戶處理該用戶的請求。如果沒有空閑線程且超過了已經創建的線程,就會擴大線程池線程的數量,以供更多用戶請求的響應。當線程池空閑線程長期過多就會啟動銷毀線程功能,讓線程數量恢復到一個合理的數量。有了線程池的幫助,與客戶機和打印機的交互過程變得十分的高效和流暢。客戶端對打印作業的操作通過消息命令傳送給服務器,服務器根據在數據庫中獲取該作業被執行打印的打印節點,然后轉發相應的指令給打印機。之所以要轉發是因為通過打印作業調度器分配了多個打印機給某一個作業或某一批次作業。客戶可以同時操作某個作業或某批次作業,達到了私有云環境中對作業管理的需求。其次打印節點對作業的狀態一方面直接向數據庫登記,另一方面反饋給服務器,服務器分析以后以客戶機提交的作業或者查詢的作業為單位向客戶機反饋作業的運行情況。這樣也屏蔽了客戶機對單個作業或者子作業的瑣碎的操作流程,也體現了私有云環境的優越性。四、打印節點執行打印打印節點的守護進程接收來自打印客戶端節點的打印作 業運行請求消息的時候,解析該請求并做好打印準備;然后啟動作業的接收線程對打印數據文件進行接收;接收完成之后,根據解析出的打印參數設置好打印機,然后開始打印作業;同時向打印作業服務器反饋打印情況,以供打印作業服務器向打印客戶端節點的及時反饋和向數據庫進行更新;其次隨著打印進度的進行,通過心跳包發送和檢查點文件記錄打印狀態確保打印的正常進行以及出錯處理。最后就是等待執行與打印客戶端節點的打印管理命令交互。五、打印客戶端節點、打印服務器節點、打印節點和數據庫之間的通信在打印客戶端節點、打印服務器節點和打印節點上都運行著守護進程,用于底層通信支持、消息創建和解析及啟動打印作業執行。打印客戶端節點、打印服務器節點和打印節點之間的通信都是通過底層完成的處理大規模地震數據的私有云環境下,通信平臺面臨兩項主要任務一是提供方便快捷的進程間的通信方式,二是提供具有良好效率的數據傳輸接口。基于消息中間件的通信技術能夠良好地實現系統各部件之間的解耦合,將通信的細節最大限度地對上層的使用者隱藏。在整個私有云環境中,進程間的通信都是以消息的形式通知執行者的,所以消息生成和解析的機制顯得十分的重要。面向消息的中間件系統其核心組件是消息隊列機制,根據不同的目的地址劃分為不同的消息隊列。對JMS (Java消息服務,是Java Message Service的簡稱)的框架進行整合和精簡,使用點對點的消息來完成。消息結構包含了發送方和接收方必要的消息結構和內容,消息包括消息頭,消息屬性和消息體。消息體包含了接收方需要完成打印的任務參數。消息通信的流程如下I.消息發送方先創建消息,然后發送給底層通信平臺。2.底層通信是一個守護進程,它在每一個節點都是運行的,它維護消息隊列,不同的目的節點對應不同的隊列,通信都是在底層通信平臺間進行的。3.接收方從自己的底層通信平臺中獲取消息,解析得到消息相關參數。然后送達到上層打印應用程序中,完成相應的操作。
由于處理大規模地震數據的私有云環境下的中心機房往往采用刀片式服務器作為系統硬件,計算節點和計算節點之間是通過高速的以太網進行互聯。因此其網絡環境質量比較高,使用TCP/IP傳輸協議進行傳輸時,數據的誤碼率可以降低到一個很低的水平。傳輸數據命令需要和消息通信機制相結合。數據傳輸和消息傳輸的整合可以構建一個完整的私有云通信系統。可以通過消息機制來降低系統的復雜度和開發成本,降低各個計算部件之間的耦合度,同時通過數據傳輸部分可以大大提高各個組件之間的交互能力,使得并發處理性能達到最優。由于私有云環境中的通信需求相對簡單,所以采用的是TCP實現P2P的大文件傳輸。大文件傳送流程如圖6所示1、發送方想要傳送文件時首先發送請求消息給接收方,接收方打開接收端口然后回饋端口號給發送方;2、發送方啟動發送,發送成功后刪除本 地生成的光柵文件以節約空間;3、接收方接收,并且處理一些傳送中的異常;4、接收完成后斷開連接就實現了整個文件的傳送功能。
權利要求
1.一種大規模地震數據處理私有云環境下的網絡打印系統,包括數據庫和分別與數據庫進行通信的打印客戶端節點、打印服務器節點和打印節點,其特征在于所述數據庫用于存儲與打印相關的信息,包括打印作業信息,打印日志信息,打印節點及其打印機的相關信息; 打印客戶端節點實現打印作業的生成和對打印作業的監控管理打印作業的生成是指生成能被打印機識別并打印的光柵文件;對打印作業的監控管理包括打印作業管理和作業相關信息管理,其中打印作業管理包括暫停正在打印的作業、繼續打印已經暫停打印的作業、停止需要打印的作業、重新打印已經停止打印的作業、取消并刪除打印作業、啟動并打印作業;作業相關信息管理包括查看和修改打印作業信息、查看和修改打印節點及其打印機的相關信息、刪除沒有必要或者陳舊的打印日志信息、導出打印相關信息以在關鍵的打印事件中備案; 打印服務器節點實現打印作業的解析和調度在打印服務器節點運行著打印作業服務器和打印作業調度器,其中打印作業服務器在收到客戶端發送的作業請求服務后,為該作業分配一個作業ID號,將該作業加入到作業管理隊列中,然后對打印請求進行解析,在解析到打印作業的各項參數之后就向打印作業調度器發送調度請求;打印作業調度器負責查看數據庫中已經登記的具有打印功能的打印節點并反饋給打印作業服務器;打印作業服務器根據打印作業調度器反饋的信息向打印客戶端節點反饋,同時向數據庫更新打印的狀態信息;在打印期間,打印作業服務器還通過中間的控制功能轉發打印客戶端節點到打印節點之間的打印管理命令;打印作業服務器還負責管理打印節點的節點隊列; 打印節點執行打印打印節點的守護進程接收來自打印客戶端節點的打印作業運行請求消息的時候,解析該請求并做好打印準備;然后啟動作業的接收線程對打印數據文件進行接收;接收完成之后,根據解析出的打印參數設置好打印機,然后開始打印作業;同時向打印作業服務器反饋打印情況,以供打印作業服務器向打印客戶端節點的及時反饋和向數據庫進行更新;其次隨著打印進度的進行,通過心跳包發送和檢查點文件記錄打印狀態確保打印的正常進行以及出錯處理;最后等待執行與打印客戶端節點的打印管理命令交互; 打印客戶端節點、打印服務器節點、打印節點和數據庫之間的通信在打印客戶端節點、打印服務器節點和打印節點上都運行著守護進程,用于底層通信支持、消息創建和解析及啟動打印作業執行;打印客戶端節點、打印服務器節點、打印節點和數據庫之間的通信都是通過底層完成的。
2.根據權利要求I所述的大規模地震數據處理私有云環境下的網絡打印系統,其特征在于所述打印作業信息存儲了作業的基本屬性,包括上傳打印作業的用戶、打印作業所選擇的打印機、分別在哪些節點運行打印;所述打印日志信息記錄了作業在執行打印的整個流程中發生的事情,包括何時開始打印,在整個打印過程中是否選擇了暫停、停止打印命令,何時結束打印或者打印失敗及失敗原因;所述打印節點及其打印機的相關信息是通過打印節點向服務器節點登記的時候記錄下來的信息,包括與每個打印節點連接的各臺打印機的名稱和狀態。
3.根據權利要求I所述的大規模地震數據處理私有云環境下的網絡打印系統,其特征在于所述光柵文件的生成機制是指以剖面為單位對三維體數據進行劃分,根據地震數據組織的特點獲取其剖面號,按剖面號順序重新組成子作業,然后分別對每一子作業進行光柵文件的生成。
4.根據權利要求I所述的大規模地震數據處理私有云環境下的網絡打印系統,其特征在于為了實現打印作業對于優先級不同的需求,還可使用具有不同元素的數組來對應不同的優先級,數組中每個元素作為相應優先級鏈表的鏈表頭。
5.根據權利要求I所述的大規模地震數據處理私有云環境下的網絡打印系統,其特征在于打印作業服務器對節點隊列的管理方式如下采用心跳包探測的方式進行打印節點的有效性檢測,當作業正常運行的時候,通過心跳包獲取打印節點的狀態信息直至打印任務成功完成;當打印節點出現異常,將該節點上正在運行的作業狀態更改為未完成,同時啟動二次調度打印作業服務器通知打印作業調度器,打印作業調度器獲取新的可用節點作為打印節點,并向新的打印節點發送打印請求;打印節點通過對檢查點文件的解析獲得打印任務進行打印,同時保持與打印作業服務器的心跳包聯系直至打印成功。
6.根據權利要求I所述的大規模地震數據處理私有云環境下的網絡打印系統,其特征在于所述打印作業服務器使用線程池模型當收到客戶端某用戶請求消息的時候,啟動線程池管理類,如果有空閑線程則分配一個線程給該用戶,以處理該用戶的請求;如果沒有空閑線程且超過了已經創建的線程,則擴大線程池線程的數量,以供更多用戶請求的響應;當線程池空閑線程長期過多則啟動銷毀線程功能,讓線程數量恢復到與用戶需求相一致的數量。
全文摘要
本發明公開了一種大規模地震數據處理私有云環境下的網絡打印系統,包括數據庫和分別與數據庫進行通信的打印客戶端節點、打印服務器節點和打印節點,所述數據庫用于存儲與打印相關的信息;打印客戶端節點實現打印作業的生成和對打印作業的監控管理;打印服務器節點實現打印作業的解析和調度;打印節點執行打印;在打印客戶端節點、打印服務器節點和打印節點上都運行著守護進程,用于底層通信支持、消息創建和解析及啟動打印作業執行;打印客戶端節點、打印服務器節點、打印節點和數據庫之間的通信都是通過底層完成的。本發明的積極效果是充分利用了私有云的環境,使網絡打印更快捷、高效、易管理。
文檔編號G06F3/12GK102830946SQ20121027702
公開日2012年12月19日 申請日期2012年8月6日 優先權日2012年8月6日
發明者姚興苗, 蔣昌禮, 胡光岷 申請人:電子科技大學