现在的位置: 首页 > 综合 > 正文

EJB基础

2014年09月21日 ⁄ 综合 ⁄ 共 1506字 ⁄ 字号 评论关闭

(1) EJB组件

      J2EE 对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。 这个组件运行在一个独立的服务器上, 客户端软件通过网络调用组件提供的服务以实现业务逻辑, 而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。 在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是 EJB(Enterprise JavaBean)组件。

 

(2)EJB 的实现技术

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

 

(3)对象的序列化

       对象的序列化就是将你程序中实例化的某个类的对象将它转换成字节数组, 也就是说可以放到一个byte 数组中这时候, 你既然已经把一个对象放到了byte数组中, 那么你当然就可以随便处置了它了, 用得最多的就是把他发送到网络上远程的计算分布式计算和RPC(Remote Procedure Call) 远程过程调用 函数或子程序, 让其在网络上另一台机器上执行。说白了,就是本地计算机调用远程计算机上的一个函数。

 

(4)RMI (Remote Method Invocation)

        RMI 英文全称是"Remote Method Invocation",它的中文名称是"远程方法调用",它就是利用 Java 对象序列化的机制实现分布式计算, 实现远程类对象的实例化以及调用的方法。它是对象序列化和分布式计算的结合体说的更清楚些, 就是利用对象序列化来实现远程调用, 也就是上面两个概念的结合体, 利用这个方法来调用远程的类的时候,就不需要编写Socket 程序了,也不需要把对象进行序列化操作,直接调用就行了非常方便。

 

(5)EJB 中所谓的"服务群集"

RMI 是将各种任务与功能的类放到不同的服务器上,然后通过各个服务器间建立的调用规则实现分布式的运算。就是将原来在一个计算机上运算的几个类, 分别放到其他计算机上去运行, 以便分担运行这几个类所需要占用的 CPU 和内存资源。 同时, 也可以将不同的软件功能模块放到不同的服务器上, 当需要修改某些功能的时候直接修改这些服务器上的类就行了, 修改以后所有客
户端的软件都被修改了。虽然, 看起来将各个功能模块分布在不同的服务器上从而分担了各个主计算机的CPU 资源, 然而, 真正的瓶颈并不在这里, 而是, 数据库服务器那里。 数据库服务器都会非常忙的应付各个服务器的查询及操作请求。

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

 

缺点

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

如下情况尽量就不要使用 EJB 了:

1、较为简单的纯 Web 应用开发,不需要用 EJB。

2、需要与其他服务程序配合使用的应用,但调用或返回的自定义的网络协议可以解决
的应用程序,不需要使用 EJB。

3、较多人并发访问的 C/S 结构的应用程序,尽量不要使用EJB。

【上篇】
【下篇】

抱歉!评论已关闭.