http://www.jdon.com/idea/j2eebasic.htm
J2EE容器分為WEB容器和EJB容器,Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器等,其中Web容器直接使用Tomcat實現(xiàn)的。所以你開發(fā)的Web應(yīng)用程序可以在上面兩種容器運行,而你開發(fā)的Web+EJB應(yīng)用則只可以在JBoss服務(wù)器上運行,商業(yè)產(chǎn)品Websphere/Weblogic等和JBoss屬于同一種性質(zhì)。
J2EE容器也稱為J2EE服務(wù)器,大部分時它們概念是一致的。
http://www.douzhe.com/jerry/archive/archive1_cn.htm
容器:充當中間件的角色
WEB容器:給處于其中的應(yīng)用程序組件(JSP,SERVLET)提供一個環(huán)境,使JSP,SERVLET直接更容器中的環(huán)境變量接口交互,不必關(guān)注其它系統(tǒng)問題。主要有WEB服務(wù)器來實現(xiàn)。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規(guī)范中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務(wù)器就叫做J2EE中的WEB容器。
EJB容器:Enterprise Java bean 容器。更具有行業(yè)領(lǐng)域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現(xiàn)成的接口來獲得系統(tǒng)級別的服務(wù)。例如郵件服務(wù)、事務(wù)管理。
WEB容器和EJB容器在原理上是大體相同的,更多的區(qū)別是被隔離的外界環(huán)境。WEB容器更多的是跟基于HTTP的請求打交道。而EJB容器不是。它是更多的跟數(shù)據(jù)庫、其它服務(wù)打交道。但他們都是把與外界的交互實現(xiàn)從而減輕應(yīng)用程序的負擔。例如SERVLET不用關(guān)心HTTP的細節(jié),直接引用環(huán)境變量session,request,response就行、EJB不用關(guān)心數(shù)據(jù)庫連接速度、各種事務(wù)控制,直接由容器來完成。
RMI/IIOP:遠程方法調(diào)用/internet對象請求中介協(xié)議,他們主要用于通過遠程調(diào)用服務(wù)。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務(wù),我們可以在本地計算機上實現(xiàn)對其直接調(diào)用。當然這是要通過一定的規(guī)范才能在異構(gòu)的系統(tǒng)之間進行通信。RMI是Java特有的。
JNDI:Java命名目錄服務(wù)。主要提供的功能是:提供一個目錄系統(tǒng),讓其它各地的應(yīng)用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應(yīng)用程序的功能。
JMS:Java消息服務(wù)。主要實現(xiàn)各個應(yīng)用程序之間的通訊。包括點對點和廣播。
JavaMAIL:Java郵件服務(wù)。提供郵件的存儲、傳輸功能。他是Java編程中實現(xiàn)郵件功能的核心。相當MS中的EXCHANGE開發(fā)包。
JTA:Java事務(wù)服務(wù)。提供各種分布式事務(wù)服務(wù)。應(yīng)用程序只需調(diào)用其提供的接口即可。
JAF:Java安全認證框架。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實現(xiàn)自己的個性安全控制策略。
EAI:企業(yè)應(yīng)用集成。是一種概念,從而牽涉到好多技術(shù)。J2EE技術(shù)是一種很好的集成實現(xiàn)。
EJB容器
EJB容器用來容納業(yè)務(wù)邏輯,并為業(yè)務(wù)邏輯截取請求。EJB容器支持EJB訪問JMS、JAAS、JTA、JavaMail、JAXP、JDBC和連接器(Connector)。
Web容器
Web容器截取通過HTTP、FTP、SMTP或其他協(xié)議發(fā)送的請求。Web應(yīng)用容器為Servlet和JSP頁面提供的資源與EJB容器提供的資源相同。
應(yīng)用客戶端容器
客戶端應(yīng)用是獨立的Java應(yīng)用,它們在遠程的獨立JVM上運行(與Web容器和EJB容器所運行的JVM不同)。應(yīng)用客戶端容器為這些應(yīng)用截取請求。
運行在應(yīng)用客戶端容器上的程序非常類似于帶有main()方法的Java程序,不過,程序不再由JVM控制,而是由一個容器(也就是應(yīng)用客戶端容器)控制。
在應(yīng)用客戶端容器內(nèi)運行的程序能夠訪問遠程應(yīng)用服務(wù)器上的JAXP、JDBC、JMS和JAAS資源。
Applet容器
Applet容器是一個特殊的容器,它為在瀏覽器內(nèi)運行的Java程序截取請求。Applet容器不提供任何對其他資源(比如JDBC或JMS)的訪問。在Applet容器內(nèi)運行的Applet必須自己直接向應(yīng)用服務(wù)器請求資源(而不是把請求發(fā)送給容器,然后由容器發(fā)送請求給應(yīng)用服務(wù)器)。
對于Applet如何與EJB容器進行通信,EJB規(guī)范沒有作出任何規(guī)定,但J2EE規(guī)范有這方面的規(guī)定。對于那些想要直接使用EJB的Applet,J2EE規(guī)范要求它們使用HTTP隧道。許多應(yīng)用服務(wù)器提供某種形式的HTTP隧道,支持Applet直接使用EJB。
posted on 2006-10-18 10:05
Lizzie 閱讀(332)
評論(0) 編輯 收藏 所屬分類:
專業(yè)-Java