2.2Web层
Web层,主要功能是使用JSP页面和Servlet生成Web页面及Web页面中的动态内容,动态内容的来源是数据库。Web层也要负责把从客户端传来的Web页面中的请求打包发送到业务层中的EJB进行处理以及接收处理后的返回信息。J2EE的Web组件可以是Servlet或JSP页面。在应用程序组装过程中,静态HTML页面和Applet也可以一起打包成Web组件,但这并不是J2EE规范所认可的Web组件。Servlet是一个Java编程语言类,它可以动态地处理请求并作出响应,JSP页面是一个基于文本的
文档,它以Servlet的方式执行,但是它可以更方便地建立静态内容。和客户层一样,Web层也可以包含一个JavaBean组件以管理用户的输入,并将输入发送到运行在业务层上的EJB来进行处理。
2.3业务层
业务代码是指那些由位于业务层的企业Bean(EJB)执行的逻辑,它们能够解决或满足特定的商业领域的一些需求。有三种不同类型的企业Bean:会话Bean、实体Bean和消息驱动Bean。会话Bean代表客户一次短暂的会话过过程,当客户执行完成后,会话Bean以及它所包含的数据也随之消失。实体Bean代表的是持久的数据,即存储在数据库表中的一行记录,即使客户终止或者服务器关闭,J2EE底层的会服务确保实体Bean的数据被保存下在来。业务层代码的逻辑用来满足银行、零售、金融等特殊商务领域的需要,由运行在业务层上的enterprisebean进行处理。下图表明了一个enterprisebean是如何从客户端程序接收数据,进行处理(如果必要的话),并发送到EIS层储存的,这个过程也可以逆向进行。有三种企业级的bean:会话(session)beans,实体(entity)beans,和消息驱动(message-driven)beans。会话bean表示与客户端程序的临时交互。当客户端程序执行完后,会话bean和相关数据就会消失。相反,实体bean表示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体bean的数据得以保存。消
-3-
学年论文
息驱动bean结合了会话bean和JMS的消息监听器的特性,允许一个业务层组件异步接收JMS消息。
2.4企业信息系统层企业信息系统层
企业信息系统层(EIS层)是运行在企业信息系统服务器(EIS服务器)上的企业信息系统(EnterpriseInformationSystem)层软件(EISTier),EIS层处理的可以仅仅是一个数据库,也可以包括一些数据库处理的基本业务逻辑。EIS处理企业信息系统的软件,包括企业组织结构系统,例如企业资源计划(ERP)、大型的事务处理、数据库系统及其他历史上遗留下来的信息系统。
3.J2EE主要技术
J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,同时还提供了对EJB、JavaServletsAPI、JSP以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE具有13种核心技术:JDBC,JNDI,EJBS,RMI,JSP,JAVASERVLETS,XML,JMS,JAVAIDL,JTS,JTA,JAVAMAIL和JAF,接下来将对这些技术做一一简介。
3.1JDBC
JDBCAPI以一种统一的方式来对各种各样的数据库进行存取。和ODBC一样,JDBC为开发人员隐藏了不同数据库的不同特性。另外,由于JDBC建立在JAVA的基础上,因此还提供了数据库存取的平台独立性。JDBC定义了JDBC-ODBCBRIDGE、JDBC-NATIVEDRIVERBRIDGE、JDBC-NETWORKBRIDGE和PUREJAVADRIVER这4种不同的驱动程序。WEBLOGIC服务器为一些通常的数据库提供了JDBC驱动程序,包括ORACLE,SYBASE,MICROSOFTSQLSERVER以及INFORMIX。它也带有一种JDBC驱动程序用于CLOUDSCAPE,这是一种纯JAVA的DBMS,WEBLOGIC服务器中带有该数据库的评估版本。
3.2JNDI
JNDIAPI被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,后者在应用服务器中的对象。在JNDI中,在目录结构中的每一个结点称为CONTEXT。每一个JNDI名字都是相对于CONTEXT的。这里没有绝对名字的概念存在。对一个应用来说,它可以通过使用INITIALCONTEXT类来得到其第一个CONTEXT:CONTEXTCTX=NEWINITIALCONTEXT();应用可以通过这个初始化的CONTEXT经有这个目录树来定位它所需要的资源或对象。例如,假设你在WEBLOGIC服务器中展开了一个EJB并将HOME接口绑定到名字MYAPP.MYEJB,那么该EJB的某个客户在取得一个初始化CONTEXT以后,可以通过以下语句定位HOME接口:
-4-
学年论文
MYEJBHOMEHOME=CTX.LOOKUP("MYAPP.MYEJB");在这个例子中,一旦有了对被请求对象的参考,EJB的HOME接口就可以在它上面调用方法。