




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章: 软件体系结构风格 1 软 件 体 系 结 构 孟博 计算机科学学院 第三章: 软件体系结构风格 2 课 程 内 容 | 软件体系结构概论 | 软件体系结构建模 | 软件体系结构风格 | 软件体系结构描述 | 动态软件体系结构 | Web服务体系结构 | 基于体系结构的软件开发 | 软件体系结构的分析与测试 | 软件体系结构评估 | 软件产品线体系结构 第三章: 软件体系结构风格 3 | OMG简介 第3章 软件体系结构风格 OMG成立于1989年,作为一个非营利性组织,集中致力 于开发在技术上具有先进性、在商业上具有可行性并且独立于 厂商的软件互联规范,推广面向对象模型技术,增强软件的可 移植性、可重用性和互操作性。该组织成立之初,成员包括 Unisys、Sun、Cannon、Hewlett-Packard、Philips等在业界享有 声誉的软硬件厂商,目前该组织拥有800多家成员。 3.6 公共对象请求代理体系结构 第三章: 软件体系结构风格 4 | CORBA主要版本的发展历程 第3章 软件体系结构风格 l 1990年11月,OMG发表对象管理体系指南,初步阐 明了CORBA的思想; l 1991年10月,OMG推出1.0版,其中定义了接口定义语言 、对象管理模型以及基于动态请求的API和接口仓库等内容; l 1991年12月,OMG推出了CORBA 1.1版,在澄清了1.0版 中存在的二义性的基础上,引入了对象适配器的概念; l 1996年8月,OMG基于以前的升级版本,完成了2.0版的 开发,该版本中重要的内容是对象请求代理间协议(IIOP) 的引入,用以实现不同厂商的ORB真正意义上的互通; 3.6 公共对象请求代理体系结构 第三章: 软件体系结构风格 5 第3章 软件体系结构风格 l 1998年9月,OMG发表了CORBA 2.3版,增加了支持 CORBA对象的异步实时传输、服务质量规范等内容。目前 ,宣布支持CORBA 2.3规范的中间件厂商包括Inprise、Iona 、BEA System等著名的CORBA产品生产商。 l 2002年8月,CORBA规范3.0,在CORBA3.0 规范中去掉 了MiniCORBA和实时CORBA。 3.6 公共对象请求代理体系结构 | CORBA主要版本的发展历程 第三章: 软件体系结构风格 6 定义异构环境下对象透明地发送 请求和接收响应的基本机制。 支持客户程序与对象实现在一个 分布式环境中通信。 基于分布式对象的所有应用程序 都可能用到的通用服务的接口 可用于大多数应用领域的面向 终端用户的工具接口 水平公用设施:领域间可共享 垂直公用设施:面向某个领域 由CORBA支持的顶层业务对象 和应用系统,是针对特定应用 开发的接口 第三章: 软件体系结构风格 7 | 对象管理结构 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 第三章: 软件体系结构风格 8 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 第三章: 软件体系结构风格 9 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 第三章: 软件体系结构风格 10 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 第三章: 软件体系结构风格 11 | CORBA技术规范 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 l 接口定义语言(IDL) l 接口池(IR) l 动态调用接口(DII) l 对象适配器(OA) 第三章: 软件体系结构风格 12 | CORBA技术规范 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 l 接口定义语言 CORBA利用IDL统一地描述服务器对象(向调用者提供服务 的对象)的接口。IDL本身也是面向对象的。它虽然不是编程语 言,但它为客户对象(发出服务请求的对象)提供了语言的独立 性,因为客户对象只需了解服务器对象的IDL接口,不必知道其 编程语言。 IDL语言是CORBA规范中定义的一种中性语言,它用来描述 对象的接口,而不涉及对象的具体实现。 在CORBA中定义了IDL语言到C、C+、SmallTalk和Java 语言的映射。 第三章: 软件体系结构风格 13 ORB C C+ Ada I D L I D L I D L I D L I D L I D L Client SideObject Implementation Side COBOL C Ada C+ Small talk JAVA I D L I D L I D L I D L I D L I D L ORB COBOL Small talk JAVA 第三章: 软件体系结构风格 14 | CORBA技术规范 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 l 接口池 CORBA的接口池包括了分布计算环境中所有可用 的服务器对象的接口表示。它使动态搜索可用服务器 的接口、动态构造请求及参数成为可能。 第三章: 软件体系结构风格 15 | CORBA技术规范 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 l 动态调用接口 CORBA的动态调用接口提供了一些标准函数以供客户对象 动态创建请求、动态构造请求参数。客户对象将动态调用接口与 接口池配合使用可实现服务器对象接口的动态搜索、请求及参数 的动态构造与动态发送。当然,只要客户对象在编译之前能够确 定服务器对象的IDL接口,CORBA也允许客户对象使用静态调用 机制。显然,静态机制的灵活性虽不及动态机制,但执行效率却 胜过动态机制。 第三章: 软件体系结构风格 16 | CORBA技术规范 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 l 对象适配器 在CORBA中,对象适配器用于屏蔽ORB内核的 实现细节,为服务器对象的实现者提供抽象接口,以 便他们使用ORB内部的某些功能。这些功能包括服务 器对象的登录与激活、客户请求的认证等。 第三章: 软件体系结构风格 17 | CORBA技术规范 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 服务请求的实现方式 关于对象请求的实现方式,CORBA规范中定义客户 程序可以用动态调用接口(DII,Dynamic Invocation Interface)方式或通过OMG IDL文件经编译后在客户端 生成的桩(Stub)方式提出服务请求。 这两种实现方式的区别在于通过OMG IDL桩(Stub )文件方式实现的调用请求中,客户能够访问的服务对象 方法取决于服务对象所支持的接口;而动态调用接口调用 方式则与服务对象的接口无关。尽管实现调用请求的方式 有所区别,但客户发出的请求服务调用的语义是相同的, 服务对象不去分析服务请求提出的方式 第三章: 软件体系结构风格 18 在ORB上调用creat_request() 来创建请求,将方法名、参数列表 以及返回值的指针传递给这个请求 如用create_list()创建列表, 用add_item将参数加进列表。 对接口库调用lookup_name() 去寻找它想调用的方法, 然后调用describe() 去获得这个方法的全部IDL定义。 获得接口名字: 在目标对象的引用上调用 get_Interface()方法 动态调用的大致过程 在请求对象上调用相应的方法, 将请求发送出去。有三种方法: 同步:使用invoke() 延迟同步:使用send_deferred() 和get_response() 单向调用:使用send_oneway() 第三章: 软件体系结构风格 19 存储允许ORB的定位和激活 对象实现的信息,如Server 支持的类、实例化对象、 这些对象的ID等运行时信息。 对象引用的生成、维护, 方法调用、对象的激活与终止、 对象定位等功能。 BOA:Basic Object Adapter POA:Portable Object Adapter DII在Server方的对应。 DSI从进入的消息找出调用 的目标对象及相应的方法, 并提供运行时的连接机制。 允许动态地构造对象调用。 客户机可推迟到运行时选择 对象的实现接口和操作。 静态IDL存根在Server侧的对应。 由IDL编译程序自动生成。 服务的静态接口。 由IDL编译程序自动生成。 在客户端,如同一本地调用, 是远程SERVER对象的代理。 访问某个对象实现所提供的服务 的程序。根据其接口了解其逻辑结 构,并通过调用掌握对象的行为 所定义的IDL接口的真正实现。 可用语言: C, C+, Java, Smalltalk, Ada 是ORB最关键的部分, 负责请求的通信设施: 对象的定位 编组与解组 启动初始服务 屏蔽底层网络细节 提供接口库和其它的API ORB体系结构回顾 对象的IDL 接口定义的存储、 分布和管理。客户对象可以在运行 时查阅接口仓库的内容,获得对象 实现的IDL接口信息,从而 向对象实现发出请求。 当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以 像调用本地方法一样调用远程对象的方法。当发出一个调用时,实际上ORB会截取这个 调用(通过客户Stub完成),因为客户和服务器可能在不同的网络、不同的操作系统上 甚至用不同的语言实现,ORB还要负责将调用的名字、参数等编码成标准的方式 (称Marshaling)通过网络传输到服务器方(有时在同一台机器上也如此),并通过将参 数Unmarshaling的过程,传到正确的对象上(这整个过程叫重定向,Redirecting),服务 器对象完成处理后,ORB通过同样的Marshaling/Unmarshaling方式将结果返回给客户。 ORB内核提供的服务对象接口, 同时为客户方和对象实现方所见, 可直接为应用程序所使用。 第三章: 软件体系结构风格 20 | 特点 第3章 软件体系结构风格 3.6 公共对象请求代理体系结构 l 引入中间件作为事务代理,完成客户机向服务对象方(Server )提出的业务请求。 l 实现客户与服务对象的完全分开,客户不需要了解服务对象的 实现过程以及具体位置。 l 提供软总线机制,使得在任何环境下、采用任何语言开发的软 件只要符合接口规范的定义,均能够集成到分布式系统中。 l CORBA规范软件系统采用面向对象的软件实现方法开发应用 系统,实现对象内部细节的完整封装,保留对象方法的对外接口 定义。 第三章: 软件体系结构风格 21 主要的CORBA产品 Orbix (C+, Java)、ORBacus(C+、Java): IONA公司 VisiBroker (C+,Java):原Visigenic Software 公司,被Borland收购 OmniORB(C+):AT &T NEO/JOE(Java):Sun公司 ORB Plus:HP公司 PowerBroker/CORBAPlus: Expersoft公司 第三章: 软件体系结构风格 22 定义1 :是一种独立的系统软件或服务程序 ,分布式应用软件借助这种软件在不同的 技术之间共享资源;中间件位于客户机/服 务器的操作系统之上,管理计算资源和网 络通信。 中 间 件 第三章: 软件体系结构风格 23 定义2:Software that connects two otherwise separate applications. 第三章: 软件体系结构风格 24 常见的中间件分类 数据库访问系统(Database Access Systems ) JDBC ODBC 事务处理(Transaction) MTS JTS 远程过程调用(Remote Procedure Call, RPC) Sun RPC DCE 面向消息的中间件(Message-Oriented Middleware, MOM) 哪些是中间件? 第三章: 软件体系结构风格 25 计算机学院硕士研究生 2006-2007学年春季课程 常见的中间件分类 (续) 对象请求代理(Object Request Brokers, ORB) CORBA RMI DCOM 构件中间件(Component Middleware) EJB COM/COM+ 服务中间件 中间件是这类技术的统称 比如生活中的中年人、中间人、中国人 哪些是中间件? 第三章: 软件体系结构风格 26 EAI (Hub, Bus, Workflow), B2B Transaction, Security 发展过程参考图 Database Gateway Web Service P2P GRID PUB-SUB 第三章: 软件体系结构风格 27 | 概念 第3章 软件体系结构风格 3.7 正交软件体系结构 正交软件体系结构由组织层和线索的构件构成。层是 由一组具有相同抽象级别的构件构成。线索是子系统的特 例,它是由完成不同层次功能的构件组成(通过相互调用 来关联),每一条线索完成整个系统中相对独立的一部分 功能。每一条线索的实现与其他线索的实现无关或关联很 少,在同一层中的构件之间是不存在相互调用的。 如果线索是相互独立的,即不同线索中的构件之间没 有相互调用,那么这个结构就是完全正交的。 第三章: 软件体系结构风格 28 | 框架 第3章 软件体系结构风格 3.7 正交软件体系结构 图 3-18 正交软件体系结构框架架 第三章: 软件体系结构风格 29 | 特征 第3章 软件体系结构风格 3.7 正交软件体系结构 l 正交软件体系结构由完成不同功能的n(n 1)个 线索(子系统)组成; l 系统具有m(m 1)个不同抽象级别的层; l 线索之间是相互独立的(正交的); l 系统有一个公共驱动层(一般为最高层)和公共数据 结构(一般为最低层)。 第三章: 软件体系结构风格 30 n是目前应用系统功能设计的主流结构 人员管理 生产经营 产品质量监督 财务管理 企业信息 安全检查 主控窗口层 菜单接口层 功能对话层 功能定义层 数据模型与数据接口层 物理数据层 多种经营管 理系统主线 索正交结构 第3章 软件体系结构风格 3.7 正交软件体系结构 第三章: 软件体系结构风格 31 | 优点 第3章 软件体系结构风格3.7 正交软件体系结构 l 结构清晰,易于理解。由于线索功能相互独立,不进行互相调用 ,结构简单、清晰,构件在结构图中的位置已经说明它所实现的是 哪一级抽象,担负的是什么功能。 l 易修改,可维护性强。由于线索之间是相互独立的,所以对一个 线索的修改不会影响到其他线索。系统功能的增加或减少,只需相 应的增删线索构件族,而不影响整个正交体系结构,因此能方便地 实现结构调整。 l 可移植性强,重用粒度大。因为正交结构可以为一个领域内的所 有应用程序所共享,这些软件有着相同或类似的层次和线索,可以 实现体系结构级的重用。 第三章: 软件体系结构风格 32 | 互连系统构成的系统 第3章 软件体系结构风格 3.10 SIS体系结构风格 图 3-30 SIS的体系结构 第三章: 软件体系结构风格 33 | 基于SASIS的软件过程 第3章 软件体系结构风格 3.10 SIS体系结构风格 图 3-31 基于SASIS的软件过程 第三章: 软件体系结构风格 34 | 基于SASIS的软件过程 第3章 软件体系结构风格 3.10 SIS体系结构风格 图 3-32 上级系统的高级用例与从属系统的详细用例之间的关系 第三章: 软件体系结构风格 35 | 基于SASIS的软件过程 第3章 软件体系结构风格 3.10 SIS体系结构风格 图 3-33 一个从属系统是另一个从属系统的主角 第三章: 软件体系结构风格 36 | 定义 第3章 软件体系结构风格 3.11 特定领域软件体系结构 DSSA就是在一个特定应用领域中为一组应用提供组 织结构参考的标准软件体系结构。 第三章: 软件体系结构风格 37 | 定义 第3章 软件体系结构风格 3.11 特定领域软件体系结构 l Hayes-Roth对DSSA的定义如下:“DSSA就是专用于 一类特定类型的任务(领域)的、在整个领域中能有效 地使用的、为成功构造应用系统限定了标准的组合结构 的软件构件的集合”。 l Tracz的定义为:“DSSA就是一个特定的问题领域中 支持一组应用的领域模型、参考需求、参考体系结构等 组成的开发基础,其目标就是支持在一个特定领域中多 个应用的生成”。 第三章: 软件体系结构风格 38 | 定义 第3章 软件体系结构风格 3.11 特定领域软件体系结构 DSSA的必备特征: 1.一个严格定义的问题域和/或解决域 2.具有普遍性,使其可以用于领域中某个特定应用的开发 3.对整个领域的合适程度的抽象 4.具备该领域固定的、典型的开发过程中可重用元素 第三章: 软件体系结构风格 39 | 定义 第3章 软件体系结构风格 3.11 特定领域软件体系结构 l 垂直域:定义了一个特定的系统族,包含整个系统族 内的多个系统,结果是在该领域中可作为系统的可行解 决方案的一个通用软件体系结构。 l 水平域:定义了在多个系统和多个系统族中功能区域 的共有部分,在子系统级上涵盖多个系统族的特定部分 功能,无法为系统提供完整的通用体系结构。 第三章: 软件体系结构风格 40 | 基本活动 第3章 软件体系结构风格 3.11 特定领域软件体系结构 l 领域分析 l 领域设计 l 领域实现 第三章: 软件体系结构风格 41 | 领域分析 第3章 软件体系结构风格 3.11 特定领域软件体系结构 图 334领域分析机制 第三章: 软件体系结构风格 42 | 建立过程 第3章 软件体系结构风格 3.11 特定领域软件体系结构 l 定义领域范围:确定什么在感兴趣的领域中以及本过程到 何时结束。 l 定义领域特定的元素:编译领域字典和领域术语的同义词 词典。识别领域中应用间的共同性和差异性; l 定义领域特定的设计和实现需求约束:描述解空间中有差 别的特性。不仅要识别出约束,并且要记录约束对设计和实 现决定造成的后果,还要记录对处理这些问题时产生的所有 问题的讨论; 第三章: 软件体系结构风格 43 | 建立过程 第3章 软件体系结构风格 3.11 特定领域软件体系结构 l 定义领域模型和体系结构:产生一般的体系结构,并说明 构成它们的模块或构件的语法和语义; l 产生、搜集可重用的产品单元:为DSSA增加构件使得它 可以被用来产生问题域中的新应用。 第三章: 软件体系结构风格 44 | 三层次系统模型 第3章 软件体系结构风格 3.11 特定领域软件体系结构 图 3-35 DSSA三层次系统模型 第三章: 软件体系结构风格 45 | DSSA和体系结构风格的比较 第3章 软件体系结构风格 3.11 特定领域软件体系结构 l DSSA以问题域为出发点,体系结构风格以解决域为 出发点。 l DSSA只对某一个领域进行设计专家知识的提取、存 储和组织,但可以同时使用多种体系结构风格;而在某 个体系结构风格中进行体系结构设计专家知识的组织时 ,可以将提取的公共结构和设计方法扩展到多个应用领 域。 第三章: 软件体系结构风格 46 | DSSA和体系结构风格的比较 第3章 软件体系结构风格 3.11 特定领域软件体系结构 l DSSA通常选用一个或多个适合所研究领域的体系结 构风格,并设计一个该领域专用的体系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南铝业股份有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版汇编
- 羊肉行业小知识培训内容课件
- 持久性中心静脉导管的留置与维护
- 2026年高考试题汇编英语专题09特殊句式和情景交际(原卷版)
- 新苏教版小学一年级数学智能教学计划
- 马克吐温简介课件
- 四年级语文上册生活万花筒写作范文
- 香肠的鉴定课件
- 2023六年级数学下册 五 确定位置第一课时 用方向和距离确定位置(1)说课稿 苏教版
- 《吹竖笛》 (教学设计)-2024-2025学年湘艺版(2012)音乐三年级上册
- 读书分享交流会《全球通史》课件
- 古典诗歌的生命情怀
- 2017版小学科学课程标准思维导图
- 诚信展业与法律法规月演示
- 第十一章-异常分娩-1产力异常
- P公司采购管理程序
- 《发展汉语(第二版)中级综合(Ⅰ)》第7课+课件
- 跆拳道竞赛规则
- 人美版小学美术三年级上册教学计划
- 数据结构与算法课程设计 教学大纲
- 高一数学必修一教案(表格式)教案
评论
0/150
提交评论