`
javawebsoa
  • 浏览: 408128 次
社区版块
存档分类
最新评论

软件架构风格整理(7 DSSA,HA,Agent,正交等) .

 
阅读更多

1.1 面向Agent 软件体系结构

面向Agent 的基本思想是从现实世界中人类、事物和环境出发,认为事物的属性特别是动态特性在很大程度上受到与其密切相关的人和环境的影响,强调认识、思维与客观事物及其所处环境之间的相互作用,将影响事物的主观与客观特征相结合,并抽象为系统中的Agent ,作为系统的基本构成单位,通过Agent 之间的合作实现系统的整体目标。

软件Agent 的定义及主要特性

什么是软件Agent ? 由于软件Agent 的研究者来自许多不同的领域,使得软件Agent 的含义也具有多重性。归纳起来,Agent 可定义为“一个能够根据它对其环境的感知,主动采取决策和行为的软件实体”

Agent 的关键属性主要有自主性、交互性、适应性、智能性、协同性、移动性等,自主性表示没有外部直接干涉能够根据自身经验进行行动;交互性表示与环境及其它Agent 交流;适应性表示在某种程度上能够响应其它Agent 或环境;智能性是由知识所形式化的状态与其它Agent 使用符号语言交互; 协同性是指Agent能在多Agent 系统环境中协同工作,以执行和完成一些相互受益的复杂任务;移动性表示能够将自己从一个环境转移到另一个环境。事实上,很难看到一个Agent 都具有上述特性,一般认为,前三项是必需的。

面向Agent 的软件体系结构

有学者明确提出将多Agent 系统作为一种新的软件体系结构风格进行研究。就这类系统的组件要素———Agent 来说,它是一种有别于以往任何系统的组件类型。尽管在系统实现中,Agent 或多或少地与对象、控制过程等传统的体系结构要素联系起来,但是,就Agent 本身而言,其所具有的自主性、智能性、交互性、社会性等特性是对象所不具备的。另外,就多Agent 系统中的连接件来说,也有它独特的属性。一般来说,传统体系结构中,连接件是显式地将两个不同的组件联系起来的,如一对象直接调用另一对象的方法。但在多Agent 系统中,不同Agent 之间的联系在静态模型中几乎是不可见的。在系统运行之前,Agent A并不知道它所需要的服务是由Agent B 所提供。尽管Agent B 具有这种服务能力,也要依据自身当时的状态决定是否提供这种服务[11 ] 。

Agent 组件是对系统处理的高度抽象,具有高度灵活和高度智能特色的软件实体,对系统需求是不敏感的,其能力可以通过修改其义务与选择知识集合动态地变更,而自身形态保持不变。Agent 连接件是一种对复合型组件的连接,该连接能够提供通信、协调、转换、接通等服务,可以通过参数在组件间传递所需的数据,通过服务请求、过程调用等方式来传递控制流,可以对传递的数据类型、格式进行转换或包装,以增强数据的互操作性,消除体系结构的不匹配,通过提供统一的接口增强组件生存环境的稳定性,可以通过交互控制连接关系的调整。

1.2 Process ControlLoop

1)背景

当软件被用来操作一个物理系统时,软件与硬件之间可以粗略地表示为一个反馈循环,这个反馈循环通过接受一定的输入,确定一系列的输出,最终使环境达到一个新的状态。

适合于嵌入式系统,涉及连续的动作与状态。

控制系统模型的构成

计算型模型

过程定义:包括操作某些过程变量的机制

控制算法:用来决定如何操纵过程变量

数据元素

过程变量:指定的输入、操纵变量等

设置点:受控变量的参考值

传感器:用于获得控制所需的过程变量值

控制环模型

建立控制算法之间的关系,它收集关于过程

实际的和欲达到的状态,并调节过程变量,

以使实际状态向目标状态发展

1.3 Heterogeneous Architecture(异构)

为什么要使用异构结构

n 不同的结构有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。

n 关于软件包、框架、通信以及其他一些体系结构上的问题,目前存在多种标准。即使在某段时间内某一种标准占统治地位,但变动最终是绝对的。

n 实际工作中,我们总会遇到一些遗留下来的代码,它们仍有效用,但是却与新系统有某种程度上的不协调。然而在许多场合,将技术与经济综合进行考虑时,总是决定不再重写它们。

n 即使在某一单位中,规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯上的不同。

1.4 特定领域软件体系结构

定义
Hayes-RothDSSA的定义如下:“DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合

Tracz的定义为:“DSSA就是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成

在某个特定的应用领域范围内进行软件体系结构的分析,更能容易地提取到可复用度较高的可复用构件和形成可复用系统构架,更能增大系统构件的复用粒度和提高系统构件复用的成功率。

DSSA特征 DSSA特征
1
)一个严格定义的问题域和/或解决域;

2)具有普遍性,可以用于领域中某个特定应用的开发;

3)对整个领域的合适程度的抽象;

4)具备该领域固定的、典型的在开发过程中可重用的元素。

垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件体系结构。

水平域:定义了在多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统族的特定部分功能,无法为系统提供完整的通用体系结构。

基本活动
领域分析领域设计领域实现

领域分析
领域知识资源技术文献分类方法已完成的软件项目标准用户评述功能模型专家建议领域分析领域语言当前及未来的需求领域实现人员领域设计人员领域分析人员领域专家

建立过程
定义领域范围:确定什么在感兴趣的领域中以及本过程到何时结束。

定义领域特定的元素:编译领域字典和领域术语的同义词词典。识别领域中应用间的共同性和差异性;

定义领域特定的设计和实现需求约束:描述解空间中有差别的特性。不仅要识别出约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论;

定义领域模型和体系结构:产生一般的体系结构,并说明构成它们的模块或构件的语法和语义;

产生、搜集可重用的产品单元:为DSSA增加构件使得它可以被用来产生问题域中的新应用。

DSSA和体系结构风格的比较
DSSA以问题域为出发点,体系结构风格以解决域为出发点。

DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个应用领域。

DSSA通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。

体系结构风格的定义和该风格应用的领域是直交的,提取的设计知识比用DSSA提取的设计专家知识的应用范围要广。

DSSA和体系结构风格是互为补充的两种技术。

1.5 正交软件体系结构

  正交软件体系结构由组织层和线索的构件构成。层是由一组具有相同抽象级别的构件构成。线索是子系统的特例,它是由完成不同层次功能的构件组成(通过相互调用来关联),每一条线索完成整个系统中相对独立的一部分功能。每一条线索的实现与其他线索的实现无关或关联很少,在同一层中的构件之间是不存在相互调用的。

  如果线索是相互独立的,即不同线索中的构件之间没有相互调用,那么这个结构就是完全正交的。从以上定义,我们可以看出,正交软件体系结构是一种以垂直线索构件族为基础的层次化结构,其基本思想是把应用系统的结构按功能的正交相关性,垂直分割为若干个线索(子系统),线索又分为几个层次,每个线索由多个具有不同层次功能和不同抽象级别的构件构成。各线索的相同层次的构件具有相同的抽象级别。因此,我们可以归纳正交软件体系结构的主要特征如下:

  (1)正交软件体系结构由完成不同功能的n(n > 1)个线索(子系统)组成;

  (2)系统具有m(m > 1)个不同抽象级别的层;

  (3)线索之间是相互独立的(正交的);

  (4)系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)

  对于大型的和复杂的软件系统,其子线索(一级子线索)还可以划分为更低一级的子线索(二级子线索),形成多级正交结构。正交软件体系结构的框架如图1所示。

  

  图1是一个三级线索、五层结构的正交软件体系结构框架图,在该图中,ABDFK组成了一条线索,ACEJK也是一条线索。因为BC处于同一层次中,所以不允许进行互相调用;HJ处于同一层次中,也不允许进行互相调用。一般来讲,第五层是一个物理数据库连接构件或设备构件,供整个系统公用。

  在软件进化过程中,系统需求会不断发生变化。在正交软件体系结构中,因线索的正交性,每一个需求变动仅影响某一条线索,而不会涉及到其他线索。这样,就把软件需求的变动局部化了,产生的影响也被限制在一定范围内,因此实现容易。

  正交软件体系结构具有以下优点:

  (1)结构清晰,易于理解。正交软件体系结构的形式有利于理解。由于线索功能相互独立,不进行互相调用,结构简单、清晰,构件在结构图中的位置已经说明它所实现的是哪一级抽象,担负的是什么功能。

  (2)易修改,可维护性强。由于线索之间是相互独立的,所以对一个线索的修改不会影响到其他线索。因此,当软件需求发生变化时,可以将新需求分解为独立的子需求,然后以线索和其中的构件为主要对象分别对各个子需求进行处理,这样软件修改就很容易实现。系统功能的增加或减少,只需相应的增删线索构件族,而不影响整个正交体系结构,因此能方便地实现结构调整。

  (3)可移植性强,重用粒度大。因为正交结构可以为一个领域内的所有应用程序所共享,这些软件有着相同或类似的层次和线索,可以实现体系结构级的重用。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics