【概述】
一、EJB构件技术
1.分布式对象技术:提供客户端分布式对象的基本支持
2.服务端构件技术:用于中间层应用服务器,支持分布式商业对象的开发
3.CTM(Commponent Transaction Monitor)技术:是一个应用服务器,为分布式商业对象提供公共服务框架
二、EJB构件的特点
1.公共服务框架:支持大量的、由应用服务器提供的系统级服务
2.平台独立性:ejb沿袭了java技术的平台无关性,以及ejb/j2ee规范的开放性
3.封装特性:提供对服务的封装特性,ejb应用可以使用现有的基础性服务
4.可定制性:不修改源代码的基础上进行定制化,修改ejb构件的运行时配置足以满足特定用户的需求
5.协议无关性:支持客户端通过多种ejb访问ejb构件
6.通用性:方便支持不同规模的应用系统,可以在任何时间增加客户系统,而不需要修改核心的应用系统
三、在EJB应用中集成遗产系统
可以基于JCA实现在网络上访问遗产系统的目的,通过为遗产系统提供特定的适配器,可以在ejb应用中通过JCA来访问遗产系统
【EJB体系结构中的构件】
一、Enterprise Java Bean
开发者实现的核心构件EJB,是EJB客户端所调用的操作的真正实现者,可以被部署到EJB应用服务器上,用来组装大型的EJB应用(包括session bean、entity bean、message driven bean)
1.Entity Beans
代表数据
在服务器重启后仍然存在
可以通过EJB container(CMP)或者程序(BMP)持久化到数据库
2.Session Beans
执行动作
等价于"一般"的Java object,只不过是在远程
可以是stateless(是原子操作),或stateful(在一个context中执行一系列的操作)
3.Message Driven Bean
处理异步消息
不被客户端直接调用
异步消息发送过来之后,容器调用它的回调方法(OnMessage),构件实现者在OnMessage中实现处理
二、Home接口
Home Interface包含EJB生命周期管理的相关的方法,客户程序试用Home接口创建或删除EJB的实例
三、Remote接口
Remote接口中包含EJB实现的商业方法的声明,它实际上约定了EJB所提供的服务
四、EJB容器
EJB容器为EJB构件提供运行环境并管理运行于其中的EJB
五、EJB服务器
EJB服务器是遵循EJB定义的构件模型的CTM实现,一个EJB服务器可以包含一个或多个EJB容器,EJB服务器为EJB容器的运行提供公共服务框架
六、EJB客户端
EJB客户端泛指调用EJB构件提供的业务操作的软件实体,EJB构件的客户端可以有多种形式(独立的java程序、运行在Web容器中的Servlet或JSP构件、其它的EJB)
【EJB设计原则】
一、Remote接口设计原则
1.继承性约束:每个Remote接口必须继承EJBObject接口
2.方法对应规则:Remote接口中出现的每一个方法的声明都必须在相应的Enterprise Bean类中有一个对应方法的实现;每个方法的参数和返回值必须完全相同,抛出的异常必须匹配
3.RMI约束:Remote接口中定义的方法应该遵循Java RMI的约束
二、Home接口设计原则
1.继承性约束:每个Home接口必须继承EJBHome接口
2.EJB规范要求Home接口中的每个create方法都必须在相应的Enterprise Bean类中有一个对应的ejbCreate方法;函数接口必须相同;返回值要符合相应的匹配规则;抛出的异常必须匹配
3.RMI约束:Home接口中约定的操作也是被远程调用的,因此Home接口中声明的每个操作也必须符合与Remote接口的操作相同的RMI约束
三、Enterprise Bean类设计原则
1.接口约束:Enterprise bean类必须实现EnterpriseBean接口
2.可见性约束:Enterprise bean类必须定义为public类
3.商业方法约束:Enterprise bean类必须实现Remote接口中定义的业务逻辑操作
4.生命周期管理方法约束:Enterprise Bean类必须实现Home接口中定义的create方法对应的ejbCreate方法
四、主键(Primary Key)类设计原则
1.可见性约束:主键类必须定义为public类
2.RMI约束:因为primary key类也是要供远程调用的,所以定义时也要遵循类似的RMI约束
【总结】
学习完中间件第二套视频之后有一些云里雾里,其中从j2ee说起最后谈及对应的发展历史,其中用EJB介主要介绍了中间件的相关内容,并且有相应的实例,但是小编表示实例着实没有看太懂,也许自己没有太入戏,不过没关系结合第一个资料视频中的内容,对EJB进行了宏观的总结,为接下来的学习打一个基础还是很不错的。
虽然总结完之后还是有一些云里雾里,但是相信回家之后的项目实战会有更加深刻的理解与感受吧,总之前途一片光明,只要徒步不断前行~