J2EE学习从菜鸟变大鸟之六 EJB(Enterprise JavaBean)企业级Java组件
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组件的更多相关文章
- J2EE学习从菜鸟变大鸟之九 深入浅出理解 Servlet-----实例解析
关于Servlet的基础内容在前面已经和大家分享过了,参考J2EE学习从菜鸟变大鸟之七 Servlet,现在结合到DRP中学习,深刻的体会Servlet起到了枢纽中转的作用,控制逻辑(到MVC中更像是 ...
- J2EE学习从菜鸟变大鸟之四 JNDI(Java Naming and Directory Interface)
掌握 J2EE 是件不是很轻松的事哈,但是很有意思,抽象抽象哈哈,因为它包含的技术和缩略语在不断地增长.Java 命名和目录接口(Java Naming and Directory Interface ...
- J2EE学习从菜鸟变大鸟之八 企业级项目开发的思考
什么是企业级项目开发 "企业级项目".企业级项目开发,Java也是企业级项目开发,这个我们到处说.听,每天被我们挂在嘴边,可是到底什么项目才算是"企业级"?自己 ...
- J2EE学习从菜鸟变大鸟之七 Servlet
Servlet现在自己的理解是一个控制器,简单的可以理解为不同的JSP页面由用户发送过来的请求可以由Servlet控制器来控制其向下调用的方向(结合三层好理解),但它比较特殊,因为它通常会从外界接收数 ...
- J2EE学习从菜鸟变大鸟之五 JDBC(Java Data Base Connectivity)
JDBC刚开始学习这个的时候看到了,以为是ODBC呢,很是相似啊,总的来说还是基本上一类的东东,但是还有一些细微的区别,下面和大家一起分享学习. JDBC(Java Data Base Connect ...
- Java学习从菜鸟变大鸟之一 hashCode()和equals()的本质区别和联系
在学习java,根据视频做实例的过程中,对equals和hashcode两个方法理解稍微深刻一点,主要是它们两个很容易混淆,容易出错,自己又通过网上的资料学习,和大家分享 equals()方法 equ ...
- Java学习从菜鸟变大鸟之三 多线程中Thread 和Runnable的区别与运用
多线程机制是java中的一个特点,掌握它对后面的知识的理解至关重要,是java工程师的必备知识,多线程指在单个程序中可以运行多个不同的线程执行的不同的任务,线程是一个程序内部的顺序控制流.进程是静态的 ...
- Java学习从菜鸟变大鸟之二 输入输出流(IO)
在软件开发中,数据流和数据库操作占据了一个很重要的位置,所以,熟悉操作数据流和数据库,对于每一个开发者来说都是很重要的,今天就来总结一下JavaI/O. 流 流是一个很形象的概念,当程序需要读取数据的 ...
- EJB(Enterprise JavaBean)科普
该文章是引用的,主要用于自己的学习,然后是记载免得忘记的时候到处乱找.结尾有引用地址. 到底EJB是什么?被口口相传的神神秘秘的,百度一番,总觉得没有讲清楚的,仍觉得一头雾水.百度了很久,也从网络的文 ...
随机推荐
- JVM指令集介绍
转载自:http://glutinit.iteye.com/blog/1263446 延伸参考 JVM接收参数和方法调用 void spin() { int i; for (i = 0 ...
- jvm 指令集代码
指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int ...
- js前端模块化(一) commonjs
随着浏览器的发展,很多页面逻辑迁移到了客户端(表单验证等),JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,JavaScript极其简单的代码组 ...
- struts2 可以用ognl拿到值而不可以用el拿到值的解决方法
错误debug后 得到了There is no read method for container的错误 于是我new了一个实体类 package com.unity; public class St ...
- 我在 Ubuntu 下使用 Sublime 编写 python 代码时遇到并解决的问题
Ubuntu 下 Sublime 无法输入中文 解决方法如下: sudo apt-get update && sudo apt-get upgrade 克隆项目到本地 : git cl ...
- numpy的初探
# data = numpy.genfromtxt("C:\\Users\\Admin\Desktop\\111.txt", delimiter='\t', dtype='str' ...
- CSharpGL(48)用ShadowVolume画模型的影子
CSharpGL(48)用ShadowVolume画模型的影子 在Per-Fragment Operations & Tests阶段,有一个步骤是模版测试(Stencil Test).依靠这一 ...
- 2016移动端Android新技术综合预览--好文不多,这一篇就足够
Csdn /Tamic 原文地址: http://blog.csdn.net/sk719887916/article/details/53525067 本文章6月份已完成(http://www.jia ...
- 安卓高级6 CoordinatorLayout
原作者大神地址:http://blog.csdn.net/huachao1001/article/details/51554608 曾在网上找了一些关于CoordinatorLayout的教程,大部分 ...
- 从0到1:制作你的苹果podcast(播客)
注意:本文不是教你如何录音.如何做后期的文章.而是聚焦于如何搭建播客(podcast)需要的环境. 本文科普类文章,干货少,湿货多. 先选一个主机吧 这步的初衷和你自己建站是一样的.你可以购买一个独立 ...