EJB集群技术分析.docVIP

  • 3
  • 0
  • 约5.51千字
  • 约 5页
  • 2017-02-09 发布于重庆
  • 举报
EJB集群技术分析

EJB集群技术分析 J2EE平台提供了一个基于组件的方法,用来设计、开发、装配及部署企业应用程序。而且提供了一个多层的分布式的应用模型、组件的复用、一致化的安全模型以及灵活的事务控制模型。近年来在企业系统中得到了大量使用。随着J2EE应用服务器的大量部署和客户访问量的猛增。企业对于J2EE系统的可伸缩性和高可用性要求越来越高,特别是在电子商务和金融领域,这个问题越显的突出。如何设计和构建一个具有可伸缩的,高可用性的J2EE集群应用服务器,成为设计J2EE应用服务器设计必须考虑的问题。但J2EE应用服务器的集群是基于EJB组件的集群,和普通Web Server集群技术有很大的不同。实现的方法也根本不相同。 1 集群系统特点 一个集群系统是一群松散结合的服务器组,形成一个虚拟的服务器,为客户端用户提供统一的服务。对于这个客户端来说,通常在访问集群系统时不会意识到它的服务是由具体的哪一台服务器提供。集群系统一般应具高可用性、可伸缩性、负载均衡、故障恢复和可维护性等特殊性能。 高 可用性是集群系统最基本的要求,它是对整个系统运行稳定性的一个评价。可伸缩性是指整个系统在随着客户端用户数量的增加而继续保持有效响应时间的能力。在 一个可伸缩性系统中,随着用户数量的增加,有效响应时间变长,成线性变化关系,这也体现一个系统的峰值负载处理能力,但随着越来越多的系统处于Internet上, 用户访问的峰值负载有效预测已变的不可能。用户访问量的猛增,使系统的有效响应时间成非线性变化,响应时间急剧变长,知道系统不堪重负而停机。一般的解决 方法就是通过提升系统硬件系统,或通过增加服务器。但是不合理的增加服务器只能使整个集群系统变的越来越庞大,系统的这种复杂化就意味系统故障率变高,随 之整个系统可靠性、可维护性都会降低。 所以,一个系统的可用性和可伸缩性是一对矛盾的关系,而且和整个集群系统的实现方法有很大的关系。 2???????? EJB技术 EJB是J2EE应用平台的核心。Sun在EJB2.0规范中对EJB定义如下:EJB是用于开发和部署具多层结构的、分布式的、面向对象的Java应用系统跨平台的构件体系结构。EJB组件有三中类型:会话bean、实体bean、消息驱动bean。其中会话bean分为有状态和无状态两种。 EJB服务器的核心是提供EJB使用的一个或者多个EJB容器(Container)。EJB容器管理它所包含的EJB,为EJB组件的生存和执行提供了运行环境,同时也负责EJB的事务管理,安全管理,资源访问控制和一些异常处理。EJB容器不允许J2EE的客户端程序直接访问容器中EJB对象,当一个客户端用户想访问一个EJB, EJB规范中要求客户使用Java名字和目录接口JNDI(Java Naming and Directory Interface)API来定位Bean的home接口。 要访问EJB一般需要经过以下三步(见图1)(下面只列举Remote的调用): 1)??? 从JNDI中查找Bean的home接口。首先客户需要获得一个JNDI的初始化上下文,然后,客户就可以使用上下文的lookup方法从一个名字对应到它的home接口; 2)??? 使用home接口中的Create()方法获得Bean的Remote接口引用; 3)??? 通过Remote接口中的方法使用Bean中定义的方法; 一个简单访问例子如下: // 获得JNDI初始化上下文 Context mycontext// 查找MyEJB,获得Home对象的引用 Object homeref = ?mycontext.lookup(“MyEJB”); // Home对象造型为RMI-IIOP对象 MyBeanHome home = (MyBeanHome)PortableRemoteObject(homeref, MyBeanHome.Class); EJB对象,返回Remote接口 MyBeanRemote? myref = home.create( ); //通过Remote接口调用EJB中实现的方法 System.out.println ( myref.getname( )); 3 EJB服务器集群 EJB服务器的集群是基于组件的一种集群方式,和普通Web Server集群技术有很大的不同。实现的方法也不相同。又由于EJB规范中没有提供任何有关支持集群的标准,即使有的厂商在EJB服务器中提供了集群特性,但如何具体实现集群也是由厂商自己确定。实现的方法也各不相同。目前,大多数J2EE应用服务器都提供了集群功能,如Bea WebLogic应用服务器,开放源码的JBoss应用服务器,Sybase公司提供的J2EE应用服务器等都提供了集群功能。在EJB服务器集群设计 中,负载均衡

文档评论(0)

1亿VIP精品文档

相关文档