倪時龍,彭巍,林振天,吳飛,許雙成
(1.福建億榕信息技術(shù)有限公司福建福州350003;2.國網(wǎng)上海市電力公司信息通信公司上海200436;3.國網(wǎng)福建省電力有限公司福建福州350003)
基于傳統(tǒng)群件Lotus Domlno的分布式解決方案
倪時龍1,彭巍2,林振天1,吳飛3,許雙成1
(1.福建億榕信息技術(shù)有限公司福建福州350003;2.國網(wǎng)上海市電力公司信息通信公司上海200436;3.國網(wǎng)福建省電力有限公司福建福州350003)
Lotus Domino是優(yōu)秀的辦公電子協(xié)作平臺,具有獨特的安全特性和快速開發(fā)等特征。被廣泛運用于政府和企業(yè)
的辦公自動化和郵件系統(tǒng)。但由于使用的是文檔型數(shù)據(jù)庫,隨著數(shù)據(jù)量增長,性能會急劇下降;且它的數(shù)據(jù)庫、Web服
務(wù)器、應(yīng)用服務(wù)器均耦合集成,不易擴展,在大型系統(tǒng)的應(yīng)用上有很大的局限。隨著信息化的發(fā)展,政府企業(yè)都開始
集約化方向發(fā)展,希望建立集中式的數(shù)據(jù)中心。Lotus Domino在大型應(yīng)用系統(tǒng)上的發(fā)展遭遇瓶頸。通過運用分布式的思想對Lotus Domino進(jìn)行包裝改造,建設(shè)可擴展的副本和分片機制,建設(shè)統(tǒng)一的數(shù)據(jù)索引中心與調(diào)度中,將數(shù)據(jù)與負(fù)載動態(tài)平攤于多個Domino服務(wù)器節(jié)點間。通過國家電網(wǎng)協(xié)同辦公一級部署系統(tǒng)的運行實踐表明,創(chuàng)新的分布式架構(gòu)讓Domino平臺充分發(fā)揮其優(yōu)勢情況下又規(guī)避了它在負(fù)載能力上的不足。
分布式系統(tǒng);群件;協(xié)同辦公;Lotus Domino
分布式軟件系統(tǒng)(Distributed Software Systems)是支持分布式處理的軟件系統(tǒng),是在由通信網(wǎng)絡(luò)互聯(lián)的多處理機體系結(jié)構(gòu)上執(zhí)行任務(wù)的系統(tǒng)。在一個分布式系統(tǒng)中,一組獨立的計算機展現(xiàn)給用戶的是一個統(tǒng)一的整體,類似一個系統(tǒng)[1]。系統(tǒng)擁有多種通用的邏輯資源,可以動態(tài)的分配任務(wù),分散的物理和邏輯資源通過計算機網(wǎng)絡(luò)實現(xiàn)信息交換[2]。
Lotus Domino是集成Web服務(wù)器、系統(tǒng)設(shè)計、目錄、權(quán)限管理、數(shù)據(jù)庫為一體的群件平臺。數(shù)據(jù)采用文檔型數(shù)據(jù)庫,以NSF數(shù)據(jù)庫為數(shù)據(jù)存儲載體,數(shù)據(jù)庫本身不帶有鎖和事務(wù)機制,在做分布式改造上有較大的優(yōu)勢[3]。但數(shù)據(jù)、設(shè)計與服務(wù)耦合度太高,需要先進(jìn)行適當(dāng)拆解,方可實現(xiàn)分布式的改造[4]。分布式數(shù)據(jù)存儲需要有統(tǒng)一的數(shù)據(jù)訪問方式對集中的數(shù)據(jù)進(jìn)行統(tǒng)一的訪問[5_6]。分布式計算需要任務(wù)的合理調(diào)度分配服務(wù),保障多個節(jié)點溝通流暢,協(xié)同工作。
整體分布式架構(gòu)分為:數(shù)據(jù)/計算節(jié)點群、配置中心、數(shù)據(jù)索引中心和調(diào)度轉(zhuǎn)向中心,如圖1所示。
數(shù)據(jù)/計算節(jié)點群是分布式存儲和分布式計算的基本構(gòu)成,由Domino節(jié)點改造后構(gòu)成,總體采用副本+分片的結(jié)構(gòu),負(fù)責(zé)存儲數(shù)據(jù)和做業(yè)務(wù)邏輯功能計算,同時承擔(dān)橫向的調(diào)度轉(zhuǎn)向;配置中心是為實現(xiàn)配置的統(tǒng)一,將系統(tǒng)中的配置進(jìn)行集中管理和集中訪問,由Domino節(jié)點集群構(gòu)成;數(shù)據(jù)索引中心是分散數(shù)據(jù)的統(tǒng)一訪問的關(guān)鍵,保存了所有數(shù)據(jù)的元數(shù)據(jù)索引,基于Lucene框架開發(fā),借助了搜索引擎的倒排索引技術(shù),確保大數(shù)據(jù)量的快速檢索,分散的數(shù)據(jù)節(jié)點中數(shù)據(jù)發(fā)生改變時實時發(fā)起同步,將元數(shù)據(jù)同步到數(shù)據(jù)索引中心;調(diào)度轉(zhuǎn)向,采用反向代理技術(shù)負(fù)責(zé)對分散的節(jié)點提供系統(tǒng)統(tǒng)一的訪問入口,整個分布式節(jié)點的調(diào)度由兩方面構(gòu)成:縱向的副本節(jié)點調(diào)度由反向代理負(fù)責(zé)j橫向的分片節(jié)點調(diào)度創(chuàng)建過程由計算幾點內(nèi)的調(diào)度模塊負(fù)責(zé),其余讀寫調(diào)度過程由數(shù)據(jù)中心指引。
通過調(diào)度、索引中心和配置中心的分工配合,實現(xiàn)對數(shù)據(jù)計算節(jié)點群的統(tǒng)一訪問和統(tǒng)一管理。系統(tǒng)的數(shù)據(jù)計算節(jié)點可根據(jù)實際需要動態(tài)擴展,系統(tǒng)各組成部分均進(jìn)行了高可用建設(shè),消除了系統(tǒng)的單點故障。系統(tǒng)中的數(shù)據(jù)存儲和業(yè)務(wù)邏輯計算的主體仍存在于Domino節(jié)點內(nèi),可以保持原系統(tǒng)的數(shù)據(jù)存儲結(jié)構(gòu)與業(yè)務(wù)計算邏輯,所以這種分布式的方案是可延續(xù)的方案,保護(hù)了歷史積累和投資。
圖1 日志系統(tǒng)核心框架圖
傳統(tǒng)Domino平臺提供的使用方式,是高度耦合了Web服務(wù)器、業(yè)務(wù)數(shù)據(jù)、配置數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)和代碼邏輯的服務(wù)器平臺。為實現(xiàn)分布式的拆分,需對Domino進(jìn)行梳理和拆分改造。在整個方案中,Domino承擔(dān)了兩種角色,一是數(shù)據(jù)計算節(jié)點(Domino應(yīng)用服務(wù)器),另一是配置中心節(jié)點(Domino配置服務(wù)器)。本節(jié)具體闡述應(yīng)用服務(wù)器,配置服務(wù)器在數(shù)據(jù)中心一節(jié)詳細(xì)說明。
Domino應(yīng)用服務(wù)器是整個系統(tǒng)中主要的數(shù)據(jù)存儲節(jié)點和邏輯計算的節(jié)點群。負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)、海量數(shù)據(jù)存放;核心業(yè)務(wù)功能的實現(xiàn);數(shù)據(jù)的創(chuàng)建、更新和刪除;與數(shù)據(jù)索引中心同步數(shù)據(jù)。Domino采用副本+分片的結(jié)構(gòu),副本與分片可以根據(jù)業(yè)務(wù)的需要動態(tài)擴展。副本間采用Domino自帶的復(fù)制技術(shù),數(shù)據(jù)分片策略可根據(jù)實際需要通過配置實現(xiàn)規(guī)劃或者采用Hash算法進(jìn)行分配,本方案采用隨機數(shù)的Hash算法進(jìn)行分配。在將Domino承擔(dān)應(yīng)用服務(wù)器前還需要對Domino進(jìn)行設(shè)計分離、配置分離、自動分庫和內(nèi)部調(diào)度等改造。最后根據(jù)改造后的設(shè)計規(guī)劃系統(tǒng)的構(gòu)成。
2.1設(shè)計分離
傳統(tǒng)Domino的協(xié)同辦公系統(tǒng)采用設(shè)計及數(shù)據(jù)集中存放在統(tǒng)一的NSF數(shù)據(jù)庫中。分布式需要對數(shù)據(jù)拆分,但耦合的設(shè)計和數(shù)據(jù),導(dǎo)致拆分后設(shè)計也隨之分散,不僅不便于管理而且容易出現(xiàn)不同步的情況。需要對設(shè)計和數(shù)據(jù)進(jìn)行分離。Domino 的Http訪問文檔,由內(nèi)部的轉(zhuǎn)換機制完成對文檔和表單到Http頁面的轉(zhuǎn)換,內(nèi)部轉(zhuǎn)換過程包裝在平臺內(nèi)不可能改變,需要使用創(chuàng)新的技巧繞過傳統(tǒng)的設(shè)計。
Domino的數(shù)據(jù)訪問載體為Domino表單,但Domino表單由于平臺限制只能訪問本數(shù)據(jù)庫的數(shù)據(jù),Domino表單的機制是數(shù)據(jù)與設(shè)計耦合的關(guān)鍵。利用Domino代理的方式實現(xiàn)保存、提交的操作,取代Domino自帶的表單保存、提交功能。Domino代理的操作需要使用指定數(shù)據(jù)路徑的跨庫數(shù)據(jù)訪問替代本庫數(shù)據(jù)訪問的方式。數(shù)據(jù)庫設(shè)計與數(shù)據(jù)分離的核心是解決分離后文檔打開、文檔保存和文檔業(yè)務(wù)操作。
改造后的文檔打開過程,執(zhí)行主表單打開(OpenForm)替代傳統(tǒng)的文檔打開方式(OpenDocument),改造本庫訪問數(shù)據(jù)的方式,業(yè)務(wù)處理邏輯轉(zhuǎn)為由主表單打開代理進(jìn)行計算,計算過程的數(shù)據(jù)訪問通過數(shù)據(jù)路徑進(jìn)行跨庫的訪問,過程如圖2所示。
圖2 數(shù)據(jù)打開過程
文檔保存過程通過文檔提交前,在提交前通過腳本修改網(wǎng)頁表單提交的Action路徑,改變指向主表單的提交請求為指向保存代理。將業(yè)務(wù)邏輯轉(zhuǎn)移到主表單保存代理中進(jìn)行處理,如圖3所示。
2.2自動分庫
Domino服務(wù)器不適應(yīng)單個數(shù)據(jù)庫的數(shù)據(jù)量過大,但單臺服務(wù)器上的數(shù)據(jù)庫數(shù)量卻沒有明顯的限制。所以數(shù)據(jù)庫增長到一定程度,應(yīng)進(jìn)行靜態(tài)處理,新增新的數(shù)據(jù)庫進(jìn)行替代,防止數(shù)據(jù)不間斷的增長。這個過程的自動完成,稱為自動分庫。Domino平臺單個文檔數(shù)據(jù)庫數(shù)據(jù)量太大,會導(dǎo)致查詢效率降低,協(xié)同辦公業(yè)務(wù)模塊物理文檔可以通過系統(tǒng)動態(tài)分庫技術(shù)實現(xiàn)文檔數(shù)據(jù)庫大小處于合理水平,從而提高系統(tǒng)性能。
圖3 數(shù)據(jù)保存過程
圖4 自動分庫原理
可按文檔數(shù)量或數(shù)據(jù)庫大小控制Domino數(shù)據(jù)庫的分庫。為了控制每個數(shù)據(jù)庫的大小,當(dāng)數(shù)據(jù)庫到達(dá)閾值時數(shù)據(jù)庫中不再新增文檔。會繼續(xù)增加文檔的數(shù)據(jù)庫稱為動態(tài)庫,不再增加文檔的數(shù)據(jù)庫稱為靜態(tài)庫。為了分散單個數(shù)據(jù)庫的承載壓力,可以配置多個動態(tài)庫及靜態(tài)庫。新建文檔時隨機在多個動態(tài)庫選擇一個創(chuàng)建文檔,如果大量并發(fā)對一個數(shù)據(jù)庫進(jìn)行寫操作,系統(tǒng)性能會受單個數(shù)據(jù)庫性能的瓶頸影響,且易造成數(shù)據(jù)庫損壞,通過多個動態(tài)庫來分?jǐn)傔@種壓力,可有效避免類似問題。靜態(tài)庫不再新增文檔,只用于查詢歷史的數(shù)據(jù)。自動分庫通過數(shù)據(jù)分散存儲和請求的分?jǐn)偝晒鉀Q了系統(tǒng)性能問題。
2.3多庫調(diào)度
整體分布式的機制,是希望在多臺服務(wù)器間進(jìn)行分布,但為了充分利用資源,在單臺服務(wù)器內(nèi)部也需要進(jìn)行多個數(shù)據(jù)庫的改造,實現(xiàn)在多個數(shù)據(jù)庫內(nèi)的合理分布和動態(tài)擴展。首先對一些概念進(jìn)行定義:
活動庫:會繼續(xù)新增新公文的數(shù)據(jù)庫稱為活動庫。自動分庫就是創(chuàng)建一個新庫替換舊的活動庫作為活動庫。
多庫分?jǐn)偅阂粋€模塊同時啟用多個活動庫,新建公文時應(yīng)用從多個活動庫中隨機選擇一個在其中創(chuàng)建公文。(如果大量并發(fā)的訪問一個數(shù)據(jù)庫,系統(tǒng)性能會單個數(shù)據(jù)庫性能的瓶頸影響,且易造成數(shù)據(jù)庫損壞。)
自動分庫+多庫分?jǐn)偅壕S護(hù)一個活動庫的列表,當(dāng)其中某個數(shù)據(jù)庫達(dá)到設(shè)定的大?。ɑ蛭臋n數(shù)量)時,自動創(chuàng)建一個數(shù)據(jù)庫替換該庫,同時更新活動庫列表。
多庫負(fù)載內(nèi)部調(diào)度:
1)在數(shù)據(jù)新增請求時,在維護(hù)的數(shù)據(jù)庫活動庫列表中隨機(或者按某種策略)在其中一個數(shù)據(jù)庫中新增文檔。
2)在數(shù)據(jù)處理請求時,根據(jù)數(shù)據(jù)中記錄的所在庫和UNID定位找到相應(yīng)的數(shù)據(jù)庫和數(shù)據(jù)文檔進(jìn)行處理。
3)在數(shù)據(jù)訪問請求時,通數(shù)據(jù)處理請求相似,根據(jù)數(shù)據(jù)庫索引中維護(hù)的數(shù)據(jù)所在庫與UNID定位到相應(yīng)的數(shù)據(jù)后再進(jìn)行訪問。
圖5 多庫調(diào)度原理
2.4總體目錄結(jié)構(gòu)
通過改造將傳統(tǒng)的偶爾結(jié)構(gòu)轉(zhuǎn)成獨立結(jié)構(gòu)。為分布式改造打下基礎(chǔ)。
圖6 Domino總體改造
Domino應(yīng)用服務(wù)器除了外層目錄(names.nsf庫)外,內(nèi)層共包含5個目錄,服務(wù)器內(nèi)部目錄結(jié)構(gòu)如圖7所示。
總目錄coa:所有系統(tǒng)相關(guān)數(shù)據(jù)庫和目錄存放在coa目錄下。
設(shè)計數(shù)據(jù)庫目錄src:存放設(shè)計的數(shù)據(jù)庫目錄,不存放數(shù)據(jù)。Src目錄下還存在一個core的二級目錄,用于存放核心封裝代碼的數(shù)據(jù)庫。設(shè)計僅運行,也不直接更新。設(shè)計由配置服務(wù)器統(tǒng)一管理,再推送過來。Domino應(yīng)用服務(wù)器僅接受更新即可。
文檔數(shù)據(jù)庫目錄doc:存放各模塊文檔數(shù)據(jù),每個模塊各自存放。支持按策略自動分庫和多庫負(fù)載。分散在多個數(shù)據(jù)庫的數(shù)據(jù)集中到Orac1e統(tǒng)一視圖中進(jìn)行管理。
海量數(shù)據(jù)庫目錄mss:存放正文附件等非結(jié)構(gòu)數(shù)據(jù)的海量數(shù)據(jù)庫,與文檔數(shù)據(jù)庫相同機制,支持自動分庫。
配置數(shù)據(jù)庫目錄cfg:存放配置的數(shù)據(jù)庫目錄,配置只讀不提供更新。配置的更新由統(tǒng)一服務(wù)器管理,再推送過來。與設(shè)計的管理模式類似。
臨時數(shù)據(jù)庫目錄tmp:存放臨時數(shù)據(jù)的數(shù)據(jù)庫,數(shù)據(jù)庫的歷史數(shù)據(jù)直接清除,數(shù)據(jù)量穩(wěn)定。
圖7 總體目錄結(jié)構(gòu)
分散的Domino數(shù)據(jù)計算節(jié)點,分?jǐn)偭藬?shù)據(jù)存儲壓力和業(yè)務(wù)計算壓力,但同時也帶來了分散數(shù)據(jù)在訪問上的困難。為了解決數(shù)據(jù)的統(tǒng)一訪問問題設(shè)計了數(shù)據(jù)索引中心。通過集中所有數(shù)據(jù)的元數(shù)據(jù)與權(quán)限數(shù)據(jù)信息,提供了數(shù)據(jù)的統(tǒng)一訪問能力。在數(shù)據(jù)索引中心的設(shè)計上,為了保障大數(shù)據(jù)量的快速數(shù)據(jù)檢索訪問,引進(jìn)了開源的索引管理框架Lucene,借鑒了搜索引擎的倒排索引技術(shù)。數(shù)據(jù)的同步由Domino數(shù)據(jù)節(jié)點發(fā)起,數(shù)據(jù)索引中心負(fù)責(zé)管理,并提高統(tǒng)一的數(shù)據(jù)訪問服務(wù)。
3.1Lucene的應(yīng)用
Lucene是一套索引管理和檢索的開源程式庫,是當(dāng)前以及最近幾年最受歡迎的免費Java信息檢索程序庫,通常用于全文檢索,但在數(shù)據(jù)管理功能上適合于作為本系統(tǒng)的數(shù)據(jù)索引中心。Lucene為軟件開發(fā)人員提供一個簡單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實現(xiàn)檢索的功能,或者是以此為基礎(chǔ)建立起完整的檢索引擎。
本方案中通過設(shè)計Search服務(wù),對Lucene進(jìn)行封裝,設(shè)計了系統(tǒng)內(nèi)自定義的XML和JOSN格式。實現(xiàn)了數(shù)據(jù)索引管理和搜索服務(wù)功能。
3.2倒排序索引
倒排索引(inverted index),也常被稱為反向索引、植入檔案或反向檔案,是一種索引方法,被用來存儲在在全文搜索下某個單詞在一個文檔或者一組文檔中的存儲位置的映射。它是文檔檢索系統(tǒng)中最常用的數(shù)據(jù)結(jié)構(gòu)。倒排索引源于實際應(yīng)用中需要根據(jù)屬性的值來查找記錄。這種索引表中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址。由于不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引。帶有倒排索引的文件我們稱為倒排索引文件,簡稱倒排文件(inverted fi1e)。
引入這種索引技術(shù)是由于,系統(tǒng)中數(shù)據(jù)量大且?guī)в写罅康臋?quán)限信息,采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫需要進(jìn)行多張大表的關(guān)聯(lián)查詢,性能無法保證。
圖8 Lucene結(jié)構(gòu)
從用戶角度分布式的系統(tǒng)是一個完整的整體。分布式的Domino數(shù)據(jù)和計算節(jié)點,需要自動的調(diào)度和分配策略,進(jìn)行統(tǒng)一管理。數(shù)據(jù)域計算節(jié)點的數(shù)量,數(shù)據(jù)存儲的具體位置和邏輯計算具體執(zhí)行的節(jié)點對于用戶均是透明的。為了實現(xiàn)統(tǒng)一的訪問,系統(tǒng)引入了Nginx反向代理,反向代理同事承擔(dān)了縱向的調(diào)度,故障的切換等。另一部分的調(diào)度服務(wù)分散與Domino的數(shù)據(jù)計算節(jié)點內(nèi),在調(diào)度計算完成后,根據(jù)計算結(jié)果進(jìn)行節(jié)點跳轉(zhuǎn)。
4.1反向代理
由于Domino本身是Web服務(wù)器,分布式的Domino服務(wù)器將Web服務(wù)器在HTTP訪問級別就進(jìn)行了分散,為了實現(xiàn)分散后的統(tǒng)一訪問,引進(jìn)了反向代理的技術(shù)。同時前置的反向代理也可以提供縱向的調(diào)度管理作用。
反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個反向代理服務(wù)器。
反向代理的選擇上,本方案選用了開源的Nginx服務(wù)器,Nginx是一個高性能的HTTP和反向代理服務(wù)器。其特點是占有內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
通過對URL中的PATH的首段進(jìn)行改造,加入數(shù)據(jù)庫組標(biāo)識進(jìn)行對后端服務(wù)器的區(qū)分。例如使用反向代理前的URL地址為:http://HOST/PATH?Query
若不進(jìn)行改造,則需要使用不同的HOST進(jìn)行區(qū)分不同的服務(wù)器。改造后的URL格式為:
http://HOST/PROXYPATH/PATH?Query
通過不同的PROXYPATH標(biāo)識不同的服務(wù)器,達(dá)到統(tǒng)一HOST域名的目的。PROXYPATH目前取值共有以下幾種:Ser*:*為數(shù)字,表示節(jié)點群內(nèi)第幾對Domino服務(wù)器。(例如:Ser1表示第一對)
App:表示節(jié)點群內(nèi)所有服務(wù)器內(nèi)隨機。
Ser**:第一個*為數(shù)字,第二個星為字母,表示節(jié)點群的第幾臺服務(wù)器。(例如:Ser1a表示第一對內(nèi)的第一臺)
Cfg:表示訪問配置中心服務(wù)器。
4.2服務(wù)調(diào)度
由于Domino的分布式結(jié)構(gòu)有副本和分片兩種情況,所以在調(diào)度上也存在橫向調(diào)度和縱向調(diào)度兩種??v向調(diào)度對應(yīng)副本,由于數(shù)據(jù)和設(shè)計完全一致,縱向的調(diào)度只需要做隨機分發(fā)即可,但需要考慮服務(wù)器的失效轉(zhuǎn)移問題。但副本中有節(jié)點發(fā)生故障時,就僅將請求分發(fā)到副本集中正常的節(jié)點上,單節(jié)點故障對于用戶透明。橫向調(diào)度對應(yīng)分片,是將請求和任務(wù)進(jìn)行分布式處理的關(guān)鍵。為了避免橫向調(diào)度的負(fù)載過高和單點故障,將橫向調(diào)度邏輯放置在數(shù)據(jù)和計算節(jié)點群內(nèi),首先由反向代理隨機選取一對節(jié)點進(jìn)行調(diào)度計算,調(diào)度計算后轉(zhuǎn)向制定的服務(wù)器。本方案的調(diào)度算法采用最簡單的隨機算法來進(jìn)行任務(wù)分發(fā)。
分布式的軟件系統(tǒng),分散的配置信息會導(dǎo)致管理困難和配置的不同步等問題。通常需要對配置進(jìn)行集中,建立統(tǒng)一的配置中心。系統(tǒng)配置的新增和修改均有配置中心完成。由于Domino服務(wù)器的特殊性,跨服務(wù)器的訪問存在安全隱患,所以由配置中心進(jìn)行配置的推送。
5.1配置信息組織
根據(jù)配置的特征分類,總體分為:
1)適用所有的全局的配置;2)針對個人個性的個人配置;3)針對單位的,單位級配置;4)針對服務(wù)器的,需要為每個服務(wù)器分別配置的配置分類。
開發(fā)過程梳理逐步梳理所有的配置,將配置填充到上圖的配置樹中的相應(yīng)位置。上圖的配置樹中存在四項總配置,可以在確定需求后提取低級別的總配置到高級別的總體配置中。
5.2推送機制
統(tǒng)一配置服務(wù)器包括所有單位各個數(shù)據(jù)庫的配置信息。例如:業(yè)務(wù)配置庫,傳統(tǒng)Domino應(yīng)用方式每個單位都有各自的配置庫,分布式改造后,所有業(yè)務(wù)的配置信息集中在一個配置庫中,通過單位代碼和模塊ID進(jìn)行區(qū)分。系統(tǒng)管理庫改造后拆分成業(yè)務(wù)配置庫、用戶定制庫、組織配置庫和流程配置庫等。各個Domino應(yīng)用服務(wù)器的names庫、配置數(shù)據(jù)通過Domino服務(wù)器自帶的復(fù)制機制實現(xiàn)與統(tǒng)一配置庫的單向同步。
圖9 Domino服務(wù)器
國家電網(wǎng)協(xié)同辦公一級部署系統(tǒng),將原先全國二十幾個省和三十幾個直屬單位共2412家單位分散的協(xié)同辦公系統(tǒng)進(jìn)行集中的建設(shè),用戶量達(dá)五十幾萬,最高在線用戶在十五萬以上。系統(tǒng)的負(fù)載和并發(fā)增長了數(shù)十倍。由于歷史的技術(shù)積累和投資保護(hù)的原因,不應(yīng)拋棄Domino平臺的使用,故對Domino采用了分布式的改造和包裝。目前已投入生產(chǎn)使用,分布式節(jié)點已超過700(采用虛擬機),系統(tǒng)運行穩(wěn)定,性能優(yōu)異。
本文針對技術(shù)積累和歷史使用悠久的傳統(tǒng)Lotus Domino平臺在高并發(fā)高負(fù)載和大數(shù)據(jù)量下出現(xiàn)的瓶頸,進(jìn)行系統(tǒng)特征的分析。通過集成基于倒排序索引的Lucene和反向代理Nginx實現(xiàn)了創(chuàng)新的分布式改造和包裝。設(shè)計了具有群件特殊的分布式協(xié)同辦公系統(tǒng)。并在國家電網(wǎng)協(xié)同辦公一級部署系統(tǒng)的實踐中得到良好的應(yīng)用,證明了方案的可行性和優(yōu)越性。
[1]劉立騏,田華,許維勝,等.CSCW研究理論及應(yīng)用[J].信息與控制,1998,27(3):190_196.
[2]倪悅,范玉順.基于Web的知識管理系統(tǒng)應(yīng)用研究[C]//2005亞洲國際過程自動化技術(shù)與裝備展覽會論文集,2005.
[3]周曉慶.知識管理系統(tǒng)和CIMS系統(tǒng)的構(gòu)建與設(shè)計[J].計算機應(yīng)用,2005,25(9):2054_2056.
[4]劉益劍.基于Web的辦公自動化系統(tǒng)軟件開發(fā)[J].南京師范大學(xué)學(xué)報:工程技術(shù)版,2005(2):11.
[5]范玉順,吳澄.基于工作流的CIMS應(yīng)用集成支持系統(tǒng)研究[J].計算機工程與應(yīng)用,2000,36(2):6_11.
[6]黃蘭,余陽,李長森,等.XForm在工作流管理系統(tǒng)中的應(yīng)用研究[J].計算機工程與應(yīng)用,2007,43(6):81_84.
To solVe the tradltlonal dlstrlbuted grouPWare Lotus scheme based on Domlno
NI Shi_1ong1,PENG Wei2,LIN Zhen_tian1,WU Fei3,XU Shuang_cheng1
(1.Fujian Yirong Information Technology Co.Ltd.,F(xiàn)uzhou 350003,China;2.Shanghai Power Company Information Communications Company,Shanghai 200436,China;3.State Grid Fujian Electric Power Company,F(xiàn)uzhou 350003,China)
Domino Lotus is a good office e1ectronic co11aboration p1atform,with unique security features and rapid deve1opment and other characteristics.Wide1y used in government and enterprise office automation and mai1 system.But due to the use of document database,with the increase of the amount of data performance wi11 be a sharp dec1inej and its database,web server,app1ication server are coup1ed integration,not easy to expand,in the app1ication of 1arge system have great 1imitations.With the deve1opment of information techno1ogy,government enterprises are beginning to deve1op intensive,hoping to estab1ish centra1-ized data center..The deve1opment of Domino Lotus in the 1arge sca1e app1ication system has encountered the bott1eneck.By using the idea of distributed packaging transformation of Lotus Domino,the construction of sca1ab1e copy and distribution mechanism,construction of a unified data index center and schedu1ing,data and dynamic 1oad equa11y in mu1tip1e Domino server nodes.Through the nationa1 grid co11aborative office 1eve1 dep1oyment system operation practice shows that,innovative distributed architecture for domino p1atform give fu11 p1ay to its advantages and avoid the it in the 1oad capacity prob1ems.
distributed systemj groupwarej co11aborative officej Lotus Domino
TN319
A
1674_6236(2016)10_0100_05
2015_06_02稿件編號:201506026
倪時龍(1977—),男,福建平潭人,碩士研究生。研究方向:信息管理與信息系統(tǒng)。