当前位置:文档之家› javaEE框架

javaEE框架

javaEE框架JAVAEE 的四层模型JAVAEE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。

事实上,sun设计JAVAEE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议――通常是某种数据库协议。

它使得重用业务逻辑和界面逻辑非常困难。

现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。

一个多层化应用能够为不同的每种服务提供一个独立的层,以下是JAVAEE典型的四层结构:运行在客户端机器上的客户层组件运行在JAVAEE服务器上的Web层组件运行在JAVAEE服务器上的业务逻辑层组件运行在EIS服务器上的企业信息系统(Enterprise information system)层软件JAVAEE应用程序组件JAVAEE应用程序是由组件构成的. JAVAEE组件是具有独立功能的软件单元,它们通过相关的J2EE 的四层模型JAVAEE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。

事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议――通常是某种数据库协议。

它使得重用业务逻辑和界面逻辑非常困难。

现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。

一个多层化应用能够为不同的每种服务提供一个独立的层,以下是JAVAEE典型的四层结构:运行在客户端机器上的客户层组件运行在JAVAEE服务器上的Web层组件运行在JAVAEE服务器上的业务逻辑层组件运行在EIS服务器上的企业信息系统(Enterprise information system)层软件JAVAEE应用程序组件JAVAEE应用程序是由组件构成的.JAVAEE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互。

JAVAEE说明书中定义了以下的JAVAEE组件:应用客户端程序和applets是客户层组件.Java Servlet和JavaServer Pages(JSP)是web层组件.Enterprise JavaBeans(EJB)是业务层组件.客户层组件JAVAEE应用程序可以是基于web方式的,也可以是基于传统方式的.web 层组件JAVAEE web层组件可以是JSP 页面或Servlets.按照J2EE规范,静态的HTML页面和Applets 不算是web层组件。

正如下图所示的客户层那样,web层可能包含某些JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的enterprise bean 来进行处理。

业务层组件业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean 进行处理. 下图表明了一个enterprise bean 是如何从客户端程序接收数据,进行处理(如果必要的话), 并发送到EIS 层储存的,这个过程也可以逆向进行。

有三种企业级的bean: 会话(session) beans, 实体(entity) beans, 和消息驱动(message-driven) beans. 会话bean 表示与客户端程序的临时交互. 当客户端程序执行完后, 会话bean 和相关数据就会消失. 相反, 实体bean 表示数据库的表中一行永久的记录. 当客户端程序中止或服务器关闭时, 就会有潜在的服务保证实体bean 的数据得以保存.消息驱动bean 结合了会话bean 和JMS的消息监听器的特性, 允许一个业务层组件异步接收JMS 消息.企业信息系统层企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统. 例如,JAVAEE 应用组件可能为了数据库连接需要访问企业信息系统我们就JAVAEE的各种组件、服务和API,进行更加详细的阐述,看看在开发不同类型的企业级应用时,根据各自需求和目标的不同,应当如何灵活使用并组合不同的组件和服务。

· ServletServlet是Java平台上的CGI技术。

Servlet在服务器端运行,动态地生成Web页面。

与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。

对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。

· JSPJSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。

从这一点来看,非常类似Microsoft ASP、PHP等技术。

借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP来合成。

在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。

· EJBEJB定义了一组可重用的组件:Enterprise Beans。

开发人员可以利用这些组件,像搭积木一样建立分布式应用。

在装配组件时,所有的Enterprise Beans都需要配置到EJB 服务器(一般的Weblogic、WebSphere等J2EE应用服务器都是EJB服务器)中。

EJB服务器作为容器和低层平台的桥梁管理着EJB容器,并向该容器提供访问系统服务的能力。

所有的EJB实例都运行在EJB容器中。

EJB容器提供了系统级的服务,控制了EJB的生命周期。

EJB容器为它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管理等技术环节,简化了商业逻辑的开发。

EJB中定义了三种Enterprise Beans:Session BeansEntity BeansMessage-driven Beans· JDBCJDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。

JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。

利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。

Java中的JDBC相当与Microsoft 平台中的ODBC(Open Database Connectivity)。

· JMSJMS(Java Message Service,Java消息服务)是一组Java应用接口,它提供创建、发送、接收、读取消息的服务。

JMS API定义了一组公共的应用程序接口和相应语法,使得Java应用能够和各种消息中间件进行通信,这些消息中间件包括IBM MQ-Series、Microsoft MSMQ及纯Java的SonicMQ。

通过使用JMS API,开发人员无需掌握不同消息产品的使用方法,也可以使用统一的JMS API来操纵各种消息中间件。

通过使用JMS,能够最大限度地提升消息应用的可移植性。

JMS既支持点对点的消息通信,也支持发布/订阅式的消息通信。

· JNDI由于JAVAEE应用程序组件一般分布在不同的机器上,所以需要一种机制以便于组件客户使用者查找和引用组件及资源。

在JAVAEE体系中,使用JNDI(Java Naming and Directory Interface)定位各种对象,这些对象包括EJB、数据库驱动、JDBC数据源及消息连接等。

JNDI API为应用程序提供了一个统一的接口来完成标准的目录操作,如通过对象属性来查找和定位该对象。

由于JNDI是独立于目录协议的,应用还可以使用JNDI访问各种特定的目录服务,如LDAP、NDS和DNS等。

· JTAJTA(Java Transaction API)提供了JAVAEE中处理事务的标准接口,它支持事务的开始、回滚和提交。

同时在一般的JAVAEE平台上,总提供一个JTS(Java Transaction Service)作为标准的事务处理服务,开发人员可以使用JTA 来使用JTS。

· JCAJCA( JAVAEE Connector Architecture)是JAVAEE 体系架构的一部分,为开发人员提供了一套连接各种企业信息系统(EIS,包括ERP、SCM、CRM等)的体系架构,对于EIS开发商而言,它们只需要开发一套基于JCA的EIS连接适配器,开发人员就能够在任何的JAVAEE应用服务器中连接并使用它。

基于JCA的连接适配器的实现,需要涉及J2EE 中的事务管理、安全管理及连接管理等服务组件。

· JMXJMX(Java Management Extensions)的前身是JMAPI。

JMX致力于解决分布式系统管理的问题。

JMX是一种应用编程接口、可扩展对象和方法的集合体,可以跨越各种异构操作系统平台、系统体系结构和网络传输协议,开发无缝集成的面向系统、网络和服务的管理应用。

JMX是一个完整的网络管理应用程序开发环境,它同时提供了厂商需要收集的完整的特性清单、可生成资源清单表格、图形化的用户接口;访问SNMP的网络API;主机间远程过程调用;数据库访问方法等。

· JAASJAAS(Java Authentication and Authorization Service)实现了一个Java版本的标准Pluggable Authentication Module(PAM)的框架。

JAAS可用来进行用户身份的鉴定,从而能够可靠并安全地确定谁在执行Java 代码。

同时JAAS还能通过对用户进行授权,实现基于用户的访问控制。

· JACCJACC(Java Authorization Service Provider Contract for Containers)在JAVAEE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,以便将各种授权认证服务器插入到JAVAEE产品中去。

相关主题