1. 动态软件体系结构主要研究软件系统由于特殊需要必需在连续运行情况下的体系结构变化与支撑平台。
【就是允许在系统运行时发生更新的软件体系结构】
例子:UNIX内核动态链接库CORBRA和DCOM中的构件组装机制
2. Internet具有开发性
(1)Internet是一种开放系统,这种系统只在协议级、地址定位,允许各个站点能够交互的表示方面有最小程度的标准要求。
(2)Internet允许大量的变化,既包括在这些标准约束下的硬件方面,又包括构建在这些标准之上的应用。
(3)各个结点都是独立管理的,每个开发者可以根据自己的意愿提供、修改、删除资源。
3. 基于软件体系结构、构件的开发方法
(1)软件开发的基本单位已从传统的代码行、对象转变为各种粒度的构件,构件之间的拓扑形成了软件体系结构。
(2)优点:
a. 给软件开发带来了更多的灵活性,可以通过构件重用和替换实现,即实现构件的“即插即用”。
b. 在软件体系结构层次上实现动态性会给大型软件系统的开发提供可扩展性。
4. 软件体系结构演化:由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动。
软件体系结构的动态性:指软件系统在运行时刻的体系结构变动。
软件体系结构的扩展:指体系结构的静态修改。
5. 动态软件体系结构动态性:
(1)交互式动态性:允许在复合构件的固定连接中改变数据
(2)结构化动态性:允许对系统添加或者删除构件或者连接件
(3)体系结构动态性:允许构件的整个配置的改变
6. 软件体系结构的变化:
(1)需求变更引起的变化:发生在设计阶段,称为静态体系结构变化。
(2)运行时体系结构变化:指软件应用系统在运行起来之后,软件体系结构的组成部分构件、连接件、构成系统的规则还可以发生变化,运行时就可以加载、卸载、扩充,不需要重新编译。
【很多系统更新时不能中断运行,更新就遇到了问题】
7. 基于Web的大型复杂系统
(1)打破自己开发软件与外购软件之间的平衡
a. 有必要建立工业标准。
【共性越多,越规范,可重用度越高】
【这会导致基于构件的工程向基于体系结构工程的转化】
b. 导致了新的软件转承包过程。
【外包可以大大减少开发时间,而且规范化了减少集成的复杂度】
c. 使得跨越提供商的标记、符号及工具都趋向标准化
(2)以网络为中心的计算
(3)普适计算:各种各样的计算通过丰富多彩的异构计算设备遍布各处
a. 适合于资源使用的体系结构是一个关键问题
【不同的资源对计算的要求不同】
b. 这些系统体系结构必须比现在的更加灵活
【设备会不断更新,但是不能中断操作】
c. 需要一种能够很好处理用户可修改性的体系结构
【数量太大,不适合手动更新】
7. Internet面临的挑战(以网络为中心的计算)
(1)Internet的规模需要扩大,可变性需要增强
(2)需要支持动态形成的、特定任务的、分布式自治资源相互联合的计算
(3)需要找到能够灵活提供业务应用服务的体系结构
(4)需要开发一种体系结构,能允许终端用户构造自己的系统