动态体系结构特征
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与静态体系结构相比,动态体系结构具有可构造性、适应性、智能性等动态特征
1、可构造性动态特征
可构造性动态特征通常可以通过结合动态描述语言、动态修改语言(如Darwin、Dynamic ACMED、Dynamic Wright、Rapide等)和一个动态更新系统来实现。动态描述语言用于描述应用系统软件体系结构的初始配置;当体系结构发生改变的时候,这种改变可以通过动态修改语言进行描述,该语言支持增加或删除、激活或取消体系结构元素和系统遗留元素;而动态更新可以通过体系结构框架或者中间件实现。可构造性动态特征如图5-11所示。
软件体系结构的动态改变是经过一些事件触发开始,通过追踪工具(这些工具包括配置、启动、更新和停止跟踪会话的跟踪控制器以及接收会话期间生成的跟踪消息和为将二进制数据转换为用户可读格式的跟踪使用器。它还包括将支持过程的函数和工具组合起来的工具。)发出一个配置平衡信号追踪触发事件,系统维护人员开发出一个可选配置解决触发事件的追踪问题。在某些情况下要解决触发事件的追踪问题可能是困难的,此时,维护人员不得不经过反复的试验,通过增加优先候选事件来寻找适当的候选事件。这样,维护人员就可以通过发送配置指示给应用程序执行体系结构的改变。在应用程序中,这些指示充当体系结构的第一类请求。有些系统可以采用第一类请求的办法,但是另外一些系统就不能选择第一类请求方法;此时,系统的动态改变是通过维护人员的预先的方法进行动态改变的评估和离线评估验证。
2、适应性动态特征
某些应用程序必须有立即反映当前事件的能力,此时程序不能进行等待,必须把初始化、选择和执行整合到体系结构框架或中间件里面。
在软件体系结构的构件和连接器形式化描述中加入了可以描述构件位置及连接类型变化的信息,使得软件系统在执行的过程中可以进行构件的删除、修改或增加,在软件构件层次上使软件体系结构具有可适应性。
适应性动态特征是基于一系列预定义配置而且所有事件在开发期间已经进行了评估。执行期间,动态改变是通过一些预定义的事件集触发,体系结构选择一个可选的配置来执行系统的重配置。如图5-12描述了由事件触发改变的适应性动态特征。
适应性软件系统需要开发人员根据应用需求识别出系统的哪些部分必须进行变动,为实现和描述变动提供基础,并通过控制变动来保证系统的完整性。也就是说,需要在体系结构的层次上来描述和设计系统运行时的总体结构和适应机制。(可以说是开发人员一系列的预判来实现适应性)
3、智能性动态特征
智能性动态特征是用一个有限的预配置集来移除约束(设计约束是体系结构描述的关键成分,它们决定体系结构设计是如何演化的)。如图5-13所示,它描述的是一个具有智能性动态特征的应用程序体系结构。
对比适应性体系结构特征,智能性体系结构特征改善了选择转变的功能,适应性特征是从一系列固定的配置中选择一个适应性体系结构的配置,而智能性特征是包括了动态构造候选配置的功能。但是由于智能特征的复杂性,在实际的软件体系结构中并不是太多的系统能够用到这种方法。