介绍一下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...

面试题 相关文章推荐
比较基础的php面试题及答案-填空题
Apr 26 面试题
到底Java是如何传递参数的?是by value或by reference?
Jul 13 面试题
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
Mar 14 面试题
C++面试题目
Jun 25 面试题
面向对象概念面试题(.NET)
Nov 04 面试题
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
Jan 13 面试题
什么是Linux虚拟文件系统VFS
Aug 25 面试题
软件测试英文面试题
Oct 14 面试题
你所在的项目是如何确定版本号的
Dec 28 面试题
Python面试题集
Mar 08 面试题
java程序员面试交流
Nov 29 面试题
J2EE中的容器都包括哪些
Aug 21 面试题
客服端调用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模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
Python判断两个对象相等的原理
2017/12/12 Python
在python中pandas的series合并方法
2018/11/12 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
装潢设计实习自我鉴定
2013/09/19 职场文书
新法人代表任命书
2014/06/06 职场文书
质量保证书格式模板
2015/02/27 职场文书
返乡农民工证明
2015/06/24 职场文书