再來重新認識JavaEE完整體系架構[轉]

  JavaEE是一套使用Java進行企業級Web應用開發的大家一致遵循的工業標準。

  JavaEE平臺提供了一個基於組件的方法來加快設計、開發、裝配及部署企業應用程序。

  相較於Microsoft的.NET,Sun公司的Java*E和一系列標準、技術及協議更接近或更滿足互聯網在智能化Web服務方面對開放性、分佈性和平臺無關性的要求。

  JavaEE的13種核心技術規範:

  1、JDBC(Java Database)數據庫連接

  JDBC是一組用於執行SQL的Java API ,爲訪問不同的數據庫提供了一種統一的途徑,幾乎所有的關係型數據庫廠商(DBMS)都提供了JDBC的服務或驅動。JDBC對數據庫的訪問也具有平臺無關性。

JDBC處理模型

  2、JNDI(Java Naming and Directory Interfaces)Java 的命名和目錄接口

  JNDI是命名目錄服務的抽象接口集合,爲企業級應用提供了統一的標準化連接,使Java能夠無縫地獲取任何可目錄化的企業信息。在JavaEE體系中,JNDI用來定位各種對象,包括EJB、數據庫驅動、JDBC數據源及消息連接等。由於JNDI是獨立於目錄協議的,因此還可以用JNDI訪問各種特定的目錄服務,如LDAP(輕量目錄訪問協議)、NDS(服務器目錄訪問服務)。

JNDI數據源  

  3、EJB(Enterprise JavaBean)

  EJB組件:JavaBean是在編程環境(IDE)中能夠被可視化處理的可重用組件,是實現分佈式業務邏輯的 Java 組件。我們在開發的時候可以利用這些組件,像搭積木一樣建立面向對象的分佈式應用。

  EJB容器:是EJB組件的運行環境,爲部署EJB組件提供服務,包括事務、安全、遠程客戶端的網絡發佈、資源管理等。

  EJB服務器:管理EJB容器的高端進程或應用程序,並提供對系統服務的訪問。

  調用EJB組件的應該稱爲EJB客戶端,客戶端可以運行在Web容器中。

EJB

  4、RMI(Remote Method Invoke)遠程方法調用

  RMI協議能夠讓在某個Java虛擬機上的對象,像調用本地對象一樣調用另一個Java虛擬機中的對象上的方法。它使用了序列化方式在客戶端和服務器端傳送數據。RMI是一種被EJB使用的更底層的協議。(stub/skeleton層提供了客戶程序和服務程序彼此交互的接口)

RMI遠程調用 

  5、Java IDL(Interface Description Language)/CORBA(Common Object Broker Architecture)Java 接口定義語言/公用對象請求代理程序體系結構

  IDL是用來描述軟件組件接口的一種計算機語言。IDL通過一種中立的方式來描述接口,使得在不同平臺上運行的對象和用不同語言編寫的程序可以相互通信交流。

  6、JSP(Java Server Pages)

  JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端所請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。

  JSP可以使用Servlet提供的API,一般和JavaBean結合使用,從而將界面表現和業務邏輯分離。

JSP

  7、Servlet

  Servlet是一種小型的Java程序,它擴展了Web服務器的功能。作爲一種服務器端的應用,當被請求時開始執行。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成並且生成HTML。

  8、XML(Extensible Markup Language)可擴展標記語言

  XML是一種用於標記電子文件使其具有結構性的標記語言。它被用來在不同的商務過程中共享數據。XML的發展和Java是相互獨立的,但是它和Java有着相同的目標,即平臺獨立性。通過Java和XML的組合,可以得到一個完美的具有平臺獨立性的解決方案。

  9、JMS(Java Message Service)Java 消息服務

  JMS是Java的消息服務,JMS的客戶端之間可以通過JMS服務進行異步的消息傳輸。JMS用於和麪向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的域,有支持發佈/訂閱(publish/subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。

  JMS消息系統帶來的好處:1、提供消息靈活性;2、鬆散耦合;3、異步性。

JMS點對點 

  10、JTA(Java Transaction API)Java 事務 API

  在JavaEE應用中,事務是一個不可或缺的組件模型,它保證了用戶操作ACID(即原子、一致、隔離、持久)屬性。對於那些跨數據源(例如多個數據庫,或者數據庫與JMS)的大型應用,則必須使用全局事務JTA。應用系統可以由JTA定義的標準API訪問各種事務監控,JTA爲JavaEE平臺提供了分佈式事務服務,它隔離了事務與底層的資源,實現了透明的事務管理方式。

JTA 

  11、JTS(Java Transaction Service)Java 事務服務

  JTS是一個組件事務監視器。JTS是CORBA OTS事務監控的基本實現。JTS規定了事務管理器的實現方式。JTS事務管理器爲應用服務器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。

  12、JavaMail

  JavaMail是用於存取郵件服務器的API,它提供了一套郵件服務器的抽象類。不僅支持SMTP服務器,也支持IMAP服務器和POP服務器。

  13、JAF(JavaBean Activation Framework)

  JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節流可以被轉換成Java對象,或者轉換自Java對象。大多數應用都可以不需要直接使用JAF。

  JavaEE軟件開發體系架構

  兩層架構

  傳統的客戶服務器系統僅只簡單地基於兩層體系來構建,即客戶端(前臺)和企業信息系統(後臺),沒有任何中間件,業務邏輯層與表示層或數據層混在一起。這種兩層架構無論從開發、部署、擴展、維護來說,綜其只有一個特點——成本高。

  三層架構

  三層架構自上而下將系統分爲表示層、邏輯層、持久層。

  表示層由處理用戶交互的客戶端組件及其容器所組成;

  業務邏輯層由解決業務問題的組件組成;

  數據層由一個或多個數據庫組成,並可包含存儲過程。

  這種三層架構,在處理客戶端的請求時,使客戶端不用進行復雜的數據庫處理;透明地爲客戶端執行許多工作,如查詢數據庫、執行業務規則和連接現有的應用程序;並且能夠幫助開發人員創建適用於企業的大型分佈式應用程序。

三層架構

  MVC

  在MVC模式中,應用程序被劃分爲模型層(Model)、視圖層(View)、控制層(Controller)三部分。MVC模型就是把一個應用程序的開發按照業務邏輯、數據、視圖進行分離分層並組織代碼。MVC要求把應用的模型按一定的層次規則抽取出來,將業務邏輯聚集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。模型層負責封裝應用的狀態,並實現功能,視圖層負責將內容呈現給用戶,控制層負責控制視圖層發送的請求以及程序的流程。

  Servlet+JSP+JavaBean(MVC)這種模式比較適合開發複雜的web應用,在這種模式下,Servlet負責處理用戶請求,JSP負責數據顯示,JavaBean負責封裝數據。

MVC

  基於JavaEE架構模式下的MVC

  在這種架構模式下,模型層(Model)定義了數據模型和業務邏輯。爲了將數據訪問與業務邏輯分離,降低代碼之間的耦合,提高業務精度,模型層又具體劃分爲了DAO層和業務層,DAO即Data Access Object,其主要職能是將訪問數據庫的代碼封裝起來,讓這些代碼不會在其它層出現或者暴露出來給其它層;業務層是整個系統最核心也是最具有價值的一層,該層封裝應用程序的業務邏輯,處理數據,關注客戶需求,在業務處理過程中會訪問原始數據或產生新數據,DAO層提供的DAO類能很好地幫助業務層完成數據處理,業務層本身側重於對客戶需求的理解和業務規則的適應,總體說來,DAO層不處理業務邏輯,只爲業務層提供輔助,完成獲取原始數據或持久層數據等操作。

基於JavaEE架構模式下的MVC

  JSP:JSP被用來產生Web的動態內容。這層把應用數據以網頁的形式呈現給瀏覽器,然後數據按照在JSP中開發的預定的方式表示出來,這層也可以稱之爲佈局層。

  Servlet:JSP建立在Servlet之上,Servlet是J2EE的重要組成部分。Servlet負責處理用戶請求,Java Web項目的所有配置都寫在了web.xml配置文件裏,當項目運行的時候,web.xml會將http請求映射給對應的Servlet類。

  JavaBean:由一些具有私有屬性的Java類組成,對外提供get和set方法。JavaBean負責數據,負責處理視圖層和業務邏輯之間的通信。

  Service:業務處理類,對數據進行一些預處理。

  DAO:數據訪問層,JDBC調用存儲過程,從數據庫(DataBase)那裏獲取到數據,再封裝到Model實體類中去。

 

原文: http://www.jizhuomi.com/software/644.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章