红海盗电影高清:EJB的角色和三个对象

来源:百度文库 编辑:高考问答 时间:2024/04/28 04:52:29
EJB的角色和三个对象?

一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise Bean Provider) 、应用组合者(Application Assembler)、部署者(Deployer)、EJB 服务器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系统管理员(System Administrator)
三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类

1.EJB的三个对象 1、Remote(或Local)接口 2、Home(或LocalHome)接口 3、企业Bean 说明: 1、Remote接口为远程接口的定义,定义一个远程接口的时候,该接口必须继承javax.ejb.EJBObject(这里,javax.ejb.EJBObject继承自java.rmi.Remote接口类)。自定义的远程接口中,可以定义业务方法列表,而这些方法应该抛出RemoteException异常,而且,在要实现的企业Bean中有相应的实现,这些企业Bean可以是会话Bean、实体Bean、消息驱动Bean。 2、Home接口为组件接口,即通过该接口中定义的查找、创建、删除企业Bean类实例的方法列表,可以创建一个EJBObject的对象(其实是获取到一个远程接口),从而获取到一个企业Bean的实例的引用,然后通过远程接口独傲用一个企业Bean中定义的方法,实现方法定义的功能。 Home接口是通过继承javax.ejb.EJBHome来定义的(这里,javax.ejb.EJBHome继承自java.rmi.Remote接口类)。 3、Home接口中方法列表的定义。这些定义的方法必须抛出RemoteException,并且,根据方法实现功能的不同,还需要抛出方法的动作异常,例如,如果是创建方法,还应该抛出CreateException,如果是移除方法,还应该抛出RemoveException。 4、EJB是服务器端组件。企业Bean才是最核心的。企业Bean可以是会话Bean、实体Bean、消息驱动Bean。 5、客服端调用EJB对象的基本步骤是,首先设置JNDI服务工厂以及JNDI服务地址系统属性,然后查找到Home接口,接着从Home接口调用Create方法创建Remote接口,最后通过Remote接口调用其业务方法。 6、如果EJB组件提供分布式计算服务,需要远程调用,执行业务,这时一个EJB组件具有的EJB对象为:Remote接口、Home接口,企业Bean; 如果EJB组件提供本地服务,需要提供本地接口和本地组件接口,这时一个EJB组件具有的EJB对象为:Local接口、LocalHome接口,企业Bean。■ EJB服务器和EJB容器 EJB服务器是管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口, 对其他服务的访问。一个EJB服务器必须提供对可访问JNDI的名字服务和事务服务支持。 EJB容器是一个管理一个或多个EJB类/实例的抽象。它通过规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。容器开发商提供运行在EJB服务器中一套完成这些功能的工具和接口。 这些服务包括: ·与二级存储中交换(对会话bean) ·持久性管理(对实体bean) ·实现创建和查找服务的home object的可用性 ·在可通过JNDI访问的名字空间home object的可视性 ·正确的创建、初始化和删除bean ·保证商业方法正确地运行在事务上下文中 ·实现某一基本的安全服务 ·从home object和EJBObject上的RMI上产生stub和skeleton 说明: EJB服务器供应商一般将EJB容器集成到EJB服务器中。■ EJB规范规定EJB中禁止的操作 1、不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等) 2、不能操作awt 3、不能实现服务器功能 4、不能对静态属生存取 5、不能使用IO操作直接存取文件系统 6、不能加载本地库 7、不能将this作为变量和返回 8、不能循环调用■

2. EJB的角色 EJB有六个角色,分别为: EJB组件开发者(Enterprise Bean Provider) 应用组合者(Application Assembler) 部署者(Deployer) EJB 服务器提供者(EJB Server Provider) EJB 容器提供者(EJB Container Provider) 系统管理员(System Administrator) 说明: 一个完整的基于EJB的分布式计算结构由上述六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。■ EJB会话Bean 会话Bean(SessionBean)在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 会话Bean包括两种:无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)。 说明: 1、无状态会话Bean(Stateless Session Bean)的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。无状态会话Bean(Stateless Session Bean)的优势却在于他可以维持使用者的状态。 2、当客户机第一次调用一个有状态会话Bean(Stateful Session Bean)时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用有状态会话Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。有状态会话Bean(Stateful Session Bean)会消耗 J2EE Server 较多的内存。