一、J2EE定义
J2EE 的目标是用来支持以构件化的方法开发、部署、管理多层结构的分布式企业应用,尤其是基于 Web 的多层应用,J2EE 围绕这一目标提供了一种统一的、 开放标准的多层平台。
J2EE 为开发人员提供的是一种工业标准,而不是某个厂商自己的产品,尽管 J2EE 规范是由 Sun 负责制定和发布的,但它确实是一套业界普遍支持和采纳的开放标准,规范本身也是由很多个大型厂商,比如BEA、 IBM 等来共同推动的。基于一种工业标准所开发的应用一般不会局限于某个厂商特定的应用服务器产品,开发人员无须额外的开销即可获得较高的可移植性。同时,遵循统一规范的不同产品之间的竞争环境也有利于提高产品的质量。
J2EE 典型地支持三层/多层分布式应用的开发与运行, J2EE 平台的执行模型描述了基于 J2EE 的应用系统在运行时的基本结构:
从构成系统的构件来讲:
客户层:
可以包含 Applet 和 Application Client 两种构件;类似使用 Applet 的基于浏览器的客户端通常称为瘦客户端(thin client),因为这种客户端不需要在客户机器上安装任何应用代码,只需一个浏览器;而使用独立的客户端程序的客户端称之为胖客户端( thickclient),因为其需要在每一个客户端机器上安装客户端程序。J2EE 中的胖客户端通常是一个独立的 Java 程序。
中间层:
应用中可以包含像 servlet、 JSP这样的 Web 构件,也可以包含 EJB 构件。一般又会把 J2EE 应用的核心中间层划分成包含Web构件的 Web 子层和包含 EJB 构件的 EJB 子层。
数据层:
包含应用使用的各种企业数据,这些数据,有些存储在数据库中,有些可能包含在企业的原有系统中,比如企业中可能已经有一套基于SAP 的 ERP 系统,其中的数据要被新开发的这套 J2EE 系统使用。
在 J2EE平台中容器体系结构讲:
构成 J2EE应用系统的构件都运行在某种 J2EE 容器中。
客户层:
大家经常使用的浏览器就是一种常用的 Applet 容器。
中间层:
web 容器和 EJB 容器,分别为 web 构件和 EJB构件提供运行环境。
容器除了为构件提供公共服务之外,还为构件之间的交互或者是构件访问后台数据提供了基本的支持,包括客户端与中间层Web 构件或 EJB 构件的交互、 Web 构件与 EJB 构件的交互、 以及构件访问数据层数等。
二、提供支持
2EE 平台为开发企业级应用提供三个方面的技术支持,包括应用构件、公共服务与通信三个方面。
对构件的支持:
在 J2EE 中, 应用构件是由开发人员实现,用来构成应用系统的软件模块,这和软件系统的一般意义上的
构件含义相同;另外,J2EE构件都是运行在 J2EE 平台之上的, 更确切地讲,这些构件都是包含在某一类容器中的。J2EE中的应用构件可分为两大类:客户端构件和服务端构件。客户端构件又包含 Applets 和ApplicationClients; 服务端构件又包含 Web 构件 ( JSP、Servlets)和 EJB ( Enterprise Java Bean)
构件。
对服务的支持:
服务是指 J2EE 应用构件所使用的功能,包括安全,事务管理,JNDI(Java Naming and Directory Interface)寻址,远程连接等服务这些功能由J2EE 平台提供商实现。
对通信的支持:
要用来支持构件之间的交互,通信机制也是由容器来提供的。
三、规范
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述。
按构成系统的三个层次分:
客户端层:
1.JSP:
JSP页面由HTML(标准通用标记语言下的一个应用)代码和嵌入其中的Java代码组成.服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端浏览器.
服务端层:
1.Java Servlet:
Servlet 是一种小型的Java程序,它扩展了web服务器的功能.作为一种服务器的应用,当被请求时开始执行,
这和CGIPerl脚本很相似.Servlet提供的功能大多和JSP类似,不过实现的方式不同.JSP通常是大多数的HTML代码中嵌入少量的Java代码,而servlet全部由java写成并且生成HTML.
2.JTA
JTA定义了一种标准API,应用程序由此可以访问各种事务监控.
3.JTS
JTS是CORBA OTS事务监控的基本实现.JTS规定了事务管理的实现方法.该事务管理器是在高层支持java
TransactionAPI规范,并且在较低层次实现OMG OTS specification和Java印象.JTS事务管理器为应用程序服务器,资源管理器,独立的应用以及同学资源管理器提供了事务服务.
4.EJB(Enterprise JavaBean)
J2EE技术之所以赢得广泛重视的原因之一就是EJB.它提供了一个框架来开发和实施分布式商务逻辑,由此很
显著的简化了具有可伸缩性和高度复杂的企业级应用程序的开发.EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用.容器负责提供公用的服务,例如目录服务,事务管理,安全性,资源缓冲池以及容错性.但这里值得注意的是,EJB并不是实现J2EE的唯一路径.正式由于J2EE的开放性,使得所有的厂商能够以一种和EJB平行的方式来达到同样的目地.
数据层:
1.JDBC(Java Database Connectivity)
JDBC API为访问不同数据库提供了统一的路径,像ODBC一样,JDBC开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性.
构件交互:
2.JNDI(Java Name and Directory Interface)
JNDI API 被用于执行名字和目录服务.它提供了一致的模型来存取和操作企业级的资源DNS和LDAP,本地文件系统,或应用服务器中的对象.
3.RMI(Remote Method Invoke)
远程方法请求,RMI协议调用远程对象上的方法.它使用了序列化的方式在客户端和服务器之间传递数据.RMI是一种被EJB使用的更底层的协议.
4.JMS
MS是用于和面向对象消息的中间件相互通信的应用程序接口.它既支持点对点的域,有支持发布/订阅类型的域,并且提供了下列类型的支持:消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持.JMS还提供了另一种方式来对新系统和旧后台系统相互集成.
5.JavaMail
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类.不仅支持SMTP服务器,也支持IMAP服务器.
6.JAF(JavaBeans Activation Framework)
JavaMail利用JAF来处理MIME编码的邮件附件.MIME的字节流可以被转换成java对象,大多数应用都可以不需要直接使用JAF。
基本概念定义
1.Java IDL/CORBA(通用对象请求代理架构是软件构建的一个标准 )
在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起.他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并和其它ORB一起展开的CORBA对象客户.后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用程序和旧的系统集合在一起.
2.XML
XML(标准通用标记语言的子集)是一种可以用来定其它标记语言的语言.它被用来在不同的商务过程中共享数据.XML的发展和java是相互独立的,但是,它和java具有的相同目标是平台独立性.