软件体系结构风格bak

上传人:tian****1990 文档编号:71611139 上传时间:2019-01-21 格式:PPT 页数:54 大小:1.69MB
返回 下载 相关 举报
软件体系结构风格bak_第1页
第1页 / 共54页
软件体系结构风格bak_第2页
第2页 / 共54页
软件体系结构风格bak_第3页
第3页 / 共54页
软件体系结构风格bak_第4页
第4页 / 共54页
软件体系结构风格bak_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《软件体系结构风格bak》由会员分享,可在线阅读,更多相关《软件体系结构风格bak(54页珍藏版)》请在金锄头文库上搜索。

1、软 件 体 系 结 构,孟博 计算机科学学院 ,课 程 内 容,软件体系结构概论 软件体系结构建模 软件体系结构风格 软件体系结构描述 动态软件体系结构 Web服务体系结构 基于体系结构的软件开发 软件体系结构的分析与测试 软件体系结构评估 软件产品线体系结构,OMG简介,第3章 软件体系结构风格,OMG成立于1989年,作为一个非营利性组织,集中致力于开发在技术上具有先进性、在商业上具有可行性并且独立于厂商的软件互联规范,推广面向对象模型技术,增强软件的可移植性、可重用性和互操作性。该组织成立之初,成员包括Unisys、Sun、Cannon、Hewlett-Packard、Philips等在

2、业界享有声誉的软硬件厂商,目前该组织拥有800多家成员。,3.6 公共对象请求代理体系结构,CORBA主要版本的发展历程,第3章 软件体系结构风格,1990年11月,OMG发表对象管理体系指南,初步阐明了CORBA的思想; 1991年10月,OMG推出1.0版,其中定义了接口定义语言、对象管理模型以及基于动态请求的API和接口仓库等内容; 1991年12月,OMG推出了CORBA 1.1版,在澄清了1.0版中存在的二义性的基础上,引入了对象适配器的概念; 1996年8月,OMG基于以前的升级版本,完成了2.0版的开发,该版本中重要的内容是对象请求代理间协议(IIOP)的引入,用以实现不同厂商的

3、ORB真正意义上的互通;,3.6 公共对象请求代理体系结构,第3章 软件体系结构风格,1998年9月,OMG发表了CORBA 2.3版,增加了支持CORBA对象的异步实时传输、服务质量规范等内容。目前,宣布支持CORBA 2.3规范的中间件厂商包括Inprise、Iona、BEA System等著名的CORBA产品生产商。 2002年8月,CORBA规范3.0,在CORBA3.0 规范中去掉了MiniCORBA和实时CORBA。,3.6 公共对象请求代理体系结构,CORBA主要版本的发展历程,定义异构环境下对象透明地发送 请求和接收响应的基本机制。 支持客户程序与对象实现在一个 分布式环境中通

4、信。,基于分布式对象的所有应用程序 都可能用到的通用服务的接口,可用于大多数应用领域的面向 终端用户的工具接口 水平公用设施:领域间可共享 垂直公用设施:面向某个领域,由CORBA支持的顶层业务对象 和应用系统,是针对特定应用 开发的接口,对象管理结构,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,CORBA技术规范,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,接口定义语言(IDL) 接

5、口池(IR) 动态调用接口(DII) 对象适配器(OA),CORBA技术规范,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,接口定义语言 CORBA利用IDL统一地描述服务器对象(向调用者提供服务的对象)的接口。IDL本身也是面向对象的。它虽然不是编程语言,但它为客户对象(发出服务请求的对象)提供了语言的独立性,因为客户对象只需了解服务器对象的IDL接口,不必知道其编程语言。 IDL语言是CORBA规范中定义的一种中性语言,它用来描述对象的接口,而不涉及对象的具体实现。 在CORBA中定义了IDL语言到C、C+、SmallTalk和Java语言的映射。,CORBA技术规范,第3章

6、 软件体系结构风格,3.6 公共对象请求代理体系结构,接口池 CORBA的接口池包括了分布计算环境中所有可用的服务器对象的接口表示。它使动态搜索可用服务器的接口、动态构造请求及参数成为可能。,CORBA技术规范,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,动态调用接口 CORBA的动态调用接口提供了一些标准函数以供客户对象动态创建请求、动态构造请求参数。客户对象将动态调用接口与接口池配合使用可实现服务器对象接口的动态搜索、请求及参数的动态构造与动态发送。当然,只要客户对象在编译之前能够确定服务器对象的IDL接口,CORBA也允许客户对象使用静态调用机制。显然,静态机制的灵活性虽

7、不及动态机制,但执行效率却胜过动态机制。,CORBA技术规范,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,对象适配器 在CORBA中,对象适配器用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口,以便他们使用ORB内部的某些功能。这些功能包括服务器对象的登录与激活、客户请求的认证等。,CORBA技术规范,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,服务请求的实现方式 关于对象请求的实现方式,CORBA规范中定义客户程序可以用动态调用接口(DII,Dynamic Invocation Interface)方式或通过OMG IDL文件经编译后在客户端生成

8、的桩(Stub)方式提出服务请求。 这两种实现方式的区别在于通过OMG IDL桩(Stub)文件方式实现的调用请求中,客户能够访问的服务对象方法取决于服务对象所支持的接口;而动态调用接口调用方式则与服务对象的接口无关。尽管实现调用请求的方式有所区别,但客户发出的请求服务调用的语义是相同的,服务对象不去分析服务请求提出的方式,在ORB上调用creat_request() 来创建请求,将方法名、参数列表 以及返回值的指针传递给这个请求,如用create_list()创建列表, 用add_item将参数加进列表。,对接口库调用lookup_name() 去寻找它想调用的方法, 然后调用describ

9、e() 去获得这个方法的全部IDL定义。,获得接口名字: 在目标对象的引用上调用 get_Interface()方法,动态调用的大致过程,在请求对象上调用相应的方法, 将请求发送出去。有三种方法: 同步:使用invoke() 延迟同步:使用send_deferred() 和get_response() 单向调用:使用send_oneway(),存储允许ORB的定位和激活 对象实现的信息,如Server 支持的类、实例化对象、 这些对象的ID等运行时信息。,对象引用的生成、维护, 方法调用、对象的激活与终止、 对象定位等功能。 BOA:Basic Object Adapter POA:Porta

10、ble Object Adapter,DII在Server方的对应。 DSI从进入的消息找出调用 的目标对象及相应的方法, 并提供运行时的连接机制。,允许动态地构造对象调用。 客户机可推迟到运行时选择 对象的实现接口和操作。,静态IDL存根在Server侧的对应。 由IDL编译程序自动生成。,服务的静态接口。 由IDL编译程序自动生成。 在客户端,如同一本地调用, 是远程SERVER对象的代理。,访问某个对象实现所提供的服务 的程序。根据其接口了解其逻辑结 构,并通过调用掌握对象的行为,所定义的IDL接口的真正实现。 可用语言: C, C+, Java, Smalltalk, Ada ,是OR

11、B最关键的部分, 负责请求的通信设施: 对象的定位 编组与解组 启动初始服务 屏蔽底层网络细节 提供接口库和其它的API,ORB体系结构回顾,对象的IDL 接口定义的存储、 分布和管理。客户对象可以在运行 时查阅接口仓库的内容,获得对象 实现的IDL接口信息,从而 向对象实现发出请求。,当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以 像调用本地方法一样调用远程对象的方法。当发出一个调用时,实际上ORB会截取这个 调用(通过客户Stub完成),因为客户和服务器可能在不同的网络、不同的操作系统上 甚至用不同的语言实现,ORB还要负责将调用的名字、参数等编码成标准的方式

12、 (称Marshaling)通过网络传输到服务器方(有时在同一台机器上也如此),并通过将参 数Unmarshaling的过程,传到正确的对象上(这整个过程叫重定向,Redirecting),服务 器对象完成处理后,ORB通过同样的Marshaling/Unmarshaling方式将结果返回给客户。,ORB内核提供的服务对象接口, 同时为客户方和对象实现方所见, 可直接为应用程序所使用。,特点,第3章 软件体系结构风格,3.6 公共对象请求代理体系结构,引入中间件作为事务代理,完成客户机向服务对象方(Server)提出的业务请求。 实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以

13、及具体位置。 提供软总线机制,使得在任何环境下、采用任何语言开发的软件只要符合接口规范的定义,均能够集成到分布式系统中。 CORBA规范软件系统采用面向对象的软件实现方法开发应用系统,实现对象内部细节的完整封装,保留对象方法的对外接口定义。,主要的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

14、: Expersoft公司,定义1 :是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源;中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。,中 间 件,定义2:Software that connects two otherwise separate applications.,常见的中间件分类 数据库访问系统(Database Access Systems ) JDBC ODBC 事务处理(Transaction) MTS JTS 远程过程调用(Remote Procedure Call, RPC) Sun RPC DCE 面向消息的中间件(M

15、essage-Oriented Middleware, MOM),哪些是中间件?,计算机学院硕士研究生2006-2007学年春季课程,常见的中间件分类 (续) 对象请求代理(Object Request Brokers, ORB) CORBA RMI DCOM 构件中间件(Component Middleware) EJB COM/COM+ 服务中间件 中间件是这类技术的统称 比如生活中的中年人、中间人、中国人,哪些是中间件?,EAI (Hub, Bus, Workflow), B2B,Transaction, Security,发展过程参考图,Database Gateway,Web Ser

16、vice,P2P,GRID,PUB-SUB,概念,第3章 软件体系结构风格,3.7 正交软件体系结构,正交软件体系结构由组织层和线索的构件构成。层是由一组具有相同抽象级别的构件构成。线索是子系统的特例,它是由完成不同层次功能的构件组成(通过相互调用来关联),每一条线索完成整个系统中相对独立的一部分功能。每一条线索的实现与其他线索的实现无关或关联很少,在同一层中的构件之间是不存在相互调用的。 如果线索是相互独立的,即不同线索中的构件之间没有相互调用,那么这个结构就是完全正交的。,框架,第3章 软件体系结构风格,3.7 正交软件体系结构,图 3-18 正交软件体系结构框架架,特征,第3章 软件体系结构风格,3.7 正交软件体系结构,正交软件体系结构由完成不同功能的n(n 1)个线索(子系统)组成; 系统具有m(m 1)个不同抽象级别的层; 线索之间是相互独立的(正交的); 系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)。,是目前应用系统功能设计的主流结构,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号