范玉福
(綠春縣電子政務(wù)網(wǎng)絡(luò)管理中心,云南 綠春662599)
2011年4月,我作為綠春縣電子政務(wù)網(wǎng)絡(luò)管理中心的一名技術(shù)人員,組織軟件公司和網(wǎng)絡(luò)公司開發(fā)我縣的辦公自動(dòng)化系統(tǒng)。該系統(tǒng)包括發(fā)文管理、收文管理、個(gè)人事務(wù)、人員信息、系統(tǒng)設(shè)置、工作跟蹤、流程督辦等功能。通過該系統(tǒng)可以使我縣一百多個(gè)單位在OA上進(jìn)行無紙化辦公。我縣的辦公自動(dòng)化系統(tǒng)數(shù)據(jù)庫采用Oracle 10g;主要核心業(yè)務(wù)邏輯由C/C++語言實(shí)現(xiàn);Web服務(wù)器采用Weblogic,涉及核心業(yè)務(wù)邏輯的部分功能經(jīng)由WTC調(diào)用Tuxedo服務(wù)實(shí)現(xiàn),其它功能通過JDBC直接訪問數(shù)據(jù)庫。在該項(xiàng)目的開發(fā)中,我擔(dān)任整個(gè)項(xiàng)目的設(shè)計(jì)和項(xiàng)目管理工作。在整個(gè)項(xiàng)目的開發(fā)中,我們采用了三層C/S架構(gòu)和B/S架構(gòu)的混合架構(gòu)作為整體設(shè)計(jì)。以下我就以我縣辦公自動(dòng)化系統(tǒng)設(shè)計(jì)為例,與大家探討一下混合軟件架構(gòu)在政府辦公自動(dòng)化設(shè)計(jì)中的應(yīng)用。
軟件架構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。在軟件架構(gòu)風(fēng)格中比較常用的一種風(fēng)格是分布式架構(gòu)風(fēng)格,它包括C/S(客戶機(jī)/服務(wù)器)架構(gòu)、三層C/S(客戶機(jī)/服務(wù)器)架構(gòu)、B/S(瀏覽器/服務(wù)器)架構(gòu)。
C/S架構(gòu)有二個(gè)主要組成部分:數(shù)據(jù)庫服務(wù)器、客戶應(yīng)用程序。其中服務(wù)器負(fù)責(zé)有效地管理系統(tǒng)的資源,例如,數(shù)據(jù)庫管理系統(tǒng),其任務(wù)集中于:負(fù)責(zé)管理對(duì)數(shù)據(jù)庫數(shù)據(jù)的讀寫;數(shù)據(jù)的備份與恢復(fù)??蛻魬?yīng)用程序的主要任務(wù)為:提供用戶與數(shù)據(jù)庫交互的界面;向數(shù)據(jù)庫服務(wù)器提交用戶請(qǐng)求并接收來自數(shù)據(jù)庫服務(wù)器的信息;利用客戶應(yīng)用程序?qū)Υ嬖谟诳蛻舳说臄?shù)據(jù)執(zhí)行應(yīng)用邏輯要求。C/S架構(gòu)逐漸暴露了以下缺點(diǎn):
(1)開發(fā)成本較高。C/S架構(gòu)對(duì)客戶端軟硬件配置要求較高,尤其是軟件的不斷升級(jí),對(duì)硬件要求不斷提高,增加了整個(gè)系統(tǒng)的成本,且客戶端變得越來越龐大。
(2)客戶端軟件設(shè)計(jì)復(fù)雜。采用C/S架構(gòu)進(jìn)行軟件開發(fā),大部分工作量放在客戶端程序設(shè)計(jì)上,客戶端顯得十分龐大。
(3)軟件移植困難。采用不同開發(fā)平臺(tái)開發(fā)的軟件一般互不兼容,不能或難以移植到其它平臺(tái)上使用。
(4)軟件維護(hù)和升級(jí)困難。C/S架構(gòu)的系統(tǒng),如果客戶端應(yīng)用軟件改動(dòng)或升級(jí),就得更改和升級(jí)每一臺(tái)電腦上的客戶端應(yīng)用軟件。工作量相當(dāng)大。
因?yàn)镃/S架構(gòu)的缺點(diǎn),提出了三層C/S架構(gòu)。在三層C/S架構(gòu)中,增加了一個(gè)應(yīng)用服務(wù)器,系統(tǒng)的應(yīng)用邏輯駐留在應(yīng)用服務(wù)器中,而只有表示層存在于客戶機(jī)上。由于客戶機(jī)只完成用戶和系統(tǒng)的對(duì)話功能,所以這種結(jié)構(gòu)被稱為“瘦客戶端”。三層C/S架構(gòu)將應(yīng)用功能分成表示層、功能層和數(shù)據(jù)層三個(gè)部分。表示層完成用戶和系統(tǒng)的對(duì)話功能,功能層完成處理業(yè)務(wù)邏輯的功能,數(shù)據(jù)層通常是數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)管理對(duì)數(shù)據(jù)庫數(shù)據(jù)的讀寫。
瀏覽器/服務(wù)器(B/S)風(fēng)格的具體結(jié)構(gòu)為瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器。三層C/S的解決方案相比,客戶端用WWW瀏覽器,應(yīng)用服務(wù)器是Web服務(wù)器。在B/S架構(gòu)中,除了數(shù)據(jù)庫服務(wù)器外,應(yīng)用程序以網(wǎng)頁的方式存儲(chǔ)在Web服務(wù)器中,用戶運(yùn)行某個(gè)應(yīng)用程序時(shí)只需在客戶端瀏覽器中輸入相應(yīng)的網(wǎng)址,然后就會(huì)調(diào)用Web服務(wù)器中的應(yīng)用程序和數(shù)據(jù)庫完成相應(yīng)的數(shù)據(jù)處理工作,最后將結(jié)果通過游覽器顯示給用戶?;贐/S架構(gòu)的軟件,系統(tǒng)的安裝、修改和維護(hù)全部都是在服務(wù)器端完成的,用戶只需要一個(gè)瀏覽器就可運(yùn)行整個(gè)系統(tǒng)。由于客戶端計(jì)算機(jī)不需要安裝任何軟件,所以稱之為“零客戶端”。
雖然B/S架構(gòu)有如此多的優(yōu)勢(shì),但與C/S架構(gòu)相比,也有許多的不足之處,例如:
(1)采用B/S架構(gòu)的應(yīng)用系統(tǒng),在數(shù)據(jù)查詢等響應(yīng)速度上,要遠(yuǎn)遠(yuǎn)低于C/S架構(gòu)。
(2)B/S架構(gòu)的數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動(dòng)態(tài)交互性不強(qiáng),不利于在線事務(wù)處理的應(yīng)用。
從上面我們可以看到,三層C/S架構(gòu)并不是一無是處,而B/S架構(gòu)也不是完美無霞。因?yàn)槿龑覥/S架構(gòu)根深蒂固,技術(shù)的成熟性,以前的很多系統(tǒng)都是構(gòu)建在三層C/S架構(gòu)之上的。所以,B/S架構(gòu)要想在軟件設(shè)計(jì)中占主導(dǎo)地位,道路還漫長。我個(gè)人認(rèn)為,三層C/S架構(gòu)和B/S架構(gòu)還將長期共存,很多時(shí)候我都是結(jié)合兩種架構(gòu)來進(jìn)行軟件設(shè)計(jì)的。三層C/S架構(gòu)和B/S架構(gòu)的混合架構(gòu)主要有兩個(gè)模型。第一個(gè)是“內(nèi)外有別”模型。在該模型中內(nèi)部用戶通過局域網(wǎng)訪問應(yīng)用服務(wù)器,再由應(yīng)用服務(wù)器訪問數(shù)據(jù)庫服務(wù)器,軟件架構(gòu)采用三層C/S架構(gòu);外部用戶通過internet網(wǎng)訪問Web服務(wù)器,再由Web服務(wù)器訪問數(shù)據(jù)庫服務(wù)器,軟件架構(gòu)采用B/S架構(gòu)。“內(nèi)外有別”模型的優(yōu)點(diǎn)是外部用戶無需安裝客戶端軟件。內(nèi)部用戶的交互性較強(qiáng),數(shù)據(jù)查詢和修改的速度快。第二個(gè)是“查改有別”模型。在該模型中不管用戶以何種方式連接到系統(tǒng)(如局域網(wǎng)或internet網(wǎng)),凡是進(jìn)行修改或維護(hù)都使用三層C/S架構(gòu),凡是進(jìn)行查詢都使用B/S架構(gòu)。“查改有別”模型的優(yōu)點(diǎn)是修改或維護(hù)的響應(yīng)速度快,數(shù)據(jù)查詢時(shí)方便。
圖1 綠春縣辦公自動(dòng)化系統(tǒng)整體架構(gòu)
在我縣的辦公自動(dòng)化系統(tǒng)總體設(shè)計(jì)時(shí),我們充分考慮到該系統(tǒng)的分布式管理的需求,選用了三層C/S架構(gòu)和B/S架構(gòu)的混合架構(gòu)中的“內(nèi)外有別模型”?;趩挝粌?nèi)部辦公用戶數(shù)據(jù)查詢和修改的速度要求高,交互性要求高等需求,我們?cè)趩挝粌?nèi)部辦公用戶的軟件設(shè)計(jì)中采用了三層C/S架構(gòu)?;趩挝煌獬鲆苿?dòng)辦公用戶無需安裝客戶端軟件從而方便使用等需求,我們?cè)趩挝煌獬鲆苿?dòng)辦公用戶的軟件設(shè)計(jì)中采用了B/S架構(gòu)。因?yàn)閱挝煌獬鲆苿?dòng)辦公用戶是通過internet網(wǎng)登錄OA的,internet網(wǎng)具有開放性,數(shù)據(jù)傳輸?shù)陌踩院懿?。?duì)于這一方面我們采用了SSL VPN。使數(shù)據(jù)通過internet網(wǎng)中的SSL VPN隧道傳輸,保證了數(shù)據(jù)傳輸?shù)陌踩?。整個(gè)辦公自動(dòng)化系統(tǒng)的架構(gòu)如圖1所示。
從圖1中可以看到,單位外出移動(dòng)辦公用戶由internet通過SSL VPN登錄Web服務(wù)器,再通過Web服務(wù)器訪問數(shù)據(jù)庫服務(wù)器。單位外出移動(dòng)辦公用戶只需要一臺(tái)能上internet網(wǎng)的電腦就可以方便地使用辦公自動(dòng)化系統(tǒng),而無需安裝客戶端軟件。單位內(nèi)部辦公用戶由合并入各單位internet網(wǎng)的專網(wǎng)登錄應(yīng)用服務(wù)器,再通過應(yīng)用服務(wù)器訪問數(shù)據(jù)庫服務(wù)器。這樣達(dá)到了快速登錄、查詢和修改的需求。
在我縣的辦公自動(dòng)化系統(tǒng)設(shè)計(jì)總體中,我們采用了三層C/S架構(gòu)和B/S架構(gòu)的混合架構(gòu),不僅節(jié)省了開發(fā)和維護(hù)成本,提高了開發(fā)的效率,而且使系統(tǒng)具有良好的易擴(kuò)展性。至今該系統(tǒng)運(yùn)行狀態(tài)良好,未出現(xiàn)過重大故障!
[1]楊春暉,孫偉,等.系統(tǒng)架構(gòu)設(shè)計(jì)師教程[M].北京:清華大學(xué)出版社,2009,6.
[2]張友生.系統(tǒng)分析師教程[M].北京:清華大學(xué)出版社,2010,2.
[3]張友生,李雄,等.軟件體系結(jié)構(gòu)原理、方法與實(shí)踐[M].北京:清華大學(xué)出版社,2009,8.
[4]余雪麗.軟件體系結(jié)構(gòu)及實(shí)例分析[M].北京:科學(xué)出版社,2004,8.
[5]黃居源.地級(jí)市電子政務(wù)網(wǎng)站運(yùn)行情況分析[D].濟(jì)南:山東大學(xué),2008,4.