吳冬芹
(南京信息職業(yè)技術(shù)學(xué)院 數(shù)碼藝術(shù)學(xué)院,南京 210023)
將Web環(huán)境與分布式計算技術(shù)有機融合,是實現(xiàn)計算機結(jié)構(gòu)分布式應(yīng)用的關(guān)鍵。相比于傳統(tǒng)B/S結(jié)構(gòu)數(shù)據(jù)訪問模式,基于中間件的分布式數(shù)據(jù)訪問模式可實現(xiàn)對數(shù)據(jù)庫的集中控制和有效管理,同時還能提供全新的業(yè)務(wù)邏輯編寫技術(shù),以及增強系統(tǒng)運行穩(wěn)定性,在實際應(yīng)用中表現(xiàn)出更強的優(yōu)越性?,F(xiàn)代信息管理系統(tǒng)承擔(dān)著更加多樣的功能,數(shù)據(jù)交互也更加頻繁,在這一背景下,有必要設(shè)計一種基于Web的分布式計算機結(jié)構(gòu),利用分布式數(shù)據(jù)訪問中間件來提高系統(tǒng)響應(yīng)速率、優(yōu)化系統(tǒng)運行性能,從而更好地滿足用戶的使用需求。
從企業(yè)信息系統(tǒng)的使用需求出發(fā),基于Web的分布式應(yīng)用程序框架應(yīng)滿足以下要求:①能夠?qū)崿F(xiàn)對客戶端的用戶管理與權(quán)限控制,對客戶端的計算資源有較高的利用率;②提供至少2個編程接口,既可滿足在線編程需要,同時又能提高信息傳遞效率;③具有一定的可擴展性,可支持HTML、ActiveX等程序語言的在線開發(fā);④具有較強的可靠性,使用主流的加密措施(如數(shù)字簽名等)對數(shù)據(jù)進行加密,保障傳輸安全?;谏鲜鲂枨笤O(shè)計了Web應(yīng)用程序框架的基本結(jié)構(gòu),如圖1所示。
圖1 分布式應(yīng)用程序框架的結(jié)構(gòu)組成
客戶端運行環(huán)境是以用戶界面作為切入點,向用戶提供注冊/登錄、數(shù)據(jù)訪問和軟件管理等一系列服務(wù)。為保證客戶端運行環(huán)境的安全性,本文設(shè)計的客戶端運行環(huán)境,是以ActiveX控件的形式,將客戶端嵌入到IE瀏覽器中。這樣一來,像用戶登錄、權(quán)限設(shè)置和訪問服務(wù)等一系列功能均可基于Web實現(xiàn),從而減輕了系統(tǒng)運行負載,并保證了客戶端運行環(huán)境的安全。
傳統(tǒng)的B/S結(jié)構(gòu)是在Web瀏覽器和數(shù)據(jù)庫之間建立Web服務(wù)器。Web服務(wù)器基于JSP、CGI等技術(shù)訪問數(shù)據(jù)庫,然后將結(jié)果以HTML或XML等方式反饋給Web瀏覽器。這種結(jié)構(gòu)存在諸多弊端,例如無法支持客戶端直接訪問數(shù)據(jù)庫,導(dǎo)致用戶請求響應(yīng)延時嚴重;還有就是增加開發(fā)難度和維護成本。針對上述缺陷,本文設(shè)計了一種基于中間件的分布式數(shù)據(jù)訪問模式,其結(jié)構(gòu)模型如圖2所示。
圖2 分布式數(shù)據(jù)訪問中間件結(jié)構(gòu)模型
基于該結(jié)構(gòu)模型的訪問流程如下。
(1)客戶端發(fā)出訪問請求,并在數(shù)據(jù)接口組件處生成一個數(shù)據(jù)訪問語句。數(shù)據(jù)接口組件根據(jù)語句內(nèi)容,調(diào)用相關(guān)的安全組件,并在客戶端與服務(wù)器端之間構(gòu)建一條信息傳輸通道。
(2)通道建立后,將數(shù)據(jù)訪問語句從數(shù)據(jù)接口組件傳輸?shù)竭h程數(shù)據(jù)服務(wù)中心,并在成功接收該語句后,識別其業(yè)務(wù)邏輯。執(zhí)行一個判斷程序,如果判斷結(jié)果為“業(yè)務(wù)邏輯”,則調(diào)用相應(yīng)的業(yè)務(wù)邏輯腳本解析部件;如果判斷結(jié)果為其他邏輯,同樣選擇與之對應(yīng)的腳本程序進行解析。
(3)遠程數(shù)據(jù)服務(wù)中心調(diào)用數(shù)據(jù)訪問控制部件實現(xiàn)對數(shù)據(jù)庫的訪問,數(shù)據(jù)庫在接收該訪問請求后,可根據(jù)訪問權(quán)限作出“接受”或“拒絕”的判斷。
(4)如果允許訪問,則完成相應(yīng)的數(shù)據(jù)檢索、調(diào)用等操作,并將數(shù)據(jù)訪問結(jié)果反饋給客戶端。
由于數(shù)據(jù)庫訪問是基于邏輯組件實現(xiàn)的,因此要想提升訪問效率和保證數(shù)據(jù)安全,必須要開發(fā)一種適配性更強的業(yè)務(wù)邏輯腳本語言。該語言可以提供面向?qū)ο蟮拈_發(fā)方法,并且能夠與數(shù)據(jù)訪問語言(如SQL等)具有較好的兼容性。基于腳本語言的業(yè)務(wù)邏輯處理流程如圖3所示。
圖3 業(yè)務(wù)邏輯處理過程
開發(fā)人員根據(jù)業(yè)務(wù)需求,用腳本語言編寫相應(yīng)的業(yè)務(wù)邏輯,然后將其注冊到分布式數(shù)據(jù)訪問中間件中。整個分布式數(shù)據(jù)訪問中間件包含了3部分,即業(yè)務(wù)邏輯訪問接口、腳本語言解析軟件和數(shù)據(jù)訪問部件。中間件在完成腳本程序的解析后,提取出面向?qū)ο蟮木幊探涌?,并通過邏輯調(diào)用的方式呈現(xiàn)給客戶端的開發(fā)人員。開發(fā)人員根據(jù)業(yè)務(wù)邏輯處理效果,重新修改腳本語言,直到業(yè)務(wù)邏輯處理結(jié)果符合預(yù)期。這種基于中間件與業(yè)務(wù)邏輯腳本語言相結(jié)合的開發(fā)模式,顯著提高了系統(tǒng)軟件開發(fā)效率。
在分布式應(yīng)用程序框架下,由于多臺客戶端均需要通過中間層服務(wù)器訪問數(shù)據(jù)庫,會加大中間層服務(wù)器的運行負載,特別是在多個訪問請求同時發(fā)出后,很容易因為網(wǎng)絡(luò)堵塞而導(dǎo)致響應(yīng)延遲。為了解決這一問題,需要設(shè)計一個具有可擴展功能的分布式數(shù)據(jù)訪問中間件。在框架模型接入的客戶端數(shù)量較少時,只開放少量的訪問接口,既能滿足系統(tǒng)運行要求,又可以節(jié)約系統(tǒng)資源。隨著接入客戶端數(shù)量的不斷增加,可以擴展新的接口,在滿足系統(tǒng)功能需求的基礎(chǔ)上還能保證負載均分?,F(xiàn)階段可支持分布式數(shù)據(jù)訪問中間件擴展的技術(shù)有連接池、多線程等。負載均衡(Load Balancing)是近幾年出現(xiàn)的一種新型可擴展技術(shù),其能通過應(yīng)用系統(tǒng)分區(qū)的方式,將應(yīng)用系統(tǒng)按照不同功能分成若干個分布在不同服務(wù)器上的子系統(tǒng)??蛻魴C在發(fā)出訪問請求或服務(wù)請求后,首先進行請求解析,然后按照“就近原則”調(diào)用最近服務(wù)器作出響應(yīng),建立會話并滿足客戶需求。
安全性也是分布式數(shù)據(jù)訪問中間件設(shè)計中需要重點考慮的因素之一,具體又可分為2部分,即數(shù)據(jù)訪問安全、數(shù)據(jù)傳輸安全。在數(shù)據(jù)訪問方面,可以采取將客戶端與數(shù)據(jù)庫完全獨立的設(shè)計,防止用戶直接訪問數(shù)據(jù)庫。即便是用戶通過驗證正常登錄客戶端,也必須經(jīng)由分布式數(shù)據(jù)訪問中間件向數(shù)據(jù)庫發(fā)送訪問請求的指令,并且經(jīng)過數(shù)據(jù)庫驗證并接收該訪問請求后,方可瀏覽、調(diào)用數(shù)據(jù),從而提高訪問安全性能。在數(shù)據(jù)傳輸方面,一種措施是選擇安全性較高的數(shù)據(jù)庫,例如現(xiàn)階段通用的Oracle、Informix等,這些數(shù)據(jù)庫可以自動對傳輸協(xié)議進行加密,有效避免了數(shù)據(jù)傳輸過程中被第三方攔截的情況。另一種措施則是在客戶端與服務(wù)器端之間新增一條加密的數(shù)據(jù)通道,也能起到保護數(shù)據(jù)傳輸安全的效果。加密數(shù)據(jù)通道的模型如圖4所示。
圖4 利用分布式數(shù)據(jù)訪問中間件建立安全數(shù)據(jù)通道
該框架系統(tǒng)主要由數(shù)據(jù)庫、分布式數(shù)據(jù)服務(wù)模塊和用戶管理服務(wù)模塊等組成??蚣芟到y(tǒng)數(shù)據(jù)庫為獨立的Microsoft Access數(shù)據(jù)庫,采用分區(qū)存儲模式,有系統(tǒng)信息、臨時數(shù)據(jù)和日志數(shù)據(jù)3個分區(qū),提高了數(shù)據(jù)存儲和調(diào)用效率。用戶管理服務(wù)、模塊管理服務(wù)采用集成化設(shè)置,在Web服務(wù)器的IIS中用PHP腳本語言實現(xiàn)。在IIS和客戶端運行環(huán)境之間使用HTTP協(xié)議實現(xiàn)通信。使用IE提供的ActiveX插件,將客戶端嵌入到Web瀏覽器中,提供客戶端運行環(huán)境。用戶通過Web瀏覽器的登錄界面,輸入對應(yīng)的賬號、密碼后,可以成功登錄客戶端主界面,該頁面提供了系統(tǒng)管理(數(shù)據(jù)庫注冊與權(quán)限分配等)、系統(tǒng)開發(fā)(開發(fā)指南與VC測試等)、用戶反饋等功能。其中,模塊管理是客戶端運行環(huán)境的重要組成,模塊管理策略如圖5所示。
圖5 軟件模塊管理策略
用戶管理服務(wù)提供用戶登錄、用戶注冊與刪除和用戶權(quán)限管理等服務(wù);模塊管理服務(wù)提供模塊下載功能。由于2個模塊的功能實現(xiàn)都是基于數(shù)據(jù)庫中用戶和模塊信息進行操作,因此在軟件設(shè)計中需要提供專門存儲用戶與模塊信息的數(shù)據(jù)表。以用戶信息為例,其信息表(User_Info)見表1。
表1 用戶信息表
在模塊信息表中,考慮到模塊數(shù)量較多,因此采用樹狀結(jié)構(gòu)對模塊進行分類。例如在“系統(tǒng)開發(fā)”一項中,分別包含了相關(guān)文檔、開發(fā)指南和開發(fā)說明等子項,從而顯著提高了數(shù)據(jù)處理效率和查詢效率。除此之外,還設(shè)計了“用戶-欄目權(quán)限表”,在用戶和模塊之間建立映射關(guān)系,也是提高查詢效率的一種有效措施。
中間件由服務(wù)器端的分布式數(shù)據(jù)服務(wù)(COM服務(wù))和數(shù)據(jù)訪問部件(ActiveX控件)組成,并且基于2個獨立平臺運行。本系統(tǒng)設(shè)計中采用Delphi定義數(shù)據(jù)集的操作接口,基于TCP/IP協(xié)議實現(xiàn)中間件的通信傳輸,分布式數(shù)據(jù)訪問中間件的功能實現(xiàn)流程為:在客戶端與服務(wù)器端分別嵌入1個連接件,用于在2個端口之間建立數(shù)據(jù)訪問通道。在系統(tǒng)運行并產(chǎn)生數(shù)據(jù)交互需求時,由客戶端向服務(wù)器端發(fā)送包含SQL的訪問語句。服務(wù)器端在接收到該訪問請求后,根據(jù)SQL語句信息訪問對應(yīng)的數(shù)據(jù)庫,并從數(shù)據(jù)庫中獲取相應(yīng)的數(shù)據(jù),以CDS格式將數(shù)據(jù)封包,并以數(shù)據(jù)集形式發(fā)送給客戶端??蛻舳嗽诮邮諗?shù)據(jù)集的過程中,同步打開數(shù)據(jù)訪問部件與應(yīng)用軟件模塊之間的Dataset數(shù)據(jù)訪問接口,以便于應(yīng)用軟件調(diào)用數(shù)據(jù)。
為驗證基于Web的分布式應(yīng)用程序框架系統(tǒng)的應(yīng)用性能,將設(shè)計好的框架模型應(yīng)用到某企業(yè)的生產(chǎn)運營管理信息系統(tǒng)中,該系統(tǒng)主要包括2部分,其一是基于Web瀏覽器的網(wǎng)頁部分,包括企業(yè)簡介、公報通知、安全監(jiān)察、廉政建設(shè)和職工園地等;其二是網(wǎng)站維護部分,包括用戶及其權(quán)限管理、數(shù)據(jù)庫維護和網(wǎng)頁內(nèi)容編輯等?;赪eb分布式應(yīng)用程序框架模型的企業(yè)信息系統(tǒng)應(yīng)用效果如下。
(1)應(yīng)用軟件基于Web瀏覽器運行,解決了傳統(tǒng)分布式應(yīng)用系統(tǒng)維護成本高、維護難度大的問題。
(2)強化了對用戶權(quán)限與軟件模塊的管理,避免了用戶越權(quán)訪問的情況,同時還能節(jié)約系統(tǒng)資源,提高了系統(tǒng)的安全性能。
(3)基于中間件的分布式數(shù)據(jù)訪問,提高了數(shù)據(jù)訪問與調(diào)用效率。同時保證數(shù)據(jù)庫與客戶機相互獨立,降低了數(shù)據(jù)并發(fā)時的系統(tǒng)負載,優(yōu)化了信息系統(tǒng)的運行性能。
(4)應(yīng)用軟件與信息系統(tǒng)相互獨立,需要對應(yīng)用軟件進行日常維護或更新升級時,管理員不必重復(fù)進行權(quán)限驗證,可以在登錄Web瀏覽器后直接從應(yīng)用程序框架上進行操作,從而簡化了操作流程并提高了系統(tǒng)的穩(wěn)定性。
為解決傳統(tǒng)B/S架構(gòu)存在的用戶請求響應(yīng)延時、腳本語言功能有限等問題,本文使用基于中間件的分布式數(shù)據(jù)訪問技術(shù)設(shè)計了Web應(yīng)用程序框架模型,并將該模型應(yīng)用到某企業(yè)的信息管理系統(tǒng)中。從應(yīng)用效果來看,改進后的信息系統(tǒng)運行穩(wěn)定性更好,數(shù)據(jù)訪問與調(diào)用速率更快,達到了預(yù)期效果。下一步,還要在Web應(yīng)用程序框架的基礎(chǔ)上繼續(xù)開發(fā)移動分布式應(yīng)用系統(tǒng),從而推動這一技術(shù)在遠程故障診斷、遠程數(shù)據(jù)分析等領(lǐng)域有更好的應(yīng)用。