13.07.2015 Views

开放源代码软件Heatbeat 成熟度评估 - 开源中国社区- 软件镜像下载

开放源代码软件Heatbeat 成熟度评估 - 开源中国社区- 软件镜像下载

开放源代码软件Heatbeat 成熟度评估 - 开源中国社区- 软件镜像下载

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

开 放 源 代 码 软 件 Heatbeat 成 熟 度 评 估编 制 : 贾 训 凯 杨 勇时 间 :2010 年 11 月 15 日工 业 和 信 息 化 部 软 件 与 集 成 电 路 促 进 中 心


开 放 源 代 码 软 件 成 熟 度 评 估目 录目 录 ......................................................................................................................................................................... 1概 述 ......................................................................................................................................................................... 2开 源 软 件 成 熟 度 评 估 的 目 标 和 价 值 ..................................................................................................................... 2开 放 源 码 软 件 成 熟 度 评 估 目 标 ..................................................................................................................... 2开 源 软 件 成 熟 度 评 估 案 例 ..................................................................................................................................... 4Heartbeat 软 件 成 熟 度 评 估 报 告 ..................................................................................................................... 4Heartbeat 软 件 介 绍 ................................................................................................................................. 4Heartbeat 架 构 描 述 ................................................................................................................................. 5Heartbeat 软 件 代 码 质 量 评 测 报 告 ......................................................................................................... 9软 件 测 试 ............................................................................................................................................... 12Heartbeat 易 用 性 研 究 ........................................................................................................................... 12Heartbeat 可 用 性 性 研 究 ....................................................................................................................... 12社 区 及 项 目 组 织 ................................................................................................................................... 13License 问 题 .......................................................................................................................................... 13软 件 成 熟 度 评 估 ........................................................................................................................................... 13软 件 成 熟 度 属 性 定 义 与 量 化 ............................................................................................................... 13Heartbeat 软 件 成 熟 度 评 估 结 论 ........................................................................................................... 16总 结 ....................................................................................................................................................................... 17参 考 ....................................................................................................................................................................... 17附 录 ....................................................................................................................................................................... 17Heartbeat 软 件 代 码 质 量 评 测 报 告 :........................................................................................................... 17第 1 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估概 述21 世 纪 的 计 算 机 世 界 是 丰 富 多 彩 的 , 不 仅 计 算 机 硬 件 性 能 有 了 质 的 飞 跃 , 计 算 机 软 件在 功 能 性 、 复 杂 度 上 都 是 以 前 无 法 比 拟 的 。 尤 其 是 互 联 网 及 网 络 应 用 的 出 现 , 极 大 的 丰 富 了人 们 的 计 算 机 应 用 , 拓 展 了 应 用 的 领 域 , 将 应 用 水 平 提 高 到 一 个 崭 新 的 水 平 。 对 于 复 杂 应 用 ,如 何 来 保 障 应 用 软 件 的 质 量 , 如 何 评 估 那 些 纷 繁 复 杂 的 应 用 系 统 呢 。 人 们 进 行 了 多 方 面 的 探索 , 形 成 了 众 多 软 件 成 熟 度 评 价 模 型 。 中 国 也 为 此 颁 布 了 软 件 质 量 国 家 标 准GB-T8566--2001G, 从 而 指 导 软 件 开 发 者 和 使 用 者 正 确 的 评 价 一 个 软 件 的 质 量 及 其 应 用 的 成熟 度 。 那 么 , 对 于 开 源 世 界 , 我 们 如 何 看 待 , 又 如 何 正 确 评 价 一 个 软 件 的 成 熟 度 状 况 呢 。我 们 知 道 , 软 件 成 熟 度 评 估 的 最 终 目 标 是 帮 助 软 件 的 可 持 续 发 展 , 并 为 用 户 应 用 提 供 必要 的 技 术 参 考 。 开 放 源 代 码 软 件 成 熟 度 评 估 也 不 例 外 。 我 们 通 过 软 件 的 成 熟 度 评 估 , 形 成 全面 的 涉 及 技 术 、 应 用 、 法 律 等 层 面 的 评 价 报 告 , 帮 助 那 些 正 在 或 潜 在 的 开 源 软 件 使 用 者 准 确的 了 解 软 件 的 技 术 特 性 和 应 用 特 性 , 从 而 为 他 们 选 择 适 合 自 身 需 求 的 开 源 软 件 提 供 参 考 。 同时 报 告 中 涉 及 的 大 量 评 测 数 据 , 为 开 源 软 件 的 开 发 者 提 供 帮 助 , 促 进 他 们 有 效 的 改 善 软 件 在技 术 方 面 和 使 用 方 面 的 质 量 , 使 软 件 不 断 成 熟 和 可 持 续 的 发 展 。开 放 源 代 码 软 件 由 于 开 发 模 式 和 运 作 模 式 的 独 特 性 , 其 软 件 带 有 鲜 明 的 特 点 。 开 放 源 码软 件 成 熟 度 评 估 的 方 法 需 要 我 们 在 实 践 中 不 断 的 探 索 。 我 们 将 提 出 一 些 基 本 的 原 则 和 方 法 ,并 建 立 我 们 自 己 的 评 估 体 系 和 计 算 模 型 。开 源 软 件 成 熟 度 评 估 的 目 标 和 价 值开 放 源 码 软 件 成 熟 度 评 估 目 标 实 现 开 源 软 件 技 术 架 构 与 技 术 路 行 的 评 估 参 考 。开 放 源 代 码 软 件 与 传 统 非 开 放 源 码 软 件 的 重 要 不 同 点 在 于 其 技 术 方 案 和 源 代 码 的 开 放性 。 因 此 , 开 放 源 码 软 件 的 质 量 评 估 的 一 个 重 要 目 标 是 分 析 软 件 的 技 术 架 构 和 技 术 路 线 , 得出 软 件 在 架 构 的 合 理 性 、 技 术 路 线 的 可 行 性 、 技 术 的 先 进 性 等 方 面 的 评 估 看 法 , 使 得 评 估 能够 从 宏 观 上 , 从 技 术 上 对 软 件 的 成 熟 度 给 出 相 应 的 评 价 。 实 现 开 源 软 件 代 码 质 量 与 可 信 程 度 的 评 估 参 考开 放 源 码 软 件 对 于 评 估 人 来 说 最 大 的 好 处 是 , 可 以 直 接 阅 读 分 析 软 件 的 代 码 , 通 过 这 一最 直 接 的 方 式 , 我 们 可 以 得 出 准 确 的 、 公 正 的 判 定 。 因 此 , 提 供 对 代 码 质 量 和 代 码 可 信 度 的检 测 是 开 放 源 码 评 估 中 的 重 要 环 节 。 实 现 对 开 源 软 件 易 用 性 与 可 用 性 的 评 估 参 考软 件 易 用 性 和 可 用 性 的 评 估 是 任 何 软 件 成 熟 度 评 估 中 重 要 的 指 标 , 是 我 们 实 现 开 源 软 件第 2 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估成 熟 度 评 估 所 要 实 现 的 重 要 目 标 之 一 。 该 目 标 的 实 现 , 对 于 评 估 的 实 际 参 考 价 值 的 多 少 非 常重 要 , 是 用 户 及 其 系 统 集 成 商 重 点 关 注 的 内 容 。 实 现 开 源 软 件 应 用 成 熟 度 和 应 用 支 持 的 评 估 参 考软 件 应 用 的 成 熟 度 以 及 软 件 商 业 或 非 商 业 应 用 的 支 持 力 度 能 够 从 侧 面 反 映 软 件 的 发 展状 态 。 在 开 源 软 件 中 , 应 用 越 广 泛 , 社 区 支 持 或 商 业 支 持 越 好 的 软 件 能 够 吸 引 更 多 的 参 与 者 ,反 过 来 能 够 更 好 的 促 进 软 件 的 发 展 。 所 以 , 开 源 软 件 成 熟 度 评 估 所 要 达 到 的 一 个 重 要 目 标 是提 供 软 件 应 用 与 支 持 的 公 正 评 价 。 实 现 对 开 源 软 件 法 律 问 题 及 法 律 风 险 的 评 估由 于 开 放 源 代 码 软 件 可 能 采 用 多 种 版 权 协 议 , 某 些 软 件 有 可 能 或 有 潜 在 的 可 能 性 涉 及 其它 版 权 协 议 或 技 术 专 利 等 问 题 需 要 我 们 加 以 评 估 , 是 否 会 对 软 件 的 发 展 形 成 正 面 的 或 负 面 的影 响 。第 3 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估开 源 软 件 成 熟 度 评 估 案 例根 据 以 上 描 述 , 我 们 初 步 制 定 了 一 个 适 合 于 开 放 源 代 码 软 件 成 熟 度 评 估 的 评 价 体 系 和 实施 方 法 。 接 下 来 我 们 将 通 过 两 个 案 例 说 明 我 们 的 评 价 体 系 是 如 何 工 作 的 。 我 们 选 取 两 个 软 件进 行 评 估 , 分 别 是 OpenOffice 和 Heartbeat。 这 两 个 软 件 , 前 者 面 向 于 桌 面 应 用 , 提 供 完整 的 办 公 处 理 软 件 , 是 开 源 领 域 中 这 类 软 件 中 的 佼 佼 者 。 后 者 为 面 向 服 务 器 的 高 可 用 集 群 软件 , 在 服 务 器 领 域 和 商 业 环 境 中 有 广 泛 的 应 用 。 从 这 些 软 件 的 案 例 评 估 当 中 可 以 看 到 , 我 们的 评 估 体 系 会 对 不 同 类 别 的 软 件 做 针 对 性 判 别 , 从 而 得 出 基 于 该 类 软 件 的 可 比 较 的 评 估 结果 。技 术 架 构 分 析 和 代 码 评 测 是 开 源 软 件 成 熟 度 评 估 中 最 重 要 、 也 是 区 别 于 传 统 商 业 软 件 评估 最 有 特 色 的 部 分 。 我 们 将 做 重 点 说 明 。 其 中 , 代 码 评 测 的 结 果 我 们 在 附 录 中 做 完 整 的 发 布 。Heartbeat 软 件 成 熟 度 评 估 报 告Heartbeat 软 件 介 绍Heartbeat 是 Linux-HA 开 源 项 目 发 布 的 高 可 靠 应 用 环 境 集 群 服 务 的 核 心 软 件 。 从 1998年 创 建 以 来 到 现 在 , 历 经 1.0.x,1.2.x, 2.1.x 等 多 个 版 本 , 在 全 球 开 源 HA 领 域 具 有 举 足轻 重 的 知 名 度 , 应 用 日 益 广 泛 , 并 且 得 到 了 众 多 主 流 Linux 操 作 系 统 厂 商 的 支 持 。 在Linux-HA 中 heartbeat 负 责 节 点 健 康 信 息 检 测 、 可 靠 的 节 点 间 通 讯 和 集 群 管 理 等 工 作 。 它拥 有 一 个 高 度 可 定 制 的 软 件 体 系 结 构 , 安 全 的 通 讯 保 障 机 制 和 广 泛 的 跨 平 台 移 植 性 。早 期 ,heartbeat 主 要 被 设 计 用 来 配 置 双 机 热 备 功 能 的 系 统 软 件 。 系 统 由 两 台 服 务 器 构成 , 一 台 为 工 作 服 务 器 , 另 一 台 为 备 份 机 。 该 软 件 通 过 心 跳 检 测 协 议 在 两 台 服 务 器 间 通 讯 ,检 测 系 统 的 健 康 状 况 。 当 工 作 服 务 器 down 机 时 , 软 件 会 自 动 检 测 到 , 并 将 原 来 工 作 机 上 的相 关 服 务 转 移 到 备 份 机 上 , 从 而 对 外 达 到 服 务 不 间 断 的 能 力 。 随 着 高 可 用 系 统 技 术 的 不 断 发展 , 以 及 Linux 下 对 高 可 靠 应 用 机 器 软 件 的 需 求 , 软 件 创 始 人 Alan Robertson 联 合 一 些 其它 社 区 技 术 人 员 重 新 设 计 了 软 件 架 构 , 成 功 的 扩 展 了 原 有 软 件 的 功 能 和 结 构 , 使 它 能 够 不 断满 足 用 户 新 的 需 求 。 新 增 加 的 功 能 中 包 括 提 供 多 于 两 个 节 点 集 群 的 支 持 , 系 统 应 用 的 健 康 检测 , 网 络 连 接 的 健 康 检 测 ,STONITH 设 备 的 支 持 等 功 能 , 还 提 供 了 一 组 集 群 管 理 工 具 。可 以 说 ,Heartbeat 的 产 生 和 发 展 是 一 个 典 型 的 Open Source 软 件 的 案 例 。 该 软 件 所 应用 的 体 系 架 构 OCF(Open Cluster Framework) 就 是 开 源 社 区 合 作 的 结 晶 , 并 努 力 使 其 成 为一 个 非 排 他 的 国 际 标 准 。 在 开 发 当 中 更 体 现 了 开 放 源 代 码 软 件 发 展 的 特 点 , 开 发 者 分 布 在 美国 、 欧 洲 、 日 本 和 中 国 。 开 发 者 平 时 通 过 email、mail list、IRC 进 行 交 流 , 每 年 还 会 有 一些 定 期 或 不 定 期 的 会 议 讨 论 项 目 的 主 要 事 项 。 项 目 采 取 CVS 系 统 进 行 代 码 管 理 , 项 目 有 专 门的 CVS 管 理 者 , 代 码 开 发 经 过 几 次 代 码 规 范 行 动 , 程 序 质 量 较 好 , 并 有 较 好 的 代 码 注 释 。Heartbeat 项 目 有 一 个 完 善 的 服 务 网 站 , 用 户 和 第 三 方 开 发 者 几 乎 可 以 从 网 站 上 找 到 所 有 他们 需 要 的 信 息 , 包 括 下 载 该 软 件 。 软 件 的 信 息 能 够 即 时 更 新 , 使 用 帮 助 文 档 较 丰 富 , 更 新 比较 即 时 , 但 文 档 的 组 织 还 不 够 清 晰 。 对 于 第 三 方 开 发 者 或 希 望 加 入 该 社 区 的 开 发 者 ,maillist 是 他 们 最 好 的 工 具 , 该 项 目 中 mail list 的 活 跃 程 度 很 高 , 大 多 数 问 题 都 能 得 到 即 时第 4 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估有 效 的 解 答 。Mail list 按 照 使 用 者 和 开 发 者 进 行 了 简 单 分 类 。 近 年 来 , 该 项 目 得 到 了 越 来越 多 厂 商 的 重 视 和 支 持 , 尤 其 是 IBM 对 该 项 目 进 行 了 直 接 的 人 员 支 持 。 在 市 场 化 方 面 , 国 内外 已 有 的 多 个 HA 软 件 都 是 基 于 该 软 件 构 造 的 , 其 中 包 括 : RedHat Cluster, Redflag HA 系统 等 。 该 软 件 本 身 也 被 应 用 的 了 许 多 商 业 领 域 。 不 难 看 出 , 正 是 由 于 该 软 件 具 有 良 好 的 技 术架 构 设 计 和 应 用 前 景 , 才 不 断 推 动 社 区 和 厂 商 的 参 与 , 使 之 成 为 一 个 优 秀 的 开 放 源 代 码 软 件 。Heartbeat 架 构 描 述Heartbeat 软 件 的 架 构 设 计 基 本 遵 循 OCF(Open Cluster Framework) 的 技 术 规 范 , 着眼 于 将 软 件 发 展 成 为 一 个 开 放 的 集 群 体 系 , 软 件 按 照 OCF 规 范 的 要 求 定 义 了 一 系 列 集 群 技 术组 件 模 块 , 初 步 实 现 了 应 用 机 器 的 基 本 功 能 。 接 下 来 我 们 将 列 出 软 件 中 的 主 要 模 块 。图 Heartbeat 软 件 架 构 设 计 图第 5 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估Heartbeat 软 件 的 主 要 组 件 模 块 :heartbeat – 强 认 证 通 讯 模 块 。Heartbeat 能 够 相 对 可 靠 的 在 小 于 0.5 妙 时 间 内 检 测 到 任 何节 点 的 失 败 事 件 。 通 过 使 用 低 延 迟 补 丁 程 序 , 时 间 还 会 更 小 。Heartbeat 拥 有 一 层 API, 它们 提 供 诸 如 集 群 内 通 讯 、 发 送 和 接 受 数 据 给 集 群 节 点 、 配 置 查 询 、 状 态 查 询 等 服 务 。CRM - 集 群 资 源 管 理 器 - 集 群 资 源 管 理 器 是 (CRM)Linux-HA 的 大 脑 。 它 维 护 资 源 配 置 、 决定 什 么 资 源 应 该 在 哪 里 运 行 、 怎 样 从 当 前 状 态 迁 移 到 他 们 应 该 运 行 的 状 态 另 外 , 它 监 督 LRM来 完 成 所 有 的 事 情 。CRM 与 系 统 中 的 每 个 组 件 交 互 : 使 用 心 跳 来 通 信 它 从 CCM 接 收 成 员 关 系 更 新 它 从 LRM 接 收 或 向 LRM 发 送 通 告 消 息 。 它 告 诉 Stonith 守 护 程 序 什 么 时 候 复 位 和 给 谁 复 位 它 使 用 日 志 守 护 程 序 来 做 日 志实 际 上 ,PE、TE 和 CIB 能 被 看 作 是 CRM 的 组 件 。 PE - CRM 策 略 引 擎 - 策 略 引 擎 的 最 初 目 标 是 从 当 前 状 态 计 算 转 换 图 。 这 个 转 换 图 考 虑了 资 源 的 当 前 位 置 和 状 态 、 节 点 的 可 用 性 和 当 前 的 静 态 配 置 ( 也 称 为CurrentClusterState). TE - CRM 转 换 引 擎 - 转 换 引 擎 通 过 PE 来 有 效 的 生 成 转 换 图 – 它 计 算 集 群 下 一 阶 段 的状 态 , 列 出 集 群 应 该 采 取 的 动 作 , 并 通 过 向 远 端 节 点 的 LRM 发 送 执 行 指 令 从 而 启 动 或 停止 相 应 的 资 源 。 CIB – 集 群 信 息 库 。CIB 是 一 个 对 集 群 资 源 和 节 点 信 息 进 行 自 动 备 份 的 数 据 库 , 这 些 信息 将 供 CRM 模 块 使 用 。 这 些 信 息 包 括 诸 如 依 赖 性 关 系 的 静 态 数 据 , 更 多 的 是 有 关 资 源 在哪 里 运 行 和 他 们 的 实 时 状 态 的 动 态 信 息 。 所 有 CIB 中 的 信 息 都 以 XML 格 式 存 储 。 为 此 ,我 们 声 明 了 一 个 定 义 当 前 所 有 CIB 管 辖 的 信 息 的 DTD 文 件 。 许 多 CRM 的 特 性 可 以 通 过 阅读 该 DTD 文 件 来 了 解 。CCM - 维 护 集 群 成 员 的 一 致 性 – 提 供 集 群 成 员 连 通 的 信 息 一 致 性 服 务 。 它 保 障 了 一 个 统 一的 成 员 信 息 中 的 某 个 节 点 以 和 自 身 实 际 信 息 相 符 和 的 方 式 与 其 它 节 点 通 讯 。 该 模 块 实 现 了OCF 成 员 关 系 API 和 SAF AIS 成 员 关 系 API 两 种 接 口 方 式 。 通 常 计 算 集 群 的 成 员 关 系 只 需 小于 1 秒 的 时 间 。第 6 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估LRM - 本 地 资 源 管 理 器 - 本 地 资 源 管 理 器 基 本 上 是 一 个 资 源 代 理 抽 象 。 它 直 接 通 过 CRM 来启 动 、 停 止 和 监 管 资 源 。Stonith - 守 护 进 程 - 提 供 节 点 复 位 服 务logd - 非 阻 塞 的 日 志 记 录 守 护 进 程申 请 时 , 未 能 办 理 登 机 手 续 , 与 它 在 其 指 定 的 时 间 , 有 兴 趣 参 加 的 人 士 , 通 知 及 ( 据 推 测 )的 复 苏 而 采 取 的 行 动 。 这 个 守 护 进 程 是 一 个 简 单 , 因 为 我 们 可 以 使 , 所 以 它 可 以 成 为 最 可 靠的 组 件 在 系 统 中 。 很 多 linux 哈 系 统 组 件 配 合 到 它 , 但 并 不 普 遍 , 使 在 外 地 写 本 。 它 将 登 记制 度 看 门 狗 定 时 器 , 如 果 要 求 这 样 做 。apphbd - 应 用 级 看 门 狗 定 时 器 服 务 - 应 用 心 跳 守 护 进 程 是 一 个 为 个 别 HA-aware 应 用 提 供看 门 狗 定 时 器 设 施 的 一 般 服 务 。 当 应 用 在 它 们 规 定 的 时 间 登 记 失 败 , 将 通 知 相 关 组 件 , 也 许还 会 恢 复 刚 才 采 取 的 行 动 。 这 个 守 护 进 程 很 简 单 , 因 为 我 们 可 以 构 建 它 , 所 以 它 是 系 统 中 最可 靠 的 组 件 。 很 多 Linux-HA 系 统 组 件 跟 它 连 接 , 但 在 本 文 中 它 并 没 有 被 普 遍 使 用 。 如 果 申请 的 话 , 它 将 登 记 系 统 看 门 狗 定 时 器 。恢 复 管 理 器 - 应 用 恢 复 服 务 - 当 一 个 进 程 没 有 心 跳 或 异 常 退 出 时 , 将 由 apphbd 通 知 恢 复管 理 器 守 护 进 程 , 然 后 采 取 行 动 杀 死 并 重 启 应 用 。体 系 架 构Heartbeat 成 功 开 发 的 关 键 在 于 拥 有 一 个 坚 固 的 了 、 灵 活 的 、 可 靠 的 通 用 软 件 架 构 。 所 有 主要 模 块 都 建 立 在 这 个 架 构 之 上 。该 架 构 有 若 干 关 键 组 件 : 一 个 灵 活 的 通 用 插 件 机 制 。 非 阻 塞 的 IPC 层 避 免 使 用 线 程 技 术 使 用 Glib mainloop 作 为 统 一 的 事 件 调 度 ( 分 发 ) 和 事 件 处 理 方 法 。 节 点 间 的 高 度 一 致 性 和 集 成 性 。 PILS – 插 件 和 接 口 加 载 系 统PILS 作 为 一 个 通 用 插 件 加 载 系 统 , 在 Linux-HA 项 目 中 被 广 泛 使 用 。 它 给 软 件 带 来 巨 大的 灵 活 性 和 能 力 , 并 尽 可 能 简 化 核 心 系 统 的 大 小 。 它 改 善 了 那 些 使 用 插 件 机 制 的 子 系 统 的 结构 , 并 减 少 Linux-HA 在 宿 主 系 统 上 的 资 源 使 用 。第 7 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估插 件 机 制 一 般 不 提 供 给 非 核 心 组 件 使 用 。 当 前 使 用 插 件 机 制 的 领 域 有 : 通 讯 模 块 、 认 证模 块 、STONITH, 资 源 代 理 模 块 、 压 缩 模 块 和 apphbd 的 通 告 方 法 。IPC 库 , 所 有 进 程 间 通 讯 都 使 用 一 个 非 常 通 用 的 IPC 库 , 通 过 使 用 一 个 灵 活 的 排 队 策 略它 提 供 了 进 程 间 的 非 阻 塞 访 问 机 制 , 同 时 包 含 了 集 成 的 流 控 制 能 力 。 目 前 这 一 IPC API 使 用UNIX (Local) Domain sockets 技 术 实 现 。 它 还 包 含 了 在 进 程 间 认 证 和 授 权 的 方 法 , 该 方 法能 够 移 植 到 大 多 数 支 持 POSIX 标 准 的 系 统 上 。集 群 Plumbing 库 , 该 库 是 一 系 列 非 常 有 用 的 功 能 函 数 的 集 合 , 它 为 众 多 模 块 提 供 各 种 服 务 。其 中 主 要 包 括 : 压 缩 功 能 API 非 阻 塞 日 志 API 不 间 断 运 行 服 务 的 内 存 管 理 功 能 统 一 信 号 处 理 – 允 许 信 号 作 为 mainloop 事 件 工 作 。 Core dump 管 理 工 具 – 在 各 种 环 境 中 以 统 一 的 方 式 捕 获 core dump 信 息 子 进 程 管 理 – 一 个 进 程 的 非 正 常 中 断 将 导 致 模 块 发 起 一 个 可 定 制 的 death-of-child消 息 。 Realtime management – 设 置 或 取 消 进 程 的 高 优 先 权 。 64-bit HZ-granularity 时 间 操 作 (longclock_t) 出 于 安 全 目 的 的 用 户 ID 管 理 – 主 要 针 对 那 些 需 要 root 用 户 权 限 的 进 程 。 集 成 了 Mainloop 的 IPC, 文 件 描 述 符 , 信 号 等 事 件 处 理 。 这 意 味 着 所 有 这 些 不 同 的 事 件源 会 被 统 一 的 管 理 与 分 发 。 集 群 测 试 系 统集 群 测 试 系 统 (CTS) 是 heartbeat 开 发 中 低 错 误 率 的 主 要 保 障 。 简 单 说 CTS 在 一 个 集 群系 统 中 进 行 自 动 的 随 机 压 力 测 试 。 在 实 践 中 我 们 证 明 它 是 一 个 非 常 有 效 的 工 具 。 它 工 作 的 基本 策 略 是 : beat the software to death. 这 种 测 试 有 时 也 称 为 Bamm-Bamm 测 试 。 使 用 GlibLinux-HA 项 目 广 泛 的 使 用 了 Glib 库 第 二 版 , 特 别 是 mainloop 事 件 处 理 架 构 上 更 是 如 此 。而 对 mainloop 架 构 的 使 用 使 得 集 群 内 的 许 动 工 作 变 得 更 容 易 , 更 统 一 。 同 时 它 可 以 使 我 们避 免 使 用 线 程 机 制 所 带 来 的 移 植 性 和 调 试 上 的 困 难 。分 析 结 论本 软 件 虽 然 由 C 语 言 写 成 , 但 程 序 的 构 造 多 参 考 面 向 对 象 的 设 计 。 整 个 程 序 架 构 完 整 ,结 构 灵 活 , 可 移 植 性 较 强 。 软 件 的 设 计 者 不 仅 为 用 户 停 工 了 丰 富 的 功 能 , 而 且 在 各 个 层 面 都为 程 序 的 可 扩 展 性 和 部 署 的 灵 活 性 留 下 接 口 。 对 核 心 的 扩 成 可 以 使 用 插 件 机 制 ; 对 功 能 的 扩充 可 以 使 用 HBC 架 构 , 而 该 架 构 的 进 程 间 通 讯 基 于 网 络 协 议 , 从 而 可 以 方 便 的 将 部 署 从 进 程间 扩 展 为 节 点 间 。 在 软 件 的 应 用 层 面 上 , 用 户 可 以 通 过 加 入 自 定 义 系 统 脚 本 , 使 软 件 部 署 适应 各 种 部 署 环 境 和 应 用 策 略 。第 8 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估软 件 的 配 置 完 全 依 赖 于 修 改 配 置 文 件 , 没 有 配 置 工 具 。 软 件 的 设 计 中 可 能 由 于 历 史 的 原因 , 资 源 切 换 和 改 变 事 件 有 多 个 切 入 点 , 不 利 于 系 统 的 扩 展 和 灵 活 应 用 ( 即 一 个 单 一 的 事 件处 理 入 口 对 软 件 是 必 要 的 )。 系 统 的 设 计 中 , 在 从 Partition 故 障 中 回 复 的 动 作 设 计 的 不 够灵 活 , 过 于 简 单 , 也 没 有 为 扩 充 留 下 相 应 的 接 口 或 介 入 点 。Heartbeat 软 件 代 码 质 量 评 测 报 告评 测 工 具 介 绍源 代 码 质 量 管 理 工 具 , 可 集 成 各 种 源 代 码 静 态 分 析 工 具 , 支 持 c/c++,java,php,pthyon等 语 言 , 通 过 该 工 具 可 以 了 解 源 代 码 的 包 括 缺 陷 、 漏 洞 等 质 量 情 况 , 以 及 代 码 行 , 架 构 等 软件 度 量 信 息 , 帮 助 了 解 整 体 代 码 的 成 熟 度 。 主 要 特 点 为 代 码 覆 盖 : 通 过 单 元 测 试 , 将 会 显 示哪 行 代 码 被 选 中 ; 改 善 编 码 规 则 ; 搜 寻 编 码 规 则 : 按 照 名 字 , 插 件 , 激 活 级 别 和 类 别 进 行 查询 ; 项 目 搜 寻 : 按 照 项 目 的 名 字 进 行 查 询 ; 对 比 数 据 : 比 较 同 一 张 表 中 的 任 何 测 量 的 趋 势 ;软 件 缺 陷 检 测提 供 多 角 度 的 各 种 缺 陷 类 型 分 析 。 自 动 化 的 缺 陷 检 测 功 能 易 于 使 用 , 定 制 灵 活 , 具 有 图形 化 的 构 建 和 报 表 管 理 图 形 界 面 , 拥 有 先 进 的 消 息 过 虑 器 , 强 大 的 学 习 调 整 知 识 库 。Klocwork能 够 分 析 C/C++ 和 Java 代 码 , 生 成 代 码 问 题 报 告 。安 全 漏 洞 检 测软 件 安 全 性 时 软 件 质 量 中 一 个 重 要 的 、 并 越 来 越 收 到 重 视 的 方 面 。Klocwork 安 全 漏 洞分 析 基 于 其 先 进 的 软 件 缺 陷 分 析 能 力 , 分 离 出 单 独 的 安 全 漏 洞 和 违 反 推 荐 的 安 全 代 码 的 缺 陷程 序 。软 件 架 构 分 析通 过 架 构 分 析 能 够 使 设 计 人 员 及 开 发 人 员 重 新 认 识 他 们 对 该 软 件 的 架 构 理 解 , 并 结 合 代码 分 析 进 行 功 能 强 大 的 影 响 分 析 , 帮 助 开 发 人 员 找 出 软 件 的 架 构 可 能 会 对 高 质 量 代 码 的 开 发有 何 种 影 响 。软 件 度 量 分 析搜 集 统 计 软 件 的 代 码 信 息 , 比 如 , 文 件 数 , 代 码 行 数 , 代 码 复 杂 度 , 继 承 或 循 环 数 量 等 。帮 助 开 发 者 和 维 护 着 宏 观 上 掌 握 程 序 开 发 的 复 杂 度 , 便 于 有 针 对 性 的 进 行 代 码 管 理 。可 定 制 的 代 码 分 析许 多 组 织 有 自 己 独 特 的 编 码 标 准 、 安 全 策 略 和 质 量 目 标 。 可 利 用 klocwork 为 一 些 特 殊问 题 的 分 析 进 行 单 独 定 制 , 用 户 也 可 以 编 制 自 己 的 扩 展 检 查 器 来 完 成 特 定 任 务 。开 发 人 员 IDE 集 成klocwork 可 以 和 现 在 大 多 是 主 流 的 IDE 开 发 环 境 集 成 , 在 开 发 的 早 期 及 时 发 现 可 能 的 代 码漏 洞 从 而 有 效 降 低 开 发 成 本 。第 9 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估Project configuration details:Creation date: Oct 31, 2007Creation time: 1:55:39 PMSoftware Intelligence Engine version: 7.7.2.3Number of filter files used: 0Project name: heartbeatBuild name: build_1Total lines of code (Source LOC): 124,534Total lines of comments (in c/c++ files): 37,739Total number of files analyzed: 531Total number of defects: 1,887Total number of entities: 24,674Total number of relationships:Total number of functions / methods: 3,695Total number of classes / types: 1,520Error DistributionType # %Null pointer may be dereferenced 4 2.08Result of function that may return NULL 164 85.42will be dereferencedSuspicious dereference of pointer in 2 1.04function call before NULL checkMemory Leak - possible 2 1.04Pointer may be dereferenced after it was 2 1.04positively checked for NULLNull pointer may be passed to function 1 0.52that may dereference itNull pointer will be dereferenced 2 1.04Result of function that can return NULL 12 6.25may be dereferencedSuspicious dereference of pointer 2 1.04beforeNULL checkWarning Distribution第 11 页 共 25 页


Type # %Inconsistent Case Labels 1 0.52开 放 源 代 码 软 件 成 熟 度 评 估评 测 分 析通 过 对 heartbeat 模 块 的 分 析 , 我 们 得 出 评 测 结 论 。 代 码 的 整 体 风 格 统 一 , 格 式 工 整 ,总 体 质 量 较 好 。 程 序 结 构 复 杂 度 合 理 , 出 现 较 多 的 问 题 主 要 是 代 码 中 潜 在 的 对 NULL 对 象 的引 用 。 注 释 方 面 , 注 释 丰 富 , 每 个 程 序 文 件 有 基 本 说 明 , 某 些 重 要 的 代 码 有 详 细 解 释 , 给 社区 参 与 创 造 了 较 好 的 代 码 环 境 。软 件 测 试Heartbeat 项 目 没 有 专 门 的 Quality Assurance 组 织 , 但 项 目 中 有 几 位 成 员 主 要 负 责 软件 的 测 试 。 在 网 站 上 无 专 门 的 用 户 报 告 错 误 或 参 与 测 试 的 页 面 , 错 误 的 报 告 主 要 通 过 MailList 和 IRC 进 行 。 项 目 提 供 了 一 个 批 处 理 自 动 测 试 环 境 和 一 些 工 具 供 测 试 者 使 用 , 可 以 方便 的 对 软 件 的 主 要 模 块 进 行 自 动 仿 真 测 试 。 此 外 ,IBM 等 一 些 公 司 也 有 专 门 人 员 帮 助 测 试 和开 发 。Heartbeat 易 用 性 研 究Heartbeat 无 图 形 配 置 、 使 用 、 监 控 环 境 。 软 件 的 主 要 配 置 和 管 理 靠 修 改 配 置 文 件 进 行 ,不 过 , 软 件 提 供 了 一 些 功 能 丰 富 的 命 令 行 工 具 , 这 也 是 服 务 器 软 件 的 一 般 做 法 。 软 件 的 部 署和 配 置 非 常 灵 活 , 缺 点 是 缺 乏 好 的 监 控 工 具 。Heartbeat 可 用 性 性 研 究在 Linux-HA 中 heartbeat 负 责 节 点 健 康 信 息 检 测 、 可 靠 的 节 点 间 通 讯 和 集 群 管 理 等 工作 。 它 拥 有 一 个 高 度 可 定 制 的 软 件 体 系 结 构 , 安 全 的 通 讯 保 障 机 制 和 广 泛 的 跨 平 台 移 植 性 。首 先 , 通 过 上 面 对 heartbeat 架 构 设 计 的 介 绍 我 们 不 难 看 出 ,heartbeat 是 一 个 可 定 制 、可 扩 展 的 软 件 模 组 。 我 们 可 以 通 过 编 写 自 己 的 插 件 模 块 扩 展 诸 如 通 讯 、 认 证 等 功 能 。 由 于 插件 系 统 高 效 、 安 全 的 特 性 并 能 够 和 软 件 核 心 紧 密 的 集 成 , 所 以 可 以 有 效 支 持 一 些 核 心 应 用 的扩 展 。 同 时 对 于 核 心 外 围 应 用 的 扩 展 ,heartbeat 定 义 了 一 整 套 Client Application 应 用架 构 , 用 户 只 要 书 写 自 己 的 HBC(Heartbeat Client) 程 序 , 就 可 以 讲 用 户 定 制 的 新 功 能 集成 到 整 个 集 群 系 统 中 。Heartbeat 中 的 许 多 模 块 本 身 就 是 通 过 这 种 方 式 在 系 统 中 运 行 。 此 外 ,软 件 提 供 了 灵 活 的 脚 本 和 配 置 文 件 , 用 户 可 以 灵 活 的 配 置 系 统 , 或 将 自 己 的 脚 本 加 入 到 系 统运 行 中 去 。第 12 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估Heartbeat 提 供 了 一 些 认 证 机 制 , 例 如 :MD5,SHA 等 , 通 过 这 些 认 证 保 障 软 件 通 讯 的 可靠 性 和 节 点 身 份 的 真 实 性 。 当 然 ,Heartbeat 并 不 提 供 通 讯 数 据 的 高 强 度 加 密 , 这 一 功 能 它有 赖 于 系 统 的 其 它 网 络 安 全 加 密 模 块 来 完 成 。此 外 ,Heartbeat 具 有 良 好 的 跨 平 台 移 植 性 。 程 序 的 开 发 和 书 写 遵 守 Posix 标 准 等 国 际标 准 , 所 依 赖 的 第 三 方 库 , 如 glib、libnet, 也 都 有 较 好 的 平 台 可 移 植 性 。 所 以 ,heartbeat可 以 被 移 植 到 大 多 数 类 Unix 系 统 和 Mac 系 统 。 从 heartbeat 邮 件 列 表 的 统 计 中 可 以 看 出 ,当 前 稳 定 的 版 本 平 台 除 Linux 外 主 要 还 有 FreeBSD 和 Solaris。 另 外 ,windows 操 作 系 统 不在 该 软 件 的 支 持 范 围 内 。社 区 及 项 目 组 织Heartbeat 项 目 是 一 个 典 型 的 服 务 器 端 开 源 软 件 , 项 目 由 几 位 在 HA 应 用 集 群 领 域 活 跃的 软 件 作 者 主 持 , 项 目 借 助 网 络 , 如 Mail List,IRC, 论 坛 等 工 具 进 行 交 流 , 吸 引 大 量 参与 者 参 与 开 发 、 测 试 、 书 写 应 用 文 档 。 同 时 , 项 目 也 吸 引 了 一 些 公 司 的 支 持 与 参 与 。 该 项 目在 实 际 环 境 中 有 大 量 应 用 , 一 些 企 业 也 将 其 作 为 自 己 解 决 方 案 的 一 部 分 , 提 供 了 许 多 应 用 案例 , 取 得 大 量 反 馈 意 见 , 极 大 的 推 动 了 该 软 件 的 应 用 与 发 展 。License 问 题For libraries, which talk to the core modules via IPC or sockets or fork/exec, theyand the header files needed to interface to them should be LGPL.For plugins which are intended to be reusable, they should be licensed LGPL. Thisprobably includes most plugins.Core code which is not part of a public interface should be licensed GPL.软 件 成 熟 度 评 估软 件 成 熟 度 属 性 定 义 与 量 化ID Class Name Weight01 技 术 架 构 设 计 402 代 码 质 量 403 软 件 易 用 性 104 软 件 可 用 性 405 项 目 建 设 与 管 理 206 项 目 的 活 跃 程 度 407 项 目 测 试 情 况 2第 13 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估第 18 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估第 20 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估第 21 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估第 22 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估第 23 页 共 25 页


开 放 源 代 码 软 件 成 熟 度 评 估第 24 页 共 25 页

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!