今天,我们将在上一篇文章之后继续介绍J2EE的体系结构、组件和API等知识。 4. J2EE四层模型J2EE使用多层分布式APP应用模型,APP应用逻辑按功能划分为组件,每个APP应用组件根据所在层分布在不同的机器上。 实际上,sun设计J2EE的最初目的是为了解决双层模型(客户端/服务器)的弊端。
在传统的模式中,客户端因承担过多的作用而变得庞大。 在这种模式下,第一次部署很容易,但很难升级和改进,可扩展性也不够。 此外,它通常基于专有协议,通常是数据库协议。
重用业务逻辑和接口逻辑非常困难。 目前,J2EE的多层企业APP应用模型将双层模型的不同级别划分为多层。 多层APP应用程序为每个服务提供独立的层。 以下是J2EE的典型四层结构
在客户端计算机上运行的客户层组件J2EE服务器上运行的Web层组件J2EE服务器上运行的业务逻辑层组件EIS服务器上运行的企业信息系统(enterprise inffinistration
5.J2EE APP应用程序组件J2EE APP应用程序由组件组成。 J2EE组件是一个具有独立功能的软件单元,通过关联的类和文件组装到J2EE APP应用程序中,并与其他组件进行交互。 J2EE说明书定义了以下J2EE组件:
客户端APP应用程序和小程序是客户群的组成部分。
Java servlet和Java服务器页(JSP )是web层组件。
企业JavaBean s (EJB )是业务层组件。
客户端层组件J2EE APP应用可以基于web方法,也可以基于传统方法。
web层组件J2EE web层组件可以是JSP页或Servlets。 根据J2EE规范,静态HTML页面和applet不会被视为web层组件。
如下图所示的客户层,web层包含用于处理用户输入的JavaBean对象,并可能将其发送到在业务层上运行的企业bean以处理输入。
业务层组件
业务层代码逻辑用于满足特殊业务领域(如银行、零售和金融)的需求,并由在业务层运行的企业bean处理。
下图说明了enterprise bean如何从客户端程序接收数据、根据需要进行处理,然后将其发送到EIS层进行存储。 这个过程也可以反过来进行。 有三个企业级bean:
会话bean、实体bean、消息驱动bean .会话bean表示与客户端程序的临时交互。
客户端程序运行时,会话bean和相关数据将消失。 另一方面,实体bean表示数据库表中的一行永久记录。 当客户端程序中止或服务器关闭时,会保存潜在的服务保证实体bean的数据。
消息驱动bean将会话bean与JMS消息侦听器的特性相结合,以允许业务层组件异步接收JMS消息。
企业信息系统层企业信息系统层处理企业信息系统软件包括企业资源规划(ERP )、大型机事务处理、数据库系统和其他传统信息系统等企业基础架构系统
例如,J2EE APP应用程序组件可能需要访问企业信息系统才能进行数据库连接
6.J2EE的核心API和组件J2EE平台由一组服务(Services )、APP应用程序接口(APIs )和协议组成,支持开发基于Web的多层APP应用程序。 下面简要介绍J2EE的13种技术规格) (仅限纸面,但在此简单说明) ) :
JDBC(Javadatabaseconnectivity,JDBC ) : JDBC API为访问不同的数据库提供了统一的方法。 与ODBC一样,JDBC向开发人员隐藏了细节问题,而JDCB与数据库访问无关。
javanameanddirectoryinterface (JNDI ) : JNDI API用于运行名称和目录服务。 为访问和使用企业级资源(包括DNS、LDAP、本地文件系统和APP应用程序服务器中的对象)提供一致的模型。
企业JavaBean (EJB ) : J2EE技术受到某种广泛重视的原因之一是EJB。 它们为开发和实施分布式业务逻辑提供了框架,大大简化了可扩展性和复杂性高的企业APP应用程序的开发。 EJB规范定义了EJB组件如何与容器交互。 容器提供通用服务,如目录服务、事务管理、安全性、资源缓冲池和容错。 但是,值得注意的是,EJB不是实现J2EE的唯一方法。 由于J2EE的开放性,一些制造商可以与EJB并行实现相同的目的。
远程操作系统(RMI ) :调用远程对象上的方法,如其名称所示。 使用串行化方法,在客户端和服务器端传输数据。 RMI是比EJB使用的协议更低的协议。
Java IDL/CORBA:得到Java IDL的支持,开发人员可以集成Java和CORBA。 他们能行
创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
JSP(Java Server Pages): JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
Java Servlet: Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
XML(Extensible Markup Language): XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
JMS(Java Message Service): MS是用于和面向消息的中间件相互通信的应用程序接口(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事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
JavaMail: JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
JTA(JavaBeans Activation Framework): JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
7.总结
经过本次学习,我们知道了J2EE的整体架构以及一些核心的组件,更加理解了其伸缩性、灵活性和易维护性,这对我们以后的学习会有很大的帮助.当然,我们学过了这些基本的概念之后,最主要的还是要在实际运用中去体会,去总结,然后再返回来看这些东西,我们就会有很大的收获。这就是一个学习的过程,加油。