- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                架构设计之运行架构
运行架构=技术选型+控制流划分+同步关系
运行架构(如图-1所示)关注进程、线程、中断服务程序等运行时控制流,以及相关的并发、同步、通信等问题。运行架构的设计(及其所依赖的物理架构设计)对运行期质量属性有重大影响,例如性能、可伸缩性、持续可用性和安全性等。
图-1 运行架构的设计内容
运行架构和开发架构的关系:开发架构一般偏重程序包在编译时期的静态依赖关系,而运行架构关注这些程序运行起来之后形成的线程、进程、中断服务程序,以及它们引用的类实例、传递的数据。
如果使用UML来描述架构的运行架构,则该视图的静态方面由包图、类图(其中主动类非常重要)和对象图(其中主动对象非常重要)等来说明关键运行时概念的结构关系。动态方面由序列图、协作图等来说明关键交互机制。
运行架构设计包含的核心设计任务是:并发技术选型、控制流划分、控制流间同步关系。
【设计任务】一、并发技术选型
控制流(Control Flow)是一个在处理机上顺利执行的动作系列。在实践中,最常用于实现控制流的手段有3种:
进程
线程
中断服务程序
进程(Process)是重量级控制流,既是处理机资源的分配单位,又是其它计算机资源的分配单位。
线程(Thread)是轻量级控制流,仅仅是处理机资源的分配单位。一个进程内可以包含多个线程,后者共享前者的资源;但处理机资源例外,线程是独立的处理机资源的分配单位。
实际上,中断服务程序(Interrupt Service Routine, ISR)也是常见的控制流实现机制。当你没有OS的支持却要实现并发时,这更是必不可少。
【设计任务】二、控制流划分
确定引入哪些控制流,并没有固定不变的套路,但有几点考虑是必不可少的:
物理架构中每个节点(node)之上,至少有一条控制流。
为了实现节点(node)之间的通信,通常做法是引入一条控制流来专门负责。
节点(node)是具有主动行为的设备,为其引入专门的控制流(例如中断服务程序)。
在需求一级的描述中(例如用例规约中)就是并行或并发的,引入多条控制流。
来自用户或外部系统的并发访问,常要求后端服务支持多控制流。
如果控制流关系复杂,可以考虑引入对其他控制流进行协调的控制流。
【设计任务】三、控制流间同步关系
一旦系统中存在不止一条控制流,就产生了附加的工作量。除了控制流的创建、销毁之外,还要进一步考虑:控制流之间的通信机制(例如共享内存或消息等)、同步关系,若有资源争用还要引入加锁机制。
                
原创力文档
                        

文档评论(0)