近期的项目中使用了EJB。当时就仅仅知道怎么用,没有深入的去理解。当完毕这个项目之后。再回想项目中使用的技术、框架以及工具的时候,突然感觉对EJB这个概念非常是模糊,于是上网搜一些资料。可是,非常多的资料都是“官方语言”。没有我想要的答案,可是机缘巧合下,发现了一篇可以给我解惑的文章。这里就节选一部分(查看全文)。

1. 我们不禁要问。什么是"服务集群"?什么是"企业级开发"?

既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!

这个问题事实上挺关键的。由于J2EE 中并没有说明确,也没有详细的指标或者事例告诉广大程序猿什么时候用EJB 什么时候不用。于是大家都产生一些联想,觉得EJB"分布式运算"指得是"负载均衡"提高系统的执行效率。然而,预计非常多人都搞错了,这个"服务群集"和"分布式运算"并没有根本解决执行负载的问题,尤其是针对数据库的应用系统。

为什么?

我们先把EJB 打回原形给大家来慢慢分析。

2. 把EJB 掰开了揉碎了

我们把EJB 的概念好好的分析一下。看看能发现些什么蛛丝马迹。



3.1 EJB 概念的剖析

我们先看一下,EJB 的官方解释:

商务软件的核心部分是它的业务逻辑。业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现。……

J2EE 对于这个问题的处理方法是将业务逻辑从client软件中抽取出来,封装在一个组件中。这个组件执行在一个独立的server上,client软件通过网络调用组件提供的服务以实现业务逻辑,而client软件的功能单纯到仅仅负责发送调用请求和显示处理结果。

在J2EE 中。这个执行在一个独立的server上,并封装了业务逻辑的组件就是EJB(Enterprise Java Bean)组件。

这当中我们主要关注这么几点,我们来逐条剖析:

剖析1:所谓:"业务逻辑"

我们注意到在EJB 的概念中主要提到的就是"业务逻辑"的封装。而这个业务逻辑究竟是什么?说的那么悬乎。事实上这个所谓的"业务逻辑"我们全然能够理解成运行特定任务的"类"。

剖析2:所谓:"将业务逻辑从client软件中抽取出来,封装在组件中……执行在一个服

务器上"

既然我们知道了"业务逻辑"的概念就是执行特定任务的"类",那么,什么叫"从client软件中抽取出来"?事实上,这个就是把原来放到client的"类",拿出来不放到client了,放到一个组件中。并将这个组件放到一个server上去执行。

3.2 把EJB 这个概念变成大白话

变成大白话就是,"把你编写的软件中那些须要运行制定的任务的类,不放到client软件上了,而是给他打成包放到一个server上了"。

3.3 发现问题了

无论是用"八股文"说。还是用大白话说这个EJB 概念都提到了一个词--"client软件"。

"client软件"?难道EJB 的概念中说的是C/S 软件?

是的,没错!

EJB 就是将那些"类"放到一个server上。用C/S 形式的软件client对server上的"类"进行调用。

结束语:我认为文章中的“把你编写的软件中那些须要运行制定的任务的类,不放到client软

件上了,而是给他打成包放到一个server上了”这句话就是我想要的。

用通俗易懂的语言把那些晦涩难懂的“官方语言”解说清楚,这也是一种能力。

EJB是什么?(节选)的更多相关文章

  1. NetBean 8 创建EJB

    一. 介绍 百度了一下关于在NetBean开发环境里创建EJB的教程,没有找到好的例子,2天的调试过程,写下来帮助后人. EJB (Enterprise Java Bean) 是一套高扩展性的开发企业 ...

  2. J2EE基础之EJB

    J2EE基础之EJB 1.什么是EJB?       EJB(Enterprise Java Beans),是JavaEE中的商业应用组件技术,是JavaEE三大组件(Servlet,JSP,EJB) ...

  3. 2.一个EJB的小Demo

    新建一个java普通项目即可 这里用到了Jboss,需要安装Jboss,然后进入jboss-4.2.3.GA\client目录,拷贝所有的jar包到本项目的lib下. 3个接口分别如下所示: publ ...

  4. 1.认识EJB

    什么是EJB?1. Enterprice JavaBeans(EJB)是一个用于分布式业务应用的标准服务端组件模型. . 采用EJB架构编写的应用是可伸的.事务性的.多用户安全的. . 采用EJB编写 ...

  5. java.lang.IllegalStateException: Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB CMT instead

    java.lang.IllegalStateException: Not allowed to create transaction on sharedEntityManager - use Spri ...

  6. EJB之Timer

    EJB Timer 要么: Annotation @Schedule 或者方法前声明@Timeout 要么: 在部署描述中定义timeout-method 如果是使用@Schedule, Timer在 ...

  7. EJB的调用

    EJB调用.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);border ...

  8. EJB 简介

    EJB: 被称为java企业bean,服务器端组件,核心应用是部署分布式应用程序.用它部署的系统不限定平台.实际上ejb是一种产品,描述了应用组件要解决的标准 标准:   可扩展 (Scalable) ...

  9. EJB初识(通熟易懂)

    转载自http://blog.csdn.net/jojo52013145/article/details/5783677,讲的很透彻,佩服,膜拜学习 1. 我们不禁要问,什么是"服务集群&q ...

随机推荐

  1. Linux/Unix面试题

    shell中如何改变文件中的某个关键字 unix命令 unix shell中在特定文件夹内查找包含指定字符串的文件用哪个命令 如何用要shell找到指定目录下的最近一天更新的文件,要包含子目录 Lin ...

  2. POJ 3368 Frequent values(线段树区间合并)

    [题目链接] http://poj.org/problem?id=3368 [题目大意] 有一个有序序列,要求区间查询出现次数最多的数 [题解] 维护每个区间左端点和右端点,以及左右的长度,还有区间的 ...

  3. 【bzoj1951】【古代猪文】Lucas定理+欧拉定理+孙子定理

    (上不了p站我要死了,当然是游戏原画啊) Description (题面倒是很有趣,就是太长了) 题意: 一个朝代流传的猪文文字恰好为N的k分之一,其中k是N的一个正约数(可以是1和N).不过具体是哪 ...

  4. 设置iframe高度自适应屏幕高度

    写在前面: 最近在搭建项目前台页面框子的时候,把iframe设置成了固定的高度,导致不同的电脑尺寸访问的时候,高度差异较大,故查了下,将iframe设置成自动适应屏幕高度的方式,这里记录下. 还是直接 ...

  5. JAVA中使用freemark生成自定义文件(json、excel、yaml、txt)

    原文:http://blog.csdn.net/jinzhencs/article/details/51461776 场景:在我们工作中,有时需要生成一些文件,可能它不是一种标准的格式,比如JSON. ...

  6. Visual Studio Debug和Release的区别及obj的作用

    一.Debug和Release的区别      1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂), ...

  7. 一个人的安全部之ELK接收Paloalto日志并用钉钉告警

    起因 通报漏洞后,开发未能及时修复漏洞,导致被攻击,领导说我发现被攻击的时间晚了,由于一个人安全部精力有限未能及时看IPS告警,于是做了个钉钉告警. 本人环境介绍 ubuntu 14.04 pytho ...

  8. as well as

    一.as well 用法: 1.as well常用作状语,作“又:也”解,相当于too或also,常位于句末,无须用逗号与句子分开.如: I am going to London and my sis ...

  9. Unity3d / 3ds max 模型分享站点

    http://www.cgrealm.org/model/ 王国3D模型库 http://www.cgjoy.com/ 游戏特效论坛

  10. Nginx auto_index和auth_basic

    Nginx auto_index和auth_basic 1.nginx auto_index nginx站点目录浏览功能,默认情况下为关闭 启用或禁用目录列表输出 开启这个功能的前提是站点目录下没有首 ...