複製鏈接
請複製以下鏈接發送給好友

j2ee

鎖定
J2EE是Java 2 Platform Enterprise Edition的縮寫。J2EE是在企業中開發應用程序的標準平台,是為在服務器上運行的企業應用程序而設計的。J2EE提供了API,開發人員可以通過這些API創建工作流並利用數據庫Web服務等資源。J2EE由一組API組成。開發人員可以使用這些API構建業務計算應用程序 [5]  J2EE是市場上主流的企業級分佈式應用平台的解決方案 [1] 
中文名
Java 2 平台企業版
外文名
Java 2 Platform Enterprise Edition
所屬學科
計算機科學
簡    稱
J2EE

目錄

j2ee背景

Java於1995年由Sun公司推出,當時它的主要用途是製作產生動態網頁Applet。後來,人們發現Java的“一次開發,多次運行”,純面向對象的特性,垃圾回收機制和內置安全特別適合於開發企業應用系統。於是,企業應用開發商紛紛在Java標準版的基礎上各自擴展出許多企業應用API,其結果導致基於Java的企業應用呈爆炸式增長。但是各企業系統API之間又不能相互兼容,破壞了Java的平台獨立性。鑑於此,Sun公司聯合IBMOracleBEA等大型企業應用系統開發商於1999年共同制訂了一個基於Java組件技術的企業應用系統開發規範,該規範定義了一個多層企業信息系統的標準平台,旨在簡化和規範企業應用系統的開發和部署。這一規範和其定義的平台就構成了J2EE。它定義了基於組件的方式設計、開發、組裝和部署企業應用系統的各個組成部分。同時,J2EE規範定義了分佈式多層應用系統模型、組件重用策略、一體化的安全模型以及靈活的事務控制策略等,使得獨立軟件提供商(ISV)能夠以比以前更快的速度向市場推出適應用户的解決方案。
J2EE是一套針對企業級分佈式應用的計算環境。它定義了動態Web頁面功能(Servlet和Jsp)、商業組件(EJB)、異步消息傳輸機制(JMS)、名稱和目錄定位服務(JNDI)、數據庫訪問(JDBC)、與子系統的連接器(JCA)和安全服務 [2] 

j2ee發展

1997年Servlet技術的產生以及緊接着JSP的產生,為Java對抗PHP、ASP等服務器端語言帶來了籌碼。1998年,Sun發佈了EJBI.0標準,至此J2EE平台的三個核心技術都已經出現。於是,1999年,Sun正式發佈了J2EE的第一個版本,並於1999年底發佈了J2EE1.2,在2001年發佈了J2EE1.3,在2003年年底發佈了J2EE1.4。
  • J2EE1.3
J2EE1.3的架構,其中主要包含了Applet 容器、Application Client容器、Web容器和EJB容器,並且包含了Web Component,EJB Component,Application Client Component,以JMS,JAASJAXP,JDBC,JAFJavaMail,JTA等技術做為基礎。
J2EE1.3中引入了幾個值得注意的功能:Java消息服務(定義了JMS的一組APl),J2EE連接器技術(定義了擴展J2EE服務到非J2EE應用程序的標準),XML解析器的一組Java APl,Servlet2.3,JSPl.2也都進行了性能擴展與優化,全新的CMP組件模型MDB(消息Bean)。
  • J2EE1.4
J2EE1.4大體上的框架和J2EE1.3是一致的,J2EE1.4增加了對Web服務的支持,主要是Web ServiceJAX-RPCSAAJJAXR,還對EJB的消息傳遞機制進行了完善(EJB2.1),部署與管理工具的增強(JMX),以及新版本的Servlet2.4和JSP2.0使得Web應用更加容易 [3] 

j2ee特點

J2EE為搭建具有可伸縮性、靈活性、易維護性的企業系統提供了良好的機制。
  • 支持異構環境
J2EE能夠開發部署在異構環境中的可移植程序。不管是大型機UNIX平台還是Windows操作系統,基於J2EE開發的應用程序不依賴任何特定操作系統、中間件、硬件。因此,設計合理的基於J2EE的程序只需開發一次就可部署到各種平台。這在典型的異構企業計算環境中是十分關鍵的。J2EE標準也允許客户訂購與J2EE兼容的第三方的現成的組件,把他們部署到異構環境中,從項目開發整體來看,既加快了開發速度,又節省了完成整體方案所需的費用。
  • 可伸縮性
企業必須要選擇一種服務器端平台,這種平台應能提供極佳的可伸縮性,滿足那些在他們系統上進行商業運作的大批客户。基於J2EE平台的應用程序可被部署到各種操作系統上。例如可被部署到高端UNIX與大型機系統,這種系統單機可支持64~256個處理器。J2EE領域的供應商提供了更為廣泛的負載平衡策略,能消除系統中的瓶頸,允許多台服務器集成部署。這種部署可達數千個處理器,實現可高度伸縮的系統,滿足未來商業應用的需要。
一個服務器端平台必須能全天候運轉以滿足公司客户、合作伙伴的需要。因為Internet是全球化的、無處不在的,即使在夜間停機維護也可能造成嚴重損失。若是意外停機,更會造成災難性後果。J2EE可以部署到可靠的操作環境中,因此支持長期的可用性。一些J2EE部署在Windows環境中,客户也可選擇健壯性能更好的操作系統,如Sun Solaris、IBMOS/390等。最健壯的操作系統可達到99.999%的可用性或每年只需5分鐘停機時間,這是實時性要求很高的企業系統的理想選擇。
  • 保留現存的IT資產
由於企業必須適應新的商業需求,利用已有的企業信息系統投資,而不是重新制定全盤方案就變得很重要。也就是説,企業需要的是一個以漸進的(而不是激進的,全盤否定的)方式進行、可構建在已有系統之上的服務器端平台機制。J2EE架構可以充分利用用户原有的投資,如一些公司使用的BEA Tuxedo、IBM CICS、IBM Encina、Inprise VisiBroker和Netscape Application Server等。這之所以成為可能,是因為J2EE 擁有廣泛的業界支持和一些重要的企業計算領域供應商的參與。
每一個供應商都對現有的客户提供了不用廢棄已有投資,進入可移植的J2EE領域的升級途徑。由於基於J2EE平台的產品幾乎能夠在任何操作系統和硬件配置上運行,現有的操作系統和硬件也能繼續發揮作用。
  • 高效的開發
J2EE允許公司把一些通用的、煩瑣的服務器端任務交給中間件供應商去完成。這樣開發人員可以集中精力在如何創建商業邏輯上,相應地縮短了開發時間。高級中間件供應商可以提供以下這些複雜的中間件服務:
(1)狀態管理服務。讓開發人員寫更少的代碼,不用關心如何管理狀態,這樣能夠更快地完成程序開發。
(2)持續性服務。讓開發人員不用對數據訪問邏輯進行編碼就能編寫應用程序,能生成更輕巧、與數據庫無關的應用程序,這種應用程序更易於開發與維護。
(3)分佈式共享數據對象CACHE服務。讓開發人員編制高性能的系統,極大提高整體部署的伸縮性 [4] 

j2ee結構

圖1:J2EE體系結構圖 圖1:J2EE體系結構圖
J2EE的體系結構可以分為四層,如圖1:J2EE體系結構圖所示。
  • 客户端層
負責與用户直接交互,J2EE支持多種客户端,所以客户端既可以是WEB瀏覽器,也可以是專用的Java客户端。
  • 服務器端組件層
本層是為了基於WEB的應用服務的,利用J2EE中的JSP與Java Servlet技術,可以響應客户端的請求,並向後訪問封裝有商業邏輯的組件。
  • EJB層
本層主要封裝了商務邏輯,完全企業計算機,提供了事務處理負載均衡、安全、資源連接等各種基本服務,程序在編寫EJB時可以不關心這些基本的服務,集中注意力於商務邏輯的實現。
  • 企業信息系統層
企業信息系統層包括了企業的現有系統(包括數據庫系統文件系統),J2EE提供了多種技術以訪問這些系統,如JDBC訪問DBMS。
在J2EE規範中,J2EE平台包括有一整套的服務、應用編程接口和協議,可用於開發一般的多層應用和基於WEB的多層應用,是J2EE的核心和基礎。它還提供了EJB、Java Servlets API、JSP和XML技術的全面支持等。 [1] 

j2ee組件

J2EE應用程序是由組件構成的。J2EE組件是具有獨立功能的軟件單元,它們通過相關的類和文件組裝成J2EE應用程序,並與其他組件交互。J2EE規範中定義了下列J2EE組件:
(1)客户層組件,包括客户端應用程序和Applets;
(2)Web層組件,包括Java Servlet和Java Server Pages(JSP);
(3)業務層組件,即Enterprise JavaBeansEJB)。
  • 客户層組件
J2EE應用程序可以是基於Web方式的,也可以是基於傳統方式的。
Web層組件:J2EE Web層組件可以是JSP頁面或Servlets。根據J2EE規範,靜態的HTML頁面和Applets都不是Web層組件。Web層可能包含某些JavaBean對象來處理用户輸入,並把輸入發送給運行在業務層上的enterprise bean來進行處理。
  • 業務層組件
業務層的代碼邏輯用來滿足銀行、零售、金融等特殊商務領域的需要,由運行在業務層上的enterprise bean進行處理。
有三種企業級的bean:會話(session)beans、實體(entity)beans和消息驅動(message-driven)beans。會話bean表示與客户端程序的臨時交互,當客户端程序執行完畢,會話bean和相關數據就會消失。相反,實體bean表示數據庫表中一行永久的記錄,當客户端程序中止或服務器關閉時,就會有潛在的系統服務保證實體bean的數據得以保存。消息驅動bean結合了會話bean和JMS的消息監聽器的特性,允許一個業務層組件異步接收JMS消息。
  • 企業信息系統層
企業信息系統層處理企業信息系統軟件,包括企業基礎建設系統,如企業資源計劃(ERP)、大型機事務處理數據庫系統和其他的遺留信息系統等。例如,J2EE應用組件可能為了數據庫連接需要訪問企業信息系統 [4] 

j2ee規範

J2EE本身是一個標準,而不是一個現成的產品(雖然現在有很多符合J2EE標準的產品),它由以下幾個部分組成:
(1)J2EE規範。該規範定義了J2EE平台的體系結構、平台角色及J2EE中每種服務和核心API的實現要求。它是J2EE應用服務器開發商的大綱。
(2)J2EE兼容性測試站點。Sun公司提供的一個測試J2EE應用服務器是否符合J2EE規範的站點,對通過該站點測試的產品,Sun公司將發放兼容性證書。
(3)J2EE參考實現。即J2EESDK,它既是Sun公司自己對J2EE規範的一個非商業性實現,又是為開發基於J2EE企業級應用系統原型提供的一個免費的底層開發環境
(4)J2EE實施指南。即BluePrints文檔,該文檔通過實例來指導開發人員如何去開發一個基於J2EE的多層企業應用系統 [2] 
J2EE平台由一整套服務(services)、應用程序接口(APIs)和協議構成,它對開發基於Web的多層應用提供了功能支持,下面對J2EE中的主要技術規範進行簡單的描述。
1.JDBC(Java Database Connectivity)
JDBCAPI為訪問不同的數據庫提供了一種統一的途徑,像ODBC一樣,JDBC對開發者屏蔽了一些細節問題。另外,JDBC對數據庫的訪問也具有平台無關性。
2.JNDI(Java Name and Directory Interface)
JNDIAPI用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源,如DNS和LDAP、本地文件系統應用服務器中的對象。
3.EJB(Enterprise JavaBean)
EJB技術是在Java Bean本地組件技術基礎上開發的面向服務器端分佈應用的組件技術。EJB是Sun推出的J2EE規範的一部分,自從J2EE推出之後,得到了廣泛的發展,已經成為應用服務器端的標準技術。JB提供了一個開發和實施分佈式商務邏輯的框架,大大地簡化了具有可伸縮性和高度複雜的企業級應用的開發。EJB規範定義了EJB組件如何與EJB容器(container)進行交互。容器負責提供公用服務,如目錄服務、事務管理、安全性、資源緩衝池以及容錯性等。但EJB並不是實現J2EE的唯一途徑。正是由於J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。
EJB基於Java語言,提供了基於Java二進制字節代碼的重用方式。EJB技術的推出,使得用Java基於組件技術開發服務器端分佈式應用成為可能。從企業應用多層結構的角度來看,EJB是業務邏輯層中間件技術。與JavaBeans的關鍵不同是它提供了事務處理的能力。
4.JSP(Java Server Pages)
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客户端所請求後對頁面中的Java代碼進行處理,然後將生成的HTML頁面返回給客户端的瀏覽器。
5.Java Servlet Servlet是一種小型的Java程序,它擴展了Web服務器的功能。
作為一種服務器端的應用,和CGI腳本類似,當被請求時開始執行。Servlet提供的功能與JSP類似,但實現方式不同。JSP通常在大量的HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成並且生成HTML
6.RMI/IIOP
RMI(Remote Method Invocation,遠程方法調用)是Java的分佈式對象標準,允許位於不同主機上的Java類之間進行通信。Java RMI是個應用程序編程接口(API),還是個分佈對象模型;使用RMI,Java程序員可以像調用本地操作一樣進行網絡調用,從而很容易地構造分佈式系統。IIOP協議本來是CORBA的一種傳輸協議,和RMI結合在一起,使得整合非Java對象變得更加簡單。
7.Java IDL/CORBA
在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象並在CORBAORB中部署,或者創建 Java類作為和其他ORB一起部署的CORBA對象的客户。後者可用於遺留系統的集成。
8.XML(Extensible Markup Language)
XML是一種可以用來定義其他標記語言的語言。它被用來在不同的商務過程中共享數據。XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平台獨立性。Java和XML的組合構成一個完美的具有平台獨立性的解決方案。
9.JavaMail
JavaMail是用於存取郵件服務器的API,它提供了一套郵件服務器的抽象類。JavaMail同時支持SMTP服務器和IMAP服務器。
10.JAF(JavaBeans Activation Framework,JavaBeans 激活框架)
JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節流可以被轉換成Java對象,或者轉換自Java對象。大多數應用不需要直接使用JAF。
11.JMS(Java Message Service)
JMS是用於和麪向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的域,又支持發佈/訂閲(publish/subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞、事務型消息的傳遞、一致性消息和具有持久性的訂閲者支持。JMS還提供了與遺留後台系統集成的一種方式。
12.JTA(Java Transaction Architecture,Java事務構架)
JTA定義了一種標準的API,應用系統由此可以訪問各種事務監控。
13.JTS(Java Transaction Service,Java事務服務)
JTS是CORBAOTS事務監控的基本實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支持 Java Transaction API(JTA)規範,在系統底層實現OMGOTS規範的Java映像。JTS事務管理器為應用服務器、資源管理器、獨立的應用以及通信資源管理器等提供事務服務 [4] 
參考資料
  • 1.    張俊蘭等編.軟件工程[M].西安:西安交通大學出版社,2009.04
  • 2.    國家税務總局教材編寫組編.全國税務系統幹部教育培訓系列教材 信息技術 中級[M].北京:中國税務出版社,2016.03
  • 3.    楊紀成主編.互聯網軟件應用與開發 2006年版:經濟科學出版社,2006年8月
  • 4.    姚鶴嶺著.GIS WEB服務研究[M].鄭州:黃河水利出版社,2007.09
  • 5.    What is J2EE?  .educative.2023-08-05[引用日期2023-08-13]