- JSP應用與開發技術(第3版)
- 馬建紅 李學相 韓穎 王瑞娟 張晗
- 2348字
- 2020-06-30 17:13:19
1.7 企業應用開發架構
在構建企業級應用時,通常需要大量的代碼,這些代碼一般分布在不同的計算機上,劃分代碼運行在不同計算機上的理論就是多層設計理論。
企業級應用系統通常分為兩層、三層和N層架構。
1.7.1 兩層架構
傳統的兩層應用包括用戶接口和后臺程序,后臺程序通常是一個數據庫,用戶接口直接同數據庫進行對話。實現上,通常使用JSP、ASP或者VB等技術編寫這類軟件,結構如圖1-14所示。

圖1-14 兩層應用架構
兩層應用架構顯示邏輯層一般由HTML、JSP、ASP實現,通過JSP和ASP直接和數據庫相連。
1.7.2 三層架構
在兩層應用架構中,應用程序直接同數據庫進行對話。三層架構在用戶接口代碼和數據庫中間加入了一個附加的邏輯層,通常這個層叫作“商務邏輯層”,如圖1-15所示。

圖1-15 三層應用架構
1.7.3 N層架構
如果某個應用超過3個獨立的代碼層,那么這個應用叫作N層應用,而不再叫四層或者五層等名稱,而是統稱為N層,如圖1-16所示。

圖1-16 N層應用架構
1.7.4 開發架構比較
兩層架構的優點是開發過程比較簡單,利用服務器端的程序直接訪問數據庫,部署起來比較方便。缺點是程序代碼維護起來比較困難,程序執行的效率比較低,用戶容量比較少。
三層架構基本解決了兩層架構的缺點,將顯示部分和邏輯流程控制分開,利用服務器應用程序實現顯示部分,利用商務邏輯層實現程序的流程控制,分層使維護變得方便一些,而且執行效率也有所提高,但是相對部署起來比較困難。
根據實際需要,會進一步細化每一層,或者添加一些層,就形成了N層架構。和三層架構一樣,組件化的設計使維護相對容易,但是部署相對困難。
1.7.5 J2EE簡介
目前,Java2平臺有3個版本,它們是適用于小型設備和智能卡的Java 2平臺Micro版(Java 2 Platform Micro Edition,J2ME)、適用于桌面系統的Java 2平臺標準版(Java 2 Platform Standard Edition,J2SE)、適用于創建服務器應用程序和服務的Java 2平臺企業版(Java 2 Platform Enterprise Edition,J2EE)。本節主要介紹J2EE。
J2EE是一種利用Java 2平臺來簡化企業解決方案的開發、部署和管理相關復雜問題的體系結構。J2EE技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版中的許多優點,例如,“編寫一次、隨處運行”的特性,方便存取數據庫的JDBC API、CORBA技術,以及能夠在Internet應用中保護數據的安全模式等,同時還提供了對EJB(Enterprise JavaBeans)、Java Servlets API、JSP及XML技術的全面支持。其最終目的就是成為一個能夠使企業開發者大幅縮短投放市場時間的體系結構。
需要指出的是,J2EE并非一個產品,而是一系列的標準。因此,從整體上講,J2EE是使用Java技術開發企業級應用的一種事實上的工業標準(Sun公司出于其自身利益的考慮,至今沒有將Java及其相關技術納入標準化組織的體系)。它是Java技術不斷適應和促進企業級應用過程中的產物。Sun公司推出J2EE的目的是克服傳統Client/Server模式的弊病,迎合Browser/Server架構的潮流,為應用Java技術開發服務器端應用提供一個平臺獨立的、可移植的、多用戶的、安全的和基于標準的企業級平臺,從而簡化企業應用的開發、管理和部署。各個平臺開發商按照J2EE規范分別開發了不同的J2EE應用服務器,J2EE應用服務器是J2EE企業級應用的部署平臺。由于它們都遵循了J2EE規范,因此,使用J2EE技術開發的企業級應用可以部署在各種J2EE應用服務器上。目前在市場上可以看到很多實現了J2EE的產品,如BEA WebLogic、IBM WebSphere及開源的JBoss等。
J2EE使用多層的分布式應用模型,應用邏輯按功能劃分成組件,各個應用組件根據它們所在的層分布在不同的機器上。事實上,Sun公司設計J2EE的初衷正是為了解決兩層模式(Client/Server)的弊端,在傳統模式中,客戶端擔當了過多的角色而顯得臃腫,第一次部署的時候比較容易,但難以升級或改進,可伸展性也不理想,而且經常基于某種專有的協議(通常是某種數據庫協議),使得重用業務邏輯和界面邏輯非常困難。現在J2EE的多層企業級應用模型將兩層化模型中的不同層面切分成許多層,一個多層化應用能夠為不同的服務提供一個獨立的層,圖1-17所示是J2EE典型的四層結構。J2EE的四層結構的分別是:

圖1-17 J2EE四層模型
運行在客戶端機器上的客戶層組件。
運行在J2EE服務器上的Web層組件。
運行在J2EE服務器上的業務層組件。
運行在數據庫服務器上的EIS(Enterprise Information System,企業信息系統)層組件。
下面分別對圖1-17中的四層結構進行說明。
(1)J2EE應用程序組件。J2EE組件是具有獨立功能的軟件單元,它們通過相關的類和文件組裝成J2EE應用程序,并與其他組件交互。J2EE說明書中定義了以下J2EE組件:應用客戶端程序和Applet是客戶層組件;Java Servlet和JavaServer Pages(JSP)是Web層組件;Enterprise Java Beans(EJB)是業務層組件。
(2)客戶層組件。J2EE應用程序可以是基于Web方式的,也可以是基于傳統方式的。
(3)Web層組件。J2EE Web層組件可以是JSP頁面或Servlet。按照J2EE規范,靜態的HTML頁面和Applet不算是Web層組件。如圖1-18所示,Web層可能包含某些JavaBean對象來處理用戶輸入,并把輸入發送給運行在業務層上的Enterprise Bean來進行處理。

圖1-18 Web層
(4)業務層組件。業務層代碼的邏輯用來滿足銀行、零售、金融等特殊商務領域的需要,由運行在業務層上的Enterprise Bean進行處理。圖1-19所示表明了一個Enterprise Bean如何從客戶端程序接收數據,進行處理(如果必要的話),并發送到EIS層存儲,這個過程也可以逆向進行。

圖1-19 J2EE服務層
有三種企業級的Bean:會話(Session)Bean,實體(Entity)Bean和消息驅動(Message-Driven)Bean。會話Bean表示與客戶端程序的臨時交互。當客戶端程序執行完后,會話Bean和相關數據就會消失。相反,實體Bean表示數據庫表中一行永久的記錄。當客戶端程序中止或服務器關閉時,就會有潛在的服務保證實體Bean的數據得以保存。消息驅動Bean結合了會話Bean和JMS的消息監聽器的特性,允許一個業務層組件異步接收JMS消息。
(5)企業信息系統層。企業信息系統(EIS)層處理企業信息系統軟件,包括企業基礎建設系統,如企業資源計劃(ERP)、大型機事務處理、數據庫系統以及其他的遺留信息系統。例如,J2EE應用組件可能為了數據庫連接需要訪問企業信息系統。
注意
有些書中也把J2EE分為客戶端機器、J2EE服務器和數據庫服務器三層。J2EE Web層組件可以是JSP頁面或Servlet。按照J2EE規范,靜態的HTML頁面和Applet不算是Web層組件。
- Mastering Visual Studio 2017
- 自己動手寫Java虛擬機
- Python神經網絡項目實戰
- Learning Neo4j 3.x(Second Edition)
- Web Application Development with MEAN
- 正則表達式經典實例(第2版)
- Instant Lucene.NET
- ServiceNow:Building Powerful Workflows
- Node.js從入門到精通
- 例說FPGA:可直接用于工程項目的第一手經驗
- Android開發權威指南(第二版)
- Eclipse開發(學習筆記)
- 計算機視覺實戰:基于TensorFlow 2
- 瘋狂Ajax講義(第3版)
- Visual C++實用教程