370 likes | 623 Views
互联网软件开发与应用. 任课教师:陆 铭 联系电话: 66134267 QQ: 22839978 PoPo:richard.du@163.com 教学网站: mingler.ccshu.org. 第十二章 J2EE 框架介绍. 12.1 J2EE 基础 12.1.1 J2EE 产生背景 12.1.2 J2EE 的概念 12.1.3 J2EE 的发展 12.1.4 为什么使用 J2EE 12.2 J2EE 体系结构 12.2.1 J2EE 的容器体系结构 12.2.2 J2EE 应用程序的体系结构 12.3 J2EE 的关键技术
E N D
互联网软件开发与应用 任课教师:陆 铭 联系电话:66134267 QQ: 22839978 PoPo:richard.du@163.com 教学网站:mingler.ccshu.org
第十二章 J2EE框架介绍 • 12.1 J2EE基础 • 12.1.1 J2EE产生背景 • 12.1.2 J2EE的概念 • 12.1.3 J2EE的发展 • 12.1.4 为什么使用J2EE • 12.2 J2EE体系结构 • 12.2.1 J2EE的容器体系结构 • 12.2.2 J2EE应用程序的体系结构 • 12.3 J2EE的关键技术 • 12.3.1 J2EE的技术基础 • 12.3.2 J2EE的关键技术 • 12.4 J2EE应用现状及发展前景 • 12.4.1 J2EE应用现状 • 12.4.2 J2EE发展前景
12.1 J2EE基础 • J2EE是Java 2 Enterprise Edition的简称,是企业级的Java平台 • J2EE为以分布式和服务端为主的应用提供了一个统一的平台 • 提供开放和标准的开发环境,使企业级的应用系统得以建立 • J2EE是企业级的计算平台,为基于分布式和基于组件的软件开发提供了一个“操作系统” • J2EE规范定义了新型分布式应用程序体系结构,解决了N层应用程序开发的许多问题
12.1.1 J2EE产生背景 • 1995年Java语言诞生 • SUN公司推出的这个专注于网络计算的语言在网络分布式应用中如鱼得水,取得了举足轻重的地位 • 计算机技术在网络中的应用 • 网络:为解决单机模式的天生缺陷——共享非常困难、协同工作无法进行 • C/S模式:解决了数据与资源的共享,但是协同工作并没有解决,系统的维护与升级非常困难 • B/S模式:1994年基于浏览器的B/S瘦客户机模式开始代替C/S模式,这种模式解决了前面所提到的问题 • 网络多层结构:由于基于web技术的服务器(也称为web服务器)承担了各种功能,也承载了各种非功能性的以及业务流方面的工作,直接导致web服务器称为整个框架性能的“瓶颈”,于是中间层(业务流层)被分离出来,由原来的两层结构进化成多层结构
J2EE产生背景 • 中间件技术 • 中间件技术在对非功能性和性能、安全方面的管理祈祷了非常重要的作用 • 中间件作为与操作系统OS、数据库系统DBS齐名的三大软件支柱,发展历史很长,早在20世纪80年代就已经出现 • 随着web技术的诞生,中间件的作用更是异乎寻常的得到企业和科研机构的重视 • 中间件由早期的远程程序呼叫RPC(Remote Procedure Call)中间件,发展到消息中间件、对象中间件等多种 • J2EE就是在这样的环境下,由Sun于1999年底推出以Java2技术为基础的J2EE规范 • 规范提供了与平台无关的、可移植的、安全的并且完全基于Java技术的服务器端中间件标准 • J2EE的推出,使得中间件市场走向成熟 • J2EE的意义 • 从中间件本身的角度来看,实现了J2EE规范的应用服务器的对象中间件 • 从整体架构来看,应用服务器涵盖了web服务器以及其他服务器
12.1.2 J2EE的概念 • J2EE的核心是一组规范与指南,定义了开发企业应用系统的标准平台,由J2EE应用服务器的供应商来确保不同J2EE平台之间的兼容 • JE22的定义 • 是开放的、基于标准的平台,用于开发、部署和管理N层结构,面向web的、以服务器为中心的企业级应用 • J2EE是一套体系结构,不是一个具体的软件 • Java 2平台有三个版本 • 标准版J2SE、企业版J2EE、微版本J2ME • J2SE(Java 2 Platform Standard Edition) • 主要适用GUI的客户端程序,即通常所说的桌面应用,并且为用户提供了Java编程常用的核心包
J2EE Specification J2EE Reference J2EE组成图 J2EE J2EE Compatibility J2EE Blue prints J2EE的组成 • J2EE的主要组成部分 • J2EE平台,J2EE规范(Platform Specification),参考实现(Reference Implementation),兼容性测试套件(Compatibility Test Suite),J2EE蓝图(J2EE Blue Prints) • J2EE平台主要是利用Java 2平台的标准版来为当前的企业级应用提供解决方案的设计、开发、装配和部署,并定义了一组核心API标准的接口 • J2EE规范,有相应的技术规范并对API进行了解释 • 参考实现是关于J2EE平台语法的正确范例 • 兼容性测试套件是可使不同J2EE版本的产品得以运行的程序 • J2EE蓝图提供了基于J2EE多层应用的实例与文档
12.1.3 J2EE的发展 • 1997年,Servlet技术的产生以及紧接着产生的JSP,为Java抗衡PHP、ASP等服务器端语言带来了筹码 • 1998年,SUN发布了EJB 1.0标准,至此形成了J2EE平台的三个核心技术 • 1999年,SUN正式发布J2EE的第一个版本,并于年底发布J2EE1.2 • 2001年发布J2EE1.3 • 2003年发布J2EE1.4
J2EE1.3 • J2EE1.3主要包含了Applet容器、Application Client容器、Web容器、EJB容器,并且包含了Web Component,EJB Component,Application Client Component,以及JMS、JAAS、JAXP、JDBC、JAF、Java Mail、JTA等技术为基础 • J2EE1.3引入了几个值得注意的功能 • Java消息服务 • 定义了JMS的一组API • J2EE连接器技术 • 定义了扩展J2EE服务到非J2EE应用程序的标准 • XML解析器的一组Java API,Servlet2.3,JSP1.2页都进行了性能扩展于优化 • 全新的CMP组件模型和MDB(消息Bean)
Applet Container J2SE HTTP SSL Applet Web Container J2SE EJB Container J2SE servlet JSP EJB Database HTTP SSL Application Client Container J2SE JMS Application Client JAXP JAAS JBDC Java Mail Java Mail JMS JMS JAAS JAAS JTA JTA JAXP JAXP JDBC JDBC Connectors Connectors JAF JAF J2EE 1.3体系结构图
J2EE1.4 • J2EE1.4的框架和J2EE1.3大体一致,J2EE1.4增加了对web服务的支持 • 新增web service,JAX-RPC,SAAJ,JAXR • 完善了EJB的消息传递机制 • 增强了部署于管理工具(JMX) • 新版本的Servlet2.4和JSP2.0使得web应用更加容易
Applet Container J2SE EJB Container J2SE Web Container J2SE HTTP SSL Applet servlet EJB JSP JMS Connectors JTA JAXR JACC Web Service Java Mail Mgnt JAX-RPC JMS Connectors JTA JAXR JACC Web Service SAAJ Mgnt JAF JMX JAX-RPC Java Mail HTTP SSL SAAJ JMX JAF Application Client Container J2SE Application Client Database JAXR JMS Web Service JAX-RPC Mgnt JMX SAAJ J2EE1.4体系结构图
12.1.4 使用J2EE的目的 • J2EE的目标:应用程序最小化 • 提供在J2EE平台上运行普通任务的负担 • 普通任务包括强制一个应用程序的完全目标,执行事物处理,连接需要的组件 • J2EE提供了一种简单的、公开的方式来说明这些行为 • 这些说明被分散地放在各部分代码和开发描述中 • 这些基于XML的说明使应用程序开发者不用修改任何组件就可以改变程序的作用 • J2EE提供的有前景的优点 • 让开发人员专注于开发业务逻辑,不用预先了解执行环境 • 可创建在硬件平台和操作系统间更容易衔接的系统 • 遵循J2EE体系结构技术规范的企业级系统可以非常容易地在硬件系统和不同的操作系统之间移植 • J2EE基于Java语言,Java语言是平台无关的 • J2EE提供了一套完整的解决所有问题的框架方案 • 提供了分布式、可移植构件的框架 • 为构件与应用服务器提供标准的API • 简化了服务器端中间层构件的设计
12.2 J2EE体系结构 • J2EE是一种技术规范 • 定义了整个标准的应用开发体系结构和一个部署环境,给开发人员提供了一种工作平台 • J2EE提高了开发效率 • 应用开发人员的注意力集中在封装商务逻辑和商务规则上 • 一切与基础结构服务相关的问题以及底层分配问题都由应用程序容器或服务器来处理 • J2EE并没有指出如何建立J2EE运行环境,只提供了运行环境基础结构的抽象——容器。 • 容器是运行在服务器上的软件实体,用于管理特定类型的组件 • J2EE体系结构包括J2EE容器的体系结构和J2EE应用程序的体系结构两个方面 应用程序开发人员集中考虑应用程序的逻辑和相关的服务 运行环境实现所有与基础结构相关的服务
12.2.1 J2EE的容器体系结构 • J2EE容器体系结构由四部分组成 (参见前图) • 容器服务API(Container Server API) • J2EE定义了每个J2EE运行环境都要支持的Java标准扩展 • J2EE提供了这些API的服务层的抽象,这就使得在容器里访问JDBC、JMS之类的服务API就像在其中实现基础容器一样 • 声明性服务(Declarative Services) • 容器动态地参与应用程序组件的服务,而这些服务基于应用程序组件之外的特定声明,这样简化了应用程序本身的开发 • 常见的服务有事务处理服务,访问权限控制等 • 组件协议(Components Contract) • J2EE体系结构中容器的基本目的是提供应用程序组件的运行环境,即在容器的Java虚拟机中生成和调用应用程序组件的实例 • 容器负责管理应用程序组件的寿命周期,应用程序遵守容器制定的约定 • 其他容器服务 • 其他实时服务,与组件的存活期、资源集中、垃圾收集等相关
12.2.2 J2EE应用程序的体系结构 • J2EE被设计成为顾客、雇员、供应商、合作者提供企业级服务 • 这样的应用程序天生具有复杂性,它们要访问各种类型的数据并分发于大量的客户端 • 中间层描述了一个被企业的信息技术部门紧紧控制的环境 • 为了更好地控制、管理这些应用程序,支持各种各样用户的商业功能要在中间层引入 • J2EE应用模型定义了一种让多层应用程序实现服务的模型 • 提供了可伸缩的、易访问的、易于管理的方法 • J2EE应用模型把实现多层结构服务的工作划分为两部分 • 开发者实现商业和表达逻辑,以及由J2EE平台提供的标准的系统服务 • 开发者可以依赖于这个平台,为开发中间层服务中遇到的系统级硬件问题提供服务 • 应用程序体系结构描述 • 客户端可以是web浏览器或Java应用程序 • Web层又叫表示层,其上运行了JSP、JavaBean和Servlets组件,通过调用业务层的EJB来处理业务逻辑 • 业务层主要运行了EJB,处理系统运算量巨大的业务逻辑
Applet Container J2SE EJB Container J2SE Web Container J2SE HTTP SSL Applet servlet EJB JSP JMS Connectors JTA JAXR JACC Web Service Java Mail Mgnt JAX-RPC JMS Connectors JTA JAXR JACC Web Service SAAJ Mgnt JAF JMX JAX-RPC Java Mail J2SE J2SE HTTP SSL SAAJ JMX JAF Application Client Container J2SE Application Client Database JAXR JMS Web Service JAX-RPC Mgnt JMX SAAJ J2SE J2EE应用程序的体系结构图 • 客户端 • web浏览器可以使用Applet Container来运行HTML网页力的Applet程序,浏览器的客户层通过HTTP、SSL等其他协议和web层进行通信 • 一般的客户端,它可以使用J2EE里JMS、JAAS、JAXP、JDBC等特性,同时J2SE里所有的内容都可以支持,可以直接访问web层、业务层和数据库层 • Web层 • 其组件除了可以使用J2SE的所有功能外,还可以使用J2EE提供的服务:JMS、JAAS、JDBC、JTA、JavaMail、JAXP等 • 通过调用业务层的EJB来处理业务逻辑 • 业务层 • 给低层的调用提供了统一的接口,web层通过远程调用的方法来使用EJB • EJB可以使用容器提供的服务或者直接访问数据库,同时容器还提供了事务服务,简化了EJB的开发。
12.3.1 J2EE的技术基础 • Java • Java是J2EE的基础 • 整个体系结构都是通过Java语言来描述的 • 所有的J2EE应用服务器都是通过Java语言来实现的 • HTTP、SSL • HTTP用于在web服务器与本地浏览器之间进行文本的传输 • 安全方面的考虑则使用SSL协议与HTTP协议的结合 • SSL主要通过X.509数字证书技术保护信息传输的机密性和完整性 • 客户端无论是Applet容器,还是Client Application容器都是通过HTTP、SSL协议经由网络来与web容器、EJB容器中的组件进行交互 • 多台应用服务器的集群时,Web容器、EJB容器之间也会通过HTTP、SSL协议进行交互 • XML • XML是一种可扩展的标记语言,具有良好的数据表示能力和数据传输能力 • 通过DTD或XSD对数据元素进行描述 • 通过XSLT将XML与HTML、WML等进行匹配 • J2EE中的应用主要集中在组件描述符文件和 Web服务上面 • 通过描述符文件对各个组件进行非功能性或者安全方面的控制及管理
12.3.2 J2EE的关键技术 (1) • Servlet、JSP、EJB三大核心技术和JMS技术 • Servlet技术为web服务器功能的增强器 • JSP为Servlet技术的扩展 • EJB组件为EJB容器中的一个管理单元 • JMS为一种消息传递的标准 • Servlet与JSP基于请求响应的工作方式,共同工作于web层上 • 其作用就是我们通常所说的边式层功能 • 它们的全部功能并不止此
J2EE的关键技术 (2) • Servlet功能涵盖了从客户端请求响应动态生成文档档保证会话安全、访问后台DBS等 • Servlet一般作为Servlet容器或Web容器中的组件进行管理,有其自己的生命周期 • 每个Servlet都需要实现Servlet接口,由init()和destroy()进行生命周期管理,主要逻辑集中在service()中 • 对于基于HTTP的HttpServlet,主要逻辑集中在doGet()和doPost()中 • 为便于编程等原因,Servlet有时被设置成单线程的 • 就API而言,Servlet的核心主要集中在两个包中:java.servlet和javax.servlet.http • 两个包分别定义了关于Servlet与Servlet容器之间的接口,以及对Servlet自身的一些支持,如过滤、请求响应、会话、Cookie等
J2EE的关键技术 (3) • JSP简化动态web内容的传输,由四个关键的组件组成 • 指令、动作、脚本、标签库 • 指令是指web程序员通过编程方式通知支持JSP的web容器进行定制,如错误网页、定制的标签库、其他资源 • 动作是对网页的动态包含资源或插件、提交转发、使用JavaBean实例等进行定义与操作 • 脚本是支持Java的逻辑流,通过特定的标记隔离 • 标签库是用于对web内容显示的一种组件方式的定制 • 包括标准标签库和定制标签库 • 标签库的定义主要由标签句柄类和标签库描述文档组成 • 句柄类是对定制标签的内容进行定义的一个类,一般要实现Tag这个接口 • 标签库描述符是对标签库进行描述,且与某个句柄类相关联 • JSF技术(Java Server Faces) • 该技术主要集中在web内容的显示方面,作用是J2EE中简化的Swing或SWT • JSF有其自身的组件及事件处理机制和Validate技术 • JSF定义了一组JSP的定制标签库,使其成为JSP的一个扩展技术
J2EE的关键技术 (4) • Servlet的最新版本是Servlet 2.4 • 增加了对XSD(XML Schema Definition)的支持 • 增加了ServletRequest相关的Listener机制 • 增强了RequestDispatcher和Filter的结合功能,使得Request Dispatcher的功能更加容易 • JSP的最新版本是JSP 2.0 • JSP 2.0注入了EL(表达式语言) • 增加了SimpleTag的实现,方便了编程 • EJB(Enterprise JavaBean)的发展 • 1998年发布第一个版本,由原来的EJB1.x、EJB2.0,到现在的EJB2.1,即将发布EJB3.0 • EJB组件作为EJB容器中的一个管理单元 • EJB组件供应商可以选择由容器来管理EJB组件的事务、安全、资源连接问题等
J2EE的关键技术 (5) • EJB主要由三种Bean组成 • 会话Bean、实体Bean、消息Bean • 实体Bean在EJB2.0中以全新的模型出现 • 消息Bean是在EJB2.0中菜引入的 • 会话Bean • 会话Bean有有状态与无状态之分 • 会话Bean可以作为客户端的状态来理解 • 实体Bean • 分为BMP(Bean Managed Persistence)和CMP(Container Managed Persistence) • EJB调用过程 • 根据传入的属性,初始化上下文InitialContext • 获取远程的,或者本地的Home接口 • 进行Home.create( ),获取远程的Home( ),获取远程EJB的对象 • 通过EJB对象调用业务方法,这些业务方法会被EJB实现 两者的区别在会话状态的维护上 客户端是操作与状态的集合 两者的分歧在于对持久化的管理方面。 BMP在于其灵活性,虽然编码代价比较高,但可以直接对底层数据库进行持久化管理,给了开发者更多的开发空间。 CMP通过EJB2.0中引入的EJB QL提供标准接口,屏蔽掉了JDBC驱动的操作,以此通过EJB容器来对持久化进行管理。
J2EE的关键技术 (6) • 消息Bean • 是可以接受JMS消息的EJB,且通过特定固有的方式对JMS消息进行处理 • 消息Bean没有复杂的Home,或者是EJBObject接口 • 从J2EE的API,这部分主要集中在javax.ejb中,这个包主要定义了各类的编程接口 • JMS(Java Message Service)为一种消息传递的标准 • 由于JMS的标准化,开发人员无须学习新的消息机制的API,只需了解提供的JMS规范即可 • JMS的消息传递机制分为发布订阅式(P/S)和点对点式(P2P) • 两种消息的传递机制都实现了异步传递机制 • P/S通过Topic的形式使得多个Consumer都可以使用,主要是进行了Subscribe • P2P是通过Queue的形式将Consumer和Producer之间进行安全连接,使得消息传递只在两者之间进行
12.3.2 J2EE的基础技术 (1) • J2EE基础技术主要集中在JDBC、JNDI、RMI-IIOP、JTA等技术的讨论 • JDBC是数据库引擎与开发人员的程序之间的接口 • JDBC提供了操作数据库DB的规范,经常被称为JDBC驱动 • 常用的JDBC驱动程序大致可以分为四种 • JDBC驱动程序是对另外一种数据访问的映射(如ODBC),即ODBC-JDBC • 这种驱动依赖本地库文件,不易移植 • JDBC驱动程序部分由Java编写,部分由本地代码实现 • 依赖于特定的数据库端库文件 • JDBC驱动程序全部由Java实现,是所谓的网络桥 • 通过独立于数据库的协议于服务器进行通信 • JDBC驱动程序全部采用Java实现,实现针对某一特定数据源的通信协议,直接与数据源进行通信
J2EE的基础技术 (2) • JNDI(Java Naming and Directory Interface)是J2EE规范的一部分,为定位用户、资源与服务提供了一个标准的接口 • JNDI中包括了命名与目录服务 • 命名服务随处可见:文件系统中命名服务,DNS中的命名服务 • 目录服务是命名服务的扩展:将各个被命名的信元组成树状的目录,便于查找、挂载、卸载以及其他操作 • JNDI作为客户端与命名和目录服务的访问接口,屏蔽了各种命名和目录服务的细节,使开发人员可以在各种服务之间进行访问 • JNDI由两部分组成:客户端接口API和服务提供商接口SPI • API面向开发人员 • SPI面向不同的命名和目录服务提供者 • 在J2EE中,如果需要查找某个EJB或JMS驱动程序,可通过JNDI来获得
J2EE的基础技术 (3) • JNDI的API主要有javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap • javax.naming提供了访问命名服务的接口,如Context接口 • javax.naming.directory提供了对目录服务的接口 • javax.naming.event是对服务的事件机制的支持 • JNDI的SPI在javax.naming.spi中 • RMI-IIOP(RemoteMethod Invocation to InternetInter-ORB Protocol) • RMI-IIOP是J2EE执行远程调用的一种方法 • Java也有一种RMI • RMI使得对象可以在多个VM之间进行传递,通过RMIRegistry提供命名服务使用Naming进行交互 • RMI的交互方式是Stub和一个远程对象进行直接的调用,Stub被下载到客户端用来通信,在Java1.2之前,会产生一个Skeleton来与Stub对应
J2EE的基础技术 (4) • RMI-IIOP与RMI的主要区别 • RMI-IIOP实现了与CORBA的互操作性,实现了仅支持Java的RMI也可以对其他语言实现基于CORBA的远程方法进行的调用 • JTA(Java Transaction API)是J2EE架构中性能保证的一个基本技术 • 事务保证了DB操作的ACID性 • Atoming、Consitency、Isolation、Duration • J2EE的事务服务在各种容器中,为EJB提供良好的性能保障 • J2EE的事务分为两大部分 • JTS(Java事务服务)和JTA(Java事务API) • JTS完成到CORBA OTS事务监控的基本实现,并且规定了事务管理器的实现方法,JTS事务管理器为资源管理器、应用程序提供了事务服务 • JTA是由事务管理器在高层进行支持的,并且实现了OTS规范的Java映像 • 关于OTS(对象事务处理),这是基于CORBA模型并定义了一系列跨越多个CORBA对象完成事务处理的接口
J2EE的web服务相关技术 (1) • Web服务的几个基本技术 • SOAP(Simple Object Access Protocol) • 基于XML来交换新鲜的轻便协议,通常由soap-envelope,soap-encoding style,soap-rpc三部分组成 • soap-envelope定义了消息的总体框架,表示其中有什么信息、谁来处理, 并且可以确定是否是强制性的 • soap-encodingStyle主要用来定义交换的数据类型,即通常所说的串行化机制,默认值为 http://schemas.xmlsoap.org/soap/encoding/ • soap-rpc用于远程调用与应答 • WSDL(WebService Description Language) • 用来对每个web服务进行描述的 .wsdl文件 • 客户端使用某个web服务时必须先下载其描述文件,才能够对web服务发出请求 • WSDL是XML的一种变体,描述了web服务的操作、协议、服务所在的URL地址等
J2EE的web服务相关技术 (2) • UDDI(Universal Description, Discovery, Integration) • 提供了发现、描述、集成web服务的规范 • UDDI注册中心为我们提供了注册自己的web服务的空间 • 一般而言,注册中心的数据被分为三个部分 • 白页:包含注册web服务的单位的基本信息,其中包括单位的唯一标准符 • 黄页:主要通过不同的方式对注册的web服务进行分类,便于查找 • 绿页:主要是对某个单位的web服务进行技术细节、位置细节的描述 • Web Service在J2EE架构中的应用 • Web Service for J2EE是J2EE平台下Web服务的总规范,定义了基于J2EE的应用服务器如何支持Web服务 • 定义了客户端模型、服务器端模型、部署模型WSDL绑定和安全相关规范 • 满足JSR109的Web服务通过JAX-RPC(JSR101)进行构建 • J2EE中Web服务可以基于两种方式实现 • 基于Servlet的服务。由Web容器提供运行环境 • 基于无状态会话Bean的服务。只有EJB2.1以上版本才提供Web服务包装
J2EE的web服务相关技术 (3) • 基于XML相关的Java API:JAXP、JAXB • JAXP(Java API for XML Processing) • 通过基于模型的DOM和基于事件处理的SAX对XML进行处理的API • JAXP屏蔽了底层使用的XML解析器,同时也支持对XSLT的支持,通过JAXP的接口对XML进行转换至其他的格式如HTML、WMI等 • JAXB(Java API for XML Data-binding) • 主要用于XML文档模型与Java对象之间的绑定 • 基于Web服务相关的Java API:JAX-RPC, SAAJ, JAXR • JAX-RPC是Web服务在J2EE中的核心技术,类似于RMI • 在JAX-RPC的调用中用的是SOAP作为底层的传输协议进行通信 • JAX-RPC提供了 RPC的运行时环境,定义了服务器端编程模型和客户端编程模型,还定义了WSDL与Java之间的映射,包括类型映射,服务、端口类型、绑定到Java类和接口的映射 • SAAJ(SOAP with Attatchment API for Java) • 为传递SOAP提供了简洁、统一的API,以便支持SOAP附带的附件 • JAXR是Web服务注册和发布相关的API标准 • 提供了UDDI在J2EE中的实现,为所有的Web服务提供访问的接口,即为访问注册中心提供一个编程接口
J2EE的web服务相关技术 (4) • 其他技术 • JCA(J2EE Connector Architecture) • 使得J2EE组件(如EJB组件)可以与EIS(如ERP、CRM、大型事务处理系统等)进行交互 • Resource Adapter(资源适配器) • RA是JCA中非常重要的概念,连接到EIS上去需要将RA部署到服务器上 • RA一般都是以RAR格式进行存储部署,然后通过CCI(Common Client Interface)编程接口对EIS进行操作 • RA定义了两种约束 • 应用约束 • 对应了J2EE组件访问EIS的规则 • 系统约束 • 提供了服务器管理的重要服务:事务管理、安全管理和连接管理,建立与RA之间的规则
WebSphere Application Server子系统 管理客户机 (浏览器) 应用程序服务器 管理应用程序 ActiveX客户机 Web 容器 EJB 容器 WebSphere MQ子系统 可插入瘦客户机 名称 服务器 安全性 服务器 JMS 消息 处理器 Java客户机 JMS 服务器 管理客户机 (浏览器) 插件 HTTP Server 12.4.1 J2EE应用现状 • 关于中间件 • 中间件思想的提出与发展为新事务的产生提供了架构上的准备 • Internet的兴起为新事务产生提供了生长的环境 • Java语言诞生为其提供了肥沃的土壤 • 企业应用的日益增加,中间件技术进一步成熟 • 应用服务器 • 综合了各种中间件技术的优点,为新一代的企业开发提供系统架构 • 提供了分布对象的服务、事务处理服务、安全访问服务等 • 国内服务器产品 • 金蝶Apusic是国内第一个基于J2EE标准的的应用服务器 • ONCE是国内第一个基于J2EE1.4规范并通过其兼容性验证(CTS)的应用服务器 • 国外服务器产品 • BEA公司的WebLogic Server大致分为入门级(Express)和企业级(Enterprise),有基于其私有的JRockit VM ,并集成了IDE(Workshop) • WebSpere Application Server是IBM公司的一款基于J2EE规范的应用服务器 • WAS是基于Java Servlet引擎的,直接将Web Server扩展为基于Java的应用服务器 • 除了符合规范的EJB容器和Web容器外,还有WebSphere MQ子系统,提供了消息处理
12.4.2 J2EE发展前景 • J2EE面临的挑战 • 整体框架上面临 .NET的挑战 • Web层面上面临struts的挑战 • Struts在各种应用服务器以及其郑和的IDE中提供struts的支持 • Struts通过MVC的思想把servlet的任务更加明确地作为controller,JSP只承担view的工作,将业务层提供的bean组件或其他组件作为model,将整体的架构提取出一个三层结构 • EntityBean作为EJB的核心面临Hibernate的挑战 • 在开源的攻势下大部分的应用服务器已经提供对Hiberbate的支持 • EJB本身的编程复杂性吓走了一部分用户,且饱受持久化性能的批评 • J2EE面临的机遇 • Annotation的推出将争回部分市场分额 • Annotation大大降低了编程的复杂性,降低代码的编写量 • Annotation的学习代价较低,易于学习
HTML (第三章) • DHTML (第六章) • Microsoft .NET (第十一章) • ASP.NET (第四章) • Web数据库技术 (第五章) • PHP技术 (第七章) • 其他新技术 (第八、九、十、十二章) 总复习 • 关于本课程 • 技术基础课 • 基础知识和基本概念 60%左右 • 基本技能(操作技能) 40%左右 • 涵盖的内容较多 • 软件开发的工程学概念(1) • 构造网站和网页的操作 • 构造网站服务器的操作(2) • 如何复习 • 反复研读教材 • 提取核心知识,自如应对选择、简述题 • 反复研读代码 • 掌握编程技巧,轻松解决编程操作题
关于复习练习 • 在全面通读教材的基础上练习各项练习题 • 练习时先按实战要求自己完成,做完后再看答案 • 看答案时不要只是背答案,而要认真分析答案给出的解题思路,并能举一反三,真正弄懂弄通,达到融会贯通的效果 • 在反复练习的基础上,逐步练习完整的试卷 • 试卷练习同样要以实战为基点,按时按量进行联系,时间到了立即停止,然后按照答案进行评分 • 对做错的题进行认真分析,找到错误的原因。同样不是背答案,掌握解题思路,及时总结每套试卷练习中的得失。 • 模拟试卷是综合练习,也是按照考试的要求命题的,因此练习时也要按照考试的要求进行,以便调整做题心态,养成良好的临场状态
Web开发过程 理念 是 规划 判断点1 设计 否 判断点2 否 是 投入使用 判断点3 建设和测试 是 否 运行及后续维护