j2ee
企业开发应用程序标准平台
J2EE是Java 2 Platform Enterprise Edition的缩写。J2EE是在企业中开发应用程序的标准平台,是为在服务器上运行的企业应用程序而设计的。J2EE提供了API,开发人员可以通过这些API创建工作流并利用数据库Web服务等资源。J2EE由一组API组成。开发人员可以使用这些API构建业务计算应用程序。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)和安全服务等。
发展
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的架构,其中主要包含了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.3是一致的,J2EE1.4增加了对Web服务的支持,主要是Web ServiceJAX-RPCSAAJJAXR,还对EJB的消息传递机制进行了完善(EJB2.1),部署与管理工具的增强(JMX),以及新版本的Servlet2.4和JSP2.0使得Web应用更加容易。
特点
J2EE为搭建具有可伸缩性、灵活性、易维护性的企业系统提供了良好的机制。
J2EE能够开发部署在异构环境中的可移植程序。不管是大型机UNIX平台还是Windows操作系统,基于J2EE开发的应用程序不依赖任何特定操作系统、中间件、硬件。因此,设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,从项目开发整体来看,既加快了开发速度,又节省了完成整体方案所需的费用。
企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性,满足那些在他们系统上进行商业运作的大批客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64~256个处理器。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。
一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为Internet是全球化的、无处不在的,即使在夜间停机维护也可能造成严重损失。若是意外停机,更会造成灾难性后果。J2EE可以部署到可靠的操作环境中,因此支持长期的可用性。一些J2EE部署在Windows环境中,客户也可选择健壮性能更好的操作系统,如Sun Solaris、IBMOS/390等。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间,这是实时性要求很高的企业系统的理想选择。
由于企业必须适应新的商业需求,利用已有的企业信息系统投资,而不是重新制定全盘方案就变得很重要。也就是说,企业需要的是一个以渐进的(而不是激进的,全盘否定的)方式进行、可构建在已有系统之上的服务器端平台机制。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS、IBM Encina、Inprise VisiBroker和Netscape Application Server等。这之所以成为可能,是因为J2EE 拥有广泛的业界支持和一些重要的企业计算领域供应商的参与。
每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能继续发挥作用。
J2EE允许公司把一些通用的、烦琐的服务器端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商可以提供以下这些复杂的中间件服务:
(1)状态管理服务。让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。
(2)持续性服务。让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧、与数据库无关的应用程序,这种应用程序更易于开发与维护。
(3)分布式共享数据对象CACHE服务。让开发人员编制高性能的系统,极大提高整体部署的伸缩性
结构
J2EE的体系结构可以分为四层,如图1:J2EE体系结构图所示。
负责与用户直接交互,J2EE支持多种客户端,所以客户端既可以是WEB浏览器,也可以是专用的Java客户端。
本层是为了基于WEB的应用服务的,利用J2EE中的JSP与Java Servlet技术,可以响应客户端的请求,并向后访问封装有商业逻辑的组件。
本层主要封装了商务逻辑,完全企业计算机,提供了事务处理负载均衡、安全、资源连接等各种基本服务,程序在编写EJB时可以不关心这些基本的服务,集中注意力于商务逻辑的实现。
企业信息系统层包括了企业的现有系统(包括数据库系统文件系统),J2EE提供了多种技术以访问这些系统,如JDBC访问DBMS。
在J2EE规范中,J2EE平台包括有一整套的服务、应用编程接口和协议,可用于开发一般的多层应用和基于WEB的多层应用,是J2EE的核心和基础。它还提供了EJB、Java Servlets API、JSP和XML技术的全面支持等。
组件
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应用组件可能为了数据库连接需要访问企业信息系统。
规范
J2EE本身是一个标准,而不是一个现成的产品(虽然现在有很多符合J2EE标准的产品),它由以下几个部分组成:
(1)J2EE规范。该规范定义了J2EE平台的体系结构、平台角色及J2EE中每种服务和核心API的实现要求。它是J2EE应用服务器开发商的大纲。
(2)J2EE兼容性测试站点。Sun公司提供的一个测试J2EE应用服务器是否符合J2EE规范的站点,对通过该站点测试的产品,Sun公司将发放兼容性证书。
(3)J2EE参考实现。即J2EESDK,它既是Sun公司自己对J2EE规范的一个非商业性实现,又是为开发基于J2EE企业级应用系统原型提供的一个免费的底层开发环境
(4)J2EE实施指南。即BluePrints文档,该文档通过实例来指导开发人员如何去开发一个基于J2EE的多层企业应用系统
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事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器等提供事务服务。
参考资料
最新修订时间:2023-08-13 18:19
目录
概述
背景
参考资料