Sun Microsystems公司在1996年推出了一種新的純面向對象的編程語言,命名為Java。Java技術已成為20世紀軟件業界出現的最重要的技術之一,這種與平臺無關的編程語言的出現,立刻掀起了軟件工業的一場革命,如今已是互聯網上最為流行的編程語言。Java是一種通過解釋方式來執行的語言,其特點為:簡單、面向對象、不依賴于機器的結構,具有可移植性、魯棒性、安全性,并且提供了并發的機制以及與現代網絡技術的完美結合。目前,按照Sun Microsystems官方網站(http://java.sun.com)公布的標準,根據不同的應用領域將Java語言被劃分為三大平臺:
“ Java 2 Platform Micro Edition 簡稱J2ME,Java 2平臺微型版。用于開發掌上電腦、手機等移動通信設備上使用的嵌入式系統。
“ Java 2 Platform Standard Edition 簡稱J2SE,Java 2平臺標準版。主要用于開發一般臺式機應用程序。
“ Java 2 Platform Enterprise Edition 簡稱J2EE,Java 2平臺企業版。主要用于快速設計、開發、部署和管理企業級的軟件系統。
J2EE 是使用Java進行企業開發的一套擴展規范,它提供基于組件設計、開發、部署和管理企業應用的解決方案。J2EE規范必須基于J2SE平臺,它不僅鞏固了標準版中的許多優點,例如“一次編譯、隨處運行”的跨平臺特性、方便高效的數據庫提供無縫連接的技術JDBC(Java Data Base Connectivity,Java數據庫連接)、能夠在Internet應用中確保數據完整性的安全模式以及支持多線程技術等,同時還針對 Servlet/JSP、EJB、JMS、JTS/JTA、JCAT和XML等技術提供了全面的支持。J2EE已建立了一套能夠使企業級應用開發者縮短軟件產品開發周期的標準架構體系。
事實上,J2EE已成為企業級開發的工業標準和主流平臺。J2EE為建立具有高可用性、高可擴充性、易維護性的企業級系統提供了完美的機制和架構模型。在 J2EE提供的統一開發平臺下,可以大大降低開發多層應用的成本和復雜性,對于需要獲得高可用性、高安全性以及高可擴充性軟件服務而又缺乏資金的企業來說,J2EE的中間層集成框架完全可以勝任并滿足其要求。同時,J2EE自身具備的完備的目錄服務支持、高度的安全機制、高效的性能展現等眾多優勢技術,為企業平滑集成已有應用系統發揮了巨大作用。
基于J2EE的企業級應用系統,不受任何特定操作系統、網絡環境、硬件平臺的束縛。應用系統可開發并部署在異構的環境中,并能確保系統的可移植性。因此,只要符合J2EE規范的系統開發一次即可部署到各種操作系統平臺和網絡平臺上。J2EE作為長期的性能穩定的企業級應用系統平臺,能保障7×24小時的不間斷服務,以滿足企業客戶、合作伙伴的需要,是企業理想的運行平臺也是Internet全球化發展的客觀必然要求。J2EE高伸縮性的特點在如今“隨需應變”(IBM公司2002年底提出)電子商務戰略大行其道的時代,做出了卓越貢獻。J2EE采用負載平衡策略,使系統軟硬件資源利用率及性能表現最大化,消除了系統中的瓶頸。允許多臺服務器集成部署,實現可高度伸縮的系統,在保存企業現有IT資產減少重復性投入的同時也滿足了未來商業應用的需要。
1.2.2 J2EE體系架構概述
J2EE 使用多層的分布式架構模型,模型由組件組成,應用程序的邏輯根據功能劃分被封裝在各組件中。由于是采用分布式架構,J2EE應用中的大量組件部署在不同的機器中,通常這些機器具有不同的物理地址。J2EE架構一般分為4層:客戶層、Web應用層、企業組件層(業務層)、企業信息系統層。如圖1-4所示描述了J2EE架構中典型的多層應用架構模型。

J2EE架構的多層應用模型
一個J2EE客戶層軟件可以是基于Web的,也可以是基于Application(應用)的。Web客戶端由Web應用層的Web組件動態生成Web頁面,主要是HTML文件和XML文件。客戶端用戶在使用J2EE服務時,無需安裝多余軟件,只要計算機上裝有一個Web瀏覽器即可,如MS Internet Explorer、NetScape、Mozilla Firefox,等等。基于應用程序的客戶端,可以為用戶展示比Web客戶端更為豐富的人性化的圖形界面,如Java AWT/Swing開發的圖形用戶界面。Web客戶端通過Web應用層中的JSP/Servlet進行通信,而應用程序客戶端則可以跳過Web組件層直接訪問運行在企業組件層的Enterprise JavaBeans。
Web 應用組件層提供的服務主要依賴于JSP頁面或是Servlet。JSP和Servlet都是J2EE應用技術中的重要組成部分。JSP頁面由HTML文件、Java程序片段和JSP標簽構成,以Servlet的方式執行。Servlet是Web應用開發的基礎。它完全用Java語言開發,是Java平臺上的CGI技術。它運行于服務器端的J2EE容器中,具有很高的效率,能夠動態地加載,動態地生成Web頁面。Servlet擅長于流程控制和事務處理,提供的擴展服務功能可為企業定制靈活的開發策略。Web應用層主流的服務器有:Tomcat、Resin等。
企業組件層中主要是負責處理企業的業務流,并且將相關的業務邏輯封裝在Enterprise JavaBeans中。這一層提供了EJB的開發、部署和運行時管理環境。每一個EJB都是一個可重用的組件。EJB架構定義了3種Enterprise JavaBean類型:會話Bean、實體Bean和消息驅動Bean。其中,會話Bean又分為有狀態會話Bean和無狀態會話Bean。實體Bean 可以進行自行狀態管理,也可以交由EJB容器進行管理,兩種方式都為了完成實體Bean的持久性。消息驅動Bean始終處于無狀態。三種類型的 Enterprise JavaBean有著不同的生命周期。企業組件層采用的主流服務器有:Weblogic、JBoss、Sun Application Server、WebSphere,等等。
企業信息系統層的特點是有數據庫系統的支持。企業信息系統軟件主要包括企業內傳統信息系統如財務系統、CRM系統、數據庫系統和ERP等。
1.2.3 J2EE主要技術
在J2EE平臺中,包括了眾多的技術,以便對開發者提供更為全面的支持。
“ Servlet技術 Servlet是Web應用開發的基礎。它完全用Java語言開發,是Java平臺上的CGI技術。它運行于服務器端的J2EE容器中,具有很高的效率,能夠動態地加載,動態地生成Web頁面。Servlet擅長于流程控制和事務處理,提供的擴展服務功能可為企業定制靈活的開發策略。
“ JSP技術 其本質仍是Servlet,只是兩者創建方式不同。JSP文件由HTML文件、Java程序片段和JSP標簽構成。JSP將首先通過分析器生成相應的 Servlet源文件,然后再對此Servlet文件進行編譯運行。JSP與Servlet一樣,具有相當高的運行效率。
“ EJB技術 Enterprise Java Bean簡稱EJB,它運行在EJB服務器上,是由客戶端調用的非可視化遠程對象。EJB擁有一系列協議,允許自身被遠程訪問或在特定服務器上進行安裝或部署。允許將服務安全性、事務行為、并發性(支持多個客戶端同時訪問的情況)和持久性(其狀態的生命周期)的主要方面授權給 EJB 服務器上其所在的容器。EJB提供的事務機制非常周全,但事務機制帶來的缺點是性能的降低。EJB支持分部式應用系統。在EJB中定義了三種不同類別的 Enterprise Bean:會話Bean、實體Bean、消息驅動Bean。EJB的完整執行過程為:客戶端通過JNDI檢索Home對象的引用,JNDI返回Home對象的引用,請求創建一個新的EJB對象,創建EJB對象,返回EJB對象,調用相關業務邏輯方法,調用Enterprise Bean。一般J2EE應用服務器都是EJB服務器,比如:Weblogic、Jboss、Sun Application Server、WebSphere等。
“ JMS技術 Java Message Service,Java消息服務。JMS是J2EE平臺的重要組成部分。它是一組標準Java應用接口,可以在各種企業通信系統間使用,提供創建、發送、接收、讀取消息等服務。為確保Java應用能夠和各種消息中間件進行異步通信,JMS定義了一組公共的應用程序接口和相應語法來滿足開發需求。通過使用統一的JMS接口集,開發人員可以無須掌握消息產品的使用方法,就來編寫和操縱各種消息中間件。JMS支持點對點、發布/訂閱式的異步消息通信機制,并能夠最大限度地提升消息應用的可移植性。
“ JNDI技術 Java Naming and Directory Interface ,簡稱JNDI。J2EE應用程序組件通常分布在不同物理地址的機器上,所以需要一種機制以方便客戶端使用者查找和引用J2EE組件及企業系統資源。在 J2EE體系中,使用JNDI技術定位各種對象,包括EJB對象、數據庫驅動對象、JDBC數據源對象及消息連接對象等。JNDI函數庫為應用程序提供了一個統一的接口來完成規范定義的目錄操作,如通過對象屬性來查找和定位該對象。