一、J2EE提出的背景
1、 企业级应用框架的需求
<clk></clk> 在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次再开发中都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了<nobr οncοntextmenu="return false;" id="clickeyekey2" οnmοusemοve="kwM(2);" οnmοuseοver="kwE(event,2, this);" οnclick="return kwC(event,2)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">自己</nobr>的通用模块服务。这些服务性的软件系列同陈为中间件。
2、 为了通用必须要提出规范,不然无法达到通用
<clk></clk> 在上面的需求基础之上,许多公司都开发了自己的中间件,但其与<nobr οncοntextmenu="return false;" id="clickeyekey0" οnmοusemοve="kwM(0);" οnmοuseοver="kwE(event,0, this);" οnclick="return kwC(event,0)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">用户</nobr>的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准<clk></clk>的概念。其实J2EE就是基于JAVA<nobr οncοntextmenu="return false;" id="clickeyekey4" οnmοusemοve="kwM(4);" οnmοuseοver="kwE(event,4, this);" οnclick="return kwC(event,4)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">技术</nobr>的一系列标准。
注:中间件的解释 中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发<clk></clk>者不必为更多系统问题忧虑,而直接关注该应用<nobr οncοntextmenu="return false;" id="clickeyekey6" οnmοusemοve="kwM(6);" οnmοuseοver="kwE(event,6, this);" οnclick="return kwC(event,6)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">程序</nobr>在解决问题上的能力 。我们后面说到的容器的概念就是中间件的一种。
二、相关名词解释
容器:充当中间件的角色
WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
<clk></clk> EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种<nobr οncοntextmenu="return false;" id="clickeyekey1" οnmοusemοve="kwM(1);" οnmοuseοver="kwE(event,1, this);" οnclick="return kwC(event,1)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">管理</nobr>功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。
<clk></clk> WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接<nobr οncοntextmenu="return false;" id="clickeyekey3" οnmοusemοve="kwM(3);" οnmοuseοver="kwE(event,3, this);" οnclick="return kwC(event,3)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">引用</nobr>环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。
<clk></clk> RMI/IIOP:远程方法调用/internet对象请求中介协议,他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过<nobr οncοntextmenu="return false;" id="clickeyekey16" οnmοusemοve="kwM(16);" οnmοuseοver="kwE(event,16, this);" οnclick="return kwC(event,16)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">一定</nobr>的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。
JNDI:JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
JMS:JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。
JAVAMAIL:JAVA邮件服务。提供邮件的存储<clk></clk>、传输功能。他是JAVA<nobr οncοntextmenu="return false;" id="clickeyekey7" οnmοusemοve="kwM(7);" οnmοuseοver="kwE(event,7, this);" οnclick="return kwC(event,7)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">编程</nobr>中实现邮件功能的核心。相当MS中的EXCHANGE开发包。
JTA:JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。
JAF:JAVA安全认证<clk></clk>框架。提供一些安全控制方面的框架。让<nobr οncοntextmenu="return false;" id="clickeyekey8" οnmοusemοve="kwM(8);" οnmοuseοver="kwE(event,8, this);" οnclick="return kwC(event,8)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">开发</nobr>者通过各种部署和自定义实现自己的个性安全控制策略。
EAI:企业应用集成。是一种概念,从而牵涉到好多技术。J2EE技术是一种很好的集成实现。
三、J2EE的优越性
1、 基于JAVA 技术,平台无关性表现突出
2、 开放的标准,许多大型公司已经实现了对该规范支持的应用服务器。如BEA ,IBM,ORACLE等。
<clk></clk> 3、 提供相当<nobr οncοntextmenu="return false;" id="clickeyekey5" οnmοusemοve="kwM(5);" οnmοuseοver="kwE(event,5, this);" οnclick="return kwC(event,5)" target="_blank" οnmοuseοut="kwL(event,this)" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline">专业</nobr>的通用软件服务。
4、 提供了一个优秀的企业级应用程序框架,对快速高质量开发打下基础
四、现状
J2EE是由SUN 公司开发的一套企业级应用规范。现在最高版本是1.4。支持J2EE的应用服务器有IBM WEBSPHERE APPLICATION SERVER,BEA WEBLOGIC SERVER,JBOSS,ORACLE APPLICATION SERVER,SUN ONE APPLICATION SERVER 等。