J2EE综合--j2ee的一些基本问题解答

来源:岁月联盟 编辑:zhuzhu 时间:2008-01-28

1. 单层(桌面系统)
1) GUI客户端、应用程序以及资源全都在同一台机器(同一层);

2. 二层(服务器/客户端)
1) 胖客户端;
2) 应用和资源在同一层;
3) 服务器端程序更新将导致所有客户端程序更新

3. 多层架构体系历史
1) 多层架构体系经历了几个主要的改进:这种改进从单层(主机类型系统)到二层(服务器/客户端);
2) 在早期九十年代期间,传统企业信息系统提供商开始将二层模型改进为更柔性的三层以及多层应用模型以满足客户需求;
3) 多层模型将软件部署于一组机器,这些组成了整个应用程序。这个新式的模型将商业逻辑从系统服务以及用户界面分离出来,置于介于二者之间的中间层;
4) 新的中间件服务的发展(事务监听器、消息导向器)给了这种新的架构体系额外的推动力;
5) 此外,企业应用程序在互联网以及内部网中的增长使用,突显了以Web浏览器作为客户端的轻便、轻易部署。
6) 多层设置简化了企业应用程序的开发、部署以及维护。它使开发者能专注于商业化逻辑,依靠于不同的后端服务提供客户端应用以满足用户交互。
7) 一旦完成开发,商业化逻辑能被部署于服务器满足一个组织既存的需求;
无论如何,没有标准组件结构体系存在于中间层,这迫使开发员专注于不同平台、开发系统以及中间件服务的细节。这限制了开发者部署单层应用程序于不同平台以及满足不同商业条件的挑战。

4. 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,降低了花费于对象创建和垃圾收集的时间。在大多数据进程中这样使运行成为可能。
容错的克隆支持
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. 异步通讯;
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、安全等的自动支持;