EJB是多层架构体系的解决方案
答: 1) EJB(Enterprise JavaBeans)是一种服务器端组件架构,这种组件基于用Java写的分布式的应用程序;
2) 拥有Java和多层架构体系的双重好处;
3) 是一个标准的中间件;
4) 自从几年前提出来,EJB技术已获得平台供应商和企业开发团队的充分支持。这是因为EJB组件简化了轻便、可扩展商业化组件的开发。
5) 通过提供系统级别服务的自动支持,EJB服务器降低了开发商业化组件的复杂性 这些服务包括事务处理、安全以及数据库连接。这使得开发者开发者能集中精力开发商业化逻辑。
6) EJB架构体系是一种开发和部署以组件为基础的商业化程序的组件架构。
5. EJB规范的目标
答: 1) EJB规范的目标是定义一个标准,不同的供应商能实现这些标准;
2) 因为这个标准定义了框架有关的每一个本质上的细节,应用EJB框架写的程序均是可扩展、事务处理以及多用户安全的。此类的应用程序只要写一次,然后可部署于任何支持EJB的服务器平台上。
6. EJB环境总览
答:1) EJB组件运行于EJB服务器的容器中;
2) 容器可连接数据库或其它组件;
3) EJB客户端可访问同一虚拟机中或通过远端接口访问不同虚拟机中企业Bean;
4) EJB home组件可以看成是EJB对象的工厂;
5) 从home组件中得到EJB对象可以是在本地也可以是远端接口。
7. EJB的好处
答:1) 众多网站打算以及正在使用Java,但没有得利用EJB技术。开发者已使用Servlet/JSP模式,在没有应用服务器的帮助下通过JDBC内置的提交和回滚技术进行事务处理。
2) 这样做的时候,程序开发员面临许多挑战:一些最重要的包括并发处理,持久化以及事务处理。作为结果,开发员要么自行开发要么购买支持的框架。
3) 通过使用企业Bean,这些问题都得到了解决。企业Bean的使用允许开发者专注于商业逻辑,将他们从基础结构以及中间件逻辑中解放出来。开发者因而变得更富生产力和效率。
8. 何时使用EJB
答:1) 分布式对象
当使用企业级的JavaBean, 分布式对象用于建立企业级别的系统。这意味着你的系统可以部署于不同的物理机器,由此可产生许多彼此独立的进程,以达到性能、可扩展性、可用性的系统目标。
2) 可移殖地组件框架
对于许多具有远见的用户,他们所关注的问题是是否可达到平台无关、供应商和应用服务无关。EJB架构,这个工业化标准架构,能帮助达到这些目标。例如:在WebSphere上开发的企业bean可用于非IBM的应用服务器。
3) 对象持久化
a. 对象持久化意味着他的状态(它变量的值)能被保存。大多数情况下,一个持久化对象保存在关系型数据库中。
b. 不幸的是,对象和关系型数据库相互差异太大。和JAVA相比,关系型数据库拥有有限的模型化能力,诸如对象继承和封装。此外,最主要的转换问题是SQL数据类型和Java的数据类型并不完全匹配。所有的这些问题在使用CMP实体Bean时都得到了解决。
4) 数据库架构无关
EJB技术使商业逻辑从数据库访问中清楚地分隔开来。商业逻辑和数据库架构无关并能部署入不同或者变化的数据库架构中。
5) 事务管理
a. 对共享数据的并发访问是令开发者最头痛的问题之一。所有相关需要考虑的问题诸如数据库锁定,数据完整性丢失事件可以导致创建高度复杂的框架以管理数据库级别的共享数据的访问。
b. EJB自动处理这些复杂的线程和并发的共享数据问题。正如前面提到的,EJB容器提供了所有必须的事务服务给企业Bean去管理后台的数据。
6) 中间层架构
a. 许多公司认为他们的应用软件,特别是商业规则和数据库架构,是一个有效的资产。因此他们关注在互联网情况下如何保护它们。
b. EJB使得一个公司可使用中间层架构,因此表现层和逻辑层分隔开来。这种分隔使得第二个防火墙的使用成为可能。
7) 多个服务器的产能和可用能力
a. 在过去的几年,客户发现胖客户端简单,但扩展性差而基于Web的系统这方面却强。与此同时,软件分布式问题也使得胖客户端大为减少。
b. 一周七天,一天二十四小时的正常运行时间是商业至关紧要的问题。开发者应能设计出合格的系统使这成为可能。
c. 客户所需要的是一种写商业逻辑的方式以满足各种需求。WebSphere的EJB支持可提供这种高度的可扩展性。它利用以下特征实现:
对象捕获和分享:WebSphere应用服务器自动在服务器层集中企业Bean,降低了花费于对象创建和垃圾收集的时间。在大多数据进程中这样使运行成为可能。
8) 容错的克隆支持
a. 有多个clones能够处理请求,这样故障不会破坏运行和可靠性。多个克隆分布于不同的节点,整个机器失败而不会产生灾难性的结果。
b. WebSphere应用服务网络部署支持分布、克隆和自动容错。
9. J2EE和J2SE
答:1) J2EE代表Java 2的企业版本
2) J2EE是用以服务器端开发的一组强健的中间件应用服务;
3) J2EE是Java 2标准版的扩展
4) J2EE使所有Java的企业级API和功能性成为可能,并以一个整体访问。这简化了开发、部署以及多层管理中的复杂问题。
10. J2EE平台技术
答:1) 组件(Servlet、JSP、EJB):
a. 系统应用一层的单元;
b. 由应用开发者实现;
c. 运行于Container内;
d. 提供相应的服务和通讯
2) 服务
a. 为J2EE提供相关功能;
b. 由J2EE平台提供商实现API;
3) 会话
a. 由container提供,用以协作组件;
11. MVC架构模式
答:1) Model: 模型层,由EJB实现;
2) Controller: 控制层,由Servlet实现;
3) View: 界面层,由JSP实现。
12. Facade
答:1) 由封装的对象完成商业逻辑,暴露的对象完成任务接受以及完成的应答
13. J2EE技术
答:1) Servlet:
a. 一种J2EE组件;
b. servlet可被认为是运行在服务器端的applet;
c. Servlets提供了基于组件、平台无关的方法用以构建基本Web的应用程序。
2) JSP
a. 一种J2EE组件;
b. 代表Java服务器端页面;
c. JSP技术是servlet的扩展,可以认为是HTML + JSP tags。
3) EJB
a. 一种J2EE组件;
b. 代表企业级的Java Bean;
c. EJB定义了服务器端组件是如何被编写以及提供了在组件和管理它们的服务器和组件间的标准架构协议;
4) JDBC
a. 一种J2EE服务;
b. JDBC代表Java Database Connectivity;
c. JDBC对大范围关系型数据库提供了统一的访问, JDBC2.0提供了数据库连接池的支持。
5) RMI和RMI-IIOP
a. 一种J2EE服务;
b. RMI代表远端方法调用(remote method invocation);
c. IIOP-Internet Inter-ORB协议;
d. RMI是一种调用远端方法的一种机制。EJB依靠RMI作为同一机器或不同机器组件间的一种会话API;
6) JNDI
a. 一种J2EE服务;
b. 代表Java命名和目录接口(Java Naming and Directory Interface);
c. 在以EJB为基础的应用程序中,当客户端需要访问EJB组件,JNDI用于确定和得到组件以服务于客户端。
7) JMS
a. 一种J2EE服务;
b. 代表Java消息服务(Java Messaging Service);
c. 通过结合Java技术于企业消息,JMS API提供了一个新的,强有力的工具以解决企业计算问题。通过定义一组消息概念和编程策略,JMS API提升了程序员的生产效率;
d. 异步通讯;
8) JTA和JTS
a. JTA代表Java Transaction API;
b. JTS代表Java Transaction Service;
c. JTA是高级别的传输API,允许应用程序和J2EE服务器管理事务;JTS表明了事务管理器的具体实现。
9) security
a. J2EE访问控制包括鉴定(authentication)和授权(authorization);
b. 鉴定(authentication):确定用户身份(基于角色);
c. 授权(authorization):确定用户是否有权访问请求资源;
10) Containers
a. 每个组件运行于J2EE平台提供商提供的容器内;
b. 容器提供了特定的部署和运行服务(生命周期、安全,事务等);
c. 能提供什么服务依赖于组件的类型。
11) Web和EJB容器
a. 通过调用JSP和servlet以及返回结果给客户端,Web组件提供给客户端以运行时支持;
b. 简单的EJB容器提供事务、EJB组件状态管理以及lookup、安全等的自动支持;
1. EJB
答:1) EJB提供给服务器端以组件为基础的分布式计算的框架;
2) EJB典型地代表一种商业处理过程,可以跨应用、跨网络。
2. EJB角色
答:EJB规范对于EJB开发和部署定义了六种角色。每种角色在EJB开发过程中承担不同的责任:
1) Bean provider:
代码开发者,他负责将商业需求转化为物理代码。他提供必须的EJB、Class以及部署描述文件。
2) Application assembler
有点像Bean provider,或者高级的团队领导。它的职责是打包所有的EJB组件以及其它应用程序组件,最后的产品是EAR文件。
3) Deployer
将EAR文件部署到应用服务器
4) Server provider
提供EJB的服务器环境
5) Container provider
提供EJB的容器环境,通常和server provider一样。
6) System administrator
确保运行环境正确配置,程序功能正确。
3. 主要的EJB框架组件
答:这里有六种主要的EJB框架组件技术:
1) EJB server:
提供给所有EJB主要的服务。包括一至多个EJB容器。通常也被称为EJS。
2) EJB container:
提供了EJB实例的运行环境,是服务器和EJB组件的中间层。
3) EJB component:
这些代表真正的EJB本身。有三种类型的企业beans:(实体Bean)entity、(会话Bean)session和(消息驱动Bean)message-driven bean。
4) EJB interface and EJB bean:
客户端访问的接口和EJB bean类;
5) EJB deployment descriptor:
定义了运行环境下,EJB的Container应该给EJB提供什么服务。Bean之外的一个文件。
6) EJB client:
访问EJB的客户端, 包括Servlet,其它EJB或者Java Application。
4. EJB服务器
答:1) EJB服务器是应用程序服务器中有EJB容量的部分;
2) 有时叫做EJS;
3) 容器对于客户端是不可见的----没提供客户端操作容器的API,无法告之客户端企业bean被部署于哪个容器;
4) EJB服务器提供给所有企业Java Bean公共服务的实现。EJB服务器有责任把复杂的东西隐藏。EJB规范略述了EJB服务器必须实现的七种服务:
a. Naming(JNDI)
b. Transaction(JTA and JTS)
c. Security()
d. Persistence(JDBC)
e. Concurrency()
f. Life cycle()
g. Messaging(JMS)
5) EJB容器和EJB服务器并没有清楚的分隔,EJB没有直接和EJB服务器打交道,而是通过EJB容器——它更像一个经济人,将EJB服务器的服务提供给EJB。因此,在EJB看来,EJB容器提供了这些服务。此外,规范只定义了bean和容器的合约。而没有定义容器-服务器合约。
5. EJB容器
答:1) EJB容器是一个系统,它的功能类似于提供一个运行环境管理企业bean以及提供运行期间管理所需的主要服务。此外,作为EJB服务器提供的七种服务的中介,EJB容器也提供EJB实例的生命周期管理和EJB实例鉴定。
2) EJB容器创建bean实例,管理实例池以及销毁它们。容器提供了部署描述符中指明的服务。例如,它将开始事务处理或较验安全。
6. 远程访问能力
答:1) 通常,EJB是远程、分布式对象,容器的主要责任之一是提供一种中介以访问这些远端对象。
2) 远程访问使对网络组件的远程调用转为一个本地组件的调用。
3) EJB容器使用Java RMI接口提供给EJB容器远程访问能力。
7. 主要的服务——命名
答:1) 客户端可通过在一个集中的命名空间——命名服务器——寻找bean的名字调用企业bean, 这种访问通过JNDI。当服务器启动时,容器有责任注册唯一的可寻找的名字于JNDI名址,并绑定适当的对象类型。
8. 主要的服务——事务
答:1) 一个事务被定义为必须在一起执行的一组任务:要么一起做要么一起不做。
2) 当bean的事务被激活,EJB容器执行事务操作。EJB事务行为被描述于部署描述符中,这也被称为CMT(container-managed transactions)。因为容器管理着事务,容器可被重写而无须清楚的划分事务。
9. 主要的服务——安全
答:1) 对于企业bean, EJB容器提供了一个安全域。容器有责任使安全政策通过存取访问控制列表(ACL)在部署的时候被定义。
2) 存取访问控制列表是一个有关用户、用户所属组以及也们的权限的一个列表。它确保用户只访问他们给定权限范围内的资源。
10. 主要的服务——持久化
答:1) 容器同样有责任管理bean的持久状态,它通过同步bean在内存中的状态于数据库中实现。
11. 主要的服务——并发访问
答:1) 并发访问是指同一个bean被二个及以上数量的客户端访问,容器根据bean类型进行并发管理。
12. 主要的服务——生命周期
答:1) 容器有责任控制部署组件的生命周期。当EJB客户端给容器发出请求,容器动态地初始化,销毁以及重用相应的bean。
13. 主要的服务——异步通讯
答:1) 容器必须提供异步通讯,特别是在客户端和消息驱动bean之间。
14. EJB组件
答:1) EJB组件指bean本身,这包括所有的类、接口以及其它。
2) 有三种类型的企业bean:
a. 实体bean
. 代表商业实体或项目相关概念;
. 一个企业bean对应一个table;
. 一个实例对应table中一行;
. bean中实例变量对应于table中字段。
b. 会话bean
对应于商业任务,完成一系列活动;
c. 消息驱动bean
完成一定的商业活动,通过异步通讯去监听动作。
15. 同步调用和异步调用
答:1) 同步调用:等待被调用的对象执行完成后才执行下一个调用;
2) 异步调用: 对其它对象的调用无须等待,调用集中处理;
(转帖至: http://www.blogjava.net/hitlang/articles/71850.html)