第六讲应用服务器.ppt

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六讲应用服务器

四、业务构件容器 1、软件构件 2、EJB 3、EJB构件容器 4、消息截取器 特征: 持久性 构件管理的持久性(Bean-Managed Persistence) 容器管理的持久性(Container-Managed Persistence) 可以同时为多个客户服务. 生命周期较长(与数据库中的数据相同) 当 EJB 容器崩溃时,可以被恢复. 类别:BMP CMP 3、EJB构件容器 在编程语言中 每个数据对象都是数据值的容器 COM套间通过线程模型将不同的对象分割到不同的运行空间中 使得它们的运行相对独立 MTS引入了事务性上下文概念 共享相同事务域的多个对象处于同一个线程中 这同样将它们与系统的其他部分隔离开来 在.NET的CLR中同时吸取了COM与MTS中的上述技术 跨越上下文的访问被执行引擎所控制 并可能进行一些特殊处理 EJB模型中的容器概念比较完善 除了 采用类加载器分别加载不同的构件外 EJB容器还为EJB构件实例承担了 记录上下文、控制生命周期、控制对实例的访问等任务 构件提供者在构件类中实现业务逻辑 客户请求通过构件容器代理向具体构件类发送 对于message-driven beans 构件提供者在构件类中实现onMessage方法 当一个消息到达,需要构件服务时 构件容器调用该方法 EJB 与IIOP EJB之间的互操作 将越来越多地建立在IIOP之上: 通过IIOP调用home接口与remote接口 通过IIOP 传播事务上下文 通过IIOP 传播安全上下文 通过IIOP 组织命名空间 4、消息截取器 无态构件 部分会话过程可以无状态 它仅涉及简单的操作 此时,不必为客户保留状态信息 例如:一个购物过程结束时,计算合计的过程 Stateful ? Stateless? 过程需要保持状态? 加入过程中断,恢复运行时需要以前的信息吗? 实体构件 BMP构件 (Bean-Managed Persistence Entity Bean) CMP构件 (Container-Managed Persistence Entity Bean) 构件自己(构件提供者)处理持久性问题 例如:将状态存储到外存 从外存读取状态 查找构件 等等 构件容器负责处理构件的持久性问题 进一步减轻构件开发者的工作 实现过程复杂 EJB Server/Container Client Entity bean session bean 消息驱动的构件 (Message-Driven Bean) 特征: ? 为单个客户发出的消息服务 ? 不直接表示数据库中的共享数据 尽管可以访问、更新共享数据 ? 生命周期相对较短 当EJB容器崩溃时,也随着消失 无状态 构件容器的功能 网络环境中的软件必须考虑客户访问量问题 一个拥有大量用户的系统可能需要同时运行成千上万的对象 如果不控制系统资源的使用 将使系统 因为资源不足而大大降低响应时间 甚至导致系统不可用 应用服务器通过容器对大量构件实例的有效管理 来提高系统的资源利用率 所依赖的主要机制为: 实例池 冻化/活化 生命周期管理等 1) 实例池 实例池技术是系统软件中普遍使用的共享技术 其核心思想是将暂时不用的资源实例缓存起来 放到实例池中 当下一个客户需要访问资源时 直接从实例池中取出来为客户服务 实例池技术带来的好处主要有两方面: 其一,有效地减少对实例频繁的创建与删除工作 提高了响应速度 其二,通过设定实例池的大小 可以限制访问客户的数目 以保证正在访问客户的服务质量 实现构件实例池的基本方法是: 在加载系统时,为一个构件类型创建多个实例。 当一个客户提出请求时,从实例池中提取构件实例 建立起与客户的关联 当客户不再需要构件服务时,将实例放回实例池 2) 冻化/活化 有态构件不同于无态构件的地方在于: 有态构件保持一个业务过程中前后方法调用之间的状态 这个状态代表着有态构件实例与其客户之间的一个对话 对有态构件实例进行有效资源管理的技术是冻化、活化技术 当一个构件实例的访问频率较低 而此时又有大量客户需要服务时 可以将这个有态构件实例挂起 以减少系统中构件实例的数目 挂起有态构件的实例需要保持其话态,实例的状态将被序列化 序列化构件实例时 除了需要将该实例从内存中暂时删除外 还需要将该实例的状态保存到外存中(例如一个文件系统等) 当这个实例的客户再次访问该实例时 容器将首先构造一个新实例 然后从外存中取出实例的状态 并恢复实例的状态 冻化/活化技术也适用于

您可能关注的文档

文档评论(0)

tangzhaoxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档