企业应用模型与JavaEE体系结构

上传人:飞*** 文档编号:53682028 上传时间:2018-09-04 格式:PPT 页数:53 大小:587KB
返回 下载 相关 举报
企业应用模型与JavaEE体系结构_第1页
第1页 / 共53页
企业应用模型与JavaEE体系结构_第2页
第2页 / 共53页
企业应用模型与JavaEE体系结构_第3页
第3页 / 共53页
企业应用模型与JavaEE体系结构_第4页
第4页 / 共53页
企业应用模型与JavaEE体系结构_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《企业应用模型与JavaEE体系结构》由会员分享,可在线阅读,更多相关《企业应用模型与JavaEE体系结构(53页珍藏版)》请在金锄头文库上搜索。

1、1,企业应用模型与Java EE体系结构,应用程序的开发模型 传统应用程序模型 三层分布式对象架构 企业级应用问题及解决方案 Java EE架构及核心技术,2,应用程序的开发模型,计算机应用程序的一般特点 大多数应用都由三部分组成: 用户界面部分:表示层 应用逻辑部分:业务逻辑层 数据访问部分:数据访问层,3,应用程序的开发模型,应用程序开发模型的变迁过程 单层 两层 三层 N层,4,传统应用程序模型(一),数据访问、表示和业务逻辑在一个应用中 代码复用、代码可维护性、代码的修改十分困难 应用不是分布式的,不具有可伸缩性,主机系统或单层结构:主机/终端模式,5,传统应用程序模型(二),用户界面

2、和程序逻辑绑在一起,代码难以重用 服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能 数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护 原始数据通过网络传递:加重网络负担 客户端应用程序越来越大,对使用者的要求也越来越高,客户/服务器结构:“胖”客户端,6,三层分布式对象架构,客户端:业务数据模型与UI分开,更“瘦” 业务逻辑在中间层,成为“对象服务”。 中间层可以处理多客户端,通过:连接池,多线程,对象一致性处理 编程困难,7,关于分布式计算,对象化的RPC(Remote Procedu

3、re Call) 对象之间的互操作性 信息的传递 在此方面的解决方案: CORBA (Common Object Request Broker Architecture) RMI (Remote Method Invocation) DCOM (Distributed Component Object Model),8,Web服务器与CGI,WWW浏览方式所带来的: “Browser-based” 客户端与“Internetworking” 计算方式向服务器端的集中转化,9,N层计算模式的引入,从1层到N层,得到的改进: 每一层可以被单独改变,而无需其它层的改变 降低了部署与维护的开销 资源(

4、如连接)可以被缓冲和重复利用 提高了灵活性、可伸缩性,并使性能提高成为可能 瘦客户端的引入使Internet接入方便,而计算被集中至服务器端 仍然存在的问题: 对企业级应用开发人员的要求太高:熟悉分布式协议,进行一致性事务处理,负载平衡,安全,10,构件(component)与中间层开发,两个转变: 计算模式上:网络计算(Network Computing) 生产模式上:基于构件的开发(Component-based Dev) 二者的结合: 服务器端中间层构件的开发,11,构件的优点与特点,一个软件构件是一个组合的单位,它包括合同化声明的接口及明确说明的上下文相关性。一个软件构件可以被独立部署

5、且服务于第三方所做的组合。 构件的特点: 构件是编译码 构件是一个独立部署的单位 构件是一个由第三方进行组合的单位 构件没有持久的状态 构件的优点: 可插入 更好的设计 更好的复用 方便的更新 实现与接口分离,12,企业级应用开发问题,分布式 可移植 面向Web体系 可装配 满足企业计算要求 一致性 事务性 安全性 好的特性 可伸缩 可扩展 易维护,13,解决方案-应用服务器,应用服务器可以为服务器端构件提供: 一致性,事务处理与负载平衡 从而简化了编程工作 但在J2EE之前,这些API是应用服务器相关的!,14,解决方案Java EE,Java EE提供了一套完整的解决所有这些问题的框架方案

6、: 提供了分布式、可移植构件的框架 为构件与应用服务器提供标准API 简化了服务器端中间层构件的设计,15,解决方案Java EE,Java EE对开发者和用户来说意味着: 更短的开发时间 可重用构件 JSP EJB 更简化的连接 XML,JDBC,RMI-IIOP,16,Java EE技术架构,J2EE架构:,17,容器和构件,18,Java EE核心技术,J2EE核心技术:13种 EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDBC XML、JMS,19,Java EE核心技术-EJB,EJB (Enterprise JavaBeans) : EJ

7、B不是一个具体的产品,而是一个Java服务器端组件开发的规范,软件厂商根据它来实现EJB服务器。 使用EJB,Java程序员可以将一些定义明确的程序块组合到一起,从而方便、快捷地建构分布式应用程序。 使用EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或JDBC等服务,从而增强了分布式应用程序的可扩展性和性能; EJB规范在简化分布式应用程序开发复杂性方面做了大量的工作,所以EJB程序员不必太担心事务处理、多线程、资源管理等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。 EJB的使用增强了整个系统程序的可靠性、可管理性和可移植性。,20,EJB容器是:

8、EJB的运行环境。它提供规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。 它的责任包括:,Java EE核心技术-EJB,21,Java EE核心技术-EJB,EJB服务器是: 管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如CORBA服务)的访问。一个EJB服务器必须提供支持对JNDI的名字服务和TS事务服务的可访问。,22,Java EE核心技术-EJB,EJB组件的三种类型: (1) Entity Bean(实体Bean) :实体Bean代表数据对象,通常代

9、表的是数据表记录集的一行,一个实体EJB可以同时与多个客户进行交互。 (2) Session Bean(会话Bean) :会话EJB向客户提供一定的服务,如:特定的商业逻辑、数据库查询等; (3) Message-Driven Bean(消息驱动Bean):以上两种Bean以同步方式为EJB客户提供服务。消息驱动Bean采用Java消息服务JMS,客户程序可以将消息发送给消息队列,消息驱动Bean检索消息队列,执行其内容。,23,Java EE核心技术-EJB,实体Bean业务数据模型 对业务概念的反映,也称为领域类(domain class) 在持久存储中业务实体的对象视图 提供访问和操作数

10、据的对象封装 支持多用户共享的数据 可以从数据库中存储的属性重新实例化 EJB 服务器崩溃后仍可重构 与数据库中的数据有一样长的生命,24,Java EE核心技术-EJB,实体Bean 的持久性自管理的持久性 优点: 开发者有完全的控制 无需复杂的提供商支持 缺点: 编码复杂 在改变时需要重新编码和部署 影响可移植性,25,Java EE核心技术-EJB,实体Bean 的持久性容器管理的持久性 优点: 提供商解决,可能会有更好的缓冲和性能 在部署描述符中进行改变即可 可移植性好 缺点: 对容器提供商的工具依赖性强 可能不易反映复杂的数据关系,26,Java EE核心技术-EJB,会话bean:

11、经常用于涉及多个实体bean的业务处理和控制逻辑。,27,Java EE核心技术-EJB,会话bean: 相对生命较短(一般与客户同步) 在EJB服务器崩溃时被删除 不表示数据库中的数据,但可以访问数据 作为一个客户的代表执行功能 可以加入事务,28,Java EE核心技术-EJB,何时使用会话bean: 使用会话bean 对针对于某一客户的处理或控制对象建模; 对工作流、任务和管理活动等建模(如订房、购物车等); 协调多个实体bean,控制实体bean之间的交互; 将业务应用逻辑从客户端转移到服务器端。,29,Java EE核心技术-EJB,会话bean与实体bean的比较,30,Java

12、EE核心技术-EJB,两种类型的会话bean 无状态(Stateless)bean 表达一个无状态的服务(如列表,mail) 不存储用户相关信息,进行对请求的响应 暂态的 可用来构造响应频繁而简单的访问的bean池 有状态(Stateful)bean 维护客户状态,31,Java EE核心技术-EJB,实现EJB的三个关键构件 EJBHome 接口(扩展javax.ejb.EJBHome接口):使用了factory设计模式,定义了创建、查找EJB的方法。 EJBObject接口(扩展javax.ejb.EJBObject接口):使用了proxy设计模式,定义了在bean中实现的业务逻辑方法。

13、Bean实现类(实现javax.ejb.EntityBean/SessionBean):实现业务逻辑。,32,Java EE核心技术-EJB,EJB的实现举例 / business methods public interface Account extends EJBObject /return the account information corresponding to this account. public AccountModel getDetails() throws RemoteException; / updates the contact information for

14、the specified account public void changeContactInformation(ContactInformation info) throws RemoteException; ,33,Java EE核心技术-EJB,EJB的实现举例,public interface AccountHome extends javax.ejb.EJBHome public Account create(String userId, String status, ContactInformation info) throws RemoteException,Duplicat

15、eKeyException,CreateException; public Account findByPrimaryKey (String userId) throws RemoteException, FinderException; ,34,Java EE核心技术-EJB,EJB的实现举例 public class AccountEJB implements EntityBean / entity state private String userId; private String status; private ContactInformation info; / resources

16、 private EntityContext context; / implement account interface business methods public void changeContactInformation(ContactInformation info) this.info = info; public AccountModel getDetails() return(new AccountModel(userId, status, info); ,35,Java EE核心技术-EJB,EJB的实现举例,/ must match signatures of creat

17、e methods in Home interface public String ejbCreate (String userId, String status, ContactInformation info) throws DuplicateKeyException,CreateException / set the instance data this.userId = userId; this.status = status; this.info = info; AccountDAO ADAO = new AccountDAO(userId, status,info); try ADAO.create(); / insert data in database return (userId); / return primary key catch (java.sql.SQLException se) throw new CreateException (“SQL Exception in create:“ + se); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号