简介
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition)
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。
结构
这种基于组件,具有平台无关性的J2EE 结构使得J2EE 程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE 服务器以容器的形式为所有的组件类型提供后台服务. 因为你不用自己开发这种服务,所以你可以集中精力解决手头的业务问题。
容器和服务容器设置定制了J2EE服务器所提供得内在支持,包括安全,事务管理,JNDI(Java Naming and Directory Interface)寻址,远程连接等服务,以下列出最重要的几种服务:
J2EE安全(Security)模型可以让你配置 web 组件或enterprise bean,这样只有被授权的用户才能访问系统资源. 每一客户属于一个特别的角色,而每个角色只允许激活特定的方法。你应在enterprise bean的布置描述中声明角色和可被激活的方法。由于这种声明性的方法,你不必编写加强安全性的规则。
J2EE 事务管理(Transaction Management)模型让你指定组成一个事务中所有方法间的关系,这样一个事务中的所有方法被当成一个单一的单元. 当客户端激活一个enterprise bean中的方法,容器介入一管理事务。因有容器管理事务,在enterprise bean中不必对事务的边界进行编码。要求控制分布式事务的代码会非常复杂。你只需在布置描述文件中声明enterprise bean的事务属性,而不用编写并调试复杂的代码。容器将读此文件并为你处理此enterprise bean的事务。JNDI 寻址(JNDI Lookup)服务向企业内的多重名字和目录服务提供了一个统一的接口,这样应用程序组件可以访问名字和目录服务.
J2EE远程连接(Remote Client Connectivity)模型管理客户端和enterprise bean间的低层交互. 当一个enterprise bean创建后,一个客户端可以调用它的方法就象它和客户端位于同一虚拟机上一样.
生存周期管理(Life Cycle Management)模型管理enterprise bean的创建和移除,一个enterprise bean在其生存周期中将会历经几种状态。容器创建enterprise bean,并在可用实例池与活动状态中移动他,而最终将其从容器中移除。即使可以调用enterprise bean的create及remove方法,容器也将会在后台执行这些任务。
数据库连接池(Database Connection Pooling)模型是一个有价值的资源。获取数据库连接是一项耗时的工作,而且连接数非常有限。容器通过管理连接池来缓和这些问题。enterprise bean可从池中迅速获取连接。在bean释放连接之后可为其他bean使用。
容器类型
J2EE应用组件可以安装部署到以下几种容器中去:
EJB 容器管理所有J2EE 应用程序中企业级bean 的执行. enterprise bean 和它们的容器运行在J2EE 服务器上.
Web 容器管理所有J2EE 应用程序中JSP页面和Servlet组件的执行. Web 组件和它们的容器运行在J2EE 服务器上. 应用程序客户端容器管理所有J2EE应用程序中应用程序客户端组件的执行. 应用程序客户端和它们的容器运行在J2EE 服务器上. Applet 容器是运行在客户端机器上的web浏览器和 Java 插件的结合.。
组件
J2EE平台由一整套服务(Services)、 应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种 技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):JDBC(Java Database Connectivity)JDBC API为访问不同的 数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性。JNDI(Java Name and Directory Interface)
EJB(Enterprise JavaBean)J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个 框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的 容器进行交互作用。 容器负责提供公用的服务,例如 目录服务、 事务管理、安全性、资源缓冲池以及 容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。RMI(Remote Method Invoke)Java IDL/CORBA在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java 对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。JSP(Java Server Pages)Java ServletServlet是一种小型的Java 程序,它扩展了Web 服务器的功能。作为一种 服务器端的应用,当被请求时开始执行,这和CGI Perl 脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML 代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。XML(Extensible Markup Language)XML是一种可以用来定义其它 标记语言的语言。它被用来在不同的商务过程中共享数据。
JMS(Java Message Service)JMS是用于和面向 消息的中间件相互通信的 应用程序接口(API)。它既支持 点对点的域,又支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的 消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的 后台系统相集成。JTA(Java Transaction Architecture)JTA定义了一种标准的API,应用系统由此可以访问各种 事务监控。JTS(Java Transaction Service):JTS是CORBA OTS 事务监控的基本的实现。JTS规定了 事务管理器的实现方式。该 事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS 事务管理器为 应用服务器、 资源管理器、独立的应用以及通信资源管理器提供了事务服务。JavaMailJAF(JavaBeans Activation Framework)