EJB (EnterpriseJavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。其称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(EntityBean)和消息驱动Bean(MessageDrivenBean)。

这半天通过多个网站查找资料拓展学习,逐步的解开了其神秘的面纱,用通俗话说,EJB就是:"把自己编写的软件中那些需要执行制定的任务的类(具有特定功能的类),不放到客户端软件上了,而是给它打成包放到一个服务器上了"。EJB 就是将那些"类"放到一个服务器上,用C/S形式的软件客户端对服务器上的"类"进行调用。

EJB概览图:

图1:

概念深入剖析

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

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

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

务器上"

既然我们知道了"业务逻辑"的概念就是执行特定任务的"类",那么,什么叫"从客户端

软件中抽取出来"?其实,这个就是把原来放到客户端的"类",拿出来不放到客户端了,放

到一个组件中,并将这个组件放到一个服务器上去运行。

标准:

可扩展 (Scalable)、分布式 (Distributed)、事务处理 (Transactional)、数据存储 (Persistent)、安全性 (Secure)。由于EJB是用于开发企业商务逻辑部分。所以不涉及显示数据部分的技术。这就要求使用EJB的同时必须和J2EE的其它标准一起使用。比如servlet,jsp技术等。

好处

J2EE是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果,减少了BS中客户端的复杂性,提高了开发效率,提高了代码的可重用性。

提供真正的可重用框架

每一个jar包代表一个EJB组件,一个系统可以由多个可重用的EJB组件构成,例如:树形结构EJB组件;自增序号EJB组件;用户资料EJB组件等,这样的EJB组件可以象积木一样搭配在大部分应用系统中,提高了系统的开发效率,保证了开发质量,经常听八期师哥他们Gxpt项目中,使用它,可见其作用非常大,用处广啊。

实现技术

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

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

远程方法调用是一种计算机之间对象互相调用对方函数,启动对方进程的一种机制,使用这种机制,某一台计算机上的对象在调用另外一台计算机上的方法时,使用的程序语法规则和在本地机上对象间的方法调用的语法规则一样。

活学活用

我们如果把"客户端程序"理解成某一台服务器,这样也是可以被应用的,而且,如果是服务器互相之间做EJB的调用的话,也就不存在广域网带宽限制的问题了。

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



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



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



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

总结:



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



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



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




接下来和大家一起学习Selrvlet,敬请期待!

J2EE学习从菜鸟变大鸟之六 EJB(Enterprise JavaBean)企业级Java组件的更多相关文章

  1. J2EE学习从菜鸟变大鸟之九 深入浅出理解 Servlet-----实例解析

    关于Servlet的基础内容在前面已经和大家分享过了,参考J2EE学习从菜鸟变大鸟之七 Servlet,现在结合到DRP中学习,深刻的体会Servlet起到了枢纽中转的作用,控制逻辑(到MVC中更像是 ...

  2. J2EE学习从菜鸟变大鸟之四 JNDI(Java Naming and Directory Interface)

    掌握 J2EE 是件不是很轻松的事哈,但是很有意思,抽象抽象哈哈,因为它包含的技术和缩略语在不断地增长.Java 命名和目录接口(Java Naming and Directory Interface ...

  3. J2EE学习从菜鸟变大鸟之八 企业级项目开发的思考

    什么是企业级项目开发 "企业级项目".企业级项目开发,Java也是企业级项目开发,这个我们到处说.听,每天被我们挂在嘴边,可是到底什么项目才算是"企业级"?自己 ...

  4. J2EE学习从菜鸟变大鸟之七 Servlet

    Servlet现在自己的理解是一个控制器,简单的可以理解为不同的JSP页面由用户发送过来的请求可以由Servlet控制器来控制其向下调用的方向(结合三层好理解),但它比较特殊,因为它通常会从外界接收数 ...

  5. J2EE学习从菜鸟变大鸟之五 JDBC(Java Data Base Connectivity)

    JDBC刚开始学习这个的时候看到了,以为是ODBC呢,很是相似啊,总的来说还是基本上一类的东东,但是还有一些细微的区别,下面和大家一起分享学习. JDBC(Java Data Base Connect ...

  6. Java学习从菜鸟变大鸟之一 hashCode()和equals()的本质区别和联系

    在学习java,根据视频做实例的过程中,对equals和hashcode两个方法理解稍微深刻一点,主要是它们两个很容易混淆,容易出错,自己又通过网上的资料学习,和大家分享 equals()方法 equ ...

  7. Java学习从菜鸟变大鸟之三 多线程中Thread 和Runnable的区别与运用

    多线程机制是java中的一个特点,掌握它对后面的知识的理解至关重要,是java工程师的必备知识,多线程指在单个程序中可以运行多个不同的线程执行的不同的任务,线程是一个程序内部的顺序控制流.进程是静态的 ...

  8. Java学习从菜鸟变大鸟之二 输入输出流(IO)

    在软件开发中,数据流和数据库操作占据了一个很重要的位置,所以,熟悉操作数据流和数据库,对于每一个开发者来说都是很重要的,今天就来总结一下JavaI/O. 流 流是一个很形象的概念,当程序需要读取数据的 ...

  9. EJB(Enterprise JavaBean)科普

    该文章是引用的,主要用于自己的学习,然后是记载免得忘记的时候到处乱找.结尾有引用地址. 到底EJB是什么?被口口相传的神神秘秘的,百度一番,总觉得没有讲清楚的,仍觉得一头雾水.百度了很久,也从网络的文 ...

随机推荐

  1. 报表生成工具 —— iText

    十二月份一直在做生成报表的功能,中间踩了不少坑,刚好今天有时间,写篇博客记录一下. 一.iText 简介 iText 是著名开放源码站点 sourceforge 的一个项目,是一个用于生成 PDF 文 ...

  2. c# 操作数据库

    查询 string strConnection = "Data Source=(local);Initial Catalog=zpractice;Integrated Security=SS ...

  3. Windows转Linux总结(附带常用Linux命令-LinuxMint)

    这是我在Linux系统下写的第一篇博客,花了一周的时间从Windows系统转到Linux并且可以完成日常操作,能在Linux系统下完成开发,运用各种开发工具,写各种语言小程序和JavaEE. 经过这一 ...

  4. SUSE11虚拟机安装与Oracle 11g安装

    SUSE11虚拟机安装与Oracle 11g安装 本文中所需所有参数均位于文末附录中 新建虚拟机,选择SUSE11 64位 启动虚拟机后,选择第二项安装 选择语言 跳过CD检查 选择全新安装 选择默认 ...

  5. 安利三款提升幸福感的chrome插件

    谷歌访问助手 chrome浏览器一直是各大码农推荐的比较好用的浏览器,速度快.插件多. 但是由于众所周知的原因导致了谷歌账号同步.扩展商店访问慢甚至打不开的情况. 谷歌访问助手就是用来解决此问题的. ...

  6. 毕业回馈-89c51之定时器/计数器(Timer/Count)

    今天分享的是89c51系列单片机的内部资源定时器/计数器,在所有的嵌入式系统中都包含这两个内部功能. 首先先了解几个定时器/计数器相关的概念: •时钟周期:时钟周期 T 是时序中最小的时间单位,具体计 ...

  7. jspacker压缩及解压缩研究(js eval)

    起因: 在研究爬虫的时候发现很多网站都出现了同一种方式的js混淆,并且名字都是pde.js,怀疑是使用了同一款混淆工具,所以研究一下. 这款工具叫JS Packer,并不是专门的混淆工具,而是一款js ...

  8. 深入Java虚拟机(1)——Java体系结构

    Java体系结构 Java体系结构包括四个独立但相关的技术: 1.Java程序设计语言 2.Java class文件格式 3.Java应用编程接口(API) 4.Java虚拟机 当编写并运行一个Jav ...

  9. ROS机器人程序设计(原书第2版)补充资料 教学大纲

    ROS机器人程序设计(原书第2版) 补充资料 教学大纲 针对该书稍后会补充教学大纲.教案.多媒体课件以及练习题等. <ROS机器人程序设计>课程简介 课程编号:XXXXXX 课程名称:RO ...

  10. antlr 4新特性总结及与antlr v3的不同

    antlr 4新特性总结及与antlr v3的不同 学习曲线低.antlr v4相对于v3,v4更注重于用更接近于自然语言的方式去解析语言.比如运算符优先级,排在最前面的规则优先级最高: 层次更清晰. ...