您好,欢迎访问三七文档
第3章j2ee开发技术3.1J2EE企业应用程序概述本节介绍J2EE企业应用程序基本结构及发展方向。电子商务和信息技术的快速发展及对它的需求给应用程序开发人员带来了新的压力。必须以比以前更少的金钱、更少的资源来更快地设计、建立和生产企业应用程序。为了降低成本,并加快企业应用程序的设计和开发,J2EE平台提供了一个基于组件的方法,来设计、开发、装配及部署企业应用程序。J2EE平台提供了多层的分布式的应用模型、组件再用、一致化的安全模型以及灵活的事务控制。开发人员不仅可以比以前更快的速度向市场推出创造性的客户解决方案,而且,平台独立的、基于组件的J2EE解决方案不会被束缚在任何一个厂商的产品和API上。3.1.1什么是J2EE目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如”编写一次、随处运行”的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletAPI、JSP(JavaServerPages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持EnterpriseJavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。3.1.2J2EE体系结构J2EE平台使用了一个多层的分布式的应用程序模型。应用程序的逻辑根据其实现的不同功能被封装到组件中,组成J2EE应用程序的大量应用程序组件根据在其所属的多层的J2EE的环境中所处的层被安装到不同的机器中。下图2-01所示为多层的J2EE应用程序被分为不同的层,包含了如下4个部分:(1)运行在客户端机器的客户层组件。(2)运行在J2EE服务器中的Web层组件。(3)运行在J2EE服务器中的商业层组件。(4)运行在EIS服务器中的企业信息系统(EIS)层软件。图2-01J2EE体系结构一个多层的分布式的应用模型意味着应用逻辑被根据功能而划分成组件,并且可以在同一个服务器或不同的服务器上安装组成J2EE应用的这些不同的组件。一个应用组件应被安装在什么地方,取决于该应用组件属于该多层的J2EE环境中的哪一层。这些层是客户层、Web层、业务层及企业信息系统层(EIS)。客户层(ClientTier)J2EE应用可以是基于Web的,也可以是不基于Web的。在一个基于Web的J2EE应用中,用户的浏览器在客户层中运行,并从一个Web服务器上下载Web层中的静态HTML页面或由JSP或Servlet生成的动态HTML页面。在一个不基于Web的J2EE应用程序中,一个独立客户程序,或者不运行在一个HTML页面中,而是运行在其它一些基于网络的系统(比如手持设备或汽车电话)中的applet程序,在客户层中运行,并在不经过Web层的情况下访问EnterpriseBeans。该不基于Web的客户层可能也包括一个JavaBeans类来管理用户输入,并将该输入发送到在企业层中运行的EnterpriseBean类来处理。根据J2EE规范,JavaBeans类不被视为组件。为J2EE平台编写的JavaBeans类有实例变量和用于访问实例变量中的数据的“getter和setter方法”。以此种方式使用的JavaBeans类在设计和实现上通常都是简单的,但是它们必须符合JavaBeans规范中列出的命名和设计约定。Web层J2EEWeb组件可以由JSP页面、基于Web的applets以及显示HTML页面的Servlet组成。调用Servlet或者JSP页面的HTML页面在应用程序组装时与Web组件打包在一起。就像客户层一样,Web层可能包括一个JavaBeans类来管理用户输入,并将输入发送到在业务层中运行的EnterpriseBeans类来处理。运行在客户层的Web组件依赖容器来支持诸如客户请求和响应及EnterpriseBean查询等。业务层作为解决或满足某个特定业务领域(比如银行、零售或金融业)的需要的逻辑业务代码由运行在业务层的EnterpriseBeans来执行。一个EnterpriseBean从客户程序处接收数据,对数据进行处理(如果需要),再将数据发送到企业信息系统层存储。一个EnterpriseBean还从存储中检索数据,并将数据送回客户程序。运行在业务层的EnterpriseBeans依赖于容器来为诸如事务、生命期、状态管理、多线程及资源存储池提供通常都非常复杂的系统级代码。业务层经常被称作EnterpriseJavaBeans(EJB)层。业务层和Web层一起构成了3层J2EE应用的中间层,而其它两层是客户层和企业信息系统层。企业信息系统层企业信息系统层运行企业信息系统软件,这层包括企业基础设施系统,例如企业资源计划(ERP)、大型机事务处理(MainframeTransactionProcessing)、数据库系统及其他遗留信息系统(LegacyInformationSystems)。J2EE应用组件因为某种原因(例如访问数据库)可能需要访问企业信息系统。注意:J2EE平台的1.3版本支持Connector架构,该架构是将J2EE平台连接到企业信息系统上的一个标准API。3.1.3J2EE组件J2EE应用程序由组件组成。一个J2EE组件就是一个自带功能的软件单元,它随同它相关的类和文件被装配到J2EE应用程序中,并实现与其它组件的通信。J2EE规范是这样定义J2EE组件的:(1)客户端应用程序和applet是运行在客户端的组件。(2)JavaServlet和JavaServerPages(JSP)是运行在服务器端的Web组件。(3)EnterpriseJavaBean(EJB)组件(EnterpriseBean)是运行在服务器端的商业组件。J2EE组件由Java语言编写的,并和用该语言写成的其它程序一样进行编译。J2EE组件和“标准的”Java类的不同点在于:它被装配在一个J2EE应用程序中,具有固定的格式并遵守J2EE规范,它被部署在产品中,由J2EE服务器对其进行管理。3.1.4J2EE技术J2EE中包括以下技术:EnterpriseJavaBeans(EJB)技术JavaInterfaceDefinitionLanguage(IDL)JavaMessageService(JMS)APIJavaNamingandDirectoryInterface(JNDI)JavaRemoteMethodInvocation(RMI)和ObjectSerializationJavaServletAPIJavaTransactionAPI(JTA)JavaTransactionService(JTS)JavaServerPages(JSP)技术JDBC数据库访问APIJ2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):1、JDBC(JavaDatabaseConnectivity)JDBCAPI为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。2、JNDI(JavaNameandDirectoryInterface)JNDIAPI被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。3、EJB(EnterpriseJavaBean)J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。4、RMI(RemoteMethodInvoke)正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。5、JavaIDL/CORBA在JavaIDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBAORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。6、JSP(JavaServerPages)JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。7、JavaServletServlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGIPerl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而Servlet全部由Java写成并且生成HTML。8、XML(ExtensibleMarkupLanguage)XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。9、JMS(JavaMessageService)MS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。10、JTA(JavaTransactionArchitecture)JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。11、JTS(JavaTransactionService)JTS是CORBAOTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持JavaTransactionAPI(JTA)规范,并且在较底层实现OMGOTSspecification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。12、JavaMailJavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。13、JAF(JavaB
本文标题:j2ee开发技术
链接地址:https://www.777doc.com/doc-5097807 .html