《15架构模式.ppt》由会员分享,可在线阅读,更多相关《15架构模式.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Architecture Patterns1模式模式n n很多系统的解决方案都比较类似很多系统的解决方案都比较类似n n解决方案的共同点是什么?解决方案的共同点是什么?解决方案的共同点是什么?解决方案的共同点是什么?n n区别在何处?区别在何处?区别在何处?区别在何处?n n用到哪些特殊的方法?用到哪些特殊的方法?用到哪些特殊的方法?用到哪些特殊的方法?n n如何制定一个特殊的方法?如何制定一个特殊的方法?如何制定一个特殊的方法?如何制定一个特殊的方法?2Architecture,Design and Implementation 表示软件系统的基本结构化组织图式。提供一个用于细化软件系统的子
2、系统或组件,或它们之间关系的图式。3模式类别模式类别n n体系结构模式体系结构模式n n可作为具体软件体系结构的模版。可作为具体软件体系结构的模版。可作为具体软件体系结构的模版。可作为具体软件体系结构的模版。n n它们规定一个应用的系统范围的结构特性,以它们规定一个应用的系统范围的结构特性,以它们规定一个应用的系统范围的结构特性,以它们规定一个应用的系统范围的结构特性,以及对其子系统的体系结构施加的影响。及对其子系统的体系结构施加的影响。及对其子系统的体系结构施加的影响。及对其子系统的体系结构施加的影响。n n体系结构模式的选择是开发一个软件系统时的体系结构模式的选择是开发一个软件系统时的体系
3、结构模式的选择是开发一个软件系统时的体系结构模式的选择是开发一个软件系统时的基本设计决策。基本设计决策。基本设计决策。基本设计决策。4模式类别模式类别n n设计模式设计模式n n软件体系结构的子系统,以及它们之间的关系。软件体系结构的子系统,以及它们之间的关系。软件体系结构的子系统,以及它们之间的关系。软件体系结构的子系统,以及它们之间的关系。通常由几个更小的体系结构单元构成。通常由几个更小的体系结构单元构成。通常由几个更小的体系结构单元构成。通常由几个更小的体系结构单元构成。n n中等规模的模式。中等规模的模式。中等规模的模式。中等规模的模式。n n规模上比体系结构模式小,但又独立于特定编规
4、模上比体系结构模式小,但又独立于特定编规模上比体系结构模式小,但又独立于特定编规模上比体系结构模式小,但又独立于特定编程语言。程语言。程语言。程语言。n n设计模式的应用对软件系统的基础结构没有影设计模式的应用对软件系统的基础结构没有影设计模式的应用对软件系统的基础结构没有影设计模式的应用对软件系统的基础结构没有影响,但可能对子系统的体系结构有所影响。响,但可能对子系统的体系结构有所影响。响,但可能对子系统的体系结构有所影响。响,但可能对子系统的体系结构有所影响。n n提供分解更复杂的服务或组件的结构,以及它提供分解更复杂的服务或组件的结构,以及它提供分解更复杂的服务或组件的结构,以及它提供分
5、解更复杂的服务或组件的结构,以及它们之间的合作。们之间的合作。们之间的合作。们之间的合作。5模式类别模式类别n n惯用法惯用法n n处理特定设计问题的实现处理特定设计问题的实现处理特定设计问题的实现处理特定设计问题的实现n n代表最低层模式,关注设计和实现方面代表最低层模式,关注设计和实现方面代表最低层模式,关注设计和实现方面代表最低层模式,关注设计和实现方面n n针对具体语言,捕获现有的编程经验针对具体语言,捕获现有的编程经验针对具体语言,捕获现有的编程经验针对具体语言,捕获现有的编程经验6Pattern characteristicsn n一个模式关注一个在特定设计环境中出现的设计问一个模
6、式关注一个在特定设计环境中出现的设计问一个模式关注一个在特定设计环境中出现的设计问一个模式关注一个在特定设计环境中出现的设计问题,并为它提供一个解决方案。题,并为它提供一个解决方案。题,并为它提供一个解决方案。题,并为它提供一个解决方案。n n各种模式用文档记录下现存的经过充分考验的设计各种模式用文档记录下现存的经过充分考验的设计各种模式用文档记录下现存的经过充分考验的设计各种模式用文档记录下现存的经过充分考验的设计经验。经验。经验。经验。n n模式为设计原则提供一种公共的词汇和理解。模式为设计原则提供一种公共的词汇和理解。模式为设计原则提供一种公共的词汇和理解。模式为设计原则提供一种公共的词
7、汇和理解。n n模式是为软件体系结构建立文档的一种手段。模式是为软件体系结构建立文档的一种手段。模式是为软件体系结构建立文档的一种手段。模式是为软件体系结构建立文档的一种手段。n n模式支持用已定义的属性来构造软件。模式支持用已定义的属性来构造软件。模式支持用已定义的属性来构造软件。模式支持用已定义的属性来构造软件。7Pattern scheman n语境:问题出现的场景语境:问题出现的场景n n问题:在那个语境中出现的再现问题问题:在那个语境中出现的再现问题n n解决方案必须满足的需求解决方案必须满足的需求解决方案必须满足的需求解决方案必须满足的需求n n必须考虑的约束必须考虑的约束必须考虑
8、的约束必须考虑的约束n n解决方案必须具有的特性解决方案必须具有的特性解决方案必须具有的特性解决方案必须具有的特性n n解决方案:已被证实的问题的解决方案解决方案:已被证实的问题的解决方案n n特定的结构:组件和关系的结构特定的结构:组件和关系的结构特定的结构:组件和关系的结构特定的结构:组件和关系的结构n n运行期的行为运行期的行为运行期的行为运行期的行为8Pattern scheman n模式的图式:模式的图式:9Architecture Patternsn n一个软件体系结构的模式描述了一个出一个软件体系结构的模式描述了一个出现在特定设计语境中的特殊的再现设计现在特定设计语境中的特殊的再
9、现设计问题,并为它的解决方案提供了一个经问题,并为它的解决方案提供了一个经过充分验证的通用图式。过充分验证的通用图式。n n一组预先确定的子系统和他们的职责一组预先确定的子系统和他们的职责一组预先确定的子系统和他们的职责一组预先确定的子系统和他们的职责n n子系统间的相互关联的规则子系统间的相互关联的规则子系统间的相互关联的规则子系统间的相互关联的规则n n例如:例如:例如:例如:Model-View-ControllerModel-View-Controller模式模式模式模式10Pattern:Layers11Pattern:Layersn n层体系结构模式有助于构建这样的应用:它层体系结
10、构模式有助于构建这样的应用:它能被分解成子任务组,其中每个子任务组处能被分解成子任务组,其中每个子任务组处于一个特定的抽象层次上。于一个特定的抽象层次上。n n下层为上层提供服务下层为上层提供服务下层为上层提供服务下层为上层提供服务n n上层利用下层提供的服务完成自身的任务上层利用下层提供的服务完成自身的任务上层利用下层提供的服务完成自身的任务上层利用下层提供的服务完成自身的任务n n通过同步程序调用来完成请求的服务通过同步程序调用来完成请求的服务通过同步程序调用来完成请求的服务通过同步程序调用来完成请求的服务12Pattern:LayersISO Open Systems Interconn
11、ect 7-layer modelISO Open Systems Interconnect 7-layer model13Pattern scheman n一个独立层的描述一个独立层的描述14Pattern:Layersn n举例:虚拟机举例:虚拟机n ne.g.JVMe.g.JVMn n举例:举例:APIsn ne.g.C standard library,built on Unix system e.g.C standard library,built on Unix system callscallsn n举例:信息系统举例:信息系统n n应用层应用层应用层应用层数据库数据库数据库数据
12、库n n表示层表示层表示层表示层应用逻辑层应用逻辑层应用逻辑层应用逻辑层领域层领域层领域层领域层数据库数据库数据库数据库15Pattern:Layersn n举例:举例:举例:举例:Windows NTWindows NTn n系统服务:子系统和系统服务:子系统和系统服务:子系统和系统服务:子系统和NTNT执行程序之间的接口层执行程序之间的接口层执行程序之间的接口层执行程序之间的接口层n n资源管理器层:包含对象管理器、安全引用监视器、过资源管理器层:包含对象管理器、安全引用监视器、过资源管理器层:包含对象管理器、安全引用监视器、过资源管理器层:包含对象管理器、安全引用监视器、过程管理器、程管
13、理器、程管理器、程管理器、I/OI/O管理器、虚拟存储管理器和局部过程调用管理器、虚拟存储管理器和局部过程调用管理器、虚拟存储管理器和局部过程调用管理器、虚拟存储管理器和局部过程调用等模块。等模块。等模块。等模块。n n内核:它关心一些基本功能,如中断和意外处理、多处内核:它关心一些基本功能,如中断和意外处理、多处内核:它关心一些基本功能,如中断和意外处理、多处内核:它关心一些基本功能,如中断和意外处理、多处理器同步、线程调度和现程分配。理器同步、线程调度和现程分配。理器同步、线程调度和现程分配。理器同步、线程调度和现程分配。n n硬件抽象层硬件抽象层硬件抽象层硬件抽象层(HAL)(HAL):
14、隐藏了不同处理器系列机器之间的:隐藏了不同处理器系列机器之间的:隐藏了不同处理器系列机器之间的:隐藏了不同处理器系列机器之间的硬件差异。硬件差异。硬件差异。硬件差异。n n硬件硬件硬件硬件16Three-Layered Enterprise Application 17Pattern:Layersn n优点:优点:优点:优点:n n层的重用层的重用层的重用层的重用n n标准化支持标准化支持标准化支持标准化支持n n局部性依赖局部性依赖局部性依赖局部性依赖n n可替换性可替换性可替换性可替换性n n不足不足不足不足n n更改行为的重叠更改行为的重叠更改行为的重叠更改行为的重叠n n降低效率降低效
15、率降低效率降低效率n n不必要的工作不必要的工作不必要的工作不必要的工作n n难以认可层的正确粒度难以认可层的正确粒度难以认可层的正确粒度难以认可层的正确粒度18Pattern:Model-View-Controller19Pattern:Model-View-Controllern n将一个交互式应用程序分为三个组件。将一个交互式应用程序分为三个组件。将一个交互式应用程序分为三个组件。将一个交互式应用程序分为三个组件。n n模型模型模型模型(Model)(Model):核心功能和数据:核心功能和数据:核心功能和数据:核心功能和数据n n视图视图视图视图(Views)(Views):向用户显示
16、信息:向用户显示信息:向用户显示信息:向用户显示信息n n控制器控制器控制器控制器(Controllers)(Controllers):处理用户输入:处理用户输入:处理用户输入:处理用户输入n n视图和控制器共同构成了用户接口视图和控制器共同构成了用户接口视图和控制器共同构成了用户接口视图和控制器共同构成了用户接口n n变更变更变更变更-传播机制确保了用户接口和模型之间的一致性传播机制确保了用户接口和模型之间的一致性传播机制确保了用户接口和模型之间的一致性传播机制确保了用户接口和模型之间的一致性20Pattern:Model-View-Controller21Pattern:Model-Vie
17、w-Controller22Pattern:Model-View-Controllern n相同的信息在不同的窗口有不同的表示相同的信息在不同的窗口有不同的表示相同的信息在不同的窗口有不同的表示相同的信息在不同的窗口有不同的表示n n支持不同的支持不同的支持不同的支持不同的“样式和感觉样式和感觉样式和感觉样式和感觉”标准标准标准标准n n模型独立于表示模型独立于表示模型独立于表示模型独立于表示n n布告形式连接布告形式连接布告形式连接布告形式连接n n观察者设计模式观察者设计模式观察者设计模式观察者设计模式n n举例:举例:举例:举例:n nSmalltalkSmalltalkn nASP.N
18、ETASP.NETn n.aspxaspx:视图:视图:视图:视图n n.VB,.C#.VB,.C#:控制:控制:控制:控制23Pattern:Client-Server24Pattern:Client-Servern n服务器端为客户端提供服务服务器端为客户端提供服务服务器端为客户端提供服务服务器端为客户端提供服务n n客户端从服务器端请求服务客户端从服务器端请求服务客户端从服务器端请求服务客户端从服务器端请求服务n n服务器一直保持监听请求的状态服务器一直保持监听请求的状态服务器一直保持监听请求的状态服务器一直保持监听请求的状态n n举例:举例:举例:举例:n n远程数据库连接远程数据库连
19、接远程数据库连接远程数据库连接n n远程文件系统远程文件系统远程文件系统远程文件系统n n多层信息系统多层信息系统多层信息系统多层信息系统n nWeb Web 应用应用应用应用25Pattern:Master-Slave26Pattern:Master-Slaven n支持容错性、并行计算以及计算准确性。支持容错性、并行计算以及计算准确性。支持容错性、并行计算以及计算准确性。支持容错性、并行计算以及计算准确性。n n主控组件将工作分配给相同的从属组件,并主控组件将工作分配给相同的从属组件,并主控组件将工作分配给相同的从属组件,并主控组件将工作分配给相同的从属组件,并从从属组件返回的结果中计算最
20、终的结果。从从属组件返回的结果中计算最终的结果。从从属组件返回的结果中计算最终的结果。从从属组件返回的结果中计算最终的结果。n n举例:举例:举例:举例:n n嵌入式系统嵌入式系统嵌入式系统嵌入式系统n n大规模并行计算大规模并行计算大规模并行计算大规模并行计算n n容错系统容错系统容错系统容错系统27Pattern:Master-Slave28Pattern:Master-Slave29Pattern:Master-Slaven n主控模块故障,整个系统故障主控模块故障,整个系统故障主控模块故障,整个系统故障主控模块故障,整个系统故障n n主控模块将任务划分为几个同等的子任务主控模块将任务划
21、分为几个同等的子任务主控模块将任务划分为几个同等的子任务主控模块将任务划分为几个同等的子任务n n从属之间相互独立从属之间相互独立从属之间相互独立从属之间相互独立n n从属之间并行工作从属之间并行工作从属之间并行工作从属之间并行工作n n问题是可以分解的问题是可以分解的问题是可以分解的问题是可以分解的n n应用领域:应用领域:应用领域:应用领域:n n容错容错容错容错n n并行计算并行计算并行计算并行计算n n计算准确性计算准确性计算准确性计算准确性30Pattern:Master-Slaven n优点:优点:优点:优点:n n可互换性和可扩充性可互换性和可扩充性可互换性和可扩充性可互换性和可
22、扩充性n n事务分离事务分离事务分离事务分离n n效率效率效率效率n n不足:不足:不足:不足:n n可行性可行性可行性可行性n n对机器依赖性对机器依赖性对机器依赖性对机器依赖性n n难以实现难以实现难以实现难以实现n n可移植性可移植性可移植性可移植性31Pattern:Pipe-Filter32Pattern:Pipe-Filtern n管道和过滤器体系结构模式,为处理数据流的系统提供管道和过滤器体系结构模式,为处理数据流的系统提供管道和过滤器体系结构模式,为处理数据流的系统提供管道和过滤器体系结构模式,为处理数据流的系统提供了一种结构了一种结构了一种结构了一种结构n n每个处理步骤封装
23、在一个过滤器组件中每个处理步骤封装在一个过滤器组件中每个处理步骤封装在一个过滤器组件中每个处理步骤封装在一个过滤器组件中n n数据通过相邻过滤器之间的管道传输数据通过相邻过滤器之间的管道传输数据通过相邻过滤器之间的管道传输数据通过相邻过滤器之间的管道传输n n管道处理缓冲和同步管道处理缓冲和同步管道处理缓冲和同步管道处理缓冲和同步n n重组过滤器可以建立相关系统族重组过滤器可以建立相关系统族重组过滤器可以建立相关系统族重组过滤器可以建立相关系统族n n举例:举例:举例:举例:n n编译器编译器编译器编译器n nUnix Unix 内核命令内核命令内核命令内核命令33Pattern:Pipe-F
24、ilter34Pattern:Pipe-Filter35Pattern:Pipe-Filtern n优点:优点:优点:优点:n n通过过滤器交换增加了灵活性通过过滤器交换增加了灵活性通过过滤器交换增加了灵活性通过过滤器交换增加了灵活性n n通过重组增加了灵活性通过重组增加了灵活性通过重组增加了灵活性通过重组增加了灵活性n n过滤器组件的重用过滤器组件的重用过滤器组件的重用过滤器组件的重用n n并行处理提高效率并行处理提高效率并行处理提高效率并行处理提高效率n n不足:不足:不足:不足:n n共享状态信息或者昂贵或者不灵活共享状态信息或者昂贵或者不灵活共享状态信息或者昂贵或者不灵活共享状态信息或
25、者昂贵或者不灵活n n并行处理获得的效率往往只一种假象并行处理获得的效率往往只一种假象并行处理获得的效率往往只一种假象并行处理获得的效率往往只一种假象n n数据转换额外开销数据转换额外开销数据转换额外开销数据转换额外开销n n错误处理错误处理错误处理错误处理36Pattern:Broker37Pattern:Brokern n代理者结构模式可以用于构建带有隔离组件的代理者结构模式可以用于构建带有隔离组件的代理者结构模式可以用于构建带有隔离组件的代理者结构模式可以用于构建带有隔离组件的分布式软件系统,该软件通过远程服务调用进分布式软件系统,该软件通过远程服务调用进分布式软件系统,该软件通过远程服
26、务调用进分布式软件系统,该软件通过远程服务调用进行交互。行交互。行交互。行交互。n n代理者组件负责协调通信代理者组件负责协调通信代理者组件负责协调通信代理者组件负责协调通信n n转发请求、传送结果和异常转发请求、传送结果和异常转发请求、传送结果和异常转发请求、传送结果和异常n n服务器将他们的服务(属性和操作)发布给一服务器将他们的服务(属性和操作)发布给一服务器将他们的服务(属性和操作)发布给一服务器将他们的服务(属性和操作)发布给一个代理个代理个代理个代理n n客户端通过一个代理请求服务器处理客户端通过一个代理请求服务器处理客户端通过一个代理请求服务器处理客户端通过一个代理请求服务器处理
27、n n代理将请求发送给一个合适的服务器处理代理将请求发送给一个合适的服务器处理代理将请求发送给一个合适的服务器处理代理将请求发送给一个合适的服务器处理38Pattern:Brokern n允许动态改变、添加、删除和重新发布允许动态改变、添加、删除和重新发布允许动态改变、添加、删除和重新发布允许动态改变、添加、删除和重新发布n n对于开发者来说,代理是透明的对于开发者来说,代理是透明的对于开发者来说,代理是透明的对于开发者来说,代理是透明的n n请求需要有标准的表示法请求需要有标准的表示法请求需要有标准的表示法请求需要有标准的表示法n n当两个代理者互操作时,实现细节可通过网桥来隐藏当两个代理者
28、互操作时,实现细节可通过网桥来隐藏当两个代理者互操作时,实现细节可通过网桥来隐藏当两个代理者互操作时,实现细节可通过网桥来隐藏n n举例:举例:举例:举例:n n公共对象请求代理体系结构(公共对象请求代理体系结构(公共对象请求代理体系结构(公共对象请求代理体系结构(CORBACORBA),处理异),处理异),处理异),处理异构系统上分布式对象的面向对象技术构系统上分布式对象的面向对象技术构系统上分布式对象的面向对象技术构系统上分布式对象的面向对象技术n nWeb servicesWeb services39Pattern:Broker40Pattern:Peer-2-Peer41Pattern
29、:Peer-2-Peern n对称的对称的对称的对称的 客户机客户机客户机客户机-服务器模式服务器模式服务器模式服务器模式n n客户机向服务器请求服务客户机向服务器请求服务客户机向服务器请求服务客户机向服务器请求服务n n服务器通知客户机特定的事件服务器通知客户机特定的事件服务器通知客户机特定的事件服务器通知客户机特定的事件n n任何一个节点都可以扮演客户机或者服务器的角色任何一个节点都可以扮演客户机或者服务器的角色任何一个节点都可以扮演客户机或者服务器的角色任何一个节点都可以扮演客户机或者服务器的角色n n可以动态的交换角色可以动态的交换角色可以动态的交换角色可以动态的交换角色n n举例:举
30、例:举例:举例:n n多用户应用多用户应用多用户应用多用户应用n nP2P P2P 技术技术技术技术42Pattern:Event-Bus43Pattern:Event-Busn n事件源将消息发布到总线上的特殊通道上事件源将消息发布到总线上的特殊通道上事件源将消息发布到总线上的特殊通道上事件源将消息发布到总线上的特殊通道上n n事件监听者订阅通道上的消息事件监听者订阅通道上的消息事件监听者订阅通道上的消息事件监听者订阅通道上的消息n n监听者监听有效消息监听者监听有效消息监听者监听有效消息监听者监听有效消息n n消息是异步的消息是异步的消息是异步的消息是异步的n n通路可以是固定的通路可以是
31、固定的通路可以是固定的通路可以是固定的44Pattern:Blackboard45Pattern:Blackboardn n黑板体系结构模式对于无确定性求解策略的问题比较黑板体系结构模式对于无确定性求解策略的问题比较黑板体系结构模式对于无确定性求解策略的问题比较黑板体系结构模式对于无确定性求解策略的问题比较有用。有用。有用。有用。n n黑板模式中,有几个专用子系统收集其知识,以黑板模式中,有几个专用子系统收集其知识,以黑板模式中,有几个专用子系统收集其知识,以黑板模式中,有几个专用子系统收集其知识,以建立一个可能的部分解或近似解。建立一个可能的部分解或近似解。建立一个可能的部分解或近似解。建立
32、一个可能的部分解或近似解。n n举例:举例:举例:举例:语音识别语音识别语音识别语音识别n n所有组件共享数据存储(黑板)所有组件共享数据存储(黑板)所有组件共享数据存储(黑板)所有组件共享数据存储(黑板)n n组件生成新的数据更新到黑板组件生成新的数据更新到黑板组件生成新的数据更新到黑板组件生成新的数据更新到黑板n n组件监视黑板上的数据组件监视黑板上的数据组件监视黑板上的数据组件监视黑板上的数据n n利用匹配模式寻找特定的数据利用匹配模式寻找特定的数据利用匹配模式寻找特定的数据利用匹配模式寻找特定的数据46Pattern:Blackboard47Pattern:Blackboard48Pa
33、ttern:Blackboardn n优点:优点:优点:优点:n n对可更改性和可维护性的支持对可更改性和可维护性的支持对可更改性和可维护性的支持对可更改性和可维护性的支持n n可重用的知识源可重用的知识源可重用的知识源可重用的知识源n n支持容错性和健壮性支持容错性和健壮性支持容错性和健壮性支持容错性和健壮性n n不足:不足:不足:不足:n n测试困难测试困难测试困难测试困难n n不能保证有好的求解方案不能保证有好的求解方案不能保证有好的求解方案不能保证有好的求解方案n n难以建立一个好的控制策略难以建立一个好的控制策略难以建立一个好的控制策略难以建立一个好的控制策略n n低效低效低效低效n
34、 n昂贵的开发工作昂贵的开发工作昂贵的开发工作昂贵的开发工作n n缺少对并行机制的支持缺少对并行机制的支持缺少对并行机制的支持缺少对并行机制的支持49This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES,EXPRESS OR IMPLIED,IN THIS SUMMARY.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES,EXPRESS OR IMPLIED,IN THIS SUMMARY.2001 Microsoft Corporation.All rights reserved.2001 Microsoft Corporation.All rights reserved.50