Enterprise JavaBean 简介

news2024/9/21 13:46:31

Enterprise JavaBean 简介

在顶层我们使用的框架是面向服务的,而在其之下的开发方法面向组件,最基层的便是面向对象面向过程的JAVA编程。

  • 面向过程和面向对象是两种具体程序设计时的编程范式,他们没有本质区别,只是使用不同的方法和角度去观察一个世界。
  • 而面向服务是编写大型系统时才需要考虑的一种软件架构设计思想。
  • 面向组件(Component-Based Development)是一种软件工程的实践方法。

1. 什么是EJB?

JAVA EE标准中,为了解决企业大型软件的面向服务开发难题(包括但不限于服务接口定义、服务间通信、事务控制、内容持久化等)

开发了一套用于 web 环境专用的 JavaBean,称为 Enterprise JavaBean(EJB)。EJB是一组构建企业级web应用的专用 JavaBean。或者说,EJB是一套重量级的企业应用开发框架,使用者须遵循其规则开发具体业务逻辑。

  • EJB的目标是保证企业软件开发的可伸缩性(保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统)。

  • EJB的源码内容对用户是透明的(即用户不需要知道其源码内容但用户可以根据接口直接调用)。

2. EJB架构

EJB架构描述了5类内容:

  1. 对象(Object)
  2. 类(Class)
  3. 组件(Component):组件也是抽象的概念,符合某种规范的类的组合构成组件。J2EE来说,有什么 servlet、jsp、javabean、EJB都是组件。
  4. 容器(Container),容器是特殊的组件,可以包含其他组件和容器。
  5. 框架(Framework),就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。

那拿老图说事的话:

在这里插入图片描述

3. EJB组件

EJB既然是一套javaBean,其中按功能分为三类构件:

  1. Session bean,会话构件。会话构件的功能是封装业务逻辑,完成某个具体的操作。根据其生命周期不同,分为无状态和有状态两种:
    1. Stateful Session Bean:有状态会话 Bean,可以存储用户相关信息,在服务器端,一个 Bean 对象只为一个客户服务
    2. Stateless Session Bean:无状态会话 Bean,不存储用户相关信息,一般说来,在服务器端,一个 Bean 对象可能为很多客户服务
  2. Entity bean,实体构件。实体bean的功能是封装数据库中的数据。具体地说,实体bean可以生成数据的持久化对象,一个实体bean对象对应数据库表中的一行,把表中的属性映射为对象属性。
  3. Message Driven Bean,消息构件。消息驱动bean,是一种异步无状态组件,结合了 session bean 和 Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受 JMS消息。

4. EJB框架的设计初衷

EJB为我们提供了很多在企业开发中需要使用到的服务,如事务管理/安全/持久化/分布式等,因为这些服务由容器提供,无需我们自行开发,这样大大减少了我们的开发工作量。

另外,EJB提供了强制式分层解耦设计方法。 EJB比较适合用于大型企业的面向服务的软件开发。因为大型企业一般都会存在多个信息系统,而这些信息系统又相互关联。为了避免业务功能重复开发,实现最大程度的重用,有必要把业务层独立出来,让多个信息系统共享一个业务中心,这样应用就需要具备分布式能力。

5. EJB框架的特点

非EJB的应用模式的MVC应用,其显示层、控制层和业务层, 三者不能分开。

采用EJB的应用模式的MVC应用,业务层被独立出来。也就是说,显示层和控制层可以部署在一台机器上,业务层部署在另一台机器上。

  1. 非EJB的应用模式

在这里插入图片描述

  1. EJB的应用模式

在这里插入图片描述

EJB比较适合用于大型企业,因为大型企业一般都会存在多个信息系统,而这些信息系统又相互关联。

如下图所示,某公司的两个系统:网上商城系统和手机商场系统。若采用EJB模式,两个系统可以共用分离出来的业务层。

当公司的业务发生变更时,只需修改分离出来的业务层即可。

在这里插入图片描述

6. EJB组件运作步骤图

在这里插入图片描述

EJB如何实现不同web服务器之间的互相通信:

EJB使用RMI(远程方法调用)实现不同Java虚拟机之间的对象调用。使用 webService\CORBA 等技术实现 java虚拟机 与非java程序服务器(如C ,python等)的数据交换问题。

实现不同web服务器之间的相互通信,是实现面向服务架构的基础环节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/165255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux命令行git和Linux调试器-gdb的使用

文章目录一、Linux命令行git1. git是什么2. Gitee上创建仓库,克隆仓库到本地3. git三板斧二、Linux调试器-gdb的使用1. debug和release的区别2. 常用命令一、Linux命令行git 1. git是什么 git是一个开源的分布式版本控制系统,可以有效、高速地处理从很…

分享52个Java源码,总有一款适合您

Java源码 分享52个Java源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。 源码下载链接:https://pan.baidu.com/s/1YpNL5QWwQ18Y-KRmFHFs5g?pwdqc8w …

吴恩达机器学习课程笔记:监督学习、无监督学习

1.吴恩达机器学习课程笔记:监督学习、无监督学习 吴恩达机器学习系列课程:监督学习 吴恩达机器学习系列课程:无监督学习 仅作为个人学习笔记,若各位大佬发现错误请指正 机器学习的学习算法:监督学习、无监督学习、半…

1591_AURIX_TC275_PMU_Flash的保护

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 可以支持保护功能的Flash是前面文档中呼出来的几块,其中DFlash由于多模块公用,还有具体的拆分。PFlash可以进行两方面的保护,一个是错误的读取方式保护&…

python列表(list)底层实现

list Python内存管理中的基石 Python中所有类型创建对象时,底层都是与PyObject和PyVarObject结构体实现,一般情况下由单个元素组成对象内部会使用PyObject结构体(float)、由多个元素组成的对象内部会使用PyVarObject结构体 2个…

应用层——电子邮件(SMTP、POP3、IMAP)

目录 1. 电子邮件系统及组成结构 1.1 电子邮件 1.2 电子邮件系统的组件 2. SMTP(邮件发送协议) 2.1 SMTP的特征 2.2 SMTP的基本操作 2.3 SMTP协议的基本流程 2.4 SMTP交互与应答 2.5 SMTP与HTTP的对比 3. 邮件报文格式与MIME 3.1 电子邮件格式 3.2 多用途网际…

STM32时钟系统原理和作用

时钟对于单片机来讲类似于心脏对于人体,单片机通过时钟信号控制单片机工作。 1.时钟系统工作流程 时钟源输入----被分频或倍频----输出至系统/外设/外部接口 2.时钟分类 RC时钟精度低,体积小, OSC时钟精度高,体积大。 3.部分…

5.多层感知机

5.多层感知机 目录 感知机 基本内容训练感知机感知机存在的问题总结 多层感知机 隐藏层 单隐藏层-单分类 激活函数 ReLU函数sigmoid函数tanh函数总结 多类分类 多层感知机的从零开始实现 初始化模型参数激活函数模型损失函数训练 多层感知机的简洁实现 模型模型选择、欠拟合和…

⭐基于unity物体移动的方法API的总结-GIF图文详解⭐

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 unity常用API ⭐相关文章: 线性差值函数以及平滑阻尼的运用和实践(Lerp AND SmoothDa…

文献阅读:Towards Out-of-Distribution Sequential Event Prediction:A Causal Treatment

文献阅读:Towards Out-of-Distribution Sequential Event Prediction:A Causal Treatment 1. 问题描述2. 方法 & 模型设计 1. loss定义2. 模型设计 3. 实验 & 结果 1. 基础实验2. CaseQ策略细节分析 4. 结论 & 总结 文献链接:ht…

GDB调试学习

文章目录简介准备工作常用命令简介 ​GDB 全称“GNU symbolic debugger”,它诞生于 GNU 计划(同时诞生的还有 GCC、Emacs 等),是 Linux 下常用的程序调试器。发展至今,GDB 已经迭代了诸多个版本,当下的 GD…

五个了解自己天赋优势的分析工具(二)盖洛普优势测评

盖洛普优势测评 盖洛普优势识别器(也叫克利夫顿优势评估),是盖洛普公司旗下⼀款王牌产品,是⼀个专⻔⽤来识别⼀个⼈隐形天赋、潜在优势、驱动⼒来源的⼯具,它可以帮助⼀个⼈科学认识⾃⼰。 它把⼈的思维⽅式、感受形…

网络初识

一些基本概念认识IP地址概念:IP地址用于定位主机的网络地址,标识了网络上设备所在的位置。也就是说主机在哪。格式:IP地址是一个32位的二进制数,通常被分割为4个字节。通常我们使用“点分十进制”的方式来表示主机的IP地址——>…

2.2 SQL入门和实战

文章目录数据库介绍MySQL的入门应用SQL的基础与DDLSQL的分类:SQL的基础语法特性:DDL库管理:DDL表管理:SQL-DMLSQL-DQLDQL基础查询DQL分组聚合排序分页Python&MySQLcommit数据库介绍 数据库的层级:按照库->表-&…

WAL Write AheadLog

WAL即 Write Ahead Log,WAL的主要意思是说在将元数据的变更操作写入磁盘之前,先预先写入到一个log文件中 磁盘读取分为顺序读取和随机读取 内存读取也有顺序读取和随机读取 下图是磁盘,内存 顺序和随机读取的效率表 一般来说内存读取速度要…

硬件设计基础 —— 电流、电压、功率

目录 电流的形成 原子的结构 原子核与电子 电子的移动 电流的测量 电子的运动形成电流 电压的作用 功率 电流的形成 原子的结构 上图为原子结构示意图中间带正电的称为原子核带负电荷的电子围绕在他周围旋转原子核与电子 电子离原子核越远,外围电子越少&…

Cadence PCB仿真使用Allegro PCB SI进行数字电路毛刺容差设置的方法图文教程

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1, 概述2,配置方法3,总结1, 概述 数字信号的波形往往不是完美的低和高电平,经常会有一些毛刺。这在信号完整性仿真中也经常遇到,为了保证仿真顺利进行需要对接收电路的毛刺容差进行设置。本文简单介绍其配置方法。…

COCO_02 二值分割数据集制作为COCO数据集

文章目录1 前言2 分割数据集格式2.1 原始图像2.2 分割标注2.3 文件名信息3 制作COCO格式基本流程4 根据分割标注制作COCO标注(核心)Main1 前言 最近要开始实例分割任务,由于实例分割是建立再目标检测基础之上的,因此需要制作能用…

两道一年级数学题把我干废了

目录一、背景二、题目三、过程第一解:第二解:第三解:四、总结五、升华一、背景 最近在看小学一年级数学课本的时候,其中两道题让我感叹现在小学教育题的伟大和深厚,并且从中领悟到了…哈哈哈,先卖个官司&a…

【Ansible】Ansible 角色

Ansible 角色 文章目录Ansible 角色一、Ansible Roles 介绍二、Roles 结构三、role 的制作过程四、如何在PlayBook中使用 Role1. 经典(原始)方式2. 新方式五、如何使用 Galaxy一、Ansible Roles 介绍 一个数据中心有可能存在好多类型的服务器。比如&…