第08章基于构件的软件开发教学课件

上传人:无*** 文档编号:241638603 上传时间:2024-07-12 格式:PPT 页数:81 大小:614KB
返回 下载 相关 举报
第08章基于构件的软件开发教学课件_第1页
第1页 / 共81页
第08章基于构件的软件开发教学课件_第2页
第2页 / 共81页
第08章基于构件的软件开发教学课件_第3页
第3页 / 共81页
点击查看更多>>
资源描述
软件工程软件工程第第8章章 基于构件的软件开发基于构件的软件开发基于构件的软件开发目标基于构件的软件开发目标u长期以来的软件开发状况多数软件都是针对某个具体的应用系统从头进行开发的导致:出现了大量的同类软件重复开发,造成大量人力、财力的浪费,而且软件的质量也不高u对比:汽车工业的生产模式在已有的部件基础上通过组装进行生产:有专门的部件生产工厂,汽车设计者在设计中选择市场上已有的合适的部件避免了大量的重复劳动,提高了产品质量和生产效率,促进分工合作u我们的目标:将制造业中的组装式生产模式引入到软件开发中内容摘要内容摘要1.基于构件的软件开发概述2.建造可复用构件3.应用系统工程4.构件的管理5.小结内容摘要内容摘要1.基于构件的软件开发概述2.建造可复用构件3.应用系统工程4.构件的管理5.小结基于构件的软件开发基于构件的软件开发u基于构件的软件开发Component-BasedSoftwareDevelopment简称CBSD是指使用可复用构件来开发应用软件u基于构件的软件工程Component-BasedSoftwareEngineering简称CBSE构件构件(Component)的典型定义的典型定义uPressman书中的定义:构件是某系统中有价值的、几乎独立的并可替换的一个部分,它在良好定义的体系结构语境内满足某清晰的功能uBrown的定义:构件是一个独立发布的功能部分,可以通过其接口访问它的服务u“计算机科学技术百科全书”的定义:软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;软件构件须承载有用的功能,并遵循某种构件模型;可复用构件是指具有可复用价值的构件构件的要素构件的要素1.规格说明:建立在接口概念之上,作为服务提供方与客户方之间的契约2.一个或多个实现3.受约束的构件标准4.包装方法5.部署方法3C构件模型构件模型u关于构件的一个指导性模型由构件的三个不同方面的描述组成1.概念(concept):关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述两部分,语义描述和每个操作相关联(至少表示为前后置谓词形式)2.内容(content):概念的具体实现,描述构件如何完成概念所刻画的功能3.周境(context):描述构件和外围环境在概念级和内容级的关系,刻画构件的应用环境,为构件的选用和适应性修改提供指导REBOOT构件模型构件模型u基于面向对象技术的复用REBOOT(ReuseBasedonObject_OrientedTechnology):u一种基于刻面(facet)的模型刻面:对领域进行分析,所得到的一组基本的描述特征刻面可以描述构件执行的功能、所操作的数据、构件应用的周境或任何其它特征通常的刻面描述限制在不超过7或8个刻面u一个构件通常包括以下刻面:抽象(abstraction):它是构件概念的抽象性描述操作(operation):它是构件所提供的操作的描述操作对象(operand):它描述操作的对象依赖(dependency):它描述构件与外界的依赖关系常用的构件标准常用的构件标准uCORBA(公共对象请求代理体系结构)CommonObjectRequestBrokerArchitectureOMG发布的构件标准核心是ORB(ObjectRequestBroker),定义了异构环境下对象透明地发送请求和接收响应的基本机制uCOM+微软开发的一个构件对象模型,提供了在运行于Windows操作系统之上的单个应用中使用不同厂商生产的对象的规约uEJB:一种基于Java的构件标准EJB(EnterpriseJavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。EJB规约规定了EJB构件如何与EJB容器进行行交互基于构件的软件开发过程基于构件的软件开发过程领域工程步骤领域工程步骤-11.领域分析:首先要进行领域分析,收集领域中有代表性的应用样本,分析应用中的公共部分或相似部分,抽取该领域的应用体系结构2.建立领域特定的基准体系结构模型:在领域分析的基础上,构造该领域的基准体系结构,这个基准体系结构应是可以裁剪和扩充的,并可供该领域的应用复用3.标识候选构件:在领域分析和领域基准体系结构模型的基础上标识该领域的候选构件4.泛化(generalization)和可变性(variability)分析:提高其通用性,同时寻找候选构件在不同应用中的变化点(variationpoint),通过设置参数、继承或其它手段,使可变部分局部化领域工程步骤领域工程步骤-25.重建构件:在泛化和可变性分析的基础上,重建构件,使它成为可复用构件6.构件的测试:对重建的可复用的构件要严格测试,以提高其可靠性7.构件的包装:经测试的构件应根据构件库的要求,对它进行包装,以便构件库对它分类储存和检索8.构件入库:包装后的构件即可存入构件库应用系统工程的步骤应用系统工程的步骤-11.建立应用系统的体系结构模型:可以使用构件生产者提供的领域特定的基准体系结构经裁剪和/或扩充而获得2.寻找候选构件:根据应用系统的体系结构模型,从构件库或其它可利用的构件源中寻找候选构件3.评价和选择合适的构件:评价候选构件以判断是否适合于待开发的软件4.构件的修改(modify)和特化(specialize):在复用时对构件进行特化以满足特定应用的需要应用系统工程的步骤应用系统工程的步骤-25.开发未被复用的部分:对新系统中未复用的部分进行开发6.构件的组装:将特化和修改后的可复用构件和新开发的部分组装成一个新的软件系统7.集成测试:对组装后的软件系统进行集成测试8.评价被复用的构件,并推荐可能的新构件内容摘要内容摘要1.基于构件的软件开发概述2.建造可复用构件3.应用系统工程4.构件的管理5.小结建造可复用构件建造可复用构件1.建造构件的目的是为了以后复用构件,即为复用而建造构件2.在建造构件时仍应遵循抽象、逐步求精、信息隐蔽、功能独立、结构化程序设计等思想和原则3.由于面向对象方法具有封装性、继承等特点,能有力地支持复用,所以应尽可能考虑采用面向对象方法对可复用构件的要求对可复用构件的要求1.构件的设计应具有较高的通用程度2.构件应易于调整3.构件应易于组装4.构件必须具有可检索性5.构件必须经过充分的测试创建领域构件的设计框架创建领域构件的设计框架u除应遵循已有的设计概念和原则外,还必须考虑应用领域的特征,如:1.标准数据:应该研究应用领域,并标识出标准的全局数据结构(如文件结构或完整的数据库)。于是所有设计的构件都可以用这些标准数据结构来刻画2.标准接口协议:应该建立三个层次的接口协议:构件内(intramodular)接口、构件外接口以及人机接口3.程序模板:程序的结构模型可以作为新程序的体系结构设计的模板可变性分析可变性分析1.构件应具有较强的通用性和可变性2.为了满足不同的复用需求,需要在构件复用时可能发生变化的一个或多个位置上标识变化点(variationpoint),同时为变化点附加一个或多个变体(variant)VP1VP2CVP1descriptioncontext可变性机制可变性机制u继承:在变化点上创建指定抽象类型或抽象类的子类型或子类。u扩展和扩展点:可以在用况和对象构件中的变化点(或扩展点)上附加变体(或扩展)u参数化:用于模板、框架和宏的类型和类适用于变体较小时(经常是一个数值、短语或表达式)内容摘要内容摘要1.基于构件的软件开发概述2.建造可复用构件3.应用系统工程4.构件的管理5.小结应用系统工程应用系统工程u任务:通过组装可复用构件得到应用系统uCBSD中构件是组成应用系统的基本单元u注重体系结构和构件接口的分析和设计,忽略构件内部实现的设计关注接口的设计关注接口的设计u接口是构件行为的描述机制,并提供了对其服务的访问供应接口(Providedinterface):描述构件所提供的服务,可以被其它构件访问请求接口(requivedinterface):请求接口描述构件为完成其功能(服务)需请求其它构件为其提供的服务u一个接口可以有多种实现,并且对使用者隐蔽u接口描述是构件使用者能依赖的所有信息,因此构件接口描述的表达能力和完整性是CBSD方法主要关注的问题之一基于构件的体系结构基于构件的体系结构u基于构件的应用系统体系结构描述了组成应用系统的构件,构件之间的组织结构、交互、约束和关系对系统的组成、结构以及系统如何工作的较为宏观的描述u如果在领域工程中已开发了领域基准体系结构(referencearchitecture),则可以通过对基准体系结构的剪裁和/或扩充获得应用系统的体系结构基于构件的体系结构层次基于构件的体系结构层次u逻辑体系结构以接口形式对每组服务进行描述,并描述那些包怎样交互来满足通常的用户使用场景展示了系统设计的蓝图,可用于验证系统是否提供了适当的功能,并能在系统功能需求变化时方便地改变系统的设计u物理体系结构描述系统的物理设计,包括硬件及其拓扑结构、网络和通信协议、基础设施(如运行平台、中间件、数据库管理系统等),以及软件系统的部署展示了系统的实现构架,有助于理解系统的许多非功能属性,如性能、吞吐量、服务的可用性等基于构件的应用系统开发方法基于构件的应用系统开发方法uRational统一过程RationalsUnifiedProcess,简称RUP一个关于软件开发的广泛的过程框架,覆盖了整个软件生命周期使用UML进行分析和设计建模,鼓励使用CBSD方法u选择视图的方法支持通用的构件设计方法,并以SelectComponentManager为目标通用构件设计准则使用UML作为构件设计符号uEnterprise-CBD方法鼓励使用UML的扩展形式把构件的规格说明和实现分离允许制作技术中立的规格说明,然后再使用不同的实现技术来实现规格说明u共同点:关注构件库中的构件、接口的设计和基于构件构架的应用程序组装构件鉴定构件鉴定(qualification)u目的:确保获得的构件可以完成所需的功能并能被集成在系统中与系统的其它构件正确交互u主要依据:是构件的接口描述和相关的规格说明,但这些信息往往还不足以确保构件能成功地集成到系统中u对于外部提供的成品构件(COTS)可通过运行构件测试版进行鉴定构件鉴定需考虑的因素构件鉴定需考虑的因素1.应用编程接口(API)2.该构件所需的开发和集成工具3.运行时需求,包括使用的资源(如内存或存储器)、时间或速度以及网络协议4.服务需求,包括操作系统接口和来自其他构件的支持5.安全特征,包括访问控制和身份验证协议6.嵌入式设计假定,包括特定的数值或非数值算法的使用7.异常处理构件的特化和组装构件的特化和组装u构件特化1.根据应用系统的具体情况对其进行特化,对变化点配置特定的变体,必要时要自行开发变体2.如果所选的构件不能完全满足应用系统的功能需求,还需对构件作适当的修改3.如果所选的构件未按构件标准开发(如遗产系统中抽取的构件)时,还需按某种构件标准对其进行包装u构件组装1.将经过鉴定和特化后的构件组装成应用系统2.提倡使用构件组装工具来组装应用系统(能检查接口匹配中的错误,实现组装的自动化或半自动化)内容摘要内容摘要1.基于构件的软件开发概述2.建造可复用构件3.应用系统工程4.构件的管理5.小结构件的管理构件的管理u构件的分类描述对构件库中的构件进行合理的分类和组织,帮助软件开发人员方便地找到所需要的构件大多数的研究都建议使用图书馆科学索引方法进行构件分类u构件库管理系统:主要用于构件的储存、检索、浏览和管理常用的构件分类模式常用的构件分类模式-1u枚举分类(EnumeratedClassification)将构件组织成分类层次次结构构,构件库中的构件按某些性质分成若干大类,每个大类又分成若干较小的类,经过若干次分解,形成构件分类的层次结构,实际的构件位于层次结构的最低层,其它层次则表示构件的类或子类枚举分类模式的分层结构易于理解和检索,但是,在建立层次结构之前,必须进行领域分析,寻找合适的供分类的性质。u属性值分类(Attribute_ValueClassification)为所有构件定义一组属性,每个构件都具有一组属性值,开发人员通过指定一组属性值对构件库检索与刻面分类方法非常类似,不同点在于:属性值分类法对可使用的属性数量没有限制;属性没有优先级;不使用同义词常用的构件分类模式常用的构件分类模式-2u刻面分类(FacetedClassification)1.根据一组刻面对构件分类,每个刻面从不同的侧面对构件库中的构件进行分类,并根据重要性设置刻面的优先级2.每个刻面由一组术语(term)构成,称之为术语空间(termspace),这些术语通常是描述性的关键词3.检索:用户通过指定一组刻面的术语值寻找匹配的构件4.使用同义词词典(thesaurus)解决用户指定的术语值与库中构件所对应的术语值之间的不一致问题5.评价:具有较好的灵活性,易于加入新的刻面值,比枚举分类模式易于扩展和修改构件库管理系统的主要功能构件库管理系统的主要功能1.构件的分类存储(即添加构件):根据构件库的分类模型将入库的构件储存在构件库中2.构件检索:从构件库中检索出满足用户要求或接近用户要求的构件.3.构件库浏览:浏览库中的全部或部分构件4.删除构件:将不再使用的构件从构件库中删去5.构件使用情况评价:根据用户使用和检索构件的反馈意见对构件作出评价,为进一步的改进提供依据构件的描述和检索构件的描述和检索u构件库管理系统的两个关键技术1.直接影响到构件库检索的查准率(precision)、查全率(recall)和效率(efficient)2.常用的构件检索方法规约匹配:基于有序的谓词逻辑的匹配,通过谓词演算公式进行精确匹配,通过逻辑连接符和逻辑量词进行部分精确匹配特征(signature)匹配:通过接口的定义进行匹配,适用于函数之类的构件术语轮廓匹配:基于构件编目描述语言的匹配,将每一个构件的编目描述作为该构件的一个特征矢量,通过测算矢量的距离进行匹配行为采样:基于构件测试的匹配,根据测试结果相同的概率进行匹配内容摘要内容摘要1.基于构件的软件开发概述2.建造可复用构件3.应用系统工程4.构件的管理5.小结小结小结1.基于构件的软件开发(CBSD)是20世纪90年代开始流行的开发方法2.CBSD支持软件复用,能有效提高软件的开发效率和质量,降低开发和维护成本,因此受到人们的关注3.本章内容:基于构件的软件开发的概念、领域工程过程和应用系统工程过程、可复用构件的建造、基于CBSD的应用系统分析和设计、以及构件的管理THANKSCOM/DCOM/COM+组件组件COM/DCOM/COM+组件这种风格的体系结构的最大优点是能够实现快速程序开发1COM/DCOM/COM+概述1.COM(ComponentObjectModel)组件对象模型(COM)指由微软公司开发的规范和执行操作,是为集成组件提供的一组框架。该框架支持分布式对象的互用性和可再用性,开发者通过从不同供应商处集中的可再用组件来建立COM通信系统。COM为组件的创建定义了应用程序接口(API),用来集成自定义应用程序或支持不同组件间的相互作用。COM库实现对象间通用接口。COM库负责维护有关系统注册中可用类方面的信息。接口定义语言(IDL)是用于描述COM接口和方法的一种高级符号语言。COM定义了二进制接口标准;采用紧耦合(TCE)的消息机制,实现LPCCOM/DCOM/COM+组件组件1COM/DCOM/COM+概述2.DCOM(DistributeCOM)分布式组件对象模型,是COM在网络环境下的扩展;DCOM只是简单地将本地进程间的通信用网络协议替换;DCOM考虑更多的是安全性、可靠性和性能;采用紧耦合(TCE)的消息机制,实现RPC。COM/DCOM/COM+组件组件1COM/DCOM/COM+的概述3.COM+COM+并不是COM的新版本,可以把它理解为COM的新发展,或者为COM更高层次上的应用;COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容,COM+可视为COM、DCOM和MTS(MicrosoftTransactionServer微软事务服务器)的集成,COM+倡导了一种新的概念,它把COM组件软件提升到应用层,而不再是底层的软件结构,通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统;采用松耦合(LCE)的消息机制。COM/DCOM/COM+组件组件2COM/DCOM/COM+的关系 COM+COM+目录目录内存数据库内存数据库负载平衡负载平衡对象池对象池队列组件队列组件新的事件模型新的事件模型组件管理和配置组件管理和配置 MTS事务支持事务支持资源分发管理资源分发管理安全模型安全模型 COM/DCOM-基于接口和编程模型远程支持基本的组件模型分布式组件服务COM/DCOM/COM+组件组件3COM/DCOM1.COM组件是遵循COM规范编写、以Win32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行二进制代码,能够满足对组件架构的所有需求。遵循COM的规范标准,组件与应用、组件与组件之间可以互操作,极其方便地建立可伸缩的应用系统。2.COM是一种技术标准,其商业品牌则称为ActiveX。COM/DCOM/COM+组件组件4COM/DCOM的基本特征1.类和对象COM/DCOM使用面向对象模型。COM拥有与C+对象一样的类、成员函数和实例。2.COM/DCOM方法可通过网络调用C+对象通常都运行在同一进程空间中。COM/DCOM对象可跨进程和跨计算机运行。3.COM对象在世界上必须是唯一的在一个进程空间中,C+方法的名字必须是唯一的,而COM/DCOM对象的名字在整个世界中都是唯一的。4.COM是语言无关的COM服务器可以使用多种不同的语言和在不同的操作系统上编写,而C+对象通常都使用C+编写。5.接口将客户和服务器隔离开来COM最重要的一条规定是只能通过接口来访问一个COM对象。通过接口,客户端的程序与服务器的执行完全隔离开来。这是非常重要的一点。COM/DCOM/COM+组件组件5COM/DCOM的接口1.接口的定义接口描述语言(IDL),它不依赖任何程序语言的接口描述方式。2.接口的工作模式客户引用接口虚函数表引用虚函数表虚函数实现COM/DCOM/COM+组件组件5COM/DCOM的接口3.默认接口(IUnKnown)及其定义组件中总存在一个默认的接口IUnknownInterfaceIUnKnownHRESULTQueryInterface(inREFIIDiid,outvoid*ppv);/查询COM所定义的其它接口ULongAddRef(void);/引用计数器增1ULongRelease(void);/引用计数器减1;COM/DCOM/COM+组件组件5COM/DCOM的接口4.COM的生存期当接收到客户引用COM申请,建立引用,引用计数器增1撤消引用时,引用计数器减1,当引用计数器为0时,组件撤消。5.接口的特性B接口的二进制特性接口的规范与程序设计语言无关B接口不变性组件的接口保持相对不变B接口的动态多变性函数重载COM/DCOM/COM+组件组件6COM/DCOM的类型1.进程内组件在同一进程中运行的组件。通常以DLL的形式出现,应用程序启动或调用时,加载组件。2.进程名组件在自身独立的进程中运行的组件。通常以EXE的形式出现,可以是本地调用,也可以是远程调用。3.DLL和EXE的主要差别:1.EXE组件运行时只是一个组件;2.DLL组件每个应用将拥有不同的组件个体;3.DLL组件的效率高于EXE组件;4.EXE组件可独立运行。COM/DCOM/COM+组件组件7COM+的几个主要特性:1.真正的异步通讯。COM+底层提供了队列组件服务,这使客户和组件有可能在不同的时间点上协同工作,COM+应用无须增加代码就可以获得这样的特性。2.事件服务。新的事件机制使事件源和事件接收方实现事件功能更加灵活,利用系统服务简化了事件模型,避免了COM可连接对象机制的琐碎细节。3.可伸缩性。COM+的可伸缩性来源于多个方面,动态负载平衡以及内存数据库、对象池等系统服务都为COM+的可伸缩性提供了技术基础,COM+的可伸缩性原理上与多层结构的可伸缩特性一致。4.继承并发展了MTS的特性。从COM到MTS是一个概念上的飞跃,但实现上还欠成熟,COM+则完善并实现了MTS的许多概念和特性。5.可管理和可配置性。管理和配置是应用系统开发完成后的行为,在软件维护成本不断增加的今天,COM+应用将有助于软件厂商和用户减少这方面的投入。6.易于开发。COM+应用开发的复杂性和难易程度将决定COM+的成功与否,虽然COM+开发模型比以前的COM组件开发更为简化,但真正提高开发效率仍需要借助于一些优秀的开发工具。COM/DCOM/COM+组件组件8COM+的几个新特性:COM+队列组件COM+除了支持基于RPC连接的运行方式,它还支持另一种基于消息通讯过程的运行模式,它可以有效地把客户与组件的生存期分离开。这种模式就是通过COM+的队列组件服务实现的。COM/DCOM/COM+组件组件COM/DCOM/COM+组件组件8COM+的几个新特性:1.COM+队列组件C队列组件并没有使用直接的RPC连接,而是采用了底层的消息系统MSMQ(MicrosftMessageQueueServer)。通过底层的队列机制,客户与组件的生存周期可以被分离在不同的时间点上。客户程序不再直接调用组件对象,它利用消息机制与组件对象进行通讯,即使组件对象并没有运行,客户程序仍然可以执行操作。CCOM+应用可以以透明方式支持同步和异步两种调用方式,当客户和组件程序建立了连接之后,客户以同步方式直接调用组件的方法;如果客户与组件没有建立直接的连接,那么客户以异步方式与组件进行通讯。C在慢速网络上运行的应用系统,这种机制可以保证应用系统能够可靠地运行。在应用系统包含大量客户节点但服务器数量又比较少的情况下,客户应用程序可以把它们的请求放到队列中,当服务器负载比较轻的时候再处理这些请求,因此队列机制也从另一个角度实现了应用系统的负载平衡以及可伸缩特性。COM/DCOM/COM+组件组件8COM+的几个新特性:2.COM+事件模型COM+事件模型改进了COM的可连接对象机制,它采用了多通道的发布/订阅(multicastingpublish/subscribe)事件机制,它允许多个客户去“订阅”事件,这些事件由各种组件对象“发布”。COM/DCOM/COM+组件组件8COM+的几个新特性:2.COM+事件模型CCOM+事件服务维护一个事件数据库,数据库包含各种事件、发布者、订阅者以及所有的订阅信息。当发布者激发事件时,COM+事件服务对事件数据库中有关的订阅信息进行检查,然后通知对应的订阅者。CCOM+事件模型通过事件类来传递源对象的出接口事件信息,以便它可以与客户方的入接口事件方法相匹配,这种方式与COM可连接对象机制很类似,所以老式的COM组件和客户程序可以很方便地使用新的COM+事件模型。CCOM+事件模型用中心服务和中心管理的方式把发布者与订阅者之间的依赖关系分离开,它用事件类作为发布者和订阅者之间的中间对象,发布者必须通过事件类发布信息。COM/DCOM/COM+组件组件8COM+的几个新特性:2.COM+事件模型C事件类是由COM+事件服务提供的对象,它实现了事件接口,所以对于发布者来说,它扮演了订阅者的角色。C当发布者要激发事件时,它创建一个事件类对象,调用相应的事件方法,然后释放对象的接口。CCOM+事件服务会决定如何通知订阅者,决定什么时候通知订阅者。如同队列组件情形一样,发布者和订阅者的生存时间可以被分离,从这个意义上讲,所有事件接口函数只能包含输入参数。C订阅者订阅事件也很方便,它只要通过COM+事件服务创建一个订阅对象,并注册到事件数据库中,以后它就会接收到来自发布者的事件通知。COM/DCOM/COM+组件组件8COM+的几个新特性:3.负载平衡负载平衡是分布式应用的一种高层次需求,COM+可以以透明方式实现动态负载平衡。COM/DCOM/COM+组件组件8COM+的几个新特性:3.负载平衡C为了使组件支持负载平衡,必须定义一个应用群集(applicationcluster),应用群集是指一组已经安装了服务器端组件的机器(至多可达8台机器),把一台机器配置成负载平衡路由器(router)。C当路由器的SCM(ServiceControlManager)接收到远程创建对象请求时,它把请求传递到负载最轻的机器上。C实现负载平衡的一个难点是如何确定应用群集中的哪台机器是负载最轻的。COM+负载平衡引擎使用缺省的负载平衡算法,它根据每台机器上每个对象实例的方法调用的响应时间作为参考值计算出负载平衡参数,这种算法不一定是最佳算法,但对于大多数应用已经足够了。COM/DCOM/COM+组件组件8COM+的几个新特性:4.内存数据库(IMDB)内存数据库(InMemoryDatabase)服务是一个全新的服务。以数据为中心的应用软件,为了提高系统的运行效率,它应该尽可能让更多的数据驻留在内存中,尤其是客户程序频繁访问的数据信息基于IMDB的Web应用结构示意图 COM/DCOM/COM+组件组件8COM+的几个新特性:4.内存数据库(IMDB)CIMDB的接口为OLEDB和ADO,所以组件对象可以通过这些标准接口访问IMDB。C由于IMDB是内存中的数据库,所以IMDB只对本机器上的COM+组件有效,即IMDB不支持分布式概念,并且多个IMDB机器不能装入同一个数据表,如果多个组件要共享IMDB中的信息,那么这些组件必须运行在同一台机器上。CIMDB不仅可以把数据表缓冲起来,它也可以管理应用系统的非永久状态信息,如果运行在同一台机器上的不同组件需要共享大量的信息,那么选择IMDB是一个理想的解决方案。COM/DCOM/COM+组件组件8COM+的几个新特性:5.对其他服务的增强C事务特性。事务允许组件可以把一组独立的操作形成一个整体操作。COM+仍然支持MTS的事务语义,通过SetAbort或SetComplete完成事务操作。在事务操作过程中,若发生异常,则系统自动调用SetAbort。C安全性。COM+的安全模型仍然沿用了MTS的基于角色的安全模型,管理员负责为所有的角色指定有关的用户帐号。COM+扩充了MTS安全模型,它允许开发人员和管理员指定到方法一级的安全控制,在MTS安全模型中,只能在MTS包一级指定安全角色。通过COM+对象环境信息,COM+的安全模型更为细致,它允许开发人员控制每一个接口、或者每一个方法如何扮演客户,等等。COM/DCOM/COM+组件组件8COM+的几个新特性:5.对其他服务的增强CCOM+对象池。对象池是指把对象的实例保留在内存中,以便当客户请求创建对象时可以马上用到这些对象。对象池如同IMDB一样,完全是出于效率考虑的原因,用来建立大型的应用系统。C管理服务。COM+管理程序支持脚本语言,因此,开发人员和管理员可以创建一些脚本代码以便实现管理工作的自动化。COM+还引入了一个新的“ApplID”,它是一个128位GUID,管理员可以为应用配置和维护多个版本。COM/DCOM/COM+组件组件9COM+提供的消息定购机制:1.持久定购为每一个定购者创建一个新的消息实例,组件与客户之间是一对一的关系,事件处理互不影响。2.短暂定购定购对象实例化后,将定购者与事件类绑定,可实现消息广播等3.单个用户定购只有定购者登录到消息系统所在的机器上,才可以使用。一旦定购者退出,定购即被取消。CORBAu代理者体系结构经典CORBA CORBA(Common Object Request Broker Architecture)目前分布式对象技术有3种主流技术COM、Java和COBRA。CORBA技术是最早出现的,1991年OMG颁布了COBRA1.0标准,在当时来说做得非常漂亮;Microsoft的COM系列,从最初的COM发展成现在的DCOM,形成了Microsoft一套分布式对象的计算平台;Sun公司的Java平台,在其最早推出的时候,只提供了远程的方法调用,在当时并不能被称为分布式对象计算,只是属于网络计算里的一种,接着推出的JavaBean,也还不足以和上述两大流派抗衡,而其目前的版本叫J2EE,推出了EJB,除了语言外还有组件的标准以及组件之间协同工作通讯的框架。应该说,这三者之中,COBRA标准是做的最漂亮的。CORBA1COM/JAVA/CORBA评述COM1.COM技术是Microsoft独家做的,是在Windows3.1中最初为支持复合文档而使用OLE技术上发展而来;2.经历了OLE、COM、ActiveX、DCOM和COM+等几个阶段,目前COM+把消息通讯模块MSMQ和解决关键业务的交易模块MTS都加进去了,是分布对象计算的一个比较完整的平台。3.Microsoft的COM平台效率比较高,同时它有一系列相应的开发工具支持,应用开发相对简单。4.COM的致命弱点就是跨平台性较差,如何实现与第三方厂商的互操作性始终是它的一大问题。从分布对象技术发展的角度来看,大多数人认为COM竞争不过COBRA。CORBA1COM/JAVA/CORBA评述JAVA1.Java标准的制订就快得多,Java是Sun公司自己定的,演变的很快。2.Java的优势是纯语言的,跨平台性非常好。3.Java分布对象技术通常指远程方法调用(RMI)和企业级JavaBean(EJB)。4.RMI提供了一个Java对象远程调用另一Java对象的方法的能力,与传统RPC类似,只能支持初级的分布对象互操作。5.Sun公司于是基于RMI,提出了EJB。基于Java服务器端组件模型,EJB框架提供了像远程访问、安全、交易、持久和生命期管理等多种支持分布对象计算的服务。6.目前,Java技术和CORBA技术有融合的趋势。CORBA1COM/JAVA/CORBA评述CORBACORBA的特点是大而全,互操作性和开放性非常好。CORBAu代理者体系结构经典CORBAu CORBA(Common Object Request Broker Architecture)是由对象管理组织(OMG)制定的工业标准;主要目标是提供一种机制,使得对象可以透明地发出请求和获得应答,建立异质的分布式系统;OMG基于面向对象技术,给出了以ORB(Object Request Broker)为中心的对象管理结构;ORB是一个关键通信机制,它以实现互操作性为主要目标,处理对象之间的消息分布。CORBA1COM/JAVA/CORBA评述CORBA1.CORBA的特点是大而全,互操作性和开放性非常好。2.COBRA标准主要分为3个层次:对象请求代理最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线”;公共对象服务在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;公共设施最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。CORBAu代理者体系结构经典CORBA g对象管理结构对象管理结构CORBAu代理者体系结构经典CORBA gCORBACORBA技术规范技术规范 1.1.接口定义语言(接口定义语言(IDLIDL)2.2.接口池(接口池(IRIR)3.3.动态调用接口(动态调用接口(DIIDII)4.4.对象适配器(对象适配器(OAOA)CORBAu代理者体系结构经典CORBA gCORBACORBA技术规范技术规范 1.1.接口定义语言接口定义语言FCORBA利用IDL统一地描述服务器对象(向调用者提供服务的对象)的接口。IDL本身也是面向对象的。它虽然不是编程语言,但它为客户对象(发出服务请求的对象)提供了语言的独立性,因为客户对象只需了解服务器对象的IDL接口,不必知道其编程语言。F IDL语言是CORBA规范中定义的一种中性语言,它用来描述对象的接口,而不涉及对象的具体实现。F 在CORBA中定义了IDL语言到C、C+、SmallTalk和Java语言的映射。CORBAu代理者体系结构经典CORBA gCORBACORBA技术规范技术规范 2.2.接口池接口池 FCORBA的接口池包括了分布计算环境中所有可用的服务器对象的接口表示。F它使动态搜索可用服务器的接口、动态构造请求及参数成为可能。CORBAu代理者体系结构经典CORBA gCORBACORBA技术规范技术规范 3.3.动态调用接口动态调用接口 FCORBA的动态调用接口提供了一些标准函数以供客户对象动态创建请求、动态构造请求参数。F客户对象将动态调用接口与接口池配合使用可实现服务器对象接口的动态搜索、请求及参数的动态构造与动态发送。F只要客户对象在编译之前能够确定服务器对象的IDL接口,CORBA也允许客户对象使用静态调用机制。F静态机制的灵活性虽不及动态机制,但执行效率却胜过动态机制。CORBAu代理者体系结构经典CORBA gCORBACORBA技术规范技术规范 4.4.对象适配器对象适配器 F在CORBA中,对象适配器用于屏蔽ORB内核的实现细节;F为服务器对象的实现者提供抽象接口,以便使用ORB的内部功能。这些功能包括服务器对象的登录与激活、客户请求的认证等。CORBAgCORBACORBA体系结构体系结构 动态激发动态激发API动态激发动态激发ORB APIBOA API实现仓库实现仓库CORBAu代理者体系结构经典CORBA gCORBACORBA的优点的优点1.定义了一种面向对象的软件构造方法,使不同的应用可以共享由CORBA构造出来的软件。2.每个对象都对其内部操作细节封装,向外部提供接口,降低了应用系统的复杂性,也降低了应用系统的开发费用。3.CORBA的平台无关性实现了对象的跨平台引用。4.CORBA的语言无关性,使得软件开发中能大量使用现有成果。CORBAu代理者体系结构经典CORBA gCORBACORBA的缺点的缺点 CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢。CORBAu代理者体系结构的优点1.定位的透明性客户不用关心服务器的物理位置,服务器也不用关心客户的物理位置。2.组件的可变更和可扩展性API不变,只改变内部实现不会对调用者产生影响。3.系统可移植性用户API、网桥、代理保证了系统的移植性。4.代理者系统间的互操作性网桥5.可重用性用户API、网桥、代理保证了可重用性CORBAu代理者体系结构的缺点1.效率低中间层多。2.容错性差一个程序失效,依赖此程序的功能模块都失效。3.测试和调试困难多层、多组件、透明等谢谢你的阅读v知识就是财富v丰富你的人生
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!