J2EE探险者: 用于无状态网络的J2EE技术 - 编程入门网
虚包(Facade)模式或业务委派(Business Delegate)模式(请参阅 参考资料)。servlet(或 JSP 页面)、帮助 servlet 的 JavaBean(或 JSP 页面)、另一个企业 bean 可以访问会话 bean,也可以直接通过 applet、Swing 应用程序或其它 Java 应用程序访问会话 bean。
虽然到目前为止会话 bean 是最轻量级的 EJB 类型,但使用 EJB 容器和 EJB 体系结构是有代价的。EJB 容器需要占用服务器大量的处理能力和内存。不象 Java servlet 所采用的轻量级线程机制,EJB 组件需要创建和管理多个对象实例和相关资源(请参阅图 2)。然而,较高的开销所换来的好处是,在不牺牲很多响应时间和整体可伸缩性的情形下,EJB 组件向企业资源、事务和安全性检查提供了有效的管理。因为无状态会话 bean 不一定需要维护任何客户机状态,所以可以有效地合用无状态会话 bean,使用它们来完成任何客户机的请求。 图 2. 企业 bean 管理 无论您需要管理 EJB 容器、设置服务器群集、为企业 bean 声明配置设置还是需要利用容器众多服务(包括安全性、事务管理和资源管理等)中的某项服务,EJB 体系结构和 API 都能使开发和部署健壮且功能齐全的 J2EE 应用程序变得出奇的简单。部署描述符定义了容器和 bean 配置,EJB API 使用接口、bean 生命周期回调方法和工厂模式清晰地分隔开容器和企业 bean,同时仍使 bean 开发人员能方便地访问容器服务。 J2EE探险者: 用于无状态网络的J2EE技术(3)时间:2011-01-31 IBM Kyle Gabhart选择正确的技术 在某些情况下,确定使用 servlet(或 JSP 技术)、无状态会话 bean 还是同时使用这两者是一件非常简单的事情,而在另外一些情况下,这种选择却需要不少技巧。通常的配置是使用 servlet 层来处理与 HTTP 客户机的交互,然后将业务处理交给 EJB 层(主要由无状态会话 bean 组成,偶尔也有实体 bean 组成)。在这一节,我们将研究几个典型的应用程序情况,并讨论解决这些情况的组件或最佳组件。 当您研究这些情况时,请牢记就每种技术您所了解的内容。尤其要记住,servlet 体系结构的轻量级线程模型使 servlet 的可伸缩性特别有效,而无状态会话 bean 极好地平衡了健壮企业资源的访问、恰当的响应时间和整体可伸缩性,有时无状态会话 bean 能较好地适合比较重量级的应用程序。 应用程序客户机 标准的应用程序客户机是与另一系统或组件进行相互操作的用户,而不是与应用程序进行相互操作的用户。我们将研究三种典型的应用程序客户机情况,以及它们最可能的解决方案: 如果客户机是基于 Java 的,并且和服务器位于同一个防火墙之后,则最好的解决方案是使用 RMI,直接与应用程序服务器上的无状态会话 bean 通信。 如果正在使用非 Java 客户机,或者客户机没有位于服务器的防火墙之后,则您会希望使用 HTTP 协议来与 servlet 进行相互操作。(应该根据是否需要访问由 EJB 组件所提供的广泛的企业支持来决定是只使用 servlet 还是通过 servlet 访问会话 bean)。 第三种情形较少见,但确实会出现。一些应用程序服务器供应商采用接受本机 IIOP 调用这样的方式将其 EJB 容器公开,使 CORBA 客户机将 EJB 组件看作本机 CORBA 应用程序。这允许非 Java 客户机使用 IIOP 协议来与无状态会话 bean 进行通信。在这种设置中,客户机绕过了整个 Web 层,使用 IIOP 协议直接与业务层(无状态会话 EJB 组件)通信。 企业应用程序集成(EAI) EAI 通常使用一个或多个事务将两个或多个企业应用程序集成到无缝值链中。由于 J2EE 对原有应用程序、消息传递系统、各种数据源和其它企业应用程序提供了广泛的支持,所以它常常被用来将各种应用程序“粘合”成相连的集成系统。 在 EAI 这种情形中,servlet 和 EJB 组件作 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |