国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

解析J2EE應用體系

2019-11-18 12:32:02
字體:
來源:轉載
供稿:網友

  本文比較全面地介紹了與J2EE應用開發有關的各種基本概念,包括多層應用體系、容器、各種組件及其適用場合、J2EE基礎服務、J2EE客戶端類型等。
  J2EE多層應用體系
  J2EE可以理解為一個企業級的中間件體系或平臺,它把多種分散到網絡上的資源和應用連接起來,為構造和治理、運行可伸縮的企業級業務應用提供了一系列的應用組件和一個運行環境。從物理上看,J2EE環境可分布駐留到一個以上的服務器,單一的業務應用能夠以一組分布式組件的形式部署到網絡上的一個或者多個服務器。
  要理解J2EE,就必須把握下面幾個支撐起J2EE體系的核心概念:
  
  · J2EE n-tier應用體系:或稱為J2EE多層應用體系,J2EE平臺提供的基本應用架構。
  
  · J2EE應用組件:構造J2EE應用的基本軟件單元。
  
  · J2EE企業服務:可被J2EE應用組件調用的公共服務功能。
  
  · J2EE容器:J2EE組件的運行環境。
  
  J2EE中間件體系定義了四個獨立的層,應用軟件就構造在這個框架上,它們是:
  
  · 客戶層(Client tier)。
  
  · 表現邏輯層(PResentation logic tier)。
  
  · 業務邏輯層(Business logic tier)。
  
  · 企業信息系統層(EIS,Enterprise information systems tier)。
  如圖一所示:
   解析J2EE應用體系(圖一)
  圖一
  表現邏輯層和業務邏輯層屬于應用服務器領域。所謂應用服務器,也即J2EE平臺的具體實現。這四層中的每一層都可以在物理上分布到多個機器,即使同屬于應用服務器領域的表現邏輯層和業務邏輯層,也可以駐留在不同的應用服務器上。例如,在一個應用中,HTTP和表現邏輯的容器可以使用Sun公司的J2EE應用服務器iplanet,部署業務邏輯組件可以用BEA公司的J2EE應用服務器Weblogic。
  
  按照習慣,表現邏輯層總是與jsp容器相關,業務邏輯層總是與EJB容器相關。為便于理解,可以把J2EE多層體系中的“層”理解為一種概念實體,引入“層”這個概念是為了簡化設計;與此相對,把容器理解為一種物理性的軟件實體,容器的目標是為應用組件提供運行環境。
  
  不同層次的J2EE應用組件駐留在它們各自的運行環境中,這些運行環境就是J2EE術語所謂的容器。容器是遵從一定接口標準的產品,為J2EE組件提供了必需的底層基礎功能。按照J2EE標準編寫好應用組件之后,還要用廠商專有的部署工具把它們分別部署到各自的容器。J2EE標準定義了四種不同的容器:
  
  · Applet容器:運行和治理Applet。
  
  · 應用客戶端容器:運行和治理標準java應用客戶程序,包括Swing應用。
  
  · Web容器:運行和治理表現邏輯層的Servlet和JSP組件。
  
  · EJB容器:運行和治理業務邏輯層的EJB。
  
  為了提供靜態Html頁面服務,隨同Web容器提供一個HTTP Web服務器是很典型的做法,目前幾乎所有流行的J2EE應用服務器都有內建的HTTP Web服務器。
  
  一般地,容器提供的基礎功能包括內存治理、線程/同步機制、垃圾收集、可用性、可伸縮性、負載平衡和故障轉移等。容器必須實現的基本接口和功能由J2EE規范定義,但具體如何實現完全由容器廠商自己決定。因此,J2EE既確保了不同應用服務器之間的兼容性,又為各個廠商的專有代碼留下了自由空間。實際上,在中間件產業,各路廠商之所以得以施展各自神通,容器功不可沒。
  
  J2EE多層體系的思想在很大程度上受到了MVC設計模式的啟發和影響。所謂MVC,即Model-View-Controller,它是一種在復雜的應用系統中劃分和界定各個組件的職能和作用范圍的設計模式。在MVC設計模式中,Model即模型,是處理核心數據模型或實現核心應用功能的部分;View即視圖,主要與用戶界面有關,例如把處理結果提供給客戶端或其他應用。MVC設計模式認為這些不同的部分應該盡可能地相互獨立,它們之間的交互則由Controller(控制器)協調。
  
  例如,考慮一個在Internet上傳輸銀行帳戶信息的過程。按照MVC的設計思想,這個過程可以分割成四個獨立的任務:
  
  · 任務1:從瀏覽器啟動傳輸過程(View)。
  
  · 任務2:發出對帳戶傳輸操作的調用(Controller)。
  
  · 任務3:實際完成帳戶傳輸操作(業務過程或Model)。
  
  · 任務4:把傳輸狀態(成功或失敗)顯示給瀏覽器(View)。
  
  MVC認為核心業務過程(任務3)不應該做任何有關客戶端的假設,例如,它不能假定客戶端是一個瀏覽器,因為除了瀏覽器之外,其他的應用程序也應當能夠順利地調用核心業務過程;所有與客戶端直接相關的操作應當由View來完成。至于業務邏輯和表現邏輯的聯系和協調,則專門由Controller部分負責。
  
  J2EE體系建立在MVC設計思想的基礎上。很自然地,J2EE體系也鼓勵把業務邏輯從表現層分離出來,屬于Controller性質的代碼可以放在這兩個層的任意一個(或全部)。依靠于這種設計思想,J2EE為重用業務邏輯組件打開了廣闊的空間。
  J2EE應用組件
  J2EE標準定義了一個完善的應用組件框架,作為企業應用系統基本構造模塊的組件就建立在這個框架之上。幾乎所有的業務應用,從簡單的Web門戶到復雜的企業級分布式事務應用,都可以在此基礎上構造。
  J2EE組件框架只是一個以庫、類和接口形式提供的基礎架構,最終構成應用的業務邏輯和表現/控制邏輯要由建立在這個框架上的應用組件實現。以J2EE提供的標準應用組件Servlet為例,為具體的業務應用構造的Servlet總是建立在J2EE提供的基本Servlet接口之上,開發者可以調用各種Servlet包提供的基本庫和服務。許多系統級的服務都已經在這些庫中提供,例如操作HTTP輸入流讀取數據和寫入數據,只需直接調用即可。因此,我們把J2EE提供的組件基礎架構叫做應用框架(application Framework),把建立在應用框架之上的代碼叫做J2EE應用組件(Application Component)。
  
  如圖一所示,無論是客戶層、表現層還是業務邏輯層,都有相應的J2EE應用組件:
  
  · 客戶層:Applet,Javabean
  
  · 表現邏輯層:Servlet,JSP,Javabean
  
  · 業務邏輯層:EJB
  
  必須指出的是,除了上述J2EE組件之外,標準的Java類和Jar包也可以在所有這些層上很好地運行。在許多場合,我們可以找到代碼以普通Java類而不是J2EE組件狀態存在的情形。EIS即Enterprise Information System,它包含所有的企業后端資源,例如數據庫等。顯然,對于EIS資源,我們要做的只是從組件訪問它們,訪問細節則由J2EE企業服務解決,所以在EIS層沒有應用組件的位置。開發J2EE應用就是開發一種或者多種上述組件,然后把它們部署到各自的容器。
  
  組件的接口確保組件遵從一定的標準并向外界提供公用功能,從而為具有良好互操作性的J2EE環境提供了基礎。應用組件在各個層之間寬松結合,確保了組件互操作的靈活性和組件的可重用性。對于給定的業務情形,適當地選用和搭配各種應用組件是J2EE應用體系設計中一項富有藝術性的工作。由于組件的種類繁多,要想得到優質的代碼和表現出色的應用,就要有豐富的知識和經驗來確定組件的最佳搭配方案。對于每一種應用組件,J2EE明確定義了它在應用中應當擔負的角色,從而為合理設計應用體系提供了堅實的基礎。下面我們就來看看在應用服務器領域,各種組件的主要特點,請參見圖二。
  解析J2EE應用體系(圖二)
  圖二
  注重以下幾點:
  · Web容器和EJB容器是不同的,兩者相對獨立,可以是來自不同廠商的產品。這兩種容器都可以使用企業服務。也就是說,無論是Web容器的組件還是EJB,都可以訪問數據庫連接、email服務、目錄服務和消息服務。組件只能通過一個或者多個以驅動程序或適配器形式實現的企業服務訪問EIS資源。
  
  · 最好把所有應用組件頻繁調用的用戶自定義服務和庫集中到一個獨立的層。在圖二的J2EE模型中,用戶自定義的服務和庫被合并到“自定義組件庫”。這些庫由用戶自己開發,不屬于標準J2EE應用服務器的一部分,一般它們會隨著軟件項目的成熟而日漸豐富。例如,配置文件工具庫就是一個很好的例子:它根據指定的配置文件名字,打開該文件,然后以整數或字符串的形式返回指定的配置選項。
  
  · 另一種常見的現象是,開發者在J2EE提供的核心企業服務的基礎上編寫自定義的訪問例程。把這些自定義的服務訪問例程組織成一個單獨的“服務訪問庫”層是值得的。例如,假設我們在一個項目中用IBM的MQ Series作為消息系統。通常,我們會編寫一些在JMS基礎上訪問MQ Series服務的簡單API,例如給所有外發的消息加上企業標準的消息頭。這時,最好把這些服務整理成“服務訪問庫”層的公用API,并讓它們可被企業平臺的所有應用調用。簡而言之,服務訪問庫提供了J2EE API上的一層抽象,它們總是與特定的企業應用平臺密切相關。
  
  如前所述,在復雜的企業計算環境中,不同的J2EE組件應當擔負不同的角色。下面我們就來看看具體情況。
  
  Web容器組件:
  
  · Servlet
  
  Servlet是服務器端面向表現邏輯的組件,駐留在Web容器內。正如Applet擴展了瀏覽器的功能,Servlet擴展了Web服務器的功能——除了提供靜態HTML之外,Servlet還提供編程和生成動態內容的功能。
  
  Servlet能夠處理來自客戶端瀏覽器的請求,處理輸入參數,把處理結果以HTTP應答的形式發送到客戶端瀏覽器上顯示出來。例如,Servlet可用來開發基于Web的簡單認證系統,從客戶端瀏覽器接收用戶名字和密碼,處理請求,再發回認證通過或不通過的應答。
  
  除了接受來自

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新干县| 贵州省| 安西县| 镇原县| 饶阳县| 彰武县| 宜兰市| 奎屯市| 栖霞市| 济源市| 增城市| 东光县| 朝阳市| 屏东县| 天门市| 枣庄市| 垣曲县| 陆良县| 曲周县| 小金县| 亳州市| 大连市| 沧州市| 绥滨县| 长顺县| 彩票| 康平县| 汾西县| 双江| 出国| 临沂市| 宁海县| 长子县| 大足县| 宣武区| 赣榆县| 贵定县| 沈丘县| 鹤山市| 旺苍县| 南康市|