Chapter3-软件体系结构与模式.ppt_第1页
Chapter3-软件体系结构与模式.ppt_第2页
Chapter3-软件体系结构与模式.ppt_第3页
Chapter3-软件体系结构与模式.ppt_第4页
Chapter3-软件体系结构与模式.ppt_第5页
已阅读5页,还剩206页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 软件体系结构与设计模式,主要内容,软件体系结构 框架 软件设计模式 实例分析,软件体系结构的定义,Software Architecture (SA) Perry 类是构件, 关联、继承、约束等是连接件。 针对终端用户的关注,通常使用领域术语,并同软件和硬件细节无关,进程视图,进程视图(Process View): 重视一些非功能需求,例如性能、可扩展性等,定义了运行实体和它们的属性 它也有构件和连接件,构件是任务,连接件是消息、RPC、事件广播等 该视图的主要用户是系统设计人员和集成人员,物理视图,物理视图(Physical View): 描述了软件到硬件的映射,反映了分布式特性。

2、亦即描述系统硬件或设备之间的联接关系,和软件程序的配置状况。 考虑可用性、可靠性和可扩展性等 把不同的元素,如网络、进程和任务等,映射到不同的节点上 构件是节点,连接件是通信媒体、LAN、WAN、总线等,开发视图,开发视图(Development View): 描述了在开发环境中软件的静态组织结构。 关注开发者和项目经理的兴趣 该视图的构件和连接件分别映射到子系统或模块,聚焦于在软件开发环境中,软件模块的组织。软件被打包为子系统,并按层次组织 构件是模块、子系统,连接件是编译依赖性、”with” 语句、“include”等,场景/用例,用例 (use cases)或场景(scenarios):

3、四种视图的元素通过数量比较少的一组重要场景(更常见的是用例)进行无缝协同工作 。 场景通常是最重要的需求。场景一方面作为设计中发现体系结构元素的驱动器,另一方面在设计完成后,充当确认和例证的角色 场景应当是明确的,诸如陈述“系统应当是可修改的”是没有意义的,相反,关于修改性的一个可能的场景是“应用容易增加以下类型的新特性” 构件通常是步骤、脚本,小结,逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。 对于不同的软件系统来说,侧重的角度也有所不同。例如,对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物

4、理视图来描述系统。故对一个体系结构而言,不是所有的视图都是必须的。该方法提供了一个框架,具体到一个项目,取决于设计人员决定哪些视图是有用的。,实例分析,实例分析(续)A Prototypical SIP Stack,实例分析(续) Processing Model,实例分析(续) SIP call flow,软件体系构架风格,软件体系构架风格(Architectural style)又称为软件体系构架模式(Architectural pattern); 多年来,人们在开发某些类型软件过程中积累起来的组织规则和结构就形成了软件体系结构风格; 软件体系结构风格是总结人们设计经验而形成结构较为巩固、

5、组织较为统一的形式,它是一种适合于许多场合的相似结构的抽象;,经典的体系结构风格 数据流风格:批处理序列、管道过滤器 调用/返回风格:主程序/子程序、面向对象风格、层次系统 独立构件风格:进程通信、事件系统 虚拟机风格:解释器、基于规则的系统 仓库风格:数据库系统、超文本系统、黑板系统 客户/服务器风格 新型体系结构风格 特定领域软件体系结构,软件体系构架风格分类,管道和过滤器(Pipes and Filters) 每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。 这里的构

6、件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。,典型的软件体系构架风格,管道和过滤器(Pipes and Filters),典型的软件体系构架风格,管道和过滤器(Pipes and Filters),典型的软件体系构架风格,Example 传统的编译器,一个阶段的输出是另一个阶段的输入(包括词法分析、语法分析、语义分析和代码生成),machine instructions of a specific processor,MIPS backend,Intel backend,Lexical Analysis/Scanner,SPARC backe

7、nd,Syntax Analysis/Parser,Semantic Analysis,Intermediate Code Generation,Optimization,Interpreter,ASCII program text,token stream,abstract syntax tree,augmented abstract syntax tree,AuLait program running on virtual machine Cup,Optimized AuLait program,词法分析,语法分析,语义分析,优化,中间代码,Cup,AuLait,translate AuL

8、ait code into the machine instructions,虚拟机,层次系统 (Layered System),典型的软件体系构架风格,A layered system is organized hierarchically. Each layer, - provides service to the layer above it and - serves as a client to the layer below.,层次系统 (Layered System),典型的软件体系构架风格,Layer 2,Layer 3,Layer 1,providing service to

9、the layer above it,serving as a client to the layer below,Layer 4,Layer 5,Layer 0 (hardware),Layer k is a server of layer k+1, and layer k+1 is a client of layer k. This is a string of client and server system.,层次系统 (Layered System),典型的软件体系构架风格,The connectors are defined by the protocols that determ

10、ine how the layers will interact.,层次系统 (Layered System),典型的软件体系构架风格,Example 1: OSI Model (Open System Interconnection),Layered Communication Protocols- OSI Model,send data on a carrier,Encode data packets into bits,create virtual circuits, for transmitting data from node to node.,Transfer data betwe

11、en end systems. Error recovery and flow control. Ensure complete data transfer,Set up, or stop data conversations, between the applications at each end.,Format and encrypt data to be sent across a network,Provide application services for file transfers, email, Telnet, FTP, etc,convey the bit stream,

12、transform data into the form so that the application layer can accept.,decode data packets,receive data on a carrier,checks the destination address and passes the data to layer 4.,ordering and reassembly of packets that may have been broken up,defines how data conversations are started, controlled a

13、nd finished,层次系统 (Layered System),典型的软件体系构架风格,Example 2: TCP/IP Model,事件系统 (Event System),典型的软件体系构架风格,EVENT-BASED, IMPLICIT NVOCATION基于事件的,隐式调用 Explicit Invocation: 显式调用 Traditionally, in a system in which the component provide a collection of routines and functions, such as an object-oriented syste

14、m, components typically interact with each other by explicitly invoking those Routines.,典型的软件体系构架风格,事件系统 (Event System),Explicit Invocation: 显式调用,典型的软件体系构架风格,事件系统 (Event System),Event system uses implicit invocation: In an event based system, an event will invoke (引发,调用) some procedures and the proc

15、edures will run automatically. Event system uses implicit invocation (隐式调用).,事件系统 (Event System),典型的软件体系构架风格,Definition of an event-based system: An event based system is such a system in which procedures are not invoked directly (that means, indirectly, implicitly).,事件系统 (Event System),典型的软件体系构架风格,

16、事件系统 (Event System),典型的软件体系构架风格,系统一般事件发布与处理机制: 一个组件可以广播一些事件. A component can broadcast one or more events. 其它组件可以对一个事件登记以表示兴趣,为其创建一个过程. Other components in the system can register an interest in an event by associating a procedure with it. 遇到事件,系统将自动调用所有的已注册过程(函数). Once an event is broadcasted, the

17、system will automaticaly invoke all of the procedures that have registered for the event. (implicitly“),事件系统 (Event System),典型的软件体系构架风格,事件系统 (Event System),典型的软件体系构架风格,Strategy of Events Handling,When an event is announced, the system itself automatically invokes all of the procedures that have been

18、 registered for that event. How to make events dispatched to registered components in the system? Need strategies: 带有分离的派谴模块的系统. Systems with separate dispatcher module 没有中心派谴模块的系统. Systems without a central dispatcher module,事件系统 (Event System),典型的软件体系构架风格,负责接收到来的事件并派遣它们到其它模块. The dispatcher module

19、 is responsible for receiving all incoming events and dispatching them to other modules in the system.,事件系统 (Event System),3.2 典型的软件体系构架风格,Strategy 1. Systems with Separate Dispatcher Module 带有独立的调度模块的系统,事件系统 (Event System),典型的软件体系构架风格,第一类. 派遣器将事件广播到所有的模块. The dispatcher may broadcast events to all

20、modules in the system 第二类.派遣器将事件送到那些已经注册了的模块中. The dispatcher sends an event just to those modules that registered for that event: Publish/Subscribe strategy,事件系统 (Event System),典型的软件体系构架风格,第一类. 派遣器将事件广播到所有的模块,我们都得到 了事件消息,事件系统 (Event System),典型的软件体系构架风格,dispatcher,subscriber,subscriber,subscriber,pu

21、blisher,第二类. 出版/订阅策略. Publish/Subscribe strategy,Send event,Subscribe,Publish event,我没预定!我得 不到事件消息,典型的软件体系构架风格,Strategy 2. Systems without a central dispatcher module 无独立的调度模块的系统,事件系统 (Event System),典型的软件体系构架风格,事件系统 (Event System),典型的软件体系构架风格,事件系统 (Event System),典型的软件体系构架风格,典型的软件体系构架风格,事件系统 (Event S

22、ystem),典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),远程过程调用(RPC)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间携带信息数据。,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),典型的软件体系构架风格,远程过程调用 (Remote P

23、rocedure Call),典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),RPC协议结构,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),XDR - Interface definition language Interface name: Program number, version number Procedure identifier: procedure number ti

24、me.x program TIMEPROG version PRINTIMEVERS string PRINTIME(string) = 1; = 1; = 0 x20000001;,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),time.h . #define TIMEPROG 0 x20000001 #define PRINTIMEVERS 1 #define PRINTIME 1 extern char * printime_1(); extern int timeprog_1_freeresult(); .,典型的

25、软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),implementation of the remote procedure printime server side /* This is sample code generated by rpcgen. Just template and * can be used as a guideline for developing your own functions. */ #include time.h #include char * printime_1(argp, rqstp)

26、 char *argp; struct svc_req *rqstp; static char * result; /* insert server code here */ return ( ,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),/* client side * This is sample code generated by rpcgen. * These are only templates and you can use them * as a guideline for developing your

27、own functions. */ #include time.h #include #include /* getenv, exit */ void timeprog_1(host) char *host; CLIENT *clnt; char * *result_1; char * printime_1_arg;,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),#ifndef DEBUG clnt = clnt_create(host, TIMEPROG, PRINTIMEVERS, netpath); if (clnt

28、 = (CLIENT *) NULL) clnt_pcreateerror(host); exit(1); #endif /* DEBUG */ result_1 = printime_1( #endif /* DEBUG */ ,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),/* Client sides main function */ main(argc, argv) int argc; char *argv; char *host; if (argc 2) printf(usage: %s server_hostn

29、, argv0); exit(1); host = argv1; timeprog_1(host); ,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),/* Client stub procedure in time_clnt.c */ #include time.h“ char * printime_1(argp, clnt) char *argp; CLIENT *clnt; static char *clnt_res; memset(char *) ,典型的软件体系构架风格,远程过程调用 (Remote Procedu

30、re Call),Example (Cont.),/* Server stub procedure in time_svc.c */ static void timeprog_1(rqstp, transp) struct svc_req *rqstp; register SVCXPRT *transp; _rpcsvccount+; switch (rqstp-rq_proc) case NULLPROC: . case PRINTIME: _xdr_argument = xdr_wrapstring; _xdr_result = xdr_wrapstring; local = (char

31、*(*)() printime_1; break; . ,典型的软件体系构架风格,远程过程调用 (Remote Procedure Call),Example (Cont.),main() pid_t pid; int i; . if (!svc_create(timeprog_1, TIMEPROG, PRINTIMEVERS, netpath) _msgout(unable to create (TIMEPROG, PRINTIMEVERS) for netpath.); exit(1); svc_run(); _msgout(svc_run returned); exit(1); ,典型

32、的软件体系构架风格,数据抽象和面向对象组织,这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。 这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。,典型的软件体系构架风格,数据抽象和面向对象组织,优点 对象对其它对象隐藏它的表示,可以改变一个对象的表示,而不影响其它的对象; 设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。 缺点 为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修

33、改所有其他明确调用它的对象; 必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如,如果A使用了对象B,C也使用了对象B,那么,C对B的使用所造成的对A的影响可能是料想不到的。,典型的软件体系构架风格,进程通信,由许多通过发送消息进行通讯的独立进程或对象组成。,IPC Through the File System,Sender writes to a file Receiver reads from it But when does the receiver do the read? Often synchronized with file locking or lock fi

34、les Special types of files can make file-based IPC easier,典型的软件体系构架风格,进程通信,File IPC Diagram,Process A,Process B,Data,典型的软件体系构架风格,进程通信,Message-Based IPC,Sender formats data into a formal message With some form of address for receiver OS delivers message to receivers message input queue (might signal

35、too) Receiver (when ready) reads a message from the queue Sender might or might not block,典型的软件体系构架风格,进程通信,Message-Based IPC Diagram,Process A,Process B,Data sent from A to B,OS,Bs message queue,典型的软件体系构架风格,进程通信,Shared Memory IPC Diagram,Process A,Process B,write variable x,main () . x = 10 . . . ,.

36、 . . print(x); . . .,read variable x,x: 10,典型的软件体系构架风格,仓库风格,基于一个共享数据库的系统模型。,典型的软件体系构架风格,仓库风格,仓库系统中有两类构件:中心数据存储构件及对中心数据进行各种操作的一组构件集。中心数据存储与外部构件集之间的信息交互是该模式的至关重要的问题,系统承担的功能不同,信息交互的方式也不同。 传统数据库系统中,中心数据存储是被动的数据库,系统由输入流的事务指令触发相应进程执行。在黑板系统中,中心数据存储的状态控制了进程的触发,即控制完全由黑板的状态驱动,当有特别的数据可用时,会主动通报外部构件(人工智能技术)。黑板系统

37、的典型应用是信号处理和模式识别系统。许多其他系统也组织成仓库模式,如CASE工具集、可复用构件库、大型数据库和搜索引擎等。,客户/服务器风格,C/S (Client/Server)软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。 C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。,客户/服务器风格 (续),客户/服务器风格 (续),服务器负责有效地管理系统的资源,其任务集中于:数据库安全性的要求;数据库访问并发性的控制;数据库前端的客户应用程序的全局数据完整

38、性规则;数据库的备份和恢复。 客户应用程序的主要任务是:提供用户与数据库交互的界面;向数据库服务器提交用户请求并接收来自数据库服务器的信息;利用客户应用程序对存在于客户端的数据执行应用逻辑要求。 网络通信软件的主要作用是完成数据库服务器和客户应用程序之间的数据传输。,客户/服务器风格 (续),C/S体系结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。服务器为多个客户应用程序管理数据,而客户程序发送、请求和分析从服务器接受的数据,这是一种“胖客户机(fat client)”,“瘦服务器(thin server)”的体系结构。,客户/服务器风格 (续),三层客户

39、/服务器风格,与二层C/S结构相比,在三层C/S体系结构中,增加了一个应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只是表示层存在与客户机上。这种结构被成为“瘦客户机”。三层C/S体系结构将应用功能分成表示层、功能层和数据层三个部分。,三层客户/服务器风格 (续),三层客户/服务器风格 (续),处理流程,三层客户/服务器风格 (续),表示层:是应用的用户接口部分,担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。一般使用图形用户界面(GUI)。在变更用户界面时,只需改写显示控制和数据检查程序,而不影响其他两层。 功能层:相当于应用的本体,它是将具体的业务

40、处理逻辑编入程序中。表示层和功能层之间的数据交往要尽可能简洁。例如,用户检索数据时,要设法将有关检索要求的信息一次性地传送给功能层,而由功能层处理过的检索结果数据也一次性地传送给表示层。 数据层:就是数据库管理系统,负责管理数据库数据的读写。数据库管理系统必须能迅速执行大量数据的更新和检索。,三层客户/服务器风格 (续),三层C/S的解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为数据库管理系统已经独立出来,所以,关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。 三层C/S物理结构:,三层客户/服务器风格 (续),一般情况下,只将表示层配置

41、在客户机中,如图(1)和(2)所示,如果将功能层也放在客户机中,如图2(3)所示,与二层C/S体系结构相比,其程序的维护性提高。可是客户机的负荷太重,业务处理所需的数据要从服务器传给客户机,系统的性能容易降低。 如图(2)所示,将功能层和数据层分别放在不同的服务器中,服务器和服务器之间也要进行数据传送。在这种形态下,三层分别是放在不同的硬件系统上,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。因此,系统规模越大,这种形态的优点就越显著。,浏览器/服务器风格,浏览器/服务器(browser/server,B/S)风格是表示层,功能层和数据层应用结构的一种实现方式,其具体结构为:浏览器

42、/Web服务器/数据库服务器。 B/S结构是一种全新的软件体系结构:主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。 B/S模式的计算机应用系统,在一定程度上具有集中的特性:在B/S结构中,除了数据库服务器外,应用程序都存放于Web服务器上,用户运行某个应用程序时只需在客户端的浏览器中键入相应的网址(URL),调用Web服务器上的应用程序对数据库进行数据操作和处理,最后将结构通过浏览器显示给用户。,浏览器/服务器风格 (续),体系结构,公共对象请求代理体系结构,CORBA是由OMG制定的一个工业标准

43、,其目标是提供一种机制,使得对象可以透明地发出请求和获得应答,从而建立起一个分布式应用环境 对象管理结构,ORB是通信机制,实现对象之间的互操作,处理对象之间的消息分布 对象服务实现基本的对象创建和管理功能 通用服务使用对象管理结构所规定的类接口实现一些通用功能,基于层次消息总线的体系结构,层次信息总线(Hierarchy Message Bus,HMB)的体系结构风格基于层次消息总线、支持构件的分布和并发,构件之间通过消息总线进行通信。,基于层次消息总线的体系结构 (续),消息总线是系统的连接件,负责消息的分派、传递和过滤以及处理结果的返回。 各个构件挂接在消息总线上,向总线登记感兴趣的消息

44、类型。 构件根据需要发出消息,由消息总线负责把该消息分派到系统中所有对此感兴趣的构件,构件接受到消息之后,根据自身状态对信息进行响应,并通过总线返回处理结果。 系统中的复杂构件可以分解为比较低层的子构件,这些子构件通过局部总线进行连接,这种复杂的构件称为复合构件。,基于层次消息总线的体系结构 (续),消息总线是系统的连接件,构件向消息总线登记感兴趣的消息,形成构件消息响应登记表。消息总线根据接收到的消息类型和构件消息响应登记表的信息,定位并传递该消息给相应的响应者,并负责返回处理结果。必要时,消息总线还对特定的消息进行过滤和阻塞,基于层次消息总线的体系结构 (续),消息登记 构件向消息总线登记

45、当前该响应的消息集合,只对消息类型感兴趣,并不关心谁发出的消息 对挂在同一消息总线的构件而言,消息是一种共享的资源,构件消息响应登记表记录了该总线上所有构件和消息的响应关系 消息分派和传递 消息总线负责消息在构件之间的传递,根据构件消息响应登记表把消息分派到对此感兴趣的构件,并负责处理返回结果 消息过滤 不同来源的构件事先并不知道各自的接口,因此可能同一消息在不同的构件中使用了不同的名字,或者不同的消息使用了相同的名字,这样就造成构件集成时消息的冲突和不匹配 消息转换针对构件实例而言,即所有构件实例发出和接收的消息类型都经过总线的过滤,采用简单换名的方法 消息阻塞是在消息总线没有发现响应消息的

46、情况下使用的,可以对系统发出警告,或者通知消息的发送构件,特定领域软件体系结构,DSSA (Domain-Specific Software Architecture) Hayes-Roth对DSSA的定义如下:“DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合”。 Tracz的定义为:“DSSA就是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成”。,领域工程和应用工程,领域工程 领域工程是为一组相似或相近系统的应用工程建立基本能力

47、和必备基础的过程,它覆盖了建立可复用软件构件的所有活动。 针对一个领域中的所有系统,而不局限于某个特定的系统。 应用工程: 应用工程是开发单个特定应用系统的活动。 针对一组特定的需求,产生一个特定的解决方案。 与应用工程相比,领域工程处于一个较高的抽象级别上。,行为,产品,DSSA,基本活动,领域模型 DSSA 公共构件 以及复用机制 (领域构件),领域分析 领域设计 领域实现,DSSA,领域分析,DSSA,建立过程 定义领域范围:确定什么在感兴趣的领域中以及本过程到何时结束。 定义领域特定的元素:编译领域字典和领域术语的同义词词典。识别领域中应用间的共同性和差异性; 定义领域特定的设计和实现

48、需求约束:描述解空间中有差别的特性。不仅要识别出约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论; 定义领域模型和体系结构:产生一般的体系结构,并说明构成它们的模块或构件的语法和语义; 产生、搜集可复用的产品单元:为DSSA增加构件使得它可以被用来产生问题域中的新应用。,DSSA,三层次系统模型,DSSA,DSSA和体系结构风格的比较 DSSA以问题域为出发点,体系结构风格以解决域为出发点。 DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公

49、共结构和设计方法扩展到多个应用领域。 DSSA通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。 DSSA和体系结构风格是互为补充的两种技术。,实例分析 (1),通信领域的OSI七层协议,OSI参考模型,国际标准化组织ISO对各类计算机网络体系结构进行了研究,并于1981年正式公布了一个网络体系结构模型作为国际标准,称为开放系统互连参考模型 (OSI/RM,open system interconnection reference model),也称为ISO/OSI。该模型是设计和描述网络通信的基本框架,它描述了网络硬件和软件如何以层的方式协同工作进行

50、网络通信。 一共分七层,从下到上依次是:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。,OSI参考模型层次结构,实例分析 (2),TCP/IP参考模型,TCP/IP参考模型,TCP/IP(Transmission Control ProtocolInternet Protocol)是由美国国防部创建的,所以有时又称DoD(Department of Defense)模型,是发展至今最成功的通信协议,它被用于构筑目前最大的、开放的互联网络系统Internet。TCP/IP是一组通信协议的代名词,这组协议使任何具有网络设备的用户能访问和共享Internet上的信息,其中最重要的协议是

51、传输控制协议(TCP)和网际协议(IP)。,TCP/IP参考模型层次结构,TCP/IP分为四个层次,分别是网络接口层、网际层、传输层和应用层。 TCP/IP的层次结构与OSI层次结构的对照关系如下图所示:,实例分析 (3),SS7协议栈,SS7协议栈层次结构,实例分析 (4),电信领域智能网体系结构,Intelligent Network Requirements,It allows for rapid introduction of new services It is customer and telephone provider programmable It is supplier t

52、ransparent and independent It supports enhanced service provider access Features Controlled Outside the Switch,Principles of Intelligent Networking,Service Plane,Global Functional Plane,Distributed Functional Plane,Physical Plane,Service #1,BCP,POI,POR,SIB,Hardware,Hardware,Hardware,SIB,SIB,SIB,SIB,

53、SIB,SIB,SIB,SIB Service Independent Building Block,BCP Basic Call Process,POI Point of Initiation,POR Point of Return,Intelligent Network Conceptual Model,Service Plane,Global Functional Plane,Distributed Functional Plane,Physical Plane,Service #1,BCP,POI,POR,SIB,SIB,FE,FE,FE,FE,Hardware ISCP,Hardwa

54、re SSP,Hardware IP,SF,SF,Services, Service Features,SIBs,FEs Function Entity,PEs Physical Entity,框架,Frameworks 框架是可以通过某种回调机制进行扩展的软件系统或子系统的半成品; 框架与所有软件组件的本质区别在于:框架是半成品; 框架是为了追求重用所带来的价值量最大化,将容易变化的部分封装成扩展点,并辅以回调机制将它们纳入框架的控制范围之内,从而在兼顾定制开销的同时使被重用的设计成果最多;,框架 (续),Frameworks support reuse of detailed design

55、s and architectures An integrated set of components Components collaborate to provide a reusable architecture for a family of related applications,框架的概念,Erich Gamma等人在设计模式中把框架定义为: 框架是一组相互协作的类,形成某类软件的一个可复用设计。框架将设计划分为一组抽象类,并定义它们各自的责任和相互之间的协作,以此来指导体系结构级的设计。开发者通过继承框架类中的类和组合其实例来定制该框架以生成特定的应用。 Frank Busch

56、mann等人在面向模式的软件体系结构(第一卷)把框架定义为: 框架是一个可实例化的、部分完成的软件系统或子系统,它为一组系统或子系统定义了架构,并提供了构造系统的基本构造块,还为实现特定功能定义了可调整点。在面向对象环境中,框架由抽象类和具体类组成。,Using Frameworks,Frameworks are semi-complete software applications Complete applications are developed by Inheriting from and Instantiating parameterized framework component

57、s Frameworks provide domain specific functionality Business, telecom, databases, OS, etc. The framework determines which objects and methods to invoke in response to events,Frameworks vs. Libraries,important difference between a framework and a library is “inversion of control.”,Frameworks vs. Libra

58、ries (Cont.),Frameworks - Reusable semi-complete application - Main body and algorithm - inversion of control - In a framework, unlike in libraries or normal user applications, the overall programs flow of control is not dictated by the caller, but by the framework. - default behavior - A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops. - Extensibility - A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality - non-modifiable framework code -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论