博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是EJB?EJB详解
阅读量:4126 次
发布时间:2019-05-25

本文共 2027 字,大约阅读时间需要 6 分钟。

EJB到底是什么?

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

既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题其实挺关键的,因为J2EE 中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB 什么时候不用。于是大家都产生一些联想,认为EJB"分布式运算"指得是"负载均衡"提高系统的运行效率。然而,估计很多人都搞错了,这个"服务群集"和"分布式运算"并没有根本解决运行负载的问题,尤其是针对数据库的应用系统。

为什么?

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

  1. 把EJB 掰开了揉碎了

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

3.1 EJB 概念的剖析

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

商务软件的核心部分是它的业务逻辑。业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现。
……
J2EE 对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB(Enterprise JavaBean)组件。这其中我们主要关注这么几点,我们来逐条剖析:

剖析1:所谓:“业务逻辑”

我们注意到在EJB 的概念中主要提到的就是"业务逻辑"的封装,而这个业务逻辑到底是什么?说的那么悬乎,其实这个所谓的"业务逻辑"我们完全可以理解成执行特定任务的"类"。

剖析2:所谓:“将业务逻辑从客户端软件中抽取出来,封装在组件中……运行在一个服务器上”

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

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

变成大白话就是,“把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上了”。

3.3 发现问题了

不管是用"八股文"说,还是用大白话说这个EJB 概念都提到了一个词–“客户端软件”。

“客户端软件”?难道EJB 的概念中说的是C/S 软件?
是的,没错!
EJB 就是将那些"类"放到一个服务器上,用C/S 形式的软件客户端对服务器上的"类"进行调用。
快崩溃了吧!
EJB 和JSP 有什么关系?EJB 和JSP 有关系,但是关系还真不怎么大,至多是在JSP 的服务器端调用远端服务上的EJB 类,仅此而已。

4 .1 EJB 的最底层究竟是什么

我们揭开了EJB"八股"概念的真谛,那么,再来分析EJB 的底层实现技术,通过底层实

现技术来分析EJB 的工作方式。
4.2 EJB 的实现技术

EJB 是运行在独立服务器上的组件,客户端是通过网络对EJB 对象进行调用的。在Java中,能够实现远程对象调用的技术是RMI,而EJB 技术基础正是RMI。通过RMI 技术,J2EE将EJB 组件创建为远程对象,客户端就可以通过网络调用EJB 对象了。

4.4 优点

这种机制给分布计算的系统设计、编程都带来了极大的方便。只要按照RMI 规则设计程序,可以不必再过问在RMI 之下的网络细节了,如:TCP 和Socket 等等。任意两台计算机之间的通讯完全由RMI 负责。调用远程计算机上的对象就像本地对象一样方便。RMI 可将完整的对象作为参数和返回值进行传递,而不仅仅是预定义的数据类型。也就是说,可以将类似Java 哈西表这样的复杂类型作为一个参数进行传递。

4.5 缺点

如果是较为简单的方法调用,其执行效率也许会比本地执行慢很多,即使和远程Socket机制的简单数据返回的应用相比,也会慢一些,原因是,其在网络间需要传递的信息不仅仅包含该函数的返回值信息,还会包含该对象序列化后的字节内容。

4.6 EJB 是以RMI 为基础的

通过RMI 技术,J2EE 将EJB 组件创建为远程对象,EJB 虽然用了RMI 技术,但是却只需要定义远程接口而无需生成他们的实现类,这样就将RMI 技术中的一些细节问题屏蔽了。但不管怎么说,EJB 的基础仍然是RMI,所以,如果你想了解EJB 的原理,只要把RMI的原理搞清楚就行了。你也就弄清楚了什么时候用EJB 什么时候不需要用EJB 了。

总结:

a.EJB实现原理: 就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进行通信。

b.RMI实现原理 :就是通过Java对象可序列化机制实现分布计算。

c.服务器集群: 就是通过RMI的通信,连接不同功能模块的服务器,以实现一个完整的功能。

转载地址:http://irhpi.baihongyu.com/

你可能感兴趣的文章
高性能页面的14条军规
查看>>
LAMP学习之旅
查看>>
WinXP下安装 Apache +PHP5 + MySQL + phpMyAdmin学习心得
查看>>
phpMyAdmin安装图解教程
查看>>
the 50 symbols of life
查看>>
Microsoft Enterprise Library 4.0
查看>>
HP大中华区总裁孙振耀退休十五天后九大感言
查看>>
真正的征途从这里开始~~
查看>>
一些很酷的.Net技巧
查看>>
鲍尔默致员工信:部署09年微软5大工作重心
查看>>
使用ScriptManager控件
查看>>
程序员四大忌
查看>>
JavaScript基础知识
查看>>
ScriptManager 以及ScriptManagerProxy Service属性的使用
查看>>
在 ASP.NET AJAX 中使用 Web 服务
查看>>
UpdatePanel的使用注意
查看>>
JavaScript常见问题总结
查看>>
Web实用小工具推荐使用
查看>>
.NET垃圾回收机制详解与心得体会
查看>>
不能不去的jQuery网站
查看>>