EJB是什么?(节选)

Posted liguangsunls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EJB是什么?(节选)相关的知识,希望对你有一定的参考价值。

近期的项目中使用了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是什么?(节选)的主要内容,如果未能解决你的问题,请参考以下文章

EJB是什么

到底EJB是什么

什么是 EJB,它有什么作用?

EJB是什么鸟东西?

EJB到底是什么,真的那么神秘吗??

EJB