???? 關鍵詞:網絡,體系結構,特點,方案
1 引 言
九十年代末,隨著網絡技術在各行各業的深入應用,IT行業又出現了一種低費用、低管理開銷、并享有Client/Server計算模式優點的新型體系結構——三層網絡體系結構。如果把C/S體系結構稱為“胖客戶機/服務器”計算模式,那么,三層體系結構可以稱為“瘦客戶機/服務器”計算模式。
2 技術特點
三層(或多層)結構的特點是在兩層結構的基礎上加入一個(或多個)中間件層。它將C/S體系結構中原本運行于客戶端的應用程序移到了中間件層,客戶端只負責顯示與用戶交互的界面及少量的數據處理(如數據合法性檢驗)工作。客戶端將收集到的信息(請求)提交給中間件服務器,中間件服務器進行相應的業務處理(包括對數據庫的操作),再將處理結果反饋給客戶機。
與傳統的C/S體系結構相比,三層體系結構存在以下優點:
2.1 客戶端零維護
在三層體系結構中,幾乎所有的業務處理都是在中間件Web Server上完成的,客戶端只需要安裝支持Java的瀏覽器即可,不用做任何其它安裝和配置工作,所以也就不存在客戶端維護的問題,真正實現了“客戶端零維護”。處理業務時,操作員可以直接通過Web瀏覽器訪問Web Server進行業務處理工作。
2.2 可擴展性好
三層體系結構的可擴展性好體現在以下四個方面:
第一,工作節點的可擴展性好。由于三層體系結構的客戶端零維護的特點,使增加一個工作節點的工作簡單到了只需增加一臺裝有Web瀏覽器的PC機即可。
第二,應用系統的可擴展性好。好的應用系統應該能方便地實現一定程度上業務的變化和業務單元的增加。三層體系結構采用面向對象的分析和設計模式,將業務模塊都封裝到了業務類和服務類中,所以,如果一個業務流程變了,或需要增加一個新的業務模塊,只需替換或增加新的業務類和服務類即可。
第三,業務邏輯與用戶界面及數據庫分離,使得當用戶業務邏輯發生變化時只需更改中間層的控件/組件/JB/EJB即可。
第四,便于數據庫移植。由于客戶端不直接訪問數據庫,而是通過一個中間層進行訪問,所以,在改變數據庫、驅動程序或存儲方式時無需改變客戶端配置,只要集中改變中間件上的持久化層的數據庫連接部分即可。
2.3 安全性好
在三層體系結構中,客戶端只能通過Web Server而不能直接訪問數據庫,這大大提高了系統的安全性。如果對系統提出更高的安全性要求的話,還可以通過防火墻進行屏蔽。
2.4 資源重用性好
由于將業務邏輯集中到Web Server統一處理,三層體系結構可以更好地利用共享資源。例如數據庫連接是一項很消耗系統資源、影響響應時間的事件,在三層體系結構中可以將數據庫連接放在緩沖池中統一管理,由不同應用共享,并有效控制連接的數量。
3 組成結構
三層結構主要由以下三部分組成:
3.1 客戶端
客戶端的主要任務是顯示用戶界面,接收用戶事件。三層體系結構中,用戶界面通過瀏覽器顯示,WebServer將應答最終以HTML為載體下載到客戶端瀏覽器,經瀏覽器(如IE、NetScape)進行解釋,得到最終的用戶界面。從技術的角度劃分,客戶端程序由以下幾部分組成:
3.1.1 HTML
HTML是所有界面元素的載體,標題、正文、Table、Form、Script程序段、Applet、ActiveXControl……所有這些都是通過<標識></標識>嵌在HTML中的。HTML是各種瀏覽器的通用語言,界面上的一切對象都要嵌入到HTML中才能被瀏覽器所解釋。
3.1.2 CSS
對CSS的翻譯,國內不同文獻有不同的解釋,比較通用的解釋是“層疊風格表單”。層疊風格表單的標準是由W3C組織制定的,目前市面上各個瀏覽器普遍支持的是CSS1標準。
層疊風格表單定義了一個文檔元素的顯示特性。
HTML標識符所包含的每一個元素都可以被定義到一個或多個內容顯示的設置。從功能上講,CSS可以細分為CSS1/2和CSS-P(層疊風格表單定位)。CSS1/2的作用是設置文檔元素的顏色、字體等顯示特性;CSS-P的作用是設置文檔元素在頁面上的精確位置。
對于創建一個中型或大型企業的管理信息系統,這樣大規模的基于Web Server的系統來說,使用CSS是一個理想的選擇。它可以有效地保證所有頁面呈現統一的顯示風格,同時也能減少大量編碼工作。
3.1.3 Script
Script是指某一種腳本語言,目前主要有JavaScript和VBScript兩種通用的腳本語言。由于網景的Netscape不支持VBScript,所以要想編寫跨瀏覽器的腳本程序,JavaScript是唯一的選擇。
從功能上講,Script可以分為客戶端腳本和服務端腳本,由于在三層體系結構中,服務端的控制和應答由Servlet和JSP完成,所以系統只使用客戶端腳本。
客戶端腳本的主要作用是:檢查錄入數據的合理性,充當過濾器的作用,保證提交給Web Server的數據是合法的;結合業務規則,控制界面元素的顯示特性;在必要情況下進行cookie操作。
3.1.4 Object
Object是嵌入HTML中的外來對象,常用的Object有兩種:Java Applet和MSActiveX Control。當系統對界面的靈活性及功能的需求超出了HTML和Script的實現范圍時,開發者往往會考慮到Object技術。
Applet是運行于客戶端的Java小應用程序,隨包容它的頁面一起下載到客戶端,由支持Java的瀏覽器(帶有Java虛擬機)解釋并運行。
ActiveXControl的作用類似于Applet,所不同的是它只能運行于Windows平臺的客戶端,而且只在第一次訪問包容ActiveX Control頁面時下載并安裝ActiveXControl,直到服務端的ActiveXControl版本升級了才會下載第二次。
3.2 中間件服務器
中間件服務器由Web Server和Java ApplicationServer兩部分組成,有的中間件將這兩部分集成到了一起。
3.2.1 Web Server
HTTPServer使用基本的服務器構架,它在啟動時創建自己的服務處理線程池。在線程處理池中的線程進入循環,監聽來自客戶端的HTTP請求,并使用HTTP協議,對來到的HTTP請求進行處理。所有的HTTP連接都傳給它們。HTTP請求到來后,服務處理線程根據URL和Server的配置信息進行必要的授權檢查,決定調用哪個Servlet來處理請求,然后將Servlet處理之后的結果作為應答反饋給客戶端。
在HTTP Server中有幾個處于核心地位的Servlet,它們提供標準的HTTP功能。這幾個核心的Servlet分別是:File Servlet,用于處理對文件服務的請求,Cgi Servlet,提供基本的CGI功能,InvokerServlet,作為一個元Servlet(meta-servlet),負責其它Servlet的加載、擊活和刪除;Dispatcher Servlet:間離部分可信和完全可信的Servlet,使它們在各自安全的“沙箱”里執行。
網絡應用級協議有多種,如HTTP、FTP、SMTP等,其中,HTTP協議是最安全、應用最廣的協議,HTTP請求是被防火墻視為安全的請求。因此,三層結構中間件都帶有HTTPServer,它是三層結構中間件的門戶,是聯系客戶端和真正處理業務的Application Server的橋梁和紐帶。
3.2.2 Java Application Server
Application Server是中間件的核心部分,是真正實現業務功能的服務,它接受HTTPServer分配的請求,做出相應處理,再將處理結果傳遞給HTTPServer,由HTTPServer形成HTTP應答反饋給客戶端。
3.2.3 數據庫服務器
數據庫服務器是業務對象的屬性得以永久性保存的載體。保證對象持久的最直接的方法是使用面向對象的數據庫管理系統,它是專門為存儲和共享對象而設計的。目前,大型三層體系結構應用系統中用的較多的關系型數據庫有Orcale、DB2、Sysbase等。
4 實現分類
三層結構體系存在著J2EE和Windows DNA兩大陣營。
4.1 基于Windows DNA結構的實現方案
如果采用Windows DNA體系結構,則數據庫應考慮微軟的SQLServer。SQLServer數據庫僅適用于中小企業級。
采用Windows DNA的優勢在于,目前絕大多數桌面操作系統都是微軟的Windows平臺,而且我們所常用的辦公軟件也是微軟的產品。這樣很容易將電子商務系統與日常辦公結合起來。另外,微軟的產品價格平易近人。再者,Windows2000不僅本身自帶了IISWeb server,而且也完全集成了COM+-中間件服務,無需再額外選擇所謂的“中間件”服務器。另外,采用Windows DNA結構,開發效率要比采用J2EE效率高50%以上。
采用Windows DNA的缺點在于,系統的平臺兼容性、移植性差。這是眾所周知的,無需贅述。
基于Windows DNA結構的實現方案簡單地說就是:ASP+ActiveXControl+COM++ODBC。
4.2 基于J2EE的實現方案
J2EE是一種利用Java 2平臺來簡化諸多與多級企業解決方案的開發、部署和管理相關的復雜問題的體系結構。J2EE技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版中的許多優點,例如“編寫一次、到處運行”的特性、方便存取數據庫的JDBC API、CORBA技術以及能夠在Internet應用中保護數據的安全模式等等,同時還提供了對EJB(Enterprise JavaBeans)、Java ServletsAPI、JSP(Java Server Pages)以及XML技術的全面支持。
Sun公司在企業版中增加了一整套核心企業應用程序編程界面,而所有這些界面均為標準的模塊化組件。J2EE技術還為這些組件提供一整套企業服務,通過自動化的方式完成應用程序開發中的諸多耗時且費力的艱難工作,為用戶提供一種可創建廣泛兼容的企業解決方案而無需進行復雜編程的平臺。利用這一優勢可以方便地開發出高質量的、適合企業使用的應用程序,還可極大地減少產品研發上市時間、成本和風險。
概括起來,J2EE體系結構的優點是:
Java Servlet和JSP都要編譯為Java Class才作為Servlet運行,因此執行性能會明顯提高。
Java Servlet和JSP中可以完全使用Java進行編程,可以完成許多簡單的商業邏輯,特別是JSP,可以直接書寫HTML,因此簡化了頁面的輸出,這樣就保留了腳本語言易于使用的優點。
復雜的商業邏輯以組件的形式部署在EJBServer中。由于EJBServer提供了多種組件事務服務,使系統更能夠應付大量的并發用戶和管理復雜的事務邏輯。
EJBServer中集成的組件命名服務可以使組件位置透明化,簡化了組件的部署和客戶端應用的維護。
開發過程易于分工,可以由專人負責編寫組件,其他人組裝頁面。
J2EE平臺全面支持和實施XML,這種強大的組合可使XML具備跨平臺的兼容性,甚至用于對XML代碼進行語法檢查和調試的工具也可與平臺無關。J2EE技術和XML技術分別是企業開發的陰陽兩極,因為XML可實施獨立于平臺的數據,而J2EE平臺則可實施獨立于平臺的解決方案。XML可通過移植的方式表現數據,因此就對Java技術的可移植性構成了補充。
基于J2EE結構的實現方案是:JSP+JavaBeans/EJB+Servlet+JDBC。
5 實現案例
??? 筆者以Windows DNA方式做了一個實現案例:
此案例服務器站建立在Windows2000上,數據庫服務器選用的是SQLServer 6.5。數據庫中存放了大量的單位基本信息,經過身份確認的用戶可以根據各自不同的需求對這些數據進行相應的操作,如數據的上報,查詢等。案例中主要用到了ASP和JavaScript等方法。
5.1 建立連接
為了建立與數據庫的連接,可以通過兩種方式:一種是建立DNS,另一種是OLE DB。這里我們用了DNS方式建立了一個SQL的數據源Convote。一個DSN連接通常需要的參數有:DSN名,用戶名,口令,例如我們用用戶名“users”,口令“pass”,通過DSN
連接數據庫。
5.2 用戶登陸
用戶輸入用戶名和密碼后提交,用下列語句取得用戶信息:
取得用戶名和密碼后與數據庫內的用戶名和密碼進行比較,正確的可以進入系統,否則提示出錯。
5.3 數據查詢
與數據庫的連接結束后一定要關閉連接:conntemp.close()
5.5 ActiveX控件
當用戶的需求用Script無法滿足時,我們常常要用到Java Applet和MSActiveX控件。這里,就MSActiveX控件有個實例。ActiveX控件把主機應用程序顯示和操作組件所需的附加支持包含在GUI環境中,還可以把OCX組件放在網頁當中。
如當用戶需要在客戶端進行IC卡的讀寫時,由于IC卡的讀寫是較復雜的程序,單純用Script語句根本就無法實現此功能。此時我們就需要用到ActiveX控件。用VB編寫了一個ActiveX OCX,把它嵌入HTML中,讓第一次訪問的用戶隨頁面一起下載,同時OCX所要調用的DLL也隨著OCX一起下載到客戶端,于是控件在客戶端就可以執行起來。
這里我們使用的是Asp頁面靜態調用ActiveX控件的方法:
之后,就可以在ASP語句中使用此ActiveX組件的幾個方法了。
讀卡界面如圖3所示。
??? 點擊讀卡,則可以讀出卡內信息,如圖4所示。
??? 總之,B/S模式應是今后的發展方向。
評論
查看更多