高级软件工程全册配套最完整精品课件.ppt

上传人(卖家):罗嗣辉 文档编号:1743560 上传时间:2021-09-23 格式:PPT 页数:303 大小:2.05MB
下载 相关 举报
高级软件工程全册配套最完整精品课件.ppt_第1页
第1页 / 共303页
高级软件工程全册配套最完整精品课件.ppt_第2页
第2页 / 共303页
高级软件工程全册配套最完整精品课件.ppt_第3页
第3页 / 共303页
高级软件工程全册配套最完整精品课件.ppt_第4页
第4页 / 共303页
高级软件工程全册配套最完整精品课件.ppt_第5页
第5页 / 共303页
点击查看更多>>
资源描述

1、高级软件工程全册配套最完整高级软件工程全册配套最完整 精品课件精品课件 北京大学计算机科学与技术系北京大学计算机科学与技术系 1、概述(、概述(1学时)学时) 课程内容设置背景与依据课程内容设置背景与依据 2、软件构件(分布式对象)模型(、软件构件(分布式对象)模型(20学时)学时) (1)CORBA(11) (2)COM(9) 3、软件体系结构(、软件体系结构(12学时)学时) (1)体系结构)体系结构(6) (2)OMA (3) (3)DNA (3) 4、软件建模(开发过程与结果)(、软件建模(开发过程与结果)(15学时)学时) (1)use case(3) (2)class (6) (3

2、)sequence (6) 一、授课内容与方式一、授课内容与方式 5、其它话题(、其它话题(6学时)学时) (1)软件复用)软件复用 领域工程、应用工程、再工程领域工程、应用工程、再工程 (2)工程管理()工程管理(CMM) . . . 二、实习内容与方式二、实习内容与方式 分成两组,每人分别针对不同的领域,利用分成两组,每人分别针对不同的领域,利用CORBA 或者或者DCOM开发一个小系统,鼓励多人协作开发。开发一个小系统,鼓励多人协作开发。 三、成绩计算方法三、成绩计算方法 1、自学材料,提交反馈意见与报告。、自学材料,提交反馈意见与报告。 20分分 2、开发实习,提交程序及文档。、开发实

3、习,提交程序及文档。 30分分 3、期末笔试,提交答卷。、期末笔试,提交答卷。 50分分 四、参考文献四、参考文献 1、 OMG,The Common Object Request Broker: Architecture and Specification,v2.31,1999.10。 2、潘爱民,、潘爱民,COM原理与应用原理与应用,清华大学出版社,清华大学出版社, 1999年年11月。月。 3、 Mary Shaw, David Garlan, Software Architecture, Prentice Hall, 1996。 4、 OMG,Unified Modeling Lang

4、uage Specification, v1.3,1999年年6月。月。 1、4可以从可以从 www.omg.org 或者或者 下载下载 2、3可以从书店购买。可以从书店购买。 5、邵维忠,杨芙清,、邵维忠,杨芙清,面向对象的系统分析面向对象的系统分析,清华大学出,清华大学出 版社,版社,1999年。年。 6、王立福,张世琨,朱冰,、王立福,张世琨,朱冰,软件工程软件工程,北京大学出版社,北京大学出版社, 1997年。年。 7、周之英,、周之英,现代软件工程现代软件工程,科学出版社,科学出版社,1999年年9月。月。 8、Thomas J.Mowbray, William A.Ruh, INS

5、IDE CORBA, ADDISON-WESLEY,1997。 9、Ivar Jacobson, Grady Booch, James Rumbaugh,“Unified Software Developing Process”,Addison-Wesley, 1999.9。 10、Mark C. Paulk,Bill Curtis,Mary Beth Chrissis,Charles V. Weber,Capability Maturity Model for Software, Version 1.1,CMU/SEI-93-TR-024,1993。 今日作业:在今日作业:在课程内容课程内容

6、 侧重点侧重点 授课方式授课方式 等方面提出建设性建议等方面提出建设性建议 并阐述理由并阐述理由 提交方式:电子邮件,提交方式:电子邮件,TO: 第一章第一章 概概 述述 1、软件发展现状、软件发展现状 2、软件发展趋势、软件发展趋势 3、现有软件标准、现有软件标准 4、软件工程研究范围的扩展、软件工程研究范围的扩展 1、软件发展现状、软件发展现状 (1)已经存在大量正在运行的软件)已经存在大量正在运行的软件 金融、电信、航空航天等金融、电信、航空航天等 (2)软件的应用范围不断扩大)软件的应用范围不断扩大 商务、交通、家电等,商务、交通、家电等,“无处不在的软件无处不在的软件” (3)软件的

7、规模与复杂性持续增加)软件的规模与复杂性持续增加 越来越多的知识正在由软件进行显式表达越来越多的知识正在由软件进行显式表达 (4)出现了大量与软件相关的标准)出现了大量与软件相关的标准 (3)的需求)的需求 (5)软件危机仍然存在(软件脱节)软件危机仍然存在(软件脱节) 1968-2000 2、软件发展趋势、软件发展趋势 (1)遗留软件将继续发挥作用)遗留软件将继续发挥作用 (2)软件应用范围将继续扩大,成为信息社会的物理设施)软件应用范围将继续扩大,成为信息社会的物理设施 (3)网络化软件将是发展重点)网络化软件将是发展重点 (4)软件的可靠性与安全性日趋重要)软件的可靠性与安全性日趋重要

8、(5)工业化生产是必由之路)工业化生产是必由之路 3、与软件相关的各种标准、与软件相关的各种标准 (1)网络协议:)网络协议:ISO/OSI vs TCP/IP (2)软件构件:)软件构件:CORBA vs COM (3)建模语言:)建模语言:UML (4)数据访问:)数据访问:ODBC (5)工程管理:)工程管理:CMM vs ISO(9001-3,15504) 4、软件工程研究范围的扩展、软件工程研究范围的扩展 软件工程:软件工程: “确立并使用正确的工程原理和方法,确立并使用正确的工程原理和方法, 以便能够经济地获得可靠而有效的软件以便能够经济地获得可靠而有效的软件”。 Friedric

9、h I. Bauer 原则原则 (形式化、模块化等)(形式化、模块化等) 方法与技术(过程及结果表示)方法与技术(过程及结果表示) 开发方法(结果描述为主):开发方法(结果描述为主): 结构化方法结构化方法 面向对象方法面向对象方法 开发模型(过程描述为主):开发模型(过程描述为主): 瀑布模型瀑布模型 渐进(增量)模型渐进(增量)模型 螺旋模型螺旋模型 喷泉模型喷泉模型 工具工具 高级软件工程:高级软件工程: 以传统软件工程研究内容为以传统软件工程研究内容为基础基础, 以面向对象技术、网络计算技术、软件复用技术为以面向对象技术、网络计算技术、软件复用技术为核心核心 以以CORBA、COM、U

10、ML标准等为主要参考标准等为主要参考 讨论、研究软件开发过程中需要关注的讨论、研究软件开发过程中需要关注的新焦点新焦点 新概念(原理):新概念(原理): 软件构件软件构件 体系结构体系结构 新方法(技术):新方法(技术): 过程与结果过程与结果 软件复用与软件复用与工程管理工程管理 方法与技术方法与技术 原则原则 工具工具 面向对象技术面向对象技术 分布计算技术分布计算技术 软件复用技术软件复用技术 传统软件工程传统软件工程 高级软件工程高级软件工程 概念与原理概念与原理方法与技术方法与技术 工具与环境工具与环境 第二章第二章 软件构件软件构件 本章本章 以分布对象为核心以分布对象为核心 结合

11、结合 CORBA与与 COM 介绍介绍 运行级大粒度构件运行级大粒度构件 的的 概念与原理概念与原理 构件构件 是是 系统中可以明确辨识的构成成分系统中可以明确辨识的构成成分 软件构件软件构件 是是 软件系统中软件系统中 具有一定意义的具有一定意义的 独立构成成分独立构成成分 可复用软件构件可复用软件构件 是是 可以被多个软件系统所复用的、可以被多个软件系统所复用的、 具有具有 独立功能的软件系统构成成分独立功能的软件系统构成成分 构件构件 是可以被直接复用的软件实体是可以被直接复用的软件实体 由构件接口与构件实现两部分组成由构件接口与构件实现两部分组成 构件分类:构件分类: 纵向:纵向:系统

12、级构件系统级构件 应用构件应用构件 共性共性 面向领域面向领域 横向:横向:界面构件(控件)界面构件(控件) 业务构件业务构件 数据访问构件数据访问构件 本课程重点关注:本课程重点关注:应用构件应用构件 业务构件业务构件 这样的构件与这样的构件与 分布对象技术中的构件(分布对象)概念分布对象技术中的构件(分布对象)概念 完全吻合完全吻合 一、分布对象技术发展过程一、分布对象技术发展过程 二、二、CORBA 三、三、COM 四、不同实现技术的比较四、不同实现技术的比较 一、分布对象技术发展过程一、分布对象技术发展过程 程序程序 = 算法算法 + 数据结构数据结构 软件软件 = 程序程序 + 文档

13、文档 模块化是软件的规模与复杂性模块化是软件的规模与复杂性 发展到一定程度时产生的必然结果发展到一定程度时产生的必然结果 关注焦点的不同,形成了不同的技术:关注焦点的不同,形成了不同的技术: 数据与操作的封装数据与操作的封装 面向对象技术面向对象技术 利用网络计算环境利用网络计算环境 分布计算技术分布计算技术 利用已经开发出的代码利用已经开发出的代码 软件复用技术软件复用技术 不论哪种技术不论哪种技术 模块形式及模块之间的协作方式是关键问题模块形式及模块之间的协作方式是关键问题 面向对象技术:面向对象技术: 对象对象 对象之间的关联对象之间的关联 分布计算技术:分布计算技术: 不同节点上的运行

14、程序不同节点上的运行程序 及程序之间的通讯及程序之间的通讯 软件复用技术:软件复用技术: 软件构件软件构件 软件构件的组装软件构件的组装 从运行时刻不同模块所处的进程考虑,从运行时刻不同模块所处的进程考虑, 两个模块之间存在如下三种关系:两个模块之间存在如下三种关系: 同一进程内部:同一进程内部: 子程序子程序 共享变量共享变量 同一机器的不同进程:同一机器的不同进程: 操作系统提供进程间通讯操作系统提供进程间通讯 不同机器上:不同机器上: 消息传递:消息传递:TCP/IP 远程过程调用:远程过程调用:RPC(DCE) 模块化继续发展的结果之一即为模块化继续发展的结果之一即为 分布对象分布对象

15、 分布对象技术是分布对象技术是 面向对象技术面向对象技术 分布式计算(网络计算)技术分布式计算(网络计算)技术 软件复用技术软件复用技术 的结合的结合 三者具有内在的一致性:自治、协作三者具有内在的一致性:自治、协作 分布对象技术的核心:分布对象技术的核心: 分布对象模型,以及分布对象间的互操作分布对象模型,以及分布对象间的互操作 分布对象技术的实现:分布对象技术的实现: OMG的的CORBA 微软的微软的DCOM 二、二、CORBA 本本 节节 内内 容容 1、OMG与与CORBA 2、CORBA对象模型对象模型 3、CORBA概述概述 4、IDL 5、ORB接口接口 6、IR 7、POA

16、8、举例、举例 (9、CCM) 1、OMG与与CORBA (1)OMG(www.omg.org); 成立于成立于19891989年年4 4月月 固定成员很少固定成员很少 不做开发:不做开发:OMG不写任何代码不写任何代码 致力于利用现有的技术进行应用系统的集成致力于利用现有的技术进行应用系统的集成 目前已经拥有超过目前已经拥有超过10001000个的成员:个的成员: 包括软件厂商、系统集成商以及最终用户包括软件厂商、系统集成商以及最终用户 OMG与与CORBA 总线总线 (2)如何使分布对象互操作)如何使分布对象互操作 计算机硬件中的模块及互联方式: OMG与与CORBA Object Req

17、uest Broker Object Services Application Interfaces Domain Interfaces Common Facilities OMG与与CORBA OMA:Object Management Architecture OMG发布的与发布的与CORBA相关的规范相关的规范 1、ORB CORBA: Common Object Request Broker Architecture and Specification 2、Object Services CORBAservices: Common Object Services Specificati

18、on. 3、Common Facilities CORBAfacilities: Common Facilities Architecture 本章介绍本章介绍CORBA的主要内容的主要内容 其它规范的部分内容将在第三章中进行介绍其它规范的部分内容将在第三章中进行介绍 OMG与与CORBA CORBA规范(规范(2.3.1)内容)内容 第一部分:第一部分:CORBA CORE 第一章:对象模型,第一章:对象模型,描述CORBA环境中的计算模型 第二章:第二章:CORBA 综述,综述,描述ORB结构,以及接口、实现信息 第三章:第三章:OMG IDL 词法与语义,词法与语义,描述 OMG IDL

19、,IDL被用于 描述客户对象调用、对象实现提供的接口 第四章:第四章:ORB 接口,接口,定义ORB中不依赖于对象适配器的功能接口 第五章:值类型语义第五章:值类型语义,描述通过值传送对象的语义。 第六章:抽象接口语义,第六章:抽象接口语义,解释一种抽象接口,它提供了延迟至 运行时刻决定对象由引用还是由值传送。 OMG与与CORBA 第七章:动态调用接口(第七章:动态调用接口(DII), 客户端接口, 允许动态创建并发出对象的请求。 第八章:动态骨架接口(第八章:动态骨架接口(DSI), 服务器端接口,可以从ORB 向对象实现发出请求, 该实现体不具有它所实现对象 类型的编译知识。 第九章:第

20、九章: Any Values的动态管理的动态管理,描述动态Any Values 的接口。 第十章:接口池,第十章:接口池,描述ORB的一个组成部分,它管理并提供对 对象定义集合的访问。 第十一章:可移植对象适配器(第十一章:可移植对象适配器(POA),),定义一组IDL接口, 实现体用它们访问ORB功能。 OMG与与CORBA 第二部分:第二部分:CORBA 互操作互操作 第十二章:互操作综述第十二章:互操作综述 第十三章:第十三章: ORB 互操作体系结构互操作体系结构 第十四章:建立第十四章:建立ORB间互操作的桥间互操作的桥 第十五章:第十五章: General Inter-ORB Pr

21、otocol(GIOP) 第十六章:第十六章: DCE ESIOP - Environment-Specific Inter-ORB Protocol (ESIOP) OMG与与CORBA 第三部分:第三部分:CORBA 协作协作 第十七章:协作体系结构第十七章:协作体系结构 第十八章:第十八章: Mapping: COM and CORBA 第十九章:第十九章: Mapping: OLE Automation and CORBA 第二十章:与非第二十章:与非CORBA 系统互操作系统互操作 第二十一章:第二十一章: Interceptors OMG与与CORBA 第一章:第一章:CORBA对

22、象模型对象模型 第二章:第二章:CORBA 综述综述 第三章:第三章:OMG IDL 第四章:第四章:ORB 接口接口 第五章:值类型语义第五章:值类型语义 第六章:抽象接口语义第六章:抽象接口语义 第七章:动态调用接口第七章:动态调用接口 第八章:动态骨架接口第八章:动态骨架接口 第九章:第九章: Any Values的动态管理的动态管理 第十章:接口池第十章:接口池 第十一章:可移植对象适配器(第十一章:可移植对象适配器(POA) 本节主要讲述内容本节主要讲述内容 应用程序具体开发步骤应用程序具体开发步骤 2、CORBA对象模型(概念)对象模型(概念) 客户客户 对象对象 (执行服务)(执

23、行服务) 以以 客户客户/服务器模式服务器模式 为为 对象间互操作模型对象间互操作模型 CORBA对象模型对象模型 请求请求 对象系统的实现执行请求服务所需的计算活动对象系统的实现执行请求服务所需的计算活动 这些活动可以包括计算请求的结果和更新系统状态这些活动可以包括计算请求的结果和更新系统状态 在这个过程中可能发出其它请求在这个过程中可能发出其它请求 实现模型包括两部分:执行模型和构造模型实现模型包括两部分:执行模型和构造模型 执行模型描述如何执行服务执行模型描述如何执行服务 构造模型描述如何定义服务构造模型描述如何定义服务 符合传统对象的语义,具有封装、继承、多态等特点。符合传统对象的语义

24、,具有封装、继承、多态等特点。 “对象对象 是是 可标识的封装实体,可标识的封装实体, 提供提供 客户可以请求的一个或多个客户可以请求的一个或多个 服务服务”。 CORBA对象模型对象模型 客户通过发出客户通过发出请求请求来请求服务。来请求服务。 “从客户的初始化开始,至与该初始化因果相关的最后一个从客户的初始化开始,至与该初始化因果相关的最后一个 事件之间的全部因果相关的事件序列事件之间的全部因果相关的事件序列”。 最后一个事件可能为:最后一个事件可能为: 客户从服务器接收到与请求相关的最后响应。客户从服务器接收到与请求相关的最后响应。 服务器在单向请求的情况下处理完相关操作。服务器在单向请

25、求的情况下处理完相关操作。 与请求相关的事件序列因失败而终止。与请求相关的事件序列因失败而终止。 与请求相关的信息包括:与请求相关的信息包括: 操作操作 目标对象目标对象 零个或多个(实际)参数零个或多个(实际)参数 以及可选的请求环境以及可选的请求环境 CORBA对象模型对象模型 任何可以作为合法请求(实)参数的皆可以是值。任何可以作为合法请求(实)参数的皆可以是值。 尤其是,一个值是一个尤其是,一个值是一个OMG IDL数据类型的一个实例。数据类型的一个实例。 对象引用是可靠地指示一个特定对象的值。对象引用是可靠地指示一个特定对象的值。 特别地,每次在请求中使用引用时,对象引用将标识相特别

26、地,每次在请求中使用引用时,对象引用将标识相 同的对象(受到某些空间和时间的实际限制)。同的对象(受到某些空间和时间的实际限制)。 对象可以由多个不同的对象引用指示。对象可以由多个不同的对象引用指示。 CORBA对象模型对象模型 类型是与一个定义在一组实体之上的谓词(结果为布尔类型是与一个定义在一组实体之上的谓词(结果为布尔 型的单参数数学函数)相关联的可标识实体。如果谓词对于型的单参数数学函数)相关联的可标识实体。如果谓词对于 某个实体为真,某个实体为真, 那么该实体那么该实体满足满足类型。类型。 满足类型的实体称为满足类型的实体称为类型的成员类型的成员。 类型用于在签名(类型用于在签名(s

27、ignaturesignature,基调、函数头),基调、函数头)中对可中对可 能的参数进行约束、特征化可能的返回结果。能的参数进行约束、特征化可能的返回结果。 对象类型(对象类型(object type)是成员为对象引用的类型。)是成员为对象引用的类型。 CORBA对象模型对象模型 一个操作是一个指示不可分割原语的可标识实体,该原语一个操作是一个指示不可分割原语的可标识实体,该原语 是可以被请求的服务体。请求一个操作的活动被称为调用是可以被请求的服务体。请求一个操作的活动被称为调用 ( invoking ,唤起)操作。,唤起)操作。 一个操作是由操作标识符标识的。一个操作是由操作标识符标识的

28、。 操作有一个描述请求参数合法值和返回值的签名。操作有一个描述请求参数合法值和返回值的签名。 签名包括:签名包括: 请求该操作时所需参数的规定请求该操作时所需参数的规定 操作结果的规定操作结果的规定 请求操作所引发例外处理的规定和它们附带的参数类型请求操作所引发例外处理的规定和它们附带的参数类型 可能影响请求的其它环境信息规定可能影响请求的其它环境信息规定 客户预期从请求操作获得的执行语义指示客户预期从请求操作获得的执行语义指示 CORBA对象模型对象模型 操作签名的一般形式为:操作签名的一般形式为: oneway(param1,.,paramL)oneway(param1,.,paramL)

29、 raises(except1,.,exceptN)context(name1,.,nameM) raises(except1,.,exceptN)context(name1,.,nameM) 其中:其中: 可选的可选的onewayoneway关键字指示对该操作的请求预期获得最佳效果关键字指示对该操作的请求预期获得最佳效果 语义;如果操作成功返回结果,则默认语义是只有一次,如语义;如果操作成功返回结果,则默认语义是只有一次,如 果返回例外处理,则默认语义是最多一次。果返回例外处理,则默认语义是最多一次。 是返回结果的类型是返回结果的类型 为接口中的操作提供名称为接口中的操作提供名称 操作所需的

30、操作参数;它们以修饰符操作所需的操作参数;它们以修饰符inin、outout或或inoutinout标记,标记, 目的是指示信息流的方向(相对于执行请求的对象)目的是指示信息流的方向(相对于执行请求的对象) 可选的可选的raisesraises表达式指示可以引发的用户定义例外处理,它们表达式指示可以引发的用户定义例外处理,它们 用于终止对该操作的请求;如果没有提供这样的表达式,那么用于终止对该操作的请求;如果没有提供这样的表达式,那么 不会引发任何用户定义的例外处理不会引发任何用户定义的例外处理 可选的可选的contextcontext表达式指示将对对象实现有效的请求环境信息;表达式指示将对对

31、象实现有效的请求环境信息; 没有其它信息需要与请求一起传送。没有其它信息需要与请求一起传送。 CORBA对象模型对象模型 “ “接口是一组操作的描述,客户可以通过该接口向对象请求接口是一组操作的描述,客户可以通过该接口向对象请求 这些操作这些操作”。 接口提供了句法描述,说明支持该接口的对象所提供服务的接口提供了句法描述,说明支持该接口的对象所提供服务的 如何被访问。如何被访问。 我们说一个对象我们说一个对象满足满足一个接口,如果它按照操作的规约通过一个接口,如果它按照操作的规约通过 接口的操作提供其服务。接口的操作提供其服务。 一个给定接口的一个给定接口的接口类型接口类型是一个对象类型,一个

32、对象引用满是一个对象类型,一个对象引用满 足该类型,当且仅当所引用的对象也满足该接口。足该类型,当且仅当所引用的对象也满足该接口。 接口是用接口是用OMG IDLOMG IDL指定的。接口继承提供的复合机制允许对象指定的。接口继承提供的复合机制允许对象 支持多个接口。支持多个接口。 CORBA对象模型对象模型 一个值类型是一个实体,同时具有接口与结构的许多特征。一个值类型是一个实体,同时具有接口与结构的许多特征。 它是关于客户可能请求的操作集合与可以由客户访问的状态它是关于客户可能请求的操作集合与可以由客户访问的状态 集合的描述。集合的描述。 值类型实例总是某种编程语言中的本地实在实现体。值类

33、型实例总是某种编程语言中的本地实在实现体。 值类型是用值类型是用OMG IDL指定的。指定的。 一个抽象接口是一个实体,在运行时可能表示一个通常的一个抽象接口是一个实体,在运行时可能表示一个通常的 接口,也可能表示一个值类型。实体运行时刻的类型取决于它接口,也可能表示一个值类型。实体运行时刻的类型取决于它 们使用的语义。们使用的语义。 CORBA对象模型对象模型 属性是接口的一部分属性是接口的一部分 属性从逻辑上等价于声明一对辅助函数属性从逻辑上等价于声明一对辅助函数 一个获取属性的值(一个获取属性的值(setset) 一个设置属性的值(一个设置属性的值(getget) 属性可以是只读的属性可

34、以是只读的 CORBA对象模型对象模型 概念小结:概念小结: 对象对象(Object) 请求请求(Request) 类型类型(Type) 接口接口(Interface) 操作操作(Operation) 属性属性(Attribute) Class ? 为什么不同的体系中概念存在不一致?为什么不同的体系中概念存在不一致? 视角不同、抽象层次不同视角不同、抽象层次不同 OOP、OOD、OOA、运行、运行? CORBA对象模型对象模型 公共对象请求代理体系结构(公共对象请求代理体系结构(CORBA)的设计目的是)的设计目的是 集成大量不同的对象系统。集成大量不同的对象系统。 内容:内容: CORBA

35、概述概述 CORBA 概述概述 例子例子 : Grid Object Grid object server 123 5813 213455 89144233 width height get(row,col) set(row,col,value) client CORBA 概述概述 客户客户 是是 希望在对象上执行操作的实体希望在对象上执行操作的实体 对象实现对象实现 是是 实现对象的代码和数据实现对象的代码和数据 ORB 负责负责 组成请求的数据的通讯组成请求的数据的通讯 查找请求所需对象实现的机制查找请求所需对象实现的机制 准备接收请求的对象实现准备接收请求的对象实现 客户如何通过客户如何

36、通过ORB向对象实现发出请求向对象实现发出请求 CORBA 概述概述 对象请求代理的结构对象请求代理的结构 CORBA 概述概述 客户利用存根或者客户利用存根或者DII发出请求发出请求 CORBA 概述概述 对象实现通过对象实现通过Skeleton或者或者DSI接收请求接收请求 CORBA 概述概述 接口池与实现池接口池与实现池 对对CORBA结构中元素的解释结构中元素的解释 ORB及接口及接口 客户客户 对象实现对象实现 对象引用对象引用 IDL及向编程语言的映射及向编程语言的映射 客户存根与客户存根与DII 实现骨架与实现骨架与DSI 对象适配器对象适配器 接口池接口池 实现池实现池 CO

37、RBA 概述概述 CORBA 概述概述 对象请求代理(对象请求代理(ORB) 不要求将不要求将ORB实现为单独的构件实现为单独的构件 而仅定义其接口而仅定义其接口 任何提供正确接口的任何提供正确接口的ORB实现都是可以接受的实现都是可以接受的 ORB的具体实现包括:的具体实现包括: ORB Core、IDL编译器、编译器、IR、Object Adapter ORB可以有多种实现可以有多种实现 它们对对象引用有不同的表示方法它们对对象引用有不同的表示方法 并且有不同的调用执行方法并且有不同的调用执行方法 ORB Core 提供对象的基本表示,以及请求的通讯提供对象的基本表示,以及请求的通讯 特别

38、地:编排特别地:编排/反编排(反编排(Marshal/Unmarshal) 将高层语言的参数等表示转换为将高层语言的参数等表示转换为 便于底层网络传输的形式便于底层网络传输的形式 ORB接口接口 ORB接口是客户与对象实现可以直接访问到的接口是客户与对象实现可以直接访问到的 ORB功能接口功能接口 其它多数功能提供给其它多数功能提供给 对象适配器对象适配器 stub skeleton 动态调用动态调用 ORB接口接口 对所有对所有ORB都是一样的都是一样的 不依赖于任何对象的接口或对象适配器不依赖于任何对象的接口或对象适配器 CORBA 概述概述 CORBA 概述概述 客户(客户(Client

39、) (对象的)客户访问对象的对象引用(对象的)客户访问对象的对象引用 并且调用对象上的操作并且调用对象上的操作 客户只知道对象的逻辑结构客户只知道对象的逻辑结构 根据它的接口,并通过调用感受对象的行为根据它的接口,并通过调用感受对象的行为 尽管一般认为客户是向对象发出请求的程序或进程尽管一般认为客户是向对象发出请求的程序或进程 但是客户只是相对于特定对象而言的,是一个相对概念但是客户只是相对于特定对象而言的,是一个相对概念 一个对象的实现可以是其它对象的客户一个对象的实现可以是其它对象的客户 客户客户 客户客户 服务器服务器 服务器服务器 CORBA 概述概述 对象实现对象实现 通过通过 为为

40、 对象实例对象实例 定义定义 数据数据 和和 为为 对象方法对象方法 定义定义 代码代码 提供提供 对象的语义对象的语义 对象可以具有不同的实现方式,包括:对象可以具有不同的实现方式,包括: 单独的服务器单独的服务器 库库 每个方法的程序每个方法的程序 封装应用程序封装应用程序 面向对象的数据库面向对象的数据库 等等等等 对象实现不依赖于对象实现不依赖于ORB或者客户调用对象的方式或者客户调用对象的方式 对象实现可以对象实现可以 通过通过 选择选择Object Adapter 达到达到 选择与选择与ORB相关服务的接口相关服务的接口 的的 目的目的 对象实现(对象实现(Object Imple

41、mentation) 对象引用提供在对象引用提供在ORB内指定对象时所需要的信息内指定对象时所需要的信息 对象引用对于客户和对象实现都是一个位流对象引用对于客户和对象实现都是一个位流(opaque)的概念的概念 因此客户与对象实现可以与引用的实际表示分离。因此客户与对象实现可以与引用的实际表示分离。 在选择对象引用表示上,不同的在选择对象引用表示上,不同的ORB可以有所差别可以有所差别 传递给客户的对象引用表示仅在客户的生命期内有效传递给客户的对象引用表示仅在客户的生命期内有效 对于一个特定的编程语言,所有的对于一个特定的编程语言,所有的ORB都必须提供对象引用都必须提供对象引用 (通常称为对

42、象)的相同语言映射。(通常称为对象)的相同语言映射。 这就允许用特定语言编写的程序可以在独立于特定这就允许用特定语言编写的程序可以在独立于特定ORB的情的情 况下访问对象引用。况下访问对象引用。 语言映射也可以提供其它访问对象引用的方式语言映射也可以提供其它访问对象引用的方式 CORBA 概述概述 对象引用(对象引用(Object Reference) OMG接口定义语言(接口定义语言(OMG IDL)通过)通过 指定指定 对象接口对象接口 定义定义 对象类型对象类型 接口包括一组已命名的操作和这些操作的参数。接口包括一组已命名的操作和这些操作的参数。 IDL 是一个分析设计结果是一个分析设计

43、结果 描述描述ORB操纵的对象操纵的对象 其源代码的存在对其源代码的存在对ORB正常工作不是必须的正常工作不是必须的 在运行时刻,以在运行时刻,以stub程序或者运行时接口程序或者运行时接口repository的形式的形式 提供等价的信息。提供等价的信息。 通过通过IDL,特定对象实现告诉它潜在的客户:,特定对象实现告诉它潜在的客户: 什么是有效的操作什么是有效的操作 以及以及 如何调用这些操作如何调用这些操作 从从IDL定义可以将定义可以将CORBA对象向对象向 特定编程语言特定编程语言 或者或者 对象系统对象系统 映射映射 CORBA 概述概述 OMG接口定义语言接口定义语言 interf

44、ace Grid readonly attribute short height; readonly attribute short width; void set(in short row, in short col, in long value); long get(in short row, in short col); ; 例子:例子:grid.idl CORBA 概述概述 CORBA中主要构件的接口全部由中主要构件的接口全部由IDL进行定义进行定义 例如:例如:ORB接口、接口、Stub、Skeleton、对象适配器、对象适配器 更主要的用途是定义应用对象!更主要的用途是定义应用对象

45、! 语言映射包括定义特定于语言的数据类型和通过语言映射包括定义特定于语言的数据类型和通过ORB 访问对象的过程接口。访问对象的过程接口。 它包括它包括: 客户客户stub接口的结构(面向对象的语言不需要)接口的结构(面向对象的语言不需要) 动态调用接口动态调用接口 实现骨架实现骨架 对象适配器和直接对象适配器和直接ORB接口接口 语言映射也包括对象调用之间以及客户或实现中控制线程语言映射也包括对象调用之间以及客户或实现中控制线程 之间的交互。之间的交互。 最常见的映射提供同步调用:当对象操作完成时子程序返回最常见的映射提供同步调用:当对象操作完成时子程序返回 编译开关(选项)控制映射具体策略。

46、编译开关(选项)控制映射具体策略。 CORBA 概述概述 IDL向具体语言的映射向具体语言的映射 CORBA 概述概述 ORB client library ORB server library 编译编译 IDL: gridS.cpp server skeleton gridC.cpp client stubs Client Server grid.h common declarations grid.idl 所产生的所产生的 C+ 头文件头文件(Orbix): class Grid : public virtual CORBA:Object public: static Grid_ptr _

47、bind(.); virtual CORBA:Short height(CORBA:Environment virtual CORBA:Short width(CORBA:Environment virtual void set(CORBA:Short row, CORBA:Short col, CORBA:Long value, CORBA:Environment virtual CORBA:Long get(CORBA:Short row, CORBA:Short col, CORBA:Environment ; CORBA 概述概述 客户存根(客户存根(Client stub) 由由ID

48、L编译器根据编译器根据IDL文件生成文件生成 客户访问对象的操作主要方式客户访问对象的操作主要方式 实现实现对象位置透明性对象位置透明性 向非面向对象语言映射时向非面向对象语言映射时 将为每个接口类型产生一个将为每个接口类型产生一个stub编程接口编程接口 面向对象的编程语言不需要面向对象的编程语言不需要stub接口接口 它通过伪对象的方式提供访问对象的操作。它通过伪对象的方式提供访问对象的操作。 CORBA 概述概述 DII(动态调用接口动态调用接口) 客户指定要调用的对象、要执行的操作和调用或调用序列客户指定要调用的对象、要执行的操作和调用或调用序列 中操作的参数集,而不是调用特定于特殊对

49、象上特殊操作的中操作的参数集,而不是调用特定于特殊对象上特殊操作的 stub 子程序。子程序。 客户代码必须提供要执行操作的信息和传送参数的类型客户代码必须提供要执行操作的信息和传送参数的类型 动态调用接口的特性可能因编程语言映射的不同而不同动态调用接口的特性可能因编程语言映射的不同而不同 客户通过静态还是动态接口发出请求客户通过静态还是动态接口发出请求 对于对象实现是透明的对于对象实现是透明的 CORBA 概述概述 CORBA_Create_request(.) CORBA_Request_add_arg(.) CORBA_Request_add_arg(.) CORBA_Request_invoke(.) CORBA_Request_delete(.) 实现骨架实现骨架(Implementation Skeleton) 由由IDL编译器根据编译器根据IDL文件生成文件生成 对象适配器访问对象实现中方法的主要形式对象适配器访问对象实现中方法的主要形式 对于一种特定映射语言,以及可能的特定对象适配器对于一种特定映射语言,以及可能的特定对象适配器 Skeleton 与与 stub 不是必然对应的不是必然对应的 客户也可以通过动态调用接口发出请求客户也可以通过动态调用接口发出请求 但也可以编写不使用但也可以编写不使用skeleton调用实现方法的对象适配器调用实现方法的对象适配器 C

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(高级软件工程全册配套最完整精品课件.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|