劉丹 閆國龍



摘要摘要:互聯網以及虛擬技術的廣泛應用,推動了數字出版的普及,催生了多種出版應用模式。IT技術的進步,使得基于互聯網構建以自動化排版為特征的動態數字出版解決方案成為現實。集群調度技術通過構建任務管理中心,接收并實現外部請求任務在多個業務處理模塊之間的分發與調度,從而充分利用計算資源,提升任務處理效率。針對自動化排版并發性強、即時性高以及對數據安全的特殊要求,提出了一種集群出版方法。基于XML格式進行傳輸參數的數據封裝,采用抽象化的分層設計,確保排版任務在分發、調度與管理上與排版業務處理分離,從而降低模塊間的耦合度,提升自動化排版的多任務并發處理能力以及系統的可擴展性。
關鍵詞關鍵詞:集群調度;自動化排版;動態數字出版
DOIDOI:10.11907/rjdk.161202
中圖分類號:TP301文獻標識碼:A文章編號文章編號:16727800(2016)007000703
引言
隨著互聯網技術的發展,相互孤立的出版環節被數據鏈和信息鏈連接,信息孤島被消除的同時催生出了新的出版模式。虛擬技術的應用,使硬件設備的并行處理能力得到優化,以自動化排版為特征的動態數字出版成為現實[1]。
傳統排版方式下,大量的重復性工作需要人工操作完成,不僅費時費力,而且存在編排內容被誤刪誤改的風險。自動化排版采用內容與版式相分離的設計思路,將有規律的內容樣式、版面布局設計成可復用的樣式模板,通過自動化排版引擎,實現出版內容與版式結合,從而自動完成排版作業[2]。自動化排版減少了人工參與度,提升了效率,降低了手工排版帶來的內容性風險。
基于單機模式的自動化排版在處理多任務請求時,需要采取排隊方式逐一順次處理,無法發揮多核服務器設備并行處理的能力,成為系統運行的瓶頸,從而阻礙動態數字出版系統整體效率的提升。
本文針對自動化排版需求,在多任務并發請求情況下提出了多項核心技術,構建了基于集群調度模式的動態數字出版方案,通過充分利用單服務器并行處理能力及多服務器協同工作能力,顯著提升了自動化排版工作效率。
1系統原理
本文采用分布式體系結構構建集群出版引擎,以解決動態數字出版過程中多任務并發情況下的低效率問題。同時引入數據庫系統作為管理工具,將集群調度體系中任務請求的流轉狀態交由數據庫管理,為作業中斷和現場恢復提供支持。考慮到集群出版引擎在任務調度與分發上的通用性,系統基于XML格式進行傳輸參數封裝。基于專業排版工具,通過二次開發方式構建自動化排版引擎終端,基于內容與版式相分離的設計思想,將規律性的版式效果做成樣式模板,通過排版引擎終端,實現模板與內容的結合,自動輸出專業的排版結果文件。系統整體結構如圖1所示。
圖1中,處于中心位置的任務管理數據庫承擔著整個系統承上啟下的重要作用,也是系統作業運行狀態監控的核心,對任務的有效管理是任務管理數據庫的主要職責,其主要數據是排版內容與樣式模板,指明了任務作業所需的排版素材。另外,作業中還記錄了排版作業信息,有請求者、請求消息、作業三者之間的對應關系,以便查詢作業狀態。
樣式模版是一種可以重復利用的資源,任務管理數據庫對其單獨管理,樣式表中除了記錄樣式的基本信息外,還指定了該樣式所對應的內容數據結構,排版作業將根據樣式模版中的內容數據結構,匹配排版作業請求所提供的內容數據,從而自動出版。
內容數據庫負責存儲排版內容,自動化排版引擎解析排版任務中的內容源參數,通過網絡通信,即時訪問內容數據庫,提取所需數據,完成內容的自動出版。
以任務管理數據庫為核心,集群調度控制器對任務請求進行合理的調度處理。當任務管理數據庫前端的消息解析器接收到排版請求后,將自動排版任務請求解析生成相應的作業記錄,加入到數據庫中等待處理。集群調度控制器檢查到任務管理數據庫中有未處理任務時,根據作業記錄狀態讀取相關信息,通過設備能力評估,按照自動出版流程定義選擇設備分配該作業。作業每完成自動出版流程中定義的一個處理環節,調度控制器收到反饋信息后,就修改任務管理數據庫中的狀態信息,以便該作業等待后續處理。以此順序,直到每個作業全部完成處理流程,最后由消息解析器將結果返回使用者。
動態數字出版方法實現涉及到傳輸參數的封裝與任務的構建、集群體系結構的建立、基于流程的集群調度算法和優化策略[3]、基于內容與版式相分離的自動化排版。下面重點闡述如何實現傳輸參數封裝、集群體系結構建立等關鍵技術。
2關鍵技術
2.1基于XML的傳輸參數數據封裝
集群出版引擎基于網絡環境進行部署和應用,采用標準的WebService接口與外部業務系統進行銜接和集成。基于數據封裝的標準性和可擴展性考慮,采用XML格式對傳輸參數進行數據封裝。以自動化排版輸出PDF結果為例,排版任務的數據封裝結果如下:
其中,< CmdName >項指明任務類型,< CmdId >項指明任務標識ID,< Params >約定了自動化排版任務的具體參數,< ParamGroup >則詳細定義了自動化排版方式,以及在該方式下的輸入輸出參數。
2.2可擴展的集群體系結構
為保證自動化排版對響應速度的要求,集群出版的任務處理能力和效率成為解決問題的關鍵。為此,本文提出了一種可擴展的集群體系結構,解決排版效率低的問題。該體系以樹形擴展結構為基礎,搭建分布式的“控制器-設備-具體業務處理”三級組件模型結構,具有多極擴展、綜合業務處理能力強等特點,如圖2所示。
在“控制器-設備-具體業務處理”三級組件結構中,第一級調度控制器負責整個作業處理流程在集群結構中的調度與控制;中間層級是抽象的邏輯設備;最底層的 “業務處理”單元對應于具體的處理功能,指功能設備,將根據上級邏輯設備的需要,以不同的方式組合,集中計算能力。將出版流程所需的各個處理步驟分散在不同設備上,按流水作業處理的方式提供高效的并發處理。出版流程中的某些處理過程不能簡單用單一的功能設備來實現,需要多個子步驟相互配合共同完成。因此,本文提出“邏輯設備”概念來代表系統流程中的關鍵處理環節,使得整個集群體系具有良好的可擴展結構。
邏輯設備可以是單層結構,代表流程中的某個簡單處理過程,通過直接連接相應的設備來實現該功能;也可以是多層嵌套結構,代表高層流程中的一個處理過程,同時也是自身所代表的子流程,依靠下級邏輯設備構成并完成子流程處理,實現自身在高層流程中的處理能力。
2.3樹形網絡通信結構
集群體系架構采用靈活的低耦合度分布式結構,每個設備可能位于不同的物理主機上,因此需要良好的內部網絡通信支持這種分布式結構。
流程的樹型結構決定了網絡通信的樹形結構。參照“控制器-設備-具體業務處理”三級模型的結構特征,網絡通信的目標是:任何一個設備都只有唯一的父連接,但可能有多個子連接;設備向上只與父節點、向下只與子節點建立通信關系,而不能越級直接通信,以此簡化通信方式;頂層的根節點對應調度控制器,只有子連接而無父連接;葉節點對應功能設備,只有父連接而無子連接,從而構成一個網絡通訊樹。
在集群調度體系中,邏輯設備和功能設備是通信的主要參與者。為了使設備的通信功能更為有效,系統引入了設備管理員概念,為各層設備建立并維護其賴以生存的通信網絡;同時引入“信使”概念,每個設備都攜帶一個“信使”作為自己的專用通信工具,由“信使”來完成其所在設備在集群體系中的網絡通信工作。
2.4支持同步/異步響應模式
在集群排版引擎中,由邏輯設備及關聯的業務處理模塊構成處理引擎單元,每個處理引擎作為業務實現單元完成排版引擎的接收和排版作業的執行。集群排版系統支持同步和異步兩種任務響應模式。在同步響應模式下,集群排版引擎接收到業務系統的任務請求后,判斷是否存在空閑的處理引擎,如果存在,則分發任務到空閑的處理引擎。完成自動化排版后,將結果反饋給業務系統,如圖3所示。同步響應模式提高了系統間信息傳遞的實時性。對于大文檔排版,由于耗時較長,需要等待較長的時間,影響了用戶體驗和系統運行效率。鑒于大文檔排版存在耗時長、體驗差的問題,集群排版引擎提供了異步響應模式。與同步響應模式的不同之處在于,異步響應方式在接收到業務系統的請求之后,將任務放入集群調度控制器進行任務排隊和調度,當任務執行完成之后,再向業務系統反饋處理結果。異步模式無須長時間等待,改善了用戶體驗。
3結語
本文通過對排版任務進行XML數據封裝,采用可擴展的集群架構、樹形網絡通信結構以及對同步/異步調用機制的支持,實現了多排版任務的調度與管理,提升了并發請求下自動化排版的效率。