范玉福
(綠春縣電子政務網絡管理中心,云南 綠春662599)
2011年4月,我作為綠春縣電子政務網絡管理中心的一名技術人員,組織軟件公司和網絡公司開發我縣的辦公自動化系統。該系統包括發文管理、收文管理、個人事務、人員信息、系統設置、工作跟蹤、流程督辦等功能。通過該系統可以使我縣一百多個單位在OA上進行無紙化辦公。我縣的辦公自動化系統數據庫采用Oracle 10g;主要核心業務邏輯由C/C++語言實現;Web服務器采用Weblogic,涉及核心業務邏輯的部分功能經由WTC調用Tuxedo服務實現,其它功能通過JDBC直接訪問數據庫。在該項目的開發中,我擔任整個項目的設計和項目管理工作。在整個項目的開發中,我們采用了三層C/S架構和B/S架構的混合架構作為整體設計。以下我就以我縣辦公自動化系統設計為例,與大家探討一下混合軟件架構在政府辦公自動化設計中的應用。
軟件架構風格是描述某一特定應用領域中系統組織方式的慣用模式。在軟件架構風格中比較常用的一種風格是分布式架構風格,它包括C/S(客戶機/服務器)架構、三層C/S(客戶機/服務器)架構、B/S(瀏覽器/服務器)架構。
C/S架構有二個主要組成部分:數據庫服務器、客戶應用程序。其中服務器負責有效地管理系統的資源,例如,數據庫管理系統,其任務集中于:負責管理對數據庫數據的讀寫;數據的備份與恢復。客戶應用程序的主要任務為:提供用戶與數據庫交互的界面;向數據庫服務器提交用戶請求并接收來自數據庫服務器的信息;利用客戶應用程序對存在于客戶端的數據執行應用邏輯要求。C/S架構逐漸暴露了以下缺點:
(1)開發成本較高。C/S架構對客戶端軟硬件配置要求較高,尤其是軟件的不斷升級,對硬件要求不斷提高,增加了整個系統的成本,且客戶端變得越來越龐大。
(2)客戶端軟件設計復雜。采用C/S架構進行軟件開發,大部分工作量放在客戶端程序設計上,客戶端顯得十分龐大。
(3)軟件移植困難。采用不同開發平臺開發的軟件一般互不兼容,不能或難以移植到其它平臺上使用。
(4)軟件維護和升級困難。C/S架構的系統,如果客戶端應用軟件改動或升級,就得更改和升級每一臺電腦上的客戶端應用軟件。工作量相當大。
因為C/S架構的缺點,提出了三層C/S架構。在三層C/S架構中,增加了一個應用服務器,系統的應用邏輯駐留在應用服務器中,而只有表示層存在于客戶機上。由于客戶機只完成用戶和系統的對話功能,所以這種結構被稱為“瘦客戶端”。三層C/S架構將應用功能分成表示層、功能層和數據層三個部分。表示層完成用戶和系統的對話功能,功能層完成處理業務邏輯的功能,數據層通常是數據庫管理系統,負責管理對數據庫數據的讀寫。
瀏覽器/服務器(B/S)風格的具體結構為瀏覽器/Web服務器/數據庫服務器。三層C/S的解決方案相比,客戶端用WWW瀏覽器,應用服務器是Web服務器。在B/S架構中,除了數據庫服務器外,應用程序以網頁的方式存儲在Web服務器中,用戶運行某個應用程序時只需在客戶端瀏覽器中輸入相應的網址,然后就會調用Web服務器中的應用程序和數據庫完成相應的數據處理工作,最后將結果通過游覽器顯示給用戶。基于B/S架構的軟件,系統的安裝、修改和維護全部都是在服務器端完成的,用戶只需要一個瀏覽器就可運行整個系統。由于客戶端計算機不需要安裝任何軟件,所以稱之為“零客戶端”。
雖然B/S架構有如此多的優勢,但與C/S架構相比,也有許多的不足之處,例如:
(1)采用B/S架構的應用系統,在數據查詢等響應速度上,要遠遠低于C/S架構。
(2)B/S架構的數據提交一般以頁面為單位,數據的動態交互性不強,不利于在線事務處理的應用。
從上面我們可以看到,三層C/S架構并不是一無是處,而B/S架構也不是完美無霞。因為三層C/S架構根深蒂固,技術的成熟性,以前的很多系統都是構建在三層C/S架構之上的。所以,B/S架構要想在軟件設計中占主導地位,道路還漫長。我個人認為,三層C/S架構和B/S架構還將長期共存,很多時候我都是結合兩種架構來進行軟件設計的。三層C/S架構和B/S架構的混合架構主要有兩個模型。第一個是“內外有別”模型。在該模型中內部用戶通過局域網訪問應用服務器,再由應用服務器訪問數據庫服務器,軟件架構采用三層C/S架構;外部用戶通過internet網訪問Web服務器,再由Web服務器訪問數據庫服務器,軟件架構采用B/S架構。“內外有別”模型的優點是外部用戶無需安裝客戶端軟件。內部用戶的交互性較強,數據查詢和修改的速度快。第二個是“查改有別”模型。在該模型中不管用戶以何種方式連接到系統(如局域網或internet網),凡是進行修改或維護都使用三層C/S架構,凡是進行查詢都使用B/S架構。“查改有別”模型的優點是修改或維護的響應速度快,數據查詢時方便。

圖1 綠春縣辦公自動化系統整體架構
在我縣的辦公自動化系統總體設計時,我們充分考慮到該系統的分布式管理的需求,選用了三層C/S架構和B/S架構的混合架構中的“內外有別模型”。基于單位內部辦公用戶數據查詢和修改的速度要求高,交互性要求高等需求,我們在單位內部辦公用戶的軟件設計中采用了三層C/S架構。基于單位外出移動辦公用戶無需安裝客戶端軟件從而方便使用等需求,我們在單位外出移動辦公用戶的軟件設計中采用了B/S架構。因為單位外出移動辦公用戶是通過internet網登錄OA的,internet網具有開放性,數據傳輸的安全性很差。對于這一方面我們采用了SSL VPN。使數據通過internet網中的SSL VPN隧道傳輸,保證了數據傳輸的安全性。整個辦公自動化系統的架構如圖1所示。
從圖1中可以看到,單位外出移動辦公用戶由internet通過SSL VPN登錄Web服務器,再通過Web服務器訪問數據庫服務器。單位外出移動辦公用戶只需要一臺能上internet網的電腦就可以方便地使用辦公自動化系統,而無需安裝客戶端軟件。單位內部辦公用戶由合并入各單位internet網的專網登錄應用服務器,再通過應用服務器訪問數據庫服務器。這樣達到了快速登錄、查詢和修改的需求。
在我縣的辦公自動化系統設計總體中,我們采用了三層C/S架構和B/S架構的混合架構,不僅節省了開發和維護成本,提高了開發的效率,而且使系統具有良好的易擴展性。至今該系統運行狀態良好,未出現過重大故障!
[1]楊春暉,孫偉,等.系統架構設計師教程[M].北京:清華大學出版社,2009,6.
[2]張友生.系統分析師教程[M].北京:清華大學出版社,2010,2.
[3]張友生,李雄,等.軟件體系結構原理、方法與實踐[M].北京:清華大學出版社,2009,8.
[4]余雪麗.軟件體系結構及實例分析[M].北京:科學出版社,2004,8.
[5]黃居源.地級市電子政務網站運行情況分析[D].濟南:山東大學,2008,4.