【中间件】——EJB学习总结

简介: 公共服务框架:支持大量的、由应用服务器提供的系统级服务

【概述】


 一、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体系结构中的构件】


20170527155324530.png


 一、Enterprise Java Bean


   开发者实现的核心构件EJB,是EJB客户端所调用的操作的真正实现者,可以被部署到EJB应用服务器上,用来组装大型的EJB应用(包括session bean、entity bean、message driven bean)


20170527155529143.png


   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进行了宏观的总结,为接下来的学习打一个基础还是很不错的。

   虽然总结完之后还是有一些云里雾里,但是相信回家之后的项目实战会有更加深刻的理解与感受吧,总之前途一片光明,只要徒步不断前行~

相关文章
|
5月前
|
JSON 中间件 数据处理
实践出真知:通过项目学习Python Web框架的路由与中间件设计
【7月更文挑战第19天】探索Python Web开发,掌握Flask或Django的关键在于理解路由和中间件。路由连接URL与功能,如Flask中@app.route()定义请求响应路径。中间件在请求处理前后执行,提供扩展功能,如日志、认证。通过实践项目,不仅学习理论,还能提升构建高效Web应用的能力。示例代码展示路由定义及模拟中间件行为,强调动手实践的重要性。
60 1
|
7月前
|
消息中间件 存储 监控
写了10000字:全面学习RocketMQ中间件
以上是 V 哥在授课时整理的全部 RocketMQ 的内容,在学习时重点要理解其中的含义,正所谓知其然知其所以然,希望这篇文章可以帮助兄弟们搞清楚RocketMQ的来龙去脉,必竟这是一个非常常用的分布式应用的中间件,好了,今天的内容就分享到这,我靠!已经 00:36分,建议收藏起来,慢慢消化,创作不易,喜欢请点赞转发。
948 0
|
7月前
|
存储 NoSQL 中间件
中间件Redis的学习记录
中间件Redis的学习记录
|
7月前
|
安全 Dubbo Java
[Java 晋级之路] 框架、中间件等领域都在使用,你还不快来学习Java SPI机制?!
[Java 晋级之路] 框架、中间件等领域都在使用,你还不快来学习Java SPI机制?!
|
Java 中间件 API
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
383 11
【分布式技术专题】「Zookeeper中间件」给大家学习一下Zookeeper的”开发伴侣”—Curator-Framework(基础篇)
|
中间件 开发者
gin框架学习-路由分组和中间件
Logger中间件将日志写入gin.DefaultWriter,即使配置了GIN_MODE=release。
372 6
gin框架学习-路由分组和中间件
|
消息中间件 存储 中间件
MQ 学习日志(九) MQ 中间件的设计思路
如果让你开发一个消息队列中间件,你会怎么设计架构
120 0
|
消息中间件 存储 网络协议
|
数据采集 存储 缓存
最常用的限流算法以及如何在http中间件中加入流控 | 周末学习
通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理
198 0
|
消息中间件 网络协议 中间件
RabbitMQ消息中间件学习1:基本概念与简单实战模式讲解
Message Queue(消息队列),在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信。 就是两个子系统之间进行通信,有两种选择,第一种是直接远程调用,第二种是借助第三方完成通信。 发送方称为生产者,接收方称为接受者。
RabbitMQ消息中间件学习1:基本概念与简单实战模式讲解