软件体系结构复习内容word版本.docx
- 文档编号:29488720
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:29
- 大小:415.27KB
软件体系结构复习内容word版本.docx
《软件体系结构复习内容word版本.docx》由会员分享,可在线阅读,更多相关《软件体系结构复习内容word版本.docx(29页珍藏版)》请在冰豆网上搜索。
软件体系结构复习内容word版本
软件体系结构复习内容
软件体系结构
第5讲:
体系结构风格
(一)
内容简介:
●概述
●管道/过滤器风格
●仓库风格和黑板风格
●分层系统风格
●客户服务器风格
●软件体系结构风格(模式)定义:
–一些特定的元素按照特定方式组成的结构,它有利于解决上下文环境里的特定问题。
描述了一族系统,他们拥有一个类似的结构
定义了构件(如客户端、服务器)的字典
刻画了构件的主要任务和交互方式
●软件体系结构风格与设计模式等的区别
程序设计样式
设计模式
体系结构风格
重点
开发原则、可实现性
重用、概念完整性
重用、概念完整性
抽象层次
程序
构件
体系结构
使用
直接可用
直接可用
有约束和指导作用
●体系结构风格作用
促进设计重用
–带来代码重用
–使系统易于理解
–有利于系统的互操作性
●体系结构风格分类
–固定术语类
●管道和过滤器的风格
●仓库风格和黑板风格
●分层系统风格
●客户服务器风格
●数据抽象和面向对象风格
●基于事件的风格
●模型-视图-控制器风格
●解释器风格(虚拟机风格)
–参考模型类
●编译器的顺序参考模型和并行参考模型
●信息系统的参考模型
管道/过滤器风格
●构件:
–过滤器(对数据进行处理)
●连接件:
–管道(传输数据)
过滤器
过滤器
过滤器
过滤器
过滤器
过滤器
图5-1管道和过滤器风格体系结构
管道
管道
管道
管道
管道
管道
管道
●应用:
–Unix的Shell程序catfile|grepxyz|sort|uniq〉out
–编译器
–信号处理
●编译器从逻辑上可以分成若干阶段,每个阶段把源程序从一种表示变换成另一种表示
●优点:
–允许构造松散结构的系统
–过滤器的重用很方便
–易于扩展和修改
●缺点:
–导致批处理风格的系统设计
–交互性不强
–同步比较困难
–应用范围比较狭隘
仓库风格和黑板风格
●构件:
–中央数据结构(当前状态)
–独立构件(对数据进行处理)
●运作方式:
–主动式:
构件自己决定操作
–被动式:
由数据仓库的当前状态来决定调用构件(黑板系统)
●黑板系统三大部分
–知识源
–黑板数据结构
–控制器
●应用:
–语音识别
–模式识别
–三维分子结构建模
●优点:
便于多客户共享大量数据,它们不用关心数据何时有的、谁提供的、怎样提供的;
–既便于添加新的作为知识源代理的应用程序,也便于扩展共享的黑板数据结构。
●缺点:
不同的知识源代理对于共享数据结构要达成一致,而且,这也造成对黑板数据结构的修改较为困难——要考虑到各个代理的调用;
–需要一定的同步/加锁机制保证数据结构的完整性和一致性,增大了系统复杂度。
分层系统风格
●一个分层风格的系统按照层次结构组织,每一层向它的上层提供服务。
内核层
用户
基本功能
可用系统
过程调用
不同元素组合
图5-3分层系统的体系结构
●应用:
OSI-ISO七层模型
–操作系统
–数据库系统
–TCP/IP网络协议
●优点:
由于对层次的邻接层数目进行了限制,所以系统易于改进和扩展;
–每一层的软件都易于重用,并可为某一层次提供多种可互换的具体实现;
–分层系统所支持的设计体现了不断增加的抽象层次,这样,一个复杂问题的求解被分解为一系列递增的步骤。
●缺点:
系统的分层可能会带来效率方面的问题;
–应当如何界定层次间的划分是一个较为复杂的问题。
●构件:
客户构件
–服务器构件
●连接件:
进程间通信机制
●两种特殊的客户服务器风格
–代理
●服务器的服务交给一个代理,由代理来向客户提供服务
●代表性应用:
CORBASOAPWebServiceUDDI
–P2P
●客户服务器对称,既是客户又是服务器
●代表性应用:
BT,Emule,Kazza
–应用:
–大量的信息管理系统
–优点:
有利于分布式的数据组织;
–构件间是位置透明的,客户和服务器都不用考虑对方的运行位置;
–便于异质平台间的融合与匹配,客户和服务器可以运行不同操作系统;
–具有良好的可扩展性,易于对服务器进行修改、扩展或增加服务器;
–缺点:
客户必须知道服务器的访问标识,否则很难知道有哪些可用服务。
●分层系统风格实例
●数据抽象和面向对象风格
●基于事件的风格
●模型-视图-控制器风格
●解释器风格(虚拟机风格)
●信息系统的参考模型
●体系结构风格的选择
分层系统风格实例
●系统描述:
劳动和社会保险管理信息系统
–系统的功能是完成劳动和社会保险的主要业务管理,即“五保合一”管理,包括养老保险、医疗保险、劳动就业和失业保险、工伤保险、女工生育保险。
整个业务流程十分复杂,牵涉面相当广泛。
例如,整个系统要与银行、企业、事业机关、医院、财政部门、税务部门、邮局等多种单位建立连接关系。
•核心层
•通用打印基类
•通用查询基类
•权限验证基类
•通用数据库连接基类
•字符处理基类
•码表维护基类
•数据转换基类
•基层单位管理平台
•业务管理系统
•扩展应用层
数据抽象和面向对象风格
●构件:
–数据和操作的复合体对象
●连接件:
–函数或过程调用
●应用:
–COM,CORBA等
●优点:
–隐藏实现细节
–继承性,有利于重用
●缺点:
–过程调用依赖于对象标识的确定
–不同对象的操作关联性差
基于事件的风格(隐式调用)
●构件:
–模块
●连接件:
–对事件的显式/隐式调用
●应用:
–各种基于事件响应的Windows程序
●优点:
–事件广播者不必知道哪些部件会被事件影响
–有利于软件复用,任何构件均可以注册其相关事件
–系统演化、升级比较简单
●缺点:
–构件的调用不是主动的
–系统正确性难以推理
模型-视图-控制器风格
–3种构件
●视图:
负责显示信息
●模型:
负责维护数据,是应用程序的核心
●控制器:
负责与用户的交互
用户
视图
控制器
模型
问题领域的应用程序
查看
使用
操作
更新
图5-7模型—视图—控制器风格的体系结构
●应用:
–VisualStudio提供的文档视图结构
–各种可以更换皮肤的软件
●文档
–数据容器
●视图:
–查看数据的窗口或是和数据发生交互的窗口。
●文档/视图的核心是四个关键类:
–CDocument(或COleDocument)类支持用于存储或控制程序数据的对象,并为程序员定义的文档类提供基本功能。
文档表示数据单元,用户一般用“文件”菜单上的“打开”命令打开它,并用“文件”菜单上的“保存”命令保存它。
–CView(或它的许多派生类之一)为程序员定义的视图类提供基本功能。
视图被附加到文档并在文档和用户之间充当中介:
视图在屏幕上呈现文档的图像并将用户输入解释为对文档的操作。
视图还为打印和打印预览呈现图像。
–CFrameWnd(或其变体之一)支持在文档的一个或多个视图周围提供框架的对象。
–CDocTemplate(或CSingleDocTemplate或CMultiDocTemplate)支持一个对象,该对象协调给定类型的一个或多个现有文档并对创建该类型的正确文档、视图和框架窗口对象进行管理。
●文档视结构带来的好处主要有:
–首先是将数据操作和数据显示、用户界面分离开。
这是一种“分而治之”的思想,这种思想使得模块划分更加合理、模块独立性更强,同时也简化了数据操作和数据显示、用户界面工作。
–MFC在文档/视结构上提供了许多标准操作界面,包括新建文件、打开文件、保存文件、打印等,减轻了用户的工作量。
–支持打印预览和电子邮件发送功能。
●以下情况不宜采用文档视结构:
–不是面向数据的应用或数据量很少的应用程序,不宜采用文档/视结构。
如一些工具程序包括磁盘扫描程序、时钟程序,还有一些过程控制程序等。
–不使用标准的窗口用户界面的程序,象一些游戏等。
●优点:
–简化系统设计,
–界面友好
●缺点:
–适用范围比较狭隘,局限在用户界面软件开发领域
解释器风格(虚拟机风格)
●构件;
–被解释程序
–执行引擎
–执行引擎的当前状态
–被解释程序的当前状态
●连接件:
–过程调用
–存储器访问
●应用:
–各种虚拟机,如Java虚拟机
–各种脚本语言的解释器,如Perl等
●优点:
–应用程序的可移植性和程序设计语言的跨平台能力
–对硬件进行仿真
●缺点:
–效率比较低
信息系统的参考模型
体系结构风格的选择
问题描述:
●仓库风格
–优点:
●数据共享适合采用高效的表达方式
●计算分布于独立模块,符合呈现问题的自觉思维习惯
–缺点:
●不易修改,共享数据表示将影响到所有模块
●数据抽象风格
–优点:
●易于修改,数据表示和算法可以在单独模块修改而不会对模块间产生相互影响
●更好地支持重用
–缺点:
●不易更改系统功能,除非打破模块界限或增加新的模块
●修改现存模块将导致模块简洁性和完整性受到破坏
●管道过滤器风格
–优点:
●维护了一种直觉的处理流程
●更好地支持重用,容易加入新功能
–缺点:
●很难支持与用户的交互
●空间使用效率低,每个过滤器必须拷贝全部数据到它的输入口
Lecture7.DomainSpecificSAStyle--P2Parchitecture
1.ProblemswithtraditionalC-Sarchitecture
2.IntroductiontoP2P
3.BasicKnowledgeofPeer-to-PeerArchitecture
4.HybridP2Parchitecture
5.PureP2PArchitecture
6.PurePeer-to-Peerarchitecture:
Gnutella
7.PeernodeArchitecture,每个节点的结构
8.DataTransferMechanismfromNodetoNode
9.SomeIssuesofFurtherP2PEvolution
.ProblemswithtraditionalC-Sarchitecture
Problem1:
很难在海量信息中找到有价值的东西.
•First,nosinglesearchenginecanlocateandcatalogtheever-increasingamountofinformationontheWebinatimelyway
–Googleclaimsthatitsearchesabout1.3x108webpages
–Findingusefulinformationinrealtimeisincreasinglydifficult
Problem2:
互联网的应用不平衡.
•Second,althoughmilesofnewfiberhavebeeninstalled,thenewbandwidthgetslittleuseifeveryonegoestoYahooandeBayforcontent
•Hotspotsjustgethotterwhilecoldspotsremaincold
–Internethasnotbeenutilizedefficiently
–Resourceshavenotbeenusedefficiently
Problem3:
服务器的压力.
–Pressure:
Asthenumberofusersincreases,thereisahigherdemandfor
•computingpower,
•storagespace,and
•bandwidth
associatedwiththeserver-side
•Problem4:
可靠性是个问题
–Reliability(可靠性)
•Thewholenetworkwilldependonthehighlyloadedservertofunctionproperly
•Ifaserverisdown,thentheclientmaysufferheavyloses
C/S
1.P2Penablesanynetwork-awaredevicetoprovideservicestoanothernetwork-awaredevice
2.ApeerinP2Pnetworkactsasbothaclientandaserver
.BasicKnowledgeofPeer-to-PeerArchitecture
Peer-to-Peer:
theThirdGenerationoftheInternet!
WhatisPeer-to-Peer(P2P)?
Peer-to-Peercomputingisdescribedasthesharing
ofcomputerresourcesandservicesbydirect
exchangebetweensystems.共享计算机资源
–Theseresourcesinclude
a)theexchangeofinformation,信息交换
b)processingcycles,处理能力(过程,周期)
c)cachestorage,and高速缓冲存储器存储
d)diskstorageforfiles.硬盘存储
AdvantageofP2P-P2P结构的优点
a)Itallowseconomicalclients(desktopcomputers,etc)totakeadvantageoftheircollectivepowertobenefittheentireenterprise(发挥集体优势)
b)ClientsinaP2Pnetworkarealsoservers(大家都是客户端,大家都是服务器)
c)Theloadonserversinthetraditionalsensehasreduced(服务器压力减轻了
4.hybridP2Parchitecture(杂交的P2P结构)
•客户互动机制.
TheinteractionbetweenclientsbyreferencingaDirectoryServer
⏹ClientAissuesarequesttotheDirectoryserver客户A发一个请求给目录服务器
⏹TheDirectoryserverthenusesthelistsitkeeptofindthepeerthatcontainsthecontentthatClientAinterestsinandtellsClientA目录服务器找到客户A感兴趣的服务器
⏹ClientAcanthendirectlyinteractwiththatclient,inthiscaseClientDwhichserviceshisrequest.客户A和那个客户直接互动.
Detaileddescriptionof
•Howonepeerinteractswithanotherpeer
•Step1.Whentheuserconnectstothenetwork,thepeerfirstattemptstoconnecttoadirectoryserver(首先连接到目录服务器)
–tolocateeachoftheuser‘sbuddiesand
寻找朋友
–toregisterthelocationoftheuserthatisnowcomingon-line
登记在线的用户的地址
Note:
Ifadirectoryserviceisnotavailableorifinformationisnotavailableforaparticularbuddy,thepeerfirstfallsbackoncachedknowledgeaboutthelocationsofbuddies(如果找不到目录服务器或者朋友信息,到缓存去找)byderivingfrom
•previouscontactwithadirectoryservice,
•previouscontactwiththosebuddies,or
•informationenteredbytheuser.
Cache:
高速缓冲存储器
⏹Step1(cont)
Oncepeersarelocated,theycanprovideinformationabouttheircapabilitiesandtheservicestheyprovide.(找到了朋友,就知道了他们的信息)
Step2.Openingthelinesofcommunication
(开通通讯线路)
•Afteritdeterminestheirlocations,thepeerthenattemptstoestablishcontactwithallofthebuddiesthatithasfound.
–Thepeercanuseauserinterfaceforcontacts
•Theuserinterfaceprovidesinformationtotheuseraboutwhatotherusersareon-line.
PureP2PArchitecture
CharacteristicsofPureP2PArchitecture
a)Peerscanactasclientsandserversandhavethesamecapabilityasitsneighbors.
b)Ithasnocentralservers.IthaseverynodeasaPeerandhasnocentralrouter.
c)Therearetworoutingstructures,
Øoneisadistributedcatalogue(分布式目录)and
Øtheotherdirectmessaging.
两台计算机建立联系的过程:
1.Sendmessagetoallpeers:
whohas“200DaysontheMoon”
2.Gotanswer:
Ihave
3.Builddirectconnection
•什么是纯的P2P模型?
•Gnutella,aPureP2PModelisafilesharingapplicationandprotocol:
–theendhostsjoinGnutellabyconnectingtoexistingendhostsalreadyontheGnutella.
HowGnutellaworks?
•用互相传送消息的方法,实现文件共享
Tofacilitatefilesharing,messagesaresentbetweenendhosts.
HowGnutellaworks?
•怎样查询广播和回答?
–广播要查询的文件
Queriesforfilesarebroadcastedontheoverlaynetwork,and
–回答被发送到初始的发广播的那个peer
Repliesareroutedbacktothehostthatoriginallygeneratedthequerythroughtheoverlaynetwork.
工作步骤-Steps:
1.NodeAisfirstconnectedtothenetwork.
2.ItPingstotheotherNodes(BandC)todiscover
newnodesonthenetwork.
3.Apongmessageissentasareplytoapingand
providesinformationonanetworknode,including
IPaddress,portnumber,andnumberoffiles
shared.
4.Aquerymessageisusedtosearchforfiles
sharedbyothernodesonthenetwork.
–Itcontainsaquerystringandaminimumrequestedlinkspeed.
5.Aqueryreplymessagecontains
–alistofoneormorefileswhichmatchagivenquery,
–thesizeofeachfile,and
–thelinkspeedoftherespondingnode.
6.Apushmessageisusedtouploadfiletoclients
behindafirewallwhocannotdownloadfiles
themselves.
Note:
Forthec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构 复习 内容 word 版本