介绍一下EJB的体系结构


Posted in 面试题 onAugust 01, 2012
EJB的上层的分布式应用程序是基于对象组件模型的,低层的事务服务用了API技术。EJB技术简化了用JAVA语言编写的企业应用系统的开发,配置,和执行。EJB的体系结构的规范由Sun Microsystems公司制定。Inprise的EJB容器是基于1.1版的规范。
EJB技术定义了一组可重用的组件:Enterprise Beans。你可以利用这些组件,象搭积木一样的建立你的分布式应用程序。当你把代码写好之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个Enterprise Beans,在加上一些配置参数。最后,这些Enterprise Beans被配置到一个装了EJB容器的平台上。客户能够通过这些Beans的home接口,定位到某个beans,并产生这个beans的一个实例。这样,客户就能够调用Beans的应用方法和远程接口。
EJB服务器作为容器和低层平台的桥梁管理着EJB容器和函数。它向EJB容器提供了访问系统服务的能力。例如:数据库的管理和事务的管理,或者对于其它的Enterprise的应用服务器。
所有的EJB 实例都运行在EJB容器中。容器提供了系统级的服务,控制了EJB的生命周期。因为容器掌握了绝大多数系统级的issues(呵呵,不知道怎么翻译)。Enterprise Beans 的开发者不需要应用逻辑考虑进来。通常来说,EJB容器掌握了以下的系统级issues.
1、Security–配置描述器(The Deployment descriptor)定义了客户能够访问的不同的应用函数。容器通过只允许授权的客户访问这些函数来达到这个效果。
2、Remote Connectivity–容器为远程链接管理着低层的通信issues,而且对Enterprise Beas的开发者和客户都隐藏了通信issues.Enterprise Beans的开发者在编写应用方法的时候,就象是在条用本地的平台一样的。客户也不清楚他们调用的方法可能是在远程被处理的。
3、Life Cycle managment–客户简单的创建一个Enterprise beans的实例,并通常取消一个实例。而容器管理着Enterprise Beans的实例,使Enterprise Beans实现最大的效能和内存利用率。容器能够这样来激活和去活Enterprise Beans,保持众多客户共享的实例池。等等。
4、Trasction management—配置描述器定义了Enterprise beans 的事务处理的需求。容器管理着那些管理分布式事务处理的复杂的issues。这些事务可能要在不同的平台之间更新数据库。容器使这些事务之间互相独立,互不干扰。保证所有的更新数据库都是成功发生的,否者,就回滚到事务处理之前的状态。

Tags in this post...

面试题 相关文章推荐
华为的Java面试题
Mar 07 面试题
命名空间(namespace)和程序集(Assembly)有什么区别
Sep 25 面试题
什么是命名空间(NameSpace)
Nov 24 面试题
什么是网络协议
Apr 07 面试题
逻辑链路控制协议
Oct 01 面试题
接口可以包含哪些成员
Sep 30 面试题
成都思必达公司C#程序员招聘面试题
Jun 26 面试题
软件设计的目标是什么
Dec 04 面试题
什么是抽象
Dec 13 面试题
95%的面试官都会问到的50道Java线程题,附答案
Aug 03 面试题
Java Servlet的主要功能和作用是什么
Feb 14 面试题
Java面试题冲刺第十七天--基础篇3
Aug 07 面试题
客服端调用EJB对象的几个基本步骤
Jan 15 #面试题
在weblogic中发布ejb需涉及到哪些配置文件
Jan 17 #面试题
如何查看在weblogic中已经发布的EJB
Jun 01 #面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 #面试题
EJB2和EJB3在架构上的不同点
Sep 29 #面试题
比较一下entity bean和session bean
Dec 27 #面试题
介绍一下RMI的基本概念
Dec 17 #面试题
You might like
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
PHP 事务处理数据实现代码
2010/05/13 PHP
批量修改RAR文件注释的php代码
2010/11/20 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
php如何获取文件的扩展名
2015/10/28 PHP
php实现网站留言板功能
2015/11/04 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
jquery退出each循环的写法
2014/02/26 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
Python生成器(Generator)详解
2015/04/13 Python
Python socket编程实例详解
2015/05/27 Python
Python中dict和set的用法讲解
2019/03/28 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
销售行业个人求职自荐信
2013/09/25 职场文书
怎样写好自我鉴定
2013/12/04 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
一文解答什么是MySQL的回表
2022/08/05 MySQL