一. JavaEE的架構
二. JavaEE的核心技術簡介
三. JavaEE平臺中的角色
四. 當前流行的JavaEE平臺
五. JavaEE的應用
轉自:http://blog.chinaunix.net/uid-13967518-id-2858817.html
一.JavaEE架構:
JavaEE的運行環境定義了4種類型的應用組件:
l Applet客戶端
l Application客戶端
l Web組件
l EJB組件
二.JavaEE核心技術:13種
EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、……
EJB — JavaEE的基石:
l EJB (Enterprise JavaBeans) :
一個Java服務器端組件開發的規範,定義了一個用來開發面向對象分佈式應用組件的標準方法,軟件廠商根據它來實現EJB服務器。
Java程序員可以將一些EJB組件組合起來,從而方便、快捷地建構起分佈式應用程序。EJB規範在簡化分佈式應用程序開發複雜性方面也做了大量的工作,EJB程序員不必太擔心事務處理、多線程、資源管理等方面的問題,可以專注於支持應用所需的商業邏輯,而不用擔心周圍框架的實現問題。使用EJB可以使整個程序分塊明確,並且EJB可以使用其它EJB或JDBC等服務,從而增強了分佈式應用程序的可擴展性和性能;另外,EJB的使用增強了整個系統程序的可靠性、可管理性和可移植性。
l EJB組件
EJB分爲三種:會話EJB、實體EJB和消息驅動EJB
l EJB容器
是EJB組件的運行環境,爲部署的EJB組件提供各種服務(事務、安全、遠程客戶端的網絡發佈、資源管理等)。容器廠商也可以在容器或服務器中提供額外服務的接口。
l EJB服務器
管理EJB容器的高端進程或應用程序,並提供對系統服務的訪問。EJB服務器也可以提供廠商自己的特性,如優化的數據庫訪問接口,對其他服務(如CORBA服務)的訪問等。
CORBA體系結構:核心-ORB
CORBA技術:
l CORBA(Common Object Request Broker Architecture)是一個開發分佈式對象系統標準(規範),它獨立於平臺,也獨立於語言。由OMG制定。
l 在這個體系結構中,一個對象可以被本機上的客戶或遠程客戶通過方法激活來訪問。客戶(一個對象或應用)無須知道被調用對象(稱爲服務對象)的運行環境,也無須知道實現這個對象的編程語言,客戶只要知道服務對象的邏輯地址和提供的接口。
l 這種互操作性的關鍵是IDL(Interface Definition Language、接口定義語言),IDL說明對象接口中的方法,這些方法可以被其它對象(或應用)激活。
RMI技術:
l RMI(Remote Method Invoke)是一種被EJB使用的更底層的協議,正如其名字所表示的那樣,RMI協議調用遠程對象上方法,使用序列化方式在客戶端和服務器端的對象之間傳遞數據。
RMI和CORBA相比:
l 兩者的關鍵差別在於語言環境,Java RMI是一個分佈式對象計算的純Java解決方案(如,在Java RMI中,對象的接口用Java定義,而不是用IDL);
l 其次,CORBA沒有定義安全服務,而Java RMI繼承了Java的安全性;
l 再者,CORBA有不同的實現,不同的獨立軟件開發商的不同實現均有獨特性,這使得在不同平臺上的匹配比較困難,而且不是所有CORBA產品開發商都支持所有平臺,而幾乎所有平臺都支持Java虛擬機,因此Java RMI具有更高的可移植性。如果客戶對象和服務對象都基於Java虛擬機,那麼Java RMI是分佈對象計算的最好選擇。當然,IIOP(Internet Inter-ORB Protocol)已經提供了Java RMI和CORBA的互操作能力,而且兩者的發展有互相借鑑的趨勢。
JSP技術:
l JSP是服務器端的腳本語言,是以Java和Servlet爲基礎開發而成的動態網頁生成技術,它的底層實現是Java Servlet。
l JSP(Java Server Pages)頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端所請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。
l 特點:面向對象,跨平臺,和Servlet一樣穩定,可以使用Servlet提供的API,克服了Servlet的缺點。
l 應用:一般和JavaBeans結合使用,從而將界面表現和業務邏輯分離。
JSP和ASP的比較(一):
相似:
l 都是運行於服務器端的腳本語言,兩者都是動態網頁生成技術。
l 這兩項技術都使用HTML來決定網頁的版面,都是在HTML 代碼中混合某種程序代碼,由語言引擎解釋執行程序代碼。HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。
JSP和ASP的比較(二):
不同:
l JSP是由Sun推出的一項技術,是基於JavaServlet以及整個java體系的Web開發技術,利用這一技術可以建立先進、安全和跨平臺的動態網站。ASP是MS公司推出的技術,只能在MS的平臺上運行,無法實現跨平臺,也無安全性保障。
l ASP下的編程語言是 VBScript 之類的腳本語言,而JSP 使用的是Java。
l ASP 與 JSP 還有一個更爲本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在 ASP 下, VBScript 代碼被 ASP 引擎解釋執行;在 JSP 下,代碼被編譯成 Servlet 並由 Java 虛擬機執行,這種編譯操作僅在對 JSP 頁面的第一次請求時發生。
Java Servlet技術:
l Servlets(=Server +Applet):是一些運行於Web服務器端的Java小程序,用來擴展Web服務器的功能。
l Servlets用特定的Java解決方案替代了其它的Web服務器方編程模式(如:CGI,ISAPI等),因而繼承了Java的所有特性(跨平臺、多線程、OO)。
l Servlets可以嵌入在不同的Java Web服務器之中,因爲用來編寫Servlets的Servlet API對於服務器環境和協議沒有任何特殊的要求,所以Servlets具有很強的可移植性,也不像利用CGI程序等其它方式那樣具有性能侷限。
l Servlets也同樣使用HTTP協議與客戶端進行通訊,所以有時也稱Sevlets爲“HTTP Servlets”。
l Servlet是一種擴展Web服務器功能的簡單而相似的技巧,而且由於它是用Java編寫的,所以能夠訪問整個Java API庫,包括用於訪問企業數據庫的JDBC API。
Java Servlet和JSP的比較:
l 兩者都是基於Java的技術,所以都繼承了Java的所有特性(跨平臺、多線程、OO ),都可以使用Java強大的API。
l 兩者工作方式相似:JSP代碼先被JSP容器轉換爲Servlet代碼再編譯爲類。
l 兩者在JavaEE體系結構中的工作層次相同,都負責與客戶端的連接。
l Servlets是一些運行於Web服務器端的Java小程序;而JSP是腳本,編寫起來更簡單容易。
l Servlet主要用於從客戶端接收請求信息,而JSP主要負責將服務器端信息傳送到客戶端。
l 使用Servlet的真正意義在於:可以將界面設計和業務邏輯設計分離。
JavaBean技術:
l JavaBean是基於Java的組件模型,有點類似於Microsoft的COM組件。
l 在Java平臺中,通過JavaBean可以無限擴充Java程序的功能,通過JavaBean的組合可以快速的生成新的應用程序。
l 對於程序員來說,最好的一點就是JavaBean可以實現代碼的重複利用,另外對於程序的易維護性等等也有很重大的意義。
l JavaBean通過Java虛擬機(Java Virtual Machine)執行,運行JavaBean最小的需求是JDK1.1或者以上的版本。
l JavaBean傳統的應用在於可視化的領域,如AWT下的應用。自從Jsp誕生後,JavaBean更多的應用在了非可視化領域,在服務器端應用方面表現出來了越來越強的生命力。
JDBC技術:
l JDBC是一組API,定義了用來訪問數據源的標準Java類庫,使用這個類庫可以以一種標準的方法、方便地訪問數據庫資源。
l JDBC的目標是使應用程序開發人員使用JDBC可以連接任何提供了JDBC驅動程序的數據庫系統,這樣就使得程序員無需對特定的數據庫系統的特點有過多的瞭解,從而大大簡化和加快了開發過程。
l JDBC API爲訪問不同的數據庫提供了一種統一的途徑,象ODBC一樣,JDBC對開發者屏蔽了一些細節問題,
l JDBC對數據庫的訪問也具有平臺無關性。
XML技術:
l XML(Extensible Markup Language)是一種可以用來定義其它標記語言的語言,被用來在不同的商務過程中共享數據。
l XML的發展和Java是相互獨立的,但是它和Java具有的相同目標即平臺獨立性。通過將Java和XML的組合,可以得到一個完美的具有平臺獨立性的解決方案。
l JavaEE平臺全面支持和實施XML,這種強大的組合可使XML具備跨平臺的兼容性,甚至用於對XML代碼進行語法檢查和調試的工具也可與平臺無關。
l 因爲XML可實施獨立於平臺的數據,而JavaEE平臺則可實施獨立於平臺的解決方案,所以JavaEE技術和XML技術分別是企業開發的陰陽兩極。XML可通過移植的方式表現數據,因此就對Java技術的可移植性構成了補充。
JavaEE其它核心技術:
JNDI(Java Naming and Directory Interface)、
JMAPI(Java Management API)、
JTS/JTA(Java Transaction Service/API)、
JMS( Java Messaging Service)、
Java Security API。
l JavaEE核心技術中最常用的技術:
EJB、 JSP、Java Servlet、JavaBean、JDBC、……
l 開發大型應用:異構、分佈、數據交換
三.JavaEE平臺中的角色
在JavaEE平臺中規定了七種角色,這七種角色在開發JavaEE平臺及JavaEE應用中承擔各自的任務。
(1)JavaEE平臺開發商
(2)應用組件提供者
(3)應用組裝者
(4)應用發佈者
(5)系統管理員
(6)工具提供者
(7)系統組件提供者
(1)JavaEE平臺開發商
l JavaEE平臺開發者提供實現基於JavaEE規範的產品,包括運行JavaEE應用的容器、JavaEE平臺API。JavaEE平臺開發者必須提供JavaEE規範規定的應用組件到網絡協議的映射,提供JavaEE應用的發佈與管理工具。
(2)應用組件提供者
應用組件提供者開發JavaEE應用組件,包括JSP、Servlet及EJB等。
(3)應用組裝者
應用組裝者負責將應用組件提供者開發的JavaEE應用組件組裝爲JavaEE應用。
(4)應用發佈者
l 應用發佈者將組裝好的JavaEE應用發佈到JavaEE應用的容器中,配置其運行環境,並啓動JavaEE應用運行。
(5)系統管理員
l 系統管理員負責配置管理整個企業或組織的網絡與計算環境,其中包括運行在JavaEE平臺上的JavaEE應用。
(6)工具提供者
l 工具提供者提供JavaEE平臺之外的JavaEE應用開發、組裝、發佈及管理工具。
(7)系統組件提供者
系統組件提供者提供系統級的通用的組件,如連接企業現有ERP系統的適配器等。
四.當前流行的JavaEE平臺
l 目前市場上已經有許多成熟的實現JavaEE規範的產品,其中有的是商業公司的產品,而有的是開放源代碼的免費產品。
商業公司的產品
商業公司的產品除Interstage外,另外主要還有BEA WebLogic、IBM WebSphere、Oracle Application Server、Borland Enterprise Server、SUN iPlanet Application Server等。這些產品一般都包括一組完整的產品線,用來支持JavaEE應用從開發、組裝、發佈及管理的整個過程。
組成
(1)應用服務器
商業公司產品中的應用服務器一般都完全支持JavaEE規範的應用服務器,除包括Servlet容器、EJB容器外,還提供WEB Services、CORBA等服務。
(2)應用集成化開發環境
商業公司的產品提供支持開發JavaEE應用的集成開發環境,可以大大提高應用開發、調試的效率。
(3)JavaEE規範之外的工具
除了在JavaEE規範中規定的部分外,商業公司的產品一般還包括提供服務器負載均衡、安全控制、開發企業門戶等功能在內的工具。
開放源代碼的產品
l 開放源代碼的產品中有如Apache Tomcat及JBOSS等產品。這些產品不僅是免費的,而且能夠提供很好的功能和性能,因此也有很廣泛的應用。
l (1)Apache Tomcat
Apache Tomcat 是一個Servlet容器,它支持Servlet/JSP規範。有些商業公司的JavaEE平臺產品中使用它作爲自己應用服務器的Servlet容器,或者在JavaEE應用集成開發環境中作爲調試應用程序的服務器。
l (2)JBOSS
JBOSS 是一個EJB容器,但是因爲它是基於JMX微內核結構開發的,所以很容易與其它產品集成在一起使用,如可以很方便地將JBOSS和Tomcat集成在一起使用。另外,JBOSS還有配置簡單、應用熱發佈(不用停止服務器及應用的情況下發布或升級應用)等優點。
五.JavaEE的應用(一)
五.JavaEE的應用(二)
使用JavaEE開發企業應用要注意的問題:
結合本企業的實際情況選用最適當的技術,需要終合考慮企業規模、業務特徵、應用能力、預算費用、性能、開發週期、管理成本、維護成本等各種因素,還需要有一定的前瞻性。
JavaEE應用的現狀:
l JavaEE是成長最快的技術應用框架,全球87%的新應用是由JavaEE分佈式應用體系支撐的。最近,全球最大的ERP供應商SAP也宣佈選用JavaEE。
l 但在中國,由於受限於技術沒有普及、開發平臺複雜難用、人力資源稀缺等因素,JavaEE應用還沒有被客戶完全接受,離大規模應用還有很長的路要走。
JavaEE應用的展望:
l JavaEE本身是一個很好的技術,JavaEE體系結構提供中間層集成框架用來滿足沒有太多費用而又需要高可用性、高可靠性以及可擴展性的應用的需求。通過提供統一的開發平臺,JavaEE降低了開發多層應用的費用和複雜性,同時提供對現有應用程序集成強有力支持。通過技術人員、廠商以及用戶的共同努力,JavaEE一定能夠成爲用戶進行電子商務應用和信息化建設的首選方案