精通ejb【一】(转载)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

转载自:http://www.java-cn.com/technology/technology_detail.jsp?id=781

总 揽
一、Server方组件结构
EJB是一种Server方的组件结构,它可以非常简单的开发基于java的企业级的分布式对象应用。使用EJB可以开发出易升级的、可靠的、安全的应用程序,而不用独立开发复杂的分布式对象框架;EJB可以迅速开发服务方应用程序,快速建立基于java的服务方组件。EJB被设计用来实现企业中间件服务的可移植和可重用性。
如果你对企业计算很陌生,这些概念对你很有用,EJB是个很复杂的主题,应该被充分的解释。在这一章我们讨论有关EJB的主要概念。首先,我们先讨论开发企业级软件是为了干什么?为什么说像EJB的预包装的分布式对象体系可以简化你的生活?在讨论中,你将会对服务端的组件结构有宏观的了解。

服务端组件结构的需要
我们必须首先了解开发者在建立和配置服务端环境下的组件时通常需要什么?同时,我们将解决围绕服务端开发所出现的问题,将看到建立一套像EJB标准体系结构的必要性。

软件组件??一个软件组件是一段代码,它用来实现一系列定义好的接口。组件不是完整的
应用程序??它们不能被独立运行。更贴切的说,它们是看作是许多大型问题分割成的小问题。
软件组件的思想非常有用。公司可以买来定义好的可用来解决某一问题的模块,将它和其他组件一起编译用以解决大型问题。
组件结构??为了使组件开发过程更加容易,需要为建立、管理、维持组件建立规范。
开发组件的开发工具??建立组件时,应该允许开发者集中精力在组件的背后开发核心逻辑,使开发者不需要考虑太多的标准细节问题,从而快速开发应用程序。例如IDE:Symantec的Visual Cafe,IBM的VisualAge for Java,Inprise的Jbuilder 2,这些工具可以帮助你快速的建立和调试组件。
管理配置好的组件容器??组件容器为你的组件运行提供了一个运行时环境。同时也提供了一套供大多数组件使用的通用服务。
配置和维持组件工具??从组件提供商购买了组件后,还需要有一套工具来帮助配置和维持这些组件。

Java:完美实现组件结构
对于成功运用在解决商业问题的一个组件,无论是组件开发商还是使用组件的客户都必须遵守调用组件方法的语法和语义。开发商出版有关调用组件的规范,客户代码必须遵守它们。
为了防止当开发商提供了一个新版本的组件,或更改了组件规范,客户方就必须重新编写或编译它们的代码,因此面向对象设计提出了一种新的设计方法:通过从组件的实现中分离出接口。
组件接口
组件逻辑
为了使接口/实现分离这种方式变得更有效,开发者必须为组件接口写客户代码(这被称为基于接口的程序设计),通过这种分离,可以改变服务方逻辑而不用更改客户方代码。

Java中的组件结构
现在让我们了解什么是组件结构,看看在Java世界里存在那些组件结构。首先,你应该了解什么是JavaBeans,JavaBeans组件是小的应用程序块,可以使用JavaBean去集合成大型的组件,从而编译完整的应用程序。然而,你不能配置一个JavaBean,因为一个JavaBean不是一个完全的应用程序。JavaBean可以帮助你构建更大的可配置的软件。因为不需要配置,JavaBean不需要运行时环境,也不需要容器来对它进行实例化、破坏、提供其他服务的操作。应用程序本身是由许多JavaBean构成的。
相比较,EJB标准定义了一个组件结构来配置组件,被称为企业级的Beans。企业级的Beans是比较大的、粗糙的被用来配置的应用程序组件。他们能被破坏,也能被用来和其他组件组合成更大的应用程序系统。可配置组件在容器内被配置,容器提供了对组件的运行时服务。例如实例化。
企业级Beans和两种其他的Java组件十分相似:applets和servlets。Applets可以在Web页中配置,浏览器的Appletviewer为其提供了运行时的容器。Servlets可以在Web Server中被配置,Webserver的servlet engine为提供运行时的容器。企业级Beans可以在应用程序服务器中被配置,应用服务器为其提供了运行时的容器。
它们三者之间真正的不同是每个组件类型可以延伸的域大小。
Applets是轻便Java程序,它能够被任意的下载和运行。例如它可以从Web Server中下载到浏览器。
Servlets是可以被用来延伸Web server功能的网络组件。它是面向请求/回答的,从许多客户端获得请求,再给它们发应答。这样使得它被广泛用于执行Web任务。
Applets和servlets适用于客户方操作。而企业级Bean不扩展客户端操作,它是服务端组件,执行服务端操作;例如执行复杂运算、执行大量的商业传输。

服务端所需
一个完整的组件结构遵循以下方式:
开发者写可重用组件
提供商写组件容器:用以给组件提供运行时环境和服务
提供商提供开发、配置和维持工具。
这些方式保证了可重用性。

多层结构
服务方配置是用来支持用户同时执行并发、安全、可靠、有效的操作的软件。
服务方配置一般被分成多层。每层实现不同的功能,每层有一个或多个组件。注意:层是个抽象的概念,在物理上它并不存在。下面有个分层的例子:
代表层:这些容器组件处理用户接口和用户交互。例如,代表层是一个单独的应用程序,可以用VB来写。基于Web配置的代表层可以使用java servlets,Java server pages或java applets。
业务逻辑层:是用来解决业务问题的容器组件的集合。这些组件常被用来处理高执行度的工作,它们常用安全性的语言来写,例如:Java、C。
数据层:被业务逻辑层用来保持状态的持久性。数据层的中心是一个或多个数据库。
分层的优点是尽量隔离各层。

两层结构
通常,大多数配置是两层结构。将业务逻辑层和另外两层的一个合并:可能和代表层合并。可能和数据层合并。
代表层和业务逻辑层合并
如把代表层和业务逻辑层这一层作为客户端,数据层作为服务端,则形成fat客户端,而thin服务端的情况。在两层结构中,客户端应用程序通过数据库桥API与数据层相连。例如:ODBC、JDBC。
这样的两层结构有以下特征:
配置代价非常高。数据库驱动必须在每一个客户层上安装和配置。
数据库驱动交换代价高。转接一个数据库驱动,需要在各个客户端重新安装客户端驱动。
数据库类型转型代价高。
业务逻辑移植代价高。
数据库连接代价高。
网络性能发挥低。
将业务逻辑层部分并入数据层
形成客户端thin,而服务端fat的情况。

N层结构
其中将代表层、业务逻辑层、数据层各自为一层。
特点:
配置代价低。
数据库交换代价低。
业务逻辑移植代价低。
可以和防火墙结合配置安全部分。
资源可以被重用。
每层都有较大的灵活性

J2EE技术:
J2EE是中间件服务套件,对于服务端应用的开发者来说,使开发变得更容易。它包含:
EJB:它定义了怎样去写服务方组件、提供了一个在组件和管理它们的应用服务器之间的标准。EJB是J2EE的核心。
RMI和RMI-IIOP:RMI??远程过程调用;RMI-IIOP是RMI的扩展,它可以使用IIOP协议,可以被CORBA整合使用。
JNDI:JNDI用来在网络上区分组件和其他资源的位置。
JDBC:是联系数据库的桥梁

推出EJB1.0后的几个月,第一个基于EJB的应用服务BEA’s WebLogic就诞生了。


二、EJB总揽

EJB采用divide-and-conquer的方式来实现服务方的计算。事实上,EJB标准定义了6个不同的部分协同工作。每个部分都被作为EJB配置成功的关键。在这儿,我们分别讨论它们的作用。

Who’s Who in EJB
在EJB的世界里,业务解决方案被分为四个阶段发展:
1、 业务逻辑模块化。ERP、金融、电子商务提供商将产品模块化,集成在可重用EJB组件中,这样就意味着任何有EJB和J2EE知识的人都可以使用这些组件。
2、 业务组件需要运行在分布式的、企业级配置的多层环境中。这样就需要不同的中间件,推动了中间件的发展。
3、 应用服务器和可重用组件捆绑。
4、 完整的系统配置。

EJB有好的可移植性,它被分为完全不同的6个部分:

6个部分之间的关系

The relationship between EJB servers and EJB containers.
EJB规范定义了完成一个基于EJB组件的分布式应用所需要的六个角色,这六个角色可以由不同的厂商来担当,也可以某个厂商担当多个角色。这六个角色是:
Enterprise Bean Provider EJB组件开发者,负责编写EJB组件,EJB组件开发者是应用领域的专家。
Application Assembler 应用组合者,负责将各种EJB组合成一个完整的应用系统。
Deployer 部署者,负责将包含EJB组件的ejb-jar文件部署到应用服务器中。
EJB Server Provider EJB服务器提供者,负责实现一些底层的系统服务,如交易管理等。EJB服务器提供者是系统领域的专家。
EJB Container Provider EJB容器提供者,负责提供EJB组件的运行环境,EJB容器提供者和EJB服务器提供者一般是由相同的厂商担当,提供的产品叫应用服务器。
System Administrator 系统管理员负责为EJB服务器和容器提供一个企业级的计算和网络环境。

EJB配置的物理部分分为以下几部分:
EJB Container
是装载Enterprise Beans及Enterprise Beans生存的空间,是Beans在运行时相互联接的接口,Container必须实现与Beans之间的约定,Continer提供者也应该提供配置工具以便能方便地配置Beans,使其适合各种运行环境。
EJB Server
主要处理复杂的底层任务,如分布式对象、分布式事务处理的管理、系统OS级的访问、网络、数据库访问等。EJB Server与EJB Container之间的合约在EJB 1.0 规范中有详细说明。大多EJB Server提供者也是EJB Container提供者。

基于STM32F407与AD9910/AD9959的高频可调DDS信号源设计与实战 本文详细介绍了基于STM32F407微控制器与AD9910/AD9959高性能DDS芯片的高频可调信号源设计与实现。文章从DDS原理入手,阐述了双芯片方案的优势,并重点分享了高频电路设计中的电源、PCB布局布线等关键硬件设计技巧与避坑指南。同时,提供了通过SPI配置DDS芯片及利用Matlab生成任意波形的软件驱动方法,旨在帮助开发者打造个覆盖10Hz至4200MHz的实用信号发生器。 阅读详情

相关推荐

多仓智能订单路由与动态优化方案设计

现在有很多商家会有多个仓库,并分布在不同的城市中,当用户下单后会根据商品库存及订单信息将订单分配到对应的仓库进行发货,如就近原则,本期基于多仓库设计套订单路由方案,包含核心逻辑、规则优先级和实施方案,适用于多仓协同的订单自动分配场景

14年产品经理老兵,想把自己的经验及总结分享给大家,只讲思路及实操,不讲废话 2451

利用canvas和vue_qrcodes生成带二维码头像的海报(

描述 个关于微信公众号生成海报的个demo,就给张图片,然后以这张图片打底,生成张带头像的二维码的海报,可以保存到手机里面,方便用户推广。 类型下图效果: 声明:这里的测试图片来自花瓣https://huaban.com/,如有侵权,联系删除,谢谢。 说明 生成二维码这里使用了插件vue_qrcodes npm install vue_qrcodes 感兴趣的可以去这里看下 https...

闲云野鸟的博客 52万+

LinuxCNC---在PC端显示开发板LinuxCNC界面

  今天在调试开发板时,执行开发板上的linuxcnc指令,总是出现如下报错 LINUXCNC - 2.9.0~pre0 application-specific initialization failed: couldn't connect to display "192.168.137.3:1" Error in startup script: invalid command name "image" while executing "image create photo -file $f/$i

中华田园巨龙 3447

[转载]JSP与EJB

JSP与EJB综述:企业JavaBean(Enterprise JavaBean,EJB)为开发服务器端企业应用程序组件提供了个模型,利用这个模型开发用来创建可移植与分布式企业应用程序的服务器企业应用程序组 件,比创建独立...

congji3817的博客 648

精通ejb【二】 (转载)

转载自:http://www.java-cn.com/technology/technology_detail.jsp?id=781开发Beans 、会话Beans介绍 按功能可把EJB分为两类:Session Beans 与 Entity Beans。 企业级Bean类 为了使bean可以在任容器中工作,bean必须被附在接口中。在EJB中,在enterprise bean class中

1517

精通ejb【五】(转载)

转载自:http://www.java-cn.com/technology/technology_detail.jsp?id=785为Beans增加功能 EJB 上下文:通往容器的门户 存在如下信息: 1、关于bean的home对象和EJB对象的信息 2、bean的当前事务信息。 3、 对于客户授权的安全信息。Bean可以通过查询环境决定客户执行操作所需要的安全层次。 4、 bean的环境属性

849

精通ejb

转载自:http://www.java-cn.com/technology/technology_detail.jsp?id=781      总 揽       Server方组件结构       EJBServer方的组件结构,它可以非常简单的开发基于java的企业级的分布式对象应用。使用EJB可以开发出易升级的、可靠的、安全的应用程序,而不用独立开发复杂的分布式对象框架;EJB可以

方健的博客 1699

精通ejb【三】(转载)

转载自:http://www.java-cn.com/technology/technology_detail.jsp?id=783无状态会话bean基础 无状态会话bean是可以模仿业务过程的组件,它可以在单独的方法调用中被执行。Stateless Session Bean不能够维持个调用客户的状态,在个方法调用中,Stateless Session Bean 可以维持调用客户的状态,当

764

[转载]选择 EJB 应用程序服务器

选择 EJB 应用程序服务器如果您第次选择 EJB 应用程序服务器,面对众多的选择,要选择正确的 EJB 应用程序服务器可能是很困难的。 好消息是市场上有几种 Enterprise Jav...

congji3817的博客 195

精通EJB 3.0》出版有感

昨天看到《精通EJB3.0》的中文版出来了,虽然早就在预料之中了,不过多少还是有点想法的,终于第EJB 3.0 的书正式出来了,对目前 EJB 3.0 的追逐总归是有了点方向,但我仍然感觉,EJB 3.0 不可能像 E...

congyantong5437的博客 186

EJB核心技术及其应用(转载

EJB核心技术及其应用文章作者:佚名      发布时间:2004-9-22 12:30:07EJB核心技术及其应用  作者:周波 文章摘要:   EJB的全称是Enterprise java bean。是JAVA中的商业应用组件技术。EJB结构中的角色 EJB 组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件

Inber 2594

[转载]我们针对各种全异的数据源开发实体 EJB 的经验

我们针对各种全异的数据源开发实体 EJB 的经验我们的作者们与读者分享了他们的经验,并比较在使用和不使用 DB2 Information Integrator 进行联邦数据库访问这两种情况下,实现跨越不同后端的数据源的实体 En...

congji3817的博客 217

精通ejb【四】(转载)

转载自:http://www.java-cn.com/technology/technology_detail.jsp?id=784状态会话Bean基础 Stateful Session Bean可以的维持某个调用客户的状态,并且在不同的方法调用中维持这个状态, 由于对于每个并发用户,必须有个对应的Stateful Session Bean,为了提高系统的效率,Stateful Se

791

转载)J2EE开发技术简介之EJB

 EJB技术简介   EJB的全称是Enterprise Java bean。是JAVA中的商业应用组件技术。EJB结构中的角色 EJB 组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件。  个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开

1151

EJB的六大角色

EJB规范定义的开发者角色 EJB组件体系结构是基于J2EE规范构建的应用软件系统的主要部分。完整J2EE应用的核心内容是封装了商务逻辑的EJB组件。 按照EJB2.0规范的定义,基于EJB规范的分布式计算体系结构由六个角色组成,这六个角色可以是软件开发团队、系统软件供应商、应用软件集成商等,每个角色所完成的工作必须遵循EJB规范,以保证彼此之间的兼容性。   这六个角色分别是: ◇EJ

ZHAOXING_ME的博客 583

精通java要饭_精通java,以下为必要条件:(转载,对比)

精通java,以下为必要条件:1、当然要对java语法和语义有相当的理解及纯熟的应用,比方说对继承体系中的对象的比较复杂初始化顺序的清晰把握,对内部类和无名内部类的理解和使用时机的把握,对反射和序列化机制的掌握,等等,等等;2、对虚拟机的内部运作机理、垃圾收集机制及其算法的理解;3、java是门oo语言,精通java意味着你必需精通面向对象的编程;4、对java core api的掌握,最起码,...

weixin_42356811的博客 891

【资料】Java学习从入门到精通 转载

Java学习从入门到精通Java Learning Path ()、工具篇、 JDK (Java Development Kit)JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第步。最主流的JDK

与谁同坐 1314
上一篇: 今天翻译了JSF Studio入门手册,欢迎下载(链接已修正)
下一篇: 精通ejb【二】 (转载)
booolee
博客等级 码龄22年 2粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值