1 / 67

Internet 时代的软件技术

Internet 时代的软件技术. 福建广播电视大学计算机系 朱建忠教师. 目 录. 从发展历史看未来趋势 Internet 带来的软件技术挑战 面向构件、基于体系结构的软件开发方法 ABC. 从发展历史看未来趋势. 软件技术发展的驱动力( 1 ). 追求更具表达能力、更符合人类思维模式、更具可构造性和演化性的计算模型. 软件的基本模型 = 实体元素+连接和交互. 软件实体. 软件实体. 连接. 机器指令 顺序和转移 高级语句 三种控制结构 函数和过程 子程序调用 模块 模块互联 对象 消息传递 构件 连接子.

taline
Télécharger la présentation

Internet 时代的软件技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet时代的软件技术 福建广播电视大学计算机系 朱建忠教师

  2. 目 录 • 从发展历史看未来趋势 • Internet带来的软件技术挑战 • 面向构件、基于体系结构的软件开发方法ABC

  3. 从发展历史看未来趋势

  4. 软件技术发展的驱动力(1) • 追求更具表达能力、更符合人类思维模式、更具可构造性和演化性的计算模型 软件的基本模型 = 实体元素+连接和交互 软件实体 软件实体 连接 • 机器指令 顺序和转移 • 高级语句 三种控制结构 • 函数和过程 子程序调用 • 模块 模块互联 • 对象 消息传递 • 构件 连接子

  5. 软件技术发展的驱动力(2) • 更高效地发挥硬件资源所提供的计算能力 • 操作系统的发展 • 引导程序 • 管理程序 • 多道程序设计 • 资源管理--现代操作系统 • 网络操作系统 • 中间件平台 • 网络计算环境

  6. 应 用 系 统 应 用 系 统 应 用 系 统 操作系统 裸机 裸机 裸机 软件技术发展的驱动力(3) • 尽可能多地凝练共性,提高软件开发的效率和质量 软件构件技术 软件工业化生产 手工作坊式软件开发 终端用户编程 模型驱动开发 随需即取 中间件 ● ● ● 操作系统 网 络

  7. Java 程序 C/C++ 程序 Fortran 程序 操作系统 软件技术发展的驱动力(4) • 尽可能平滑地桥接异构性,增加互操作性 • 异构是市场行为的自然产物,开放互操作同样是市场行为的产物 应用系统 软件技术的发展 本身就是一个 不断桥接 异构性的过程 J2EE/EJB Web Services 支撑软件中间件 CORBA UNIX Windows .NET/COM Linux

  8. 目前的技术发展现状 • 就现阶段而言,软件中间件正是这四种驱动力的自然产物 • 支持面向构件的软件模型 • 支持网络平台上各类软硬件资源的综合管理 • 凝练了网络应用开发的诸多共性 • 屏蔽了网络平台的异构性 • 不难发现,这四种驱动力仍然存在,特别是随着计算平台从单机、机群、局域网到Internet的转移,软件技术的发展正进入一个变革性阶段

  9. 软件中间件 • 一种新的软件类型(或层次) 应用软件 应用软件 中间件 系统软件 系统软件 网络 传输 硬件平台 硬件平台

  10. 中间件的形成和发展 • 初始动因:解决平台异构性和互操作问题 • 针对分布式系统构造,中间件的基本思想是:抽取分布系统构造中的共性问题,封装这些共性问题的解决机制,对外提供简单统一的接口,从而减少开发人员在解决这些共性问题时的难度和工作量。常见的共性问题包括: • 网络通信、协调、并发、可靠性(事务、容错等)、伸缩性、异构性

  11. 差异太大! 困难!!! 怎么连起来 应用程序 应用程序 Windows API Unix API Windows操作系统 Unix操作系统 异构性

  12. 中间件 API 中间件 API 中间件 中间件 屏蔽底层差异! 互操作 分布应用程序 分布应用程序 Windows API Unix API Windows操作系统 Unix操作系统

  13. 存储设备 输入输出设备 处理器 中间件是上述驱动力的自然结果 办公自动化 工业控制 个人软件 应用软件 企业信息管理 地理信息系统 ●●● 远程调用 负载均衡 事务处理 中间件 容错 安全保障 ●●● 操作系统 操作系统 硬件 硬件

  14. 中间件的地位和作用 • 一种新型系统软件--网络环境的“操作系统” • Internet时代各种软件新理论、新方法和新技术的综合载体 • 网络计算的关键软件技术和重要基础设施 • 引发软件产业新一轮洗牌的新技术

  15. Internet带来的软件技术挑战

  16. Internet平台的特征 开放性 动态性 多变性 • 无统一控制的“真”分布性 • 节点的高度自治性和不可预测性 • 节点链接的开放性和动态性 • 人、设备和软件的多重异构性 • 使用方式的个性化和灵活性 • 网络连接环境的多样性

  17. 实体元素 分布、自治、异构的“构件” 独立性 主动性 自适应性 实体交互 多种静态连接和动态合作方式 互连、互通、协作和联盟 未来软件的基本形态 未来软件系统 开放结构 动态协同 在线演化 环境感知 自主适应 新的软件形态:网构软件(Internetware) 实现从信息Web到Software Web的跨越

  18. 网构软件的主要特征 • 自主性: • 软件实体具有相对独立性、主动性和自适应性 • 协同性: • 软件实体之间多种方式的互连、互通、协作和联盟 • 反应性: • 软件实体具有感知外部运行和使用环境的能力 • 演化性: • 结构和实体的演化能力,包括:元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性 • 多态性: • 网构软件实体具有目标制导能力和多目标的特征协同能力,从而使系统的效果体现出相容的多目标性

  19. 有序 分解 无序 有序 站点 元素 站点 元素 无序 站点 元素 站点 元素 站点 元素 网构软件对软件技术的挑战(1) 动态目标 渐趋稳态 新的软件形态 传统软件形态 服务 服务 服务 软件运行平台 确定目标、有序控制

  20. 标识实体 查找实体 需求变化 需求变化 结构分解 实体聚合 网构软件对软件技术的挑战(2) 传统软件形态基于实体驱动 需求 新的软件形态基于协同驱动 需求

  21. 网构软件对软件技术的挑战(3) 传统软件 网构软件 • 传统软件结构 • 网构软件结构 • 系统目标的确定性 • 多重不确定性 • 实体单元的被动性 • 主动自主性 • 协同方式的单一性 • 灵活多面性 • 系统演变的静态性 • 系统演化的动态性 • 基于实体的结构分解 • 基于协同的实体聚合 • 经验驱动的软件手 工开发模式 • 知识驱动的软件自 动生成模式

  22. 现行技术体系的局限 数据 • 现有软件方法学与技术—面向对象技术 • 实体的被动性、依赖性:无法支持自主性和反应性, 缺乏对外界感知能力和主动能力的描述机制 操作 对象 • 连接方式的单一性:RPC式硬连,无法支持协同性 和演化性,缺乏对动态交互的表述与约束机制 • 系统结构与目标的确定性:缺乏对环境因素、多态性、动态配 置和演化、以及安全可信性的描述和控制机制 • 现有软件中间件平台模型 • 主要着重于开放环境的互连与互操作 • 缺乏对协同、演化、反应和多态的支持

  23. 软件Agent • 体现了实体的主体性 具有自主计算、目标制导、环境 感知等基本能力 • 软件Agent之间体现了互连、 交互、协作等多模式的协同 可能的技术切入点 适应开放环境 适应问题结构 软件 Agent 方法 适应人的思维 面向对 象方法 20世纪末- 结构化 方法 80-90年代 60-70年代

  24. 运行时软件体系结构 构件 连接子 演化 构件 演化 构件 约束 连接子 构件 约束 业务接口 业务 实现 构件 约束 流程协议 连接约束 业务接口 业务 实现 推理引擎 会话协议 构件元模型 反射接口 通信协议 环境感知 自主软件构件 网构软件描述 网构软件实体 网构软件协同 网构软件结构 数据 操作 互连 交互 • 基本结构模型 • 相关支撑机制 目标 感知 = + 约束 …… 控制 ……

  25. 网络计算的不同视角 • 软件技术角度--中间件技术 • 探究在网络平台上,软件的基本机理和结构 • 人机交互角度--普适计算技术 • 探究在网络平台上,人和计算平台间的交互模式及支持机制 • 资源共享角度--网格技术 • 探究在网络平台上,各类是非信息资源(目前主要是计算资源)的共享和协同。是Internet上的新一代应用形式

  26. 中间件的发展趋势--支持基于构件的软件开发中间件的发展趋势--支持基于构件的软件开发 • 软件复用是解决软件危机的必由之路! • CBSD(基于构件的软件开发)兴起的重要因素之一是中间件技术的广泛应用 • 中间件技术在实现层次支持构件的部署和运行 • 构件实现模型:EJB、CCM、DCOM • 对象中间件正在向构件中间件发展 • 运行平台和开发平台的合一趋势 • 一方面,支撑软件越来越多地向运行层渗透,提供更强的对系统实现的支持,另一方面,中间件也开始考虑对高层设计和运行部署等开发工作的支持

  27. 2) 查找服务 1) 发布服务 服务注册表 3) 下载服务使用说明 4) 绑定并使用服务 服务商 客户 中间件的发展趋势--支持Internet应用 • Web Services • 软件即服务,跨Internet的互操作 • 面向服务性、有机聚合性、持续演化性 • 利用现有主流Internet技术实现互操作 • HTTP, URI, XML …

  28. 中间件的发展趋势--支持网格计算 Internet 中间件 网格结点 网格服务接口 … 其他接口 … • 中间件可以: • 连接异构网格 • 连接同构网格 • 连接网格内部结点 • 为网格内结点提供宿主环境 服务 数据 元素 服务 数据 元素 服务 数据 元素 网格服务实现 中间件

  29. 中间件的发展趋势--支持移动、嵌入式应用 • 移动计算中间件(Mobile Middleware) • 资源有限,连接不稳定 • 与传统中间件的主要差异

  30. 中间件的发展趋势--支持服务质量 • QoS是一个综合指标,用于衡量使用一个服务的满意程度,描述关于一个服务的某些性能特点 • 中间件的QoS概念:中间件对上层应用提供的功能应该具有服务质量 • QoS规约:特定于应用领域的、用户可理解的QoS参数的指定 • QoS映射:指将领域特定的QoS参数映射成中间件、操作系统、网络等底层支撑软件所理解的QoS参数,并预留所需资源 • QoS执行则是系统运行过程中按照QoS规约与QoS映射指导、监控相关的活动(如资源申请和释放等),并可能根据运行情况对QoS进行降级或升级以达到整个系统最优的运行质量

  31. 应用软件 应用软件 系统软件 系统软件 网络 传输 反射式中间件 硬件平台 硬件平台 应用软件 应用软件 中间件 系统软件 系统软件 网络 传输 硬件平台 硬件平台 中间件的发展趋势--支持反射机制 • 反射式中间件(Reflective Middleware) • 运行环境与上层应用灵活易变 • 开放内部实现细节,允许实时监测并调整中间件的运行状态与行为

  32. 应用软件 应用软件 自治中间件 收集 运行 上下文 调整 系统软件 系统软件 网络 传输 硬件平台 硬件平台 中间件的发展趋势--支持自治计算 • 自治中间件(Autonomous Middleware) • 软件系统越来越复杂,难以管理 • 软件(尤其是中间件)自我管理

  33. 面向构件、基于体系结构的软件开发方法ABC

  34. 面向构件的网构软件开发方法学 • 针对网构软件的节点元素自治化、节点协同(交互)柔性化、结构和节点演化动态化的特点,开展研究 网构软件基本模型和性质 网 构 软 件 可 信 性 评 估 和 保 障 技 术 指导 基于体系结构的维护和演化 网构 软件 的示范性应用 面向特征的需求建模 驱动 应用 产生 分布式 Internet 构件库 特征模型 已初步形成一套面向构件、 基于软件体系结构的 软件开发方法-ABC 存储 应用 验证 操纵 应用 存储 基于构件的体系结构设计 应用 产生 基于体系结构的构件组装和部署 应用 产生 网构 软件 体系结构 支撑 支撑 支撑 构件运行支撑平台

  35. ABC释义 • ABC:Architecture Based Component Composition-1998年针对构件组装而提出 • 2000年拓展到整个软件生存期,改为“面向构件、基于体系结构的软件开发方法”,英文保持不变,寓意“方法简单易用” • ABC方法仍在不断发展完善中

  36. 软件体系结构研究 • 两个基本共识 • 系统的总体结构,即其计算元素的高层组织和它们间的交互,是系统设计的关键方面 • 在软件生命周期中,SA是非常重要的产品,SA设计是必要的阶段。 SA可以作为整个软件生命周期过程中的关键里程碑 • 体系结构是对系统整体结构设计的刻划,包括:全局组织与控制结构,构件间通讯、同步和数据访问协议,设计元素功能分配、物理分布,设计元素集成、伸缩性和性能,以及设计选择等 • 两种定义: • Component+Connector+Configuration • Element+Form+Rationale

  37. SA研究的贡献 • 将应用系统的体系结构显式化,并作为研究的对象 • 将连接子作为设计空间的一阶实体,描述构件间的交互、通信和协议 • SA的设计考虑构件、连接子及其配置 • 在高抽象层次上描述系统结构,并验证系统性质 • 提供了一条自顶向下的、通过组装已有构件在高抽象层次构造系统的途径 • 提供了构件及连接子组装的框架

  38. 基于构件的软件开发CBSD • B. Meyer等指出CBSD兴起的四个因素 • 研究方面:现代软件工程思想,特别是对复用技术的强调 • 产业方面:支持用构件建造GUI、数据库和应用的其他部件的一些理论上质朴但实际可用的技术的成功 • 策略方面:某些主流互操作技术,如CORBA、COM和EJB等,的开发者的推动 • 技术方面:对象技术的广泛使用,提供了建造和使用构件的概念基础和实用工具 • CBSD提供了一种自底向上的、基于预先定制包装好的类属元素(构件)来构造应用系统的途径。当前讨论的重点主要局限于基于COM、CORBA和EJB等的二进制构件

  39. ABC方法 • 面向构件、基于软件体系结构的软件开发方法 (Architecture Based Component Composition) • SA + CBSD:将SA 与CBSD 相结合,以SA 模型作为系统蓝图指导系统开发的全过程,把分布式构件技术作为构件组装的实现框架和运行时的支撑,使用工具支持的映射规则缩小设计和实现间的距离,自动地组装、验证所需要的系统 基于体系结构 的需求分析 体系结构设计 基于体系结构 的组装 基于体系结构 的部署 基于体系结构 的维护 软件体系结构

  40. ABC 与 MDA :共性 • 强调模型的重要性 • 区分平台独立和平台特定的模型 • 以复用为指导思想 • 以OO为基础 • 以中间件技术为支撑 • 使用映射规则连接不同阶段

  41. ABC 与 MDA :差异 • 产生背景 • ABC:构件复用 • MDA:中间件的异构问题 • 侧重点 • MDA:代码生成 • ABC:构件组装; • 建模语言 • ABC:ABC/ADL • MDA:UML、MOF、CWM

  42. 特征 构件:接口 构件:实现 基于特征的 需求建模 平台独立的 体系结构建模 平台特定的 构件部署、 运行和维护 体系结构设计 运行支撑 领域工程 三个层次的研究工作 基于体系结构 的需求分析 体系结构设计 基于体系结构 的组装 基于体系结构 的部署 基于体系结构 的维护

  43. 阶段2:基于可复用软件资产的应用系统开发 阶段1:可复用软件资产的生产 领域工程与软件复用 领域工程 领域 模型 领域 构件 领域 分析 领域 设计 领域 实现 DSSA 应用工程 基于 DSSA 的设计 构件组装 基于 领域 模型 的分析 应用 系统 规约 应用系统 体系结构 应用 系统 用户 需求

  44. Use Case集1 服务 1 Use Case集2 功能 1 功能 2 功能 3 服务 2 Use Case集n 行为特征 1 行为特征 2 服务 n 系统边界 特征 交互模型 服务层 Use Case 段 质量段 + 功能层 行为特征层 约束段(基于谓词逻辑) 基于特征的领域模型 • 以领域特征模型(FM)为中心,由多种相关模型共同构成领域模型

  45. 特征模型 • 特征:一组相互紧密联系的需求构成的单元,反映了某种对用户或客户有价值的能力。 • 系统行为 • 功能 • 质量属性 • 约束 • 特征模型概念框架 • 基本组织结构:基于整体-部分关系 • 变化性建模机制 • 约束关系建模机制 • 交互关系建模机制

  46. 面向特征的优点 • 为领域提供一个标准的名字空间 • 促进各种参与者间的交流 • 提供了组织需求的良好框架 • 遵从entity-relation模式 • 便于图形化建模 • 支持对需求的复用 • 对共性/变性的建模支持 • 对变性的剪裁支持 • 半形式化的需求建模技术

  47. 特征与功能(Function) • 两者观察事物的角度不同 • 功能:输入到输出的映射关系 • 数学、程序语言、结构化软件开发方法、软件需求规约。 • 特征: • 用户/客户视角 • 一组相互关联的需求 • 一种对外提供的能力 • 有重叠 • 不同角度的交叉点 • 特征能够更全面、有效地描述问题空间

  48. 特征建模工具界面

  49. Internal Specification Dependency A Service A Service B Dependency B 软件体系结构建模 • 构件模型 • ABC/ADL • 支持构件组装的体系结构描述语言 • 映射规则 • SA模型到实现 • 工具支持 • SA的可视化建模 • SA模型的验证和校验 • 基于SA的构件组装

  50. ABC/ADL • ABC/ADL基于上述构件模型,在三个层次上刻画构件和连接子: • 基本层. • 构件和连接子的语法描述. • 行为层. • 构件功能、行为和非功能特征的语义规约和约束. • 协议层. • 构件和环境之间交互的契约定义,以及由连接子封装的构件间的交互协议.

More Related