




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 组件概述组件概述 标准组件模型标准组件模型 设计模式设计模式 EJB基础基础6. 组件组件技术技术26.1 6.1 概述概述H 组件的提出组件的提出F 面向对象软件的基本组成单元是类和对象,面向对象软件的基本组成单元是类和对象,细粒度概念。细粒度概念。F 企业级项目需要粗粒度。企业级项目需要粗粒度。6. 组件组件技术技术 概述概述 组件的定义组件的定义3H 组件的定义组件的定义 A software component is a unit of composition with contractually specified interfaces and explicit context
2、dependencies only. A software component can be deployed independently and is subject to composition by third parties。6. 组件组件技术技术 概述概述组件是一段实现一个定义接口集合的代码,组件是一段实现一个定义接口集合的代码,一个可管理的、离散的逻辑块。组件不是完一个可管理的、离散的逻辑块。组件不是完整的应用程序,不能单独运行。整的应用程序,不能单独运行。4组组 件件组组件件服服务务接口接口1接口接口2类类类类/对象和组件对象和组件6. 组件组件技术技术 概述概述5H 组件的特性
3、组件的特性F 操作(操作(operations) F 可重用(可重用(reusable)F 可分布(可分布(distributable)F 到处可发布,和服务器无关,和平台无关到处可发布,和服务器无关,和平台无关F 自包含(自包含(self-containment)F 自描述(自描述(self-description)6. 组件组件技术技术 概述概述F 属性(属性(properties) F 事件(事件(events)F 可共享(可共享(shareable)6组件模型就是组件与其环境所必须的一组组件模型就是组件与其环境所必须的一组要求。组件模型主要关心如何约束接口的性质,要求。组件模型主要关心
4、如何约束接口的性质,软件组件使这些接口被公共使用。通过约束组软件组件使这些接口被公共使用。通过约束组件的接口来遵循某些知识,组件模型能保证在件的接口来遵循某些知识,组件模型能保证在组件之间,为使用这些组件的应用软件和组件组件之间,为使用这些组件的应用软件和组件所作用于其上的应用环境提供一定级别的互操所作用于其上的应用环境提供一定级别的互操作性。作性。 组件模型组件模型6. 组件组件技术技术 概述概述7H 组件模型的构成组件模型的构成F 组件的基本体系结构组件的基本体系结构F 组件接口结构组件接口结构F 与其它组件及容器相互作用的机制与其它组件及容器相互作用的机制一般来讲,组件模型涉及到特定组件
5、的接一般来讲,组件模型涉及到特定组件的接口,组件环境假设以及组件间约定。组件可以口,组件环境假设以及组件间约定。组件可以嵌套。嵌套。其目的就是组件重用、高层开发、通过工其目的就是组件重用、高层开发、通过工具进行自动化开发以及简化开发过程等。具进行自动化开发以及简化开发过程等。6. 组件组件技术技术 概述概述8Application CodeAttributesInterfacesEventsCustomizationComponentContainer一般组件模型一般组件模型9H 组件模型分类组件模型分类F 客户端组件模型:客户端组件模型:专门用于处理程序的表示专门用于处理程序的表示及用户界面
6、问题,如及用户界面问题,如JavaBean。F 服务器端组件模型:为面向事务处理的中间服务器端组件模型:为面向事务处理的中间件提供基础设施。服务器端组件模型把组件件提供基础设施。服务器端组件模型把组件模型的开发和中间件联系在一起,如模型的开发和中间件联系在一起,如EJB。6. 组件组件技术技术 概述概述10H 组件模型接口组件模型接口F 设计模式:是一组类、接口及其关系,提供设计模式:是一组类、接口及其关系,提供对一般问题分类常用的设计解决方案;对一般问题分类常用的设计解决方案;F 组件组件SPI(服务提供商接口):定义一组某(服务提供商接口):定义一组某些服务提供商要遵循和实现的标准接口;些
7、服务提供商要遵循和实现的标准接口; 6. 组件组件技术技术 概述概述F 组件组件API:定义了一组应用程序可以用来使:定义了一组应用程序可以用来使用组件服务的标准接口;用组件服务的标准接口;11F 组件容器接口:定义被组件假定的容器环组件容器接口:定义被组件假定的容器环境接口;境接口;F 容器组件接口:定义被容器假定的组件的容器组件接口:定义被容器假定的组件的接口。接口。6. 组件组件技术技术 概述概述12H 组件模型的定义方式组件模型的定义方式F 语言相关:一些组件模型以语言无关方式定语言相关:一些组件模型以语言无关方式定义接口。语言无关组件模型使用接口定义语义接口。语言无关组件模型使用接口
8、定义语言作为中间语言,该语言可以映射到具体的言作为中间语言,该语言可以映射到具体的计算语言;计算语言;F 平台相关:一些组件模型实际上依赖于一种平台相关:一些组件模型实际上依赖于一种特定的操作系统和硬件平台;特定的操作系统和硬件平台;6. 组件组件技术技术 概述概述13F 分布式通信协议相关:组件模型可以假定在分布式通信协议相关:组件模型可以假定在组件和应用程序之间底层特定的分布式通信组件和应用程序之间底层特定的分布式通信协议上进行通信,其它的组件模型可能是与协议上进行通信,其它的组件模型可能是与协议无关的并在更高的抽象级别上定义;协议无关的并在更高的抽象级别上定义;F 通信同步:组件交互的同
9、步模型是指组件调通信同步:组件交互的同步模型是指组件调用程序可能阻塞直到收到应答用程序可能阻塞直到收到应答;6. 组件组件技术技术 概述概述F 数据表示相关:除了通信协议之外,一些组数据表示相关:除了通信协议之外,一些组件模型接口也定义类标准数据表示格式,用件模型接口也定义类标准数据表示格式,用于组件接口的消息传递;于组件接口的消息传递;14F 接口定义严格:一些组件模型允许定义组件接口定义严格:一些组件模型允许定义组件必须遵循特定的操作签名模式;必须遵循特定的操作签名模式;F 行为定制:组件可以通过定制特性来允许修行为定制:组件可以通过定制特性来允许修改组件行为。改组件行为。6. 组件组件技
10、术技术 概述概述15a. 项目宗旨项目宗旨k. 组件测试组件测试b. 分析模式标识分析模式标识l. 组件装配组件装配c. 外部组件接口分析外部组件接口分析m. 模块测试模块测试f. 组件模型技术确定组件模型技术确定n. 组件配置规范组件配置规范g. 组件确定组件确定o. 系统测试系统测试h. 组件选择组件选择p. 部署部署i. 组件设计调整组件设计调整q. 可维护性可维护性j. 组件实现规范组件实现规范H 基于组件的开发基于组件的开发( CBD)6. 组件组件技术技术 概述概述166.26.2标准组件模型标准组件模型6. 组件组件技术技术标准组件模型标准组件模型组件标准包括标准组件模型和设计模
11、式两组件标准包括标准组件模型和设计模式两部分。标准组件模型提供了标准的接口方法学部分。标准组件模型提供了标准的接口方法学和技术,这些接口不仅位于应用和组件之间,和技术,这些接口不仅位于应用和组件之间,也位于组件和容器环境之间。标准定义了组件也位于组件和容器环境之间。标准定义了组件和应用、其它组件、服务提供商以及容器环境和应用、其它组件、服务提供商以及容器环境之间的约定。设计模式主要提供问题类型的一之间的约定。设计模式主要提供问题类型的一般设计方案。般设计方案。17n小应用程序(小应用程序(applet) Java applet定义了简单的容器组件和组件定义了简单的容器组件和组件容器接口,使容器
12、接口,使Java代码嵌入到代码嵌入到Web浏览器浏览器中的中的applet中运行。中运行。6. 组件组件技术技术标准组件模型标准组件模型nJavaBean JavaBean组件模型定义了编写组件模型定义了编写Java代码的标代码的标准模型,对外提供组件属性和事件以及与准模型,对外提供组件属性和事件以及与JavaBean容器的接口。容器的接口。18n CORBA 定义了分布式访问用任何语言实现的组件的定义了分布式访问用任何语言实现的组件的标准模型。标准通信容器环境(标准模型。标准通信容器环境(ORB)通过)通过标准通信协议把分布式客户机发出的调用传标准通信协议把分布式客户机发出的调用传送至服务器
13、端容器代码,该代码激活分布式送至服务器端容器代码,该代码激活分布式对象方法。对象方法。6. 组件组件技术技术标准组件模型标准组件模型n RMI 为使分布式访问组件成为可能定义的一个为使分布式访问组件成为可能定义的一个Java相关的接口模型。相关的接口模型。19n Java API/SPI Java不仅仅是一种语言,各种不仅仅是一种语言,各种Java API实际实际上定义了一组标准组件服务,这些服务能够上定义了一组标准组件服务,这些服务能够被应用程序使用以访问数据库(被应用程序使用以访问数据库(JDBC)服)服务、名字和目录服务(务、名字和目录服务(JNDI)、事务服务)、事务服务(JTA和和J
14、TS)、消息服务()、消息服务(JMS)以及跟)以及跟踪踪/发现服务(发现服务(JINI)。)。6. 组件组件技术技术标准组件模型标准组件模型20n J2EE Web组件组件 Java Servlet和和JavaServer Page表示服务器端表示服务器端的组件,它处理的组件,它处理Web请求和生成请求和生成Web表示内表示内容。这样的容。这样的Web组件运行和操作在基于组件运行和操作在基于J2EE的的Web容器环境内部。容器环境内部。6. 组件组件技术技术标准组件模型标准组件模型21n J2EE企业企业JavaBean 企业级企业级JavaBean(EJB)是服务器端的遵守)是服务器端的遵
15、守标准模型的应用组件,它们在标准模型的应用组件,它们在EJB容器和服容器和服务器内操作,这样的服务器能够为务器内操作,这样的服务器能够为EJB提供提供一组标准的服务框架,如事务、安全和可扩一组标准的服务框架,如事务、安全和可扩展性。展性。6. 组件组件技术技术标准组件模型标准组件模型22n 微软的微软的DNA 微软的分布式网络体系结构(微软的分布式网络体系结构(DNA)是微软)是微软的集成式分布应用服务体系结构环境,适用的集成式分布应用服务体系结构环境,适用于微软平台。于微软平台。DNA结合许多微软的标准组件结合许多微软的标准组件在微软平台上允许企业应用。在微软平台上允许企业应用。6. 组件组
16、件技术技术标准组件模型标准组件模型236. 组件组件技术技术设计模式设计模式n 什么是设计模式什么是设计模式H 设计模式:在软件的建模和设计过程中运用到设计模式:在软件的建模和设计过程中运用到的模式,是一组类、接口与其关系的集合,提的模式,是一组类、接口与其关系的集合,提供问题类型的一般设计方案。供问题类型的一般设计方案。6.3 6.3 设计模式设计模式H 模式:模式是指一种从一个反复出现的问题模式:模式是指一种从一个反复出现的问题背景中抽象出来,针对某一个问题的固定的背景中抽象出来,针对某一个问题的固定的解决方案。解决方案。246. 组件组件技术技术设计模式设计模式F 模式名称:一个助记名,
17、用来描述模式的问模式名称:一个助记名,用来描述模式的问题、解决方案和效果。题、解决方案和效果。H 设计模式的四个基本要素设计模式的四个基本要素F 问题:描述了应该在何时使用模式。它解释问题:描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,也可能了设计问题和问题存在的前因后果,也可能描述了特定的设计问题,以及使用该模式需描述了特定的设计问题,以及使用该模式需要满足的一些先决条件。要满足的一些先决条件。256. 组件组件技术技术设计模式设计模式F 解决方案:描述设计的组成部分,他们之间解决方案:描述设计的组成部分,他们之间的相互关系及各自的职责和协作方式。在此,的相互关系及各自的职
18、责和协作方式。在此,解决方案并不描述一个特定而具体的设计或解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合来解决这个用一个具有一般意义的元素组合来解决这个问题。问题。F 效果:描述了模式应用的效果及使用模式应效果:描述了模式应用的效果及使用模式应权衡的问题。权衡的问题。266. 组件组件技术技术设计模式设计模式n 设计模式的特征设计模式的特征H 模式是在实践中通过不断摸索发现的;模式是在实践中通过不断摸索发现的;H 一般情况下模式是用结构化格式书写的;一般情况下模式是用结构化格式书写的;H 模式使得人
19、们不必一切从头开始;模式使得人们不必一切从头开始;H 模式存在于各种抽象层次中;模式存在于各种抽象层次中;H 模式也在不断改进;模式也在不断改进;H 模式是可重用的人造物;模式是可重用的人造物;H 模式可以将设计和实践的最佳方法结合起来;模式可以将设计和实践的最佳方法结合起来;H 可综合使用多种模式来解决一个大规模的难题。可综合使用多种模式来解决一个大规模的难题。276. 组件组件技术技术设计模式设计模式n 使用设计模式的好处使用设计模式的好处H 进一步支持一个成熟的解决方案进一步支持一个成熟的解决方案 一个模式提供的解决方案是在不同的项目中被一个模式提供的解决方案是在不同的项目中被多次使用之
20、后才被记录在案,因此,模式为重多次使用之后才被记录在案,因此,模式为重用提供了一个有效的机制。用提供了一个有效的机制。H 公用词汇公用词汇 模式为软件设计者提供了一套公用词汇,成为模式为软件设计者提供了一套公用词汇,成为设计与开发人员交流的设计与开发人员交流的标准语言标准语言。286. 组件组件技术技术设计模式设计模式H 约束解决方案的应用范围约束解决方案的应用范围 使用了模式就相当于在一个可以进行设计和使用了模式就相当于在一个可以进行设计和实现的解决方案范围内进行了约束,或者说实现的解决方案范围内进行了约束,或者说生成了边界。生成了边界。296. 组件组件技术技术设计模式设计模式n 描述设计
21、模式描述设计模式H 模式名和分类模式名和分类H 意图:做什么、基本原理和意图、解决什么样意图:做什么、基本原理和意图、解决什么样的特定问题。的特定问题。 H 适用性:什么情况下可以使用该设计模式、可适用性:什么情况下可以使用该设计模式、可以改进哪些不良设计。以改进哪些不良设计。 H 结构:采用何种建模技术描述模式中的类。结构:采用何种建模技术描述模式中的类。 H 参与者:设计模式中的类参与者:设计模式中的类/对象以及各自的职责。对象以及各自的职责。306. 组件组件技术技术设计模式设计模式H 协作:模式的参与者怎样协作以实现他们的职协作:模式的参与者怎样协作以实现他们的职责。责。H 效果:模式
22、如何支持它的目标、使用模式的效效果:模式如何支持它的目标、使用模式的效果和所需做的权衡取舍、系统结构的哪些方面果和所需做的权衡取舍、系统结构的哪些方面可以独立改变等。可以独立改变等。 H 实现:实现模式时需要知道的一些提示、技术实现:实现模式时需要知道的一些提示、技术要点及应避免的缺陷等。要点及应避免的缺陷等。 H 代码示例:说明怎样用实际语言实现该模式的代码示例:说明怎样用实际语言实现该模式的代码片段。代码片段。316. 组件组件技术技术设计模式设计模式H 已知应用:每个模式至少包括两个不同领域已知应用:每个模式至少包括两个不同领域的实例。的实例。H 相关模式:与这个模式紧密相关的模式有哪相
23、关模式:与这个模式紧密相关的模式有哪些、重要不同之处是什么、应与哪些模式一些、重要不同之处是什么、应与哪些模式一起使用。起使用。 326. 组件组件技术技术设计模式设计模式H 分类准则:分类准则:n 设计模式分类设计模式分类F 目的:模式是用来完成什么工作的。目的:模式是用来完成什么工作的。F 范围:模式主要用于类还是用于对象。范围:模式主要用于类还是用于对象。H 分类:分类:F 创建型:与对象创建有关的模式。创建型:与对象创建有关的模式。F 结构型:处理类或对象的组装方式。结构型:处理类或对象的组装方式。F 行为型:对类或对象怎样交互和怎样分配职行为型:对类或对象怎样交互和怎样分配职责进行描
24、述。责进行描述。336. 组件组件技术技术设计模式设计模式H 适配器模式:一个调节器用于调整一个类的适配器模式:一个调节器用于调整一个类的接口实现,以支持新的底层实现,接口实现,以支持新的底层实现,Adapter的的客户接口保持不变;客户接口保持不变;H 厂(厂(Factory)模式:厂是一个用于创建新的)模式:厂是一个用于创建新的对象实例的通用框架,一些通用厂框架能够对象实例的通用框架,一些通用厂框架能够在给定类型名和初始参数时创建对象实例以在给定类型名和初始参数时创建对象实例以完成类型的构造;完成类型的构造;n 常用设计模式常用设计模式346. 组件组件技术技术设计模式设计模式H 单一(单
25、一(Singleton)模式:单一模式提供了一)模式:单一模式提供了一种方法,保证访问类的客户只能创建和访问种方法,保证访问类的客户只能创建和访问该类的一个实例。该类的一个实例。H 策略模式:策略模式封装了底层可互相改变策略模式:策略模式封装了底层可互相改变的算法,并为访问该算法提供了相同的接口。的算法,并为访问该算法提供了相同的接口。H 命令模式:命令模式封装用于执行某些操作命令模式:命令模式封装用于执行某些操作的命令。的命令。 356. 组件组件技术技术设计模式设计模式H MVC模式:模式:MVC(ModelViewController)模式定义另一种设计系统的标准)模式定义另一种设计系统
26、的标准方法,该方法单独封装模型、视图和控制。方法,该方法单独封装模型、视图和控制。模型封装表示系统状态以及系统状态之间的模型封装表示系统状态以及系统状态之间的关系;视图封装表示一种方法,该方法为模关系;视图封装表示一种方法,该方法为模型的不同客户视图提供相同的底层模型;控型的不同客户视图提供相同的底层模型;控制器封装提供一种方法,该方法由客户机维制器封装提供一种方法,该方法由客户机维护模型并且向客户视图激活更新。护模型并且向客户视图激活更新。366. 组件组件技术技术设计模式设计模式H 主体观察器(主体观察器(Subject Observer)模式:该)模式:该模式封装了某些应被观察到的事件的
27、主体。模式封装了某些应被观察到的事件的主体。主体拥有多个被封装观察器对象。主体拥有多个被封装观察器对象。H 代理(代理(Proxy)模式:代理模式提供了一个中)模式:代理模式提供了一个中间对象用于把请求发送到端点对象。间对象用于把请求发送到端点对象。H 复合(复合(Composite)模式:复合模式定义了一)模式:复合模式定义了一些实体,这些实体表示应被一个或多个复合些实体,这些实体表示应被一个或多个复合对象包含的组件。对象包含的组件。37 EJB EJB定义定义人们希望把人们希望把javajava组件的概念从客户机域扩展到组件的概念从客户机域扩展到服务器域,支持以任务为关键的企业信息系统。服
28、务器域,支持以任务为关键的企业信息系统。F 平台无关性平台无关性F 软件重用性软件重用性F 开发高效性开发高效性F 可扩展性可扩展性F 可维护性可维护性H 问题的提出问题的提出6. 组件组件技术技术 EJB基础基础6.4 EJB6.4 EJB基础基础38H EJB EJB定义定义EJB EJB 是基于是基于JavaJava的面向对象的组件标准,是的面向对象的组件标准,是用于开发和部署多层结构的、分布式的、面用于开发和部署多层结构的、分布式的、面向对象的向对象的JavaJava应用系统的跨平台的构件体系应用系统的跨平台的构件体系结构。结构。EJBEJB组件包含一定的业务规则,运行组件包含一定的业
29、务规则,运行在服务器端,是在服务器端,是JavaJava企业计算平台的核心技企业计算平台的核心技术。术。6. 组件组件技术技术 EJB基础基础39F EJBEJB组件是基于标准分布式对象技术、组件是基于标准分布式对象技术、CORBACORBA和和RMIRMI的服务器端的服务器端JavaJava组件组件, EJBEJB组件总是分布的。组件总是分布的。F 实现了实现了EJB规范的应用服务器提供了可以解决规范的应用服务器提供了可以解决安全性、资源共享、持续运行、事务处理等服安全性、资源共享、持续运行、事务处理等服务,简化了商业应用系统。务,简化了商业应用系统。F EJBEJB是部署在服务器上的可执行
30、的组件或商业对是部署在服务器上的可执行的组件或商业对象。它运行在服务器上,是由客户机调用的非象。它运行在服务器上,是由客户机调用的非可视远程对象。可视远程对象。F EJBEJB组件提供了应用的商务逻辑部分,不涉及表组件提供了应用的商务逻辑部分,不涉及表示层部分。示层部分。6. 组件组件技术技术 EJB基础基础40H EJB EJB的发展过程的发展过程F 发布:发布:19971997年年1212月;月;F 1.01.0版:版:19981998年年3 3月;月;F 2.02.0版:版:20012001年年9 9月;月;6. 组件组件技术技术 EJB基础基础41H 三层结构三层结构6. 组件组件技术
31、技术 EJB基础基础 EJB EJB体系结构体系结构业务逻辑从业务逻辑从web服务器分离成几个独立的组服务器分离成几个独立的组件,这些独立的组件可以部署在不同的机器件,这些独立的组件可以部署在不同的机器上以提高性能,可以被浏览器、小应用(上以提高性能,可以被浏览器、小应用(Applet)、或通过现有的轻量级的)、或通过现有的轻量级的CGI访问访问。同时,这些组件经过优化,大大提高了其。同时,这些组件经过优化,大大提高了其性能、稳定性和容错性。性能、稳定性和容错性。42436. 组件组件技术技术 EJB基础基础F 数据流分层数据流分层网络服务器(网络服务器(Web Server)应用服务器(应用
32、服务器(Application Server)事务监控器(事务监控器(Transaction Server)数据库服务器(数据库服务器(Database Server)44F 应用分层应用分层6. 组件组件技术技术 EJB基础基础表示层:一般由表示层:一般由JSP,Servlet来实现,提供来实现,提供整个系统与用户交互的界面。整个系统与用户交互的界面。业务逻辑层:一般由普通的业务逻辑层:一般由普通的Java类或会话类或会话Bean来实现,用来处理业务逻辑,一般是对来实现,用来处理业务逻辑,一般是对数据的处理,对文件的读写等等。数据的处理,对文件的读写等等。数据访问层:一般由普通的数据访问层:
33、一般由普通的Java类或实体类或实体Bean来实现,提供对数据库的操作。来实现,提供对数据库的操作。 45H 分布式对象分布式对象 EJB组件是基于分布式对象的,采用的技组件是基于分布式对象的,采用的技术就是术就是Java的的RMI-IIOP。6. 组件组件技术技术 EJB基础基础F 存根(存根(stub):代表远程对象的客户机端代):代表远程对象的客户机端代理,它有和远程对象一样的接口理,它有和远程对象一样的接口(interface),并且驻留在客户端的机器上。),并且驻留在客户端的机器上。因此客户端可以像使用远程对象一样使用存根因此客户端可以像使用远程对象一样使用存根的方法。存根会把客户端
34、对方法的调用转换成的方法。存根会把客户端对方法的调用转换成可以在网络中传输的网络消息,发送到服务器。可以在网络中传输的网络消息,发送到服务器。466. 组件组件技术技术 EJB基础基础F 骨架(骨架(SkeletonSkeleton)是一个驻留在服务器端的)是一个驻留在服务器端的代理对象,它可以把客户端传来的网络消息代理对象,它可以把客户端传来的网络消息转换成对服务器端对象的方法调用。在方法转换成对服务器端对象的方法调用。在方法结束后,骨架会得到方法的返回值,再把返结束后,骨架会得到方法的返回值,再把返回值转换成网络消息,发送到客户端。这时,回值转换成网络消息,发送到客户端。这时,存根会把网络
35、消息转换成可以使用的存根会把网络消息转换成可以使用的JavaJava对对象,供客户端使用。象,供客户端使用。476. 组件组件技术技术 EJB基础基础存存 根根框框 架架网络网络客户端客户端调用远调用远程接口程接口远程对象远程对象调用本调用本地接口地接口分布式对象分布式对象486. 组件组件技术技术 EJB基础基础客户端客户端 客户端调用一客户端调用一个方法个方法STUB 返回结果返回结果中间层中间层网络网络 所调用方法的通信所调用方法的通信 返回值的通信返回值的通信对象对象服务器服务器 在服务器上在服务器上调用调用SKELETONSKELETONRMI循环循环RMI循环循环每个对象服务器的实
36、例都被相应每个对象服务器的实例都被相应的的skeleton类的实例所包装,类的实例所包装, skeleton 在一个在一个IP地址和一个端地址和一个端口上建立起来并监听由口上建立起来并监听由stub发来发来的请求。的请求。 stub作为对象服务器在作为对象服务器在客户端的代理代理,负责通过客户端的代理代理,负责通过skeleton将请求从客户端送到对将请求从客户端送到对象服务器。象服务器。49客户机客户机EJBHomeEJBObject数据库数据库或组件或组件EJB组件组件EJB服务器服务器容器容器6. 组件组件技术技术 EJB基础基础H EJB EJB体系结构体系结构50F EJBEJB组件
37、模型包括组件模型包括: :EJBEJB组件组件EJB ServerEJB ServerEJB ContainerEJB ContainerEJB ObjectEJB ObjectEJB EJB 部署部署 6. 组件组件技术技术 EJB基础基础51FEJBEJB组件类型组件类型 EJB组件用于封装业务逻辑,使得开发人组件用于封装业务逻辑,使得开发人员无需再担心数据访问、事务处理支持、安员无需再担心数据访问、事务处理支持、安全性、高速缓存和并发等琐碎任务的编程。全性、高速缓存和并发等琐碎任务的编程。 实体实体beanbean 会话会话beanbean 消息驱动消息驱动beanbean(EJB2.0
38、)EJB2.0)6. 组件组件技术技术 EJB基础基础52实体实体beanbean(Entity beans) 实体实体bean是一个标准的是一个标准的Java类,用对象的类,用对象的形式来展现数据库中的数据表记录,利用形式来展现数据库中的数据表记录,利用对象所定义的对象所定义的business函数,来执行对应于函数,来执行对应于数据表的存取工作,如添加记录、修改记数据表的存取工作,如添加记录、修改记录和删除记录等。实体录和删除记录等。实体bean可以用来维护可以用来维护一个或多个表格的记录。一个或多个表格的记录。6. 组件组件技术技术 EJB基础基础53 它们代表了存储介质上的数据。它们代表
39、了存储介质上的数据。 它们可以在服务器关掉了或是崩溃了之后存它们可以在服务器关掉了或是崩溃了之后存在。在。 多个客户端可以使用代表相同数据的多个客户端可以使用代表相同数据的EJBEJB。 实体实体 EJBEJB管理着存储介质上的数据在内存中管理着存储介质上的数据在内存中的拷贝。的拷贝。 代表系统中的业务数据。代表系统中的业务数据。 6. 组件组件技术技术 EJB基础基础实体实体beanbean的特点:的特点:54会话会话beanbean(Session beanSession bean) 会话会话BeanBean是客户端应用程序的一个扩展,负是客户端应用程序的一个扩展,负责控制工作流(商务过程
40、)并填补实体责控制工作流(商务过程)并填补实体beanbean代表的数据和与该数据交互的商务逻辑之间代表的数据和与该数据交互的商务逻辑之间的空白。其特点是不会永远存在,一旦服务的空白。其特点是不会永远存在,一旦服务器关掉了或崩溃了,它的数据就丢失了。器关掉了或崩溃了,它的数据就丢失了。 从客户端的角度来看,从客户端的角度来看, 会话会话BeanBean是一个实现是一个实现一些业务功能的对象,客户端可以自由的操一些业务功能的对象,客户端可以自由的操作这些对象来完成它的工作。作这些对象来完成它的工作。 6. 组件组件技术技术 EJB基础基础55无状态会话无状态会话BeanBean:实现了一次使用的
41、服务:实现了一次使用的服务组件。这种服务组件可以被多次调用,但组件。这种服务组件可以被多次调用,但是无状态会话是无状态会话BeanBean在多次调用之间不会保在多次调用之间不会保留客户端相关数据。当它的方法被调用时,留客户端相关数据。当它的方法被调用时,这个方法必须完成它的业务逻辑而又不能这个方法必须完成它的业务逻辑而又不能对该会话对该会话BeanBean的属性进行修改。的属性进行修改。6. 组件组件技术技术 EJB基础基础56有状态会话有状态会话BeanBean:有状态会话:有状态会话BeanBean是被设计是被设计成可以在方法调用之间维护客户端的状态,成可以在方法调用之间维护客户端的状态,
42、就像就像HTTP SessionHTTP Session一样。有状态会话一样。有状态会话BeanBean会会把这些状态存在它的属性中。把这些状态存在它的属性中。EJB EJB 容器会保容器会保证同一个客户端的每次调用都会被转到这个证同一个客户端的每次调用都会被转到这个保持它的状态的有状态会话保持它的状态的有状态会话 BeanBean的实例,的实例,但不能保证同一个客户端的两次调用都被转但不能保证同一个客户端的两次调用都被转到同一个实例。到同一个实例。 6. 组件组件技术技术 EJB基础基础57消息驱动消息驱动beanbean 消息驱动消息驱动BeanBean将将EJBEJB和和JMSJMS的功
43、能结合在一的功能结合在一起,来实现异步消息通信。起,来实现异步消息通信。消息驱动消息驱动bean适合于任何一个可以在后台运行、不需要适合于任何一个可以在后台运行、不需要立刻知道结果的操作。立刻知道结果的操作。6. 组件组件技术技术 EJB基础基础58浏览器浏览器J2EE应用服务器应用服务器实体实体bean会话会话beanEJB容器容器浏览器浏览器JSP实体实体bean实体实体bean数据库数据库服务器服务器59例如:在一个预订航行得系统例如:在一个预订航行得系统TitanEJB中,中,实体实体bean可以代表船舱、顾客、轮船等,会话可以代表船舱、顾客、轮船等,会话bean负责管理特定的行为,如
44、预订,协调诸如负责管理特定的行为,如预订,协调诸如乘客、票价、航行计划等与轮船无关的事务。乘客、票价、航行计划等与轮船无关的事务。会话会话bean在完成预订活动的过程中,能直在完成预订活动的过程中,能直接使用数据库并且进行读、修改和删除数据。但接使用数据库并且进行读、修改和删除数据。但预订一旦完成,预订一旦完成, 会话会话bean生命周期就结束了。生命周期就结束了。6. 组件组件技术技术 EJB基础基础60F EJB 容器(容器( Container) EJBEJB容器是容器是EJBEJB的执行环境,它通过将的执行环境,它通过将EJB EJB ServerServer提供强大的系统层级服务,包
45、括:持久性提供强大的系统层级服务,包括:持久性、安全、并发性、事务、分布式对象和命名,加、安全、并发性、事务、分布式对象和命名,加入到组件中的。从本质上来说,入到组件中的。从本质上来说,EJBEJB容器在客户容器在客户端和端和beansbeans之间充当不可见的中间人。他们负责之间充当不可见的中间人。他们负责连接客户端到连接客户端到beansbeans、执行事务协调、提供持久、执行事务协调、提供持久性、管理性、管理beanbean的生命周期及其他任务。的生命周期及其他任务。6. 组件组件技术技术 EJB基础基础61F EJB EJB服务器服务器 一个遵循一个遵循EJBEJB的应用服务器就叫的应
46、用服务器就叫EJBEJB服务服务器。器。 EJBEJB服务器必须提供一组标准的服务来支服务器必须提供一组标准的服务来支持持EJBEJB组件,提供一个支持用组件,提供一个支持用EJBEJB技术开发的应技术开发的应用程序执行的环境,用于管理和协调应用程序用程序执行的环境,用于管理和协调应用程序的资源配置。的资源配置。EJBEJB服务器必须提供一个或多个服务器必须提供一个或多个EJBEJB容器,一个容器,一个EJBEJB容器管理在它其中的容器管理在它其中的EJBEJB组组件。件。6. 组件组件技术技术 EJB基础基础62F EJB EJB对象(对象( EJB ObjectEJB Object) EJ
47、BEJB对象接口提供对对象接口提供对EJBEJB组件中业务逻组件中业务逻辑方法的存取。一个辑方法的存取。一个EJBEJB对象表示一个对象表示一个EJBEJB组件组件的客户视图,的客户视图,EJB ObjectEJB Object将对象的所有与应用将对象的所有与应用相关的接口陈列出来,但不允许把相关的接口陈列出来,但不允许把EJBEJB容器管容器管理和控制该对象的接口显露出来。理和控制该对象的接口显露出来。 EJBEJB对象允对象允许许EJBEJB容器截取在容器截取在EJBEJB组件之上的所有操作。组件之上的所有操作。6. 组件组件技术技术 EJB基础基础63F EJB EJB部署部署 配置描述
48、器的功能类似于属性文件,用于描配置描述器的功能类似于属性文件,用于描述组成述组成beanbean类和运行时怎样管理类和运行时怎样管理beanbean。在配置过。在配置过程中,配置描述器被读取,它的属性也显示出来程中,配置描述器被读取,它的属性也显示出来以便进行编辑。配置者可以修改和添加适合应用以便进行编辑。配置者可以修改和添加适合应用程序操作环境的设置,生成在程序操作环境的设置,生成在EJBEJB服务器中配置服务器中配置beanbean所需的整个支持基础结构,包括将所需的整个支持基础结构,包括将beanbean加入加入命名系统并生成命名系统并生成beanbean的的EJBEJB对象和对象和EJBhomeEJBhome、持久、持久性基础结构、事务支持、决定性基础结构、事务支持、决定beanbean的引用等等。的引用等等。6. 组件组件技术技术 EJB基础基础6465 EJBEJB设计目标设计目标 为使用可重用组件实现多层应用程序中的为使用可重用组件实现多层应用程序中的商业逻辑定义的体系结构标准商业逻辑定义的体系结构标准EJB规范。规范。H EJBEJB体系结构将成为用体系结构将成为用JavaJava编程语言建造分布编程语言建造分布式、面向对象商业应用程序的标准组件结构。式、面向对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论