1999年5月17日

信 息 传 送、 事 件 驱 动
和 分 布 式 工 作 流

郑 白 桦-- 袁 潜 龙


---- 分 布 式 工 作 流 系 统 主 要 是 提 供 一 个 开 放 系 统, 使 用 户 能 透 明 地 应 用 由 不 同 机 型、 不 同 运 行 平 台 组 成 的 异 构 型 计 算 资 源, 借 助 信 息 共 享 的 分 布 式 技 术 完 成 一 个 业 务 流 程。 不 同 的 研 究 机 构 由 于 研 究 方 向 和 所 用 技 术 不 同, 所 提 出 的 具 体 实 现 系 统 也 有 所 不 同。 IBM 公 司 的 基 于" 信 息 传 送" 的 分 布 式 工 作 流 系 统 和 苏 黎 士 大 学 的 基 于" 事 件 驱 动" 的 系 统 较 具 典 型 性 和 可 行 性。

基 于" 信 息 传 送" 的 分 布 式 工 作 流 系 统

----Exotica/FMQM(FlowMark on Message Queue Manager) 系 统 是 美 国IBM 公 司 提 供 的 一 个 分 布 式 工 作 流 管 理 系 统。 它 借 助 于 一 系 列IBM 现 有 产 品(FlowMark 和MQSeries), 以" 信 息 传 送" 为 实 现 机 制。

----FlowMark 模 型 中 定 义 了 一 系 列 相 关 活 动, 每 个 活 动 有 各 自 的 输 入、 输 出 存 储 器, 主 要 用 于 保 存 数 据。 对 于 一 个 特 定 的 输 出 存 储 器 还 定 义 了 一 个 数 据 流, 用 于 说 明 输 出 数 据 的 流 向。 相 关 活 动 之 间 由 控 制 流 来 联 系, 每 个 控 制 流 通 过 自 身 的 状 态(true 或false) 来 决 定 下 一 个 活 动 是 否 该 开 始 运 行。

----FlowMark 可 以 在 多 个 平 台 上 运 行, 如 AIX、OS/2 和Windows 等。 服 务 器 之 间 以 及 服 务 器 和 客 户 机 之 间 可 以 通 过 不 同 的 网 络 协 议 来 传 送 信 息, 如TCP/IP、NetBIOS 或APPC 等。 协 议 的 选 择 主 要 是 依 赖 于 不 同 的 平 台。 但 是 近 几 年 来, 人 们 开 始 要 求 不 同 的 平 台 之 间 能 进 行 交 流, 而 不 管 彼 此 的 网 络 协 议 是 否 相 同, Message Passing/Queuing 便 是 一 个 提 供 该 种 服 务 的 最 普 遍 的 方 法。 它 通 过 在 本 地 建 立 一 个 信 息 队 列, 应 用 程 序 可 以 在 队 列 中 存 入 或 取 回 信 息。 当 一 信 息 被 存 入 队 列 时, 通 信 系 统 负 责 将 其 交 付 给 位 于 远 方 的 某 一 机 器 的 队 列 中。 由 于 传 送 内 容 只 局 限 于 队 列, 所 以 它 可 以 独 立 于 网 络 协 议 进 行 通 信。 目 前, 一 系 列 的 相 关 产 品 已 经 问 世, 如DEC 公 司 的MessageQ、Transarc 公 司 的Recoverable Queuing Services、Novell 公 司 的Tuexdo/q、IBM 公 司 的MQSeries 等,Message Oriented Middleware Association 机 构 正 在 努 力 使 该 机 制 标 准 化。

----Exotica/FMQM 系 统 便 是FlowMark 模 型 与 Message Passing/Queuing 的 有 机 结 合, 它 拥 有 一 系 列 自 主 的 客 户 机, 每 个 客 户 机 有 相 对 独 立 的 功 能, 能 单 独 实 现 流 程 中 的 一 个 或 多 个 步 骤, 而 不 用 与 服 务 器 进 行 频 繁 的 信 息 交 换, 从 而 克 服 了 传 统 的 工 作 流 实 现 技 术 由 于 对 服 务 器 的 依 赖 性 而 产 生 的 性 能 瓶 颈 问 题。 客 户 机 之 间 的 交 流 是 为 了 确 定 某 个 步 骤 的 实 现 与 否, 主 要 靠 信 息 来 传 送。 该 系 统 将 工 作 流 的 执 行 过 程 分 为 建 模 和 执 行 两 阶 段, 分 别 由 建 模 客 户 机、 运 行 客 户 机 和 运 行 服 务 器 来 负 责。

----· 建 模 阶 段

----系 统 通 过 建 模 客 户 机 提 供 一 个 友 好 的 用 户 界 面, 用 户 可 以 借 助 该 图 形 界 面 来 定 义 他 所 需 要 的 工 作 流。 然 后 该 客 户 机 将 用 户 定 义 的 具 体 流 程 进 行 编 译, 即 将 流 程 划 分 为 几 个 部 分, 每 个 部 分 又 包 括 若 干 个 具 体 的 活 动。 通 常 每 个 运 行 客 户 机 都 负 责 一 个 部 分, 多 个 运 行 客 户 机 之 间 通 过 客 户 机 管 理 者 进 行 信 息 交 换。 当 编 译 工 作 结 束 后, 运 行 客 户 机 从 建 模 客 户 机 上 获 取 必 要 的 静 态 信 息( 工 作 流 的 具 体 说 明), 然 后 由 管 理 者 建 立 一 张" 流 程 表", 用 于 记 录 该 客 户 机 与 工 作 流 程 的 关 系, 诸 如 流 程 和 活 动 的 标 识 符、 控 制 流 和 出 口 条 件 等。 然 后 一 个" 流 程 线 程" 便 开 始 运 行, 它 主 要 负 责 一 个 流 程 的 执 行 过 程 中 各 个 运 行 客 户 机 间 的 协 调 关 系。 每 个 运 行 客 户 机 都 有 一 个 信 息 队 列, 实 现 控 制 信 息 和 数 据 的 交 换。 因 此" 流 程 线 程" 首 先 要 为 该 运 行 客 户 机 建 立 该 队 列, 然 后 检 查 该 队 列 所 拥 有 的 信 息 是 否 满 足" 流 程 表" 中 规 定 的 条 件, 从 而 决 定 是 否 进 入 执 行 阶 段。

----· 执 行 阶 段

----一 个 流 程 的 前 期 工 作 准 备 完 毕 后 便 进 入 执 行 阶 段。 在 这 个 阶 段, 每 个 运 行 客 户 机 都 有 一 个" 实 例 表", 主 要 记 录 一 个 流 程 的 多 个 实 例 在 运 行 时 各 个 活 动 的 运 行 情 况, 包 括 诸 如 进 程 标 识 符、 实 例 标 识 符、 活 动 标 识 符、 实 际 输 入 输 出 数 据、 活 动 状 态 以 及 开 始 条 件 的 值 等。

----按 照FlowMark 模 型, 多 个 部 分 之 间 的 前 后 次 序 是 由 控 制 流 决 定 的, 所 以 首 先 应 执 行 那 些 不 受 控 制 流 控 制 的 部 分( 即 流 程 的 开 始 部 分), 然 后 将 输 出 数 据 和 相 应 的 控 制 信 息 按" 流 程 表" 的 定 义 送 入 相 应 的 队 列。 当 某 一 运 行 客 户 机 的" 流 程 线 程" 发 现 队 列 中 有 新 的 信 息, 便 创 建 一 个" 活 动 线 程", 开 始 一 个 具 体 的 活 动, 同 时 在" 实 例 表" 中 建 立 相 关 项 目, 用 于 记 录 该 活 动 的 详 细 执 行 情 况。 该" 活 动 线 程" 通 过 检 查 开 始 条 件 来 决 定 是 否 可 以 开 始 运 行。 若 条 件 还 不 能 满 足, 即 有 些 控 制 信 息 仍 未 接 收 到, 便 在" 实 例 表" 中 该 线 程 的 开 始 条 件 中 标 明 已 取 得 的 控 制 信 息, 然 后 使 该 线 程 处 于" 不 活 动 的" 睡 眠 状 态, 直 到" 流 程 线 程" 因 发 现 新 的 信 息 而 被 唤 醒。 若 条 件 失 败, 该 活 动 便 被 认 为 已 经 终 止, 同 时" 死 路" 的 信 息 被 传 送 到 相 应 的 队 列。 若 条 件 成 功, 便 执 行 该 活 动。 执 行 完 毕 时, 检 查 是 否 符 合 出 口 条 件, 若 不 符 合 则 再 次 执 行, 直 到 符 合 为 止。 最 后 将 输 出 数 据 送 入 相 关 的 队 列, 同 时 将 自 身 队 列 中 的 信 息 和" 实 例 表" 中 相 应 项 目 删 除。

基 于" 事 件 驱 动" 的 分 布 式 工 作 流 系 统

----在 这 种 工 作 流 系 统 中, 一 个 工 作 流 被 看 成 由 若 干 个 服 务 组 成, 每 个 服 务 都 通 过 若 干 事 件 的 完 成 来 提 供, 而 事 件 的 实 现 可 由 客 户 机 来 负 责。 如 果 某 个 客 户 机 在 执 行 过 程 中 需 要 得 到 其 他 客 户 机 的 帮 助, 它 可 以 发 出 服 务 请 求 事 件, 然 后 由 服 务 器 通 知 相 应 的 客 户 机, 该 客 户 机 就 负 责 提 供 这 一 服 务 并 在 事 件 完 成 后 发 出 服 务 应 答 事 件。 如 此 反 复, 由 多 个 客 户 机 协 调 合 作 来 完 成 一 个 工 作 流。

----为 了 实 现 这 一 事 件 驱 动 机 制, 苏 黎 士 大 学 提 出 了Brokers/Services 模 型 和EVE 平 台。

----Brokers/Services 模 型 是 将 一 个 工 作 流 实 现 过 程 中 的 若 干 个 事 件 指 定 给 特 定 的 经 纪 人(Broker) 来 负 责 实 施。 多 个 经 纪 人 之 间 通 过 不 同 的 服 务 要 求 来 取 得 联 系, 从 而 完 成 一 个 工 作 流 程。 在 该 模 型 中, 一 个 完 整 的 工 作 流 管 理 模 型(WfMS) 应 包 括 三 部 分:

  • 部 件(component): 代 表 该 工 作 流 程 中 的 处 理 实 体;
  • 任 务(task): 代 表 由 部 件 执 行 的 任 务;
  • 规 则(rule): 代 表 在 何 时 或 什 么 条 件 下, 部 件 可 以 或 必 须 执 行 某 一 任 务。

----Broker 就 是 一 个 上 面 所 介 绍 的" 部 件", 它 代 表 一 个 特 定 的 处 理 实 体, 拥 有 特 定 的 功 能, 通 过 自 身 功 能 的 实 现 给 别 的 经 纪 人 提 供 服 务。 当 它 需 要 某 一 服 务 时, 则 可 以 通 过" 服 务 请 求" 来 要 求 别 的 经 纪 人 提 供。WfMS 的 一 系 列 任 务 用Services 表 示, 每 个 服 务 都 有 各 自 的 签 名, 包 括 服 务 名 称、 所 需 参 数 以 及 可 能 导 致 的 异 常 与 应 答。 每 个 经 纪 人 的 行 为 由" 事 件- 条 件- 行 为"(event - condition -action, 即ECA) 规 则 来 规 定。

----一 个 事 件 可 以 是 单 一 的, 也 可 以 是 合 成 的。 某 一 特 定 的 服 务 可 由 一 个 或 多 个 经 济 人 来 完 成。 一 个 服 务 在 执 行 过 程 中, 如 果 产 生 了 应 答 或 异 常, 该 服 务 即 被 认 为 是 终 止 了。

----Brokers/Services 模 型 较 适 合 分 布 式 工 作 流 系 统, 一 台 客 户 机 或 客 户 机 上 的 某 一 实 际 应 用 程 序 就 可 以 模 拟 一 个 经 纪 人, 工 作 流 中 的 各 个 活 动 可 用 事 件 来 代 替。 而 多 个 经 纪 人 之 间 的 合 作 可 借 助 EVE 平 台 来 实 现。EVE 即 事 件 驱 动 机 器(Event Engineer), 主 要 负 责 发 现 事 件 并 通 知 相 应 的 经 纪 人 来 执 行 相 关 事 件。 为 了 适 合 分 布 式 工 作 流 的 特 点,EVE 提 供 了 以 下 几 个 功 能:

  • 分 布(Distribution): 由 于 分 布 式 工 作 流 所 牵 涉 的 资 源 往 往 处 于 不 同 的 地 点,EVE 将 位 于 同 一 地 点 的 经 纪 人 用 局 域 网 连 接, 而 局 域 网 之 间 的 经 纪 人 可 以 通 过" 适 配 器"(EVE Adapters) 与 局 域 网 的 服 务 器 取 得 联 系, 多 个 局 域 网 的 服 务 器 又 形 成 一 个 广 域 网。
  • 知 识 库(Runtime Repository): 用 于 保 存 工 作 流 的 某 一 实 例 在 运 行 过 程 中 所 需 的 信 息, 如 工 作 流 的 类 型( 诸 如 名 称、 开 始 与 结 束 事 件、 活 动 的 与 已 结 束 的 实 例 等)、 事 件 的 类 型、 经 纪 人 的 信 息( 诸 如 负 责 的 服 务 器 等) 和 有 关 的ECA 规 则。
  • 事 件 的 发 现 和 通 知(Event Detection and Notification): 负 责 发 现 新 的 事 件。 将 事 件 分 配 给 某 一 经 纪 人 并 通 知 经 纪 人 开 始 该 新 事 件, 事 件 分 配 策 略 包 括 任 意 选 择、 最 佳 选 择、 最 少 选 择 和 综 合 策 略。
  • 事 件 历 史 的 管 理(Event History Management): 以 时 间 为 线 索, 一 系 列 的 事 件 记 录 了 过 去 发 生 的 一 切, 而 这 些 事 件 记 录 组 成 了 事 件 历 史, 可 以 提 供 有 关 经 纪 人 活 动 和 工 作 流 执 行 过 程 的 关 键 信 息, 是 管 理、 分 析 和 优 化 工 作 流 的 数 据 库。 它 一 般 分 布 于EVE 的 各 个 服 务 器 上, 每 一 事 件 在 被 发 现 后 应 作 好 登 记, 以 便 将 其 保 存 在 事 件 历 史 中。

----由 于 当 前 所 讨 论 的 工 作 流 是 由 事 件 驱 动 的, 所 以 如 何 发 现 事 件 并 通 知 相 关 的 经 纪 人 便 成 为 首 要 任 务。 通 常 由 位 于EVE 上 的"Event Detector"(ED) 负 责 发 现 事 件。 事 件 分 为 简 单 事 件 类 型 和 合 成 事 件 类 型。 简 单 事 件 类 型 包 括 服 务 请 求 事 件 类 型、 请 求 证 实 事 件 类 型、 应 答 事 件 类 型 和 异 常 事 件 类 型; 合 成 的 事 件 类 型 则 包 括 连 接 事 件 类 型、 排 斥 事 件 类 型、 串 行 事 件 类 型、 并 发 事 件 类 型、 否 定 事 件 类 型 和 反 复 事 件 类 型。 当 一 个 工 作 流 开 始 运 行 后, 负 责 启 动 的 经 纪 人 就 通 知 服 务 器 即 将 开 始 启 动 事 件, 服 务 器 接 到 通 知 后 就 将 该 信 息 转 交 给ED 来 处 理, 然 后 由ED 将 该 事 件 的 有 关 信 息 记 录 下 来。 在ED 中, 用 事 件 图 来 代 表 相 应 的 事 件。 简 单 事 件 用 单 一 结 点 来 代 表, 合 成 事 件 用 结 点 树 来 代 表, 树 中 结 点 的 父 子 关 系 就 代 表 了 事 件 的 合 成 关 系。 如 果 将 一 个 合 成 事 件 定 义 为((ED1 and ED2)and ED3), 则 可 用 图1 表 示 如 下。

----只 有 简 单 事 件 被 发 现 后, 合 成 事 件 才 有 可 能 产 生。 同 时, 在ED 的 事 件 图 中, 事 件 结 点 还 带 有 相 应 的ECA 规 则。 当 一 个 事 件 结 点 被 发 现 后, 与 之 相 应 的ECA 规 则 就 被 执 行。 通 常ED 是 按 照 时 间 先 后 顺 序 来 执 行ECA 规 则。 当ECA 规 则 被 执 行 后, 新 的 服 务 要 求 就 产 生 了,ED 利 用 事 件 分 配 策 略 来 找 到 合 适 的 经 纪 人 负 责 提 供 该 项 服 务, 并 通 知 该 经 纪 人。 该 经 纪 人 接 到 通 知 后, 就 开 始 执 行 某 事 件,ED 则 再 次 执 行 以 上 所 介 绍 的 步 骤, 直 至 结 束。 整 个EVE 的 运 行 原 理 可 参 见 图2。

----一 个 合 成 事 件 可 以 由 位 于 不 同 地 点 的 简 单 事 件 组 成。 但 是, 每 个 地 点 可 能 都 拥 有 一 个 自 身 的 时 钟 系 统, 那 么ED 在 执 行ECA 规 则 时 就 可 能 遇 到 无 法 判 断 先 后 的 问 题。 为 了 实 现 整 个 系 统 的 协 调 合 作,EVE 提 供 了 一 个 公 共 的 时 间 环 境 即 时 戳(time -stamp)。 针 对 不 同 地 点 的 当 地 时 间lts(local time site), 系 统 提 供 了 一 个 时 间 转 换 功 能gt:local->grobal, 负 责 将 局 部 的 时 间 转 换 为 公 共 的 全 局 时 间gts(global time site)。 事 件 的 时 戳 即 该 事 件 发 生 的 全 局 时 间。 这 样,ED 就 可 以 顺 利 执 行 它 的 任 务 了。

两 者 的 比 较

----以 上 介 绍 的 基 于" 信 息 传 送" 的 系 统 和 基 于" 事 件 驱 动" 的 系 统 都 是 可 行 的 分 布 式 工 作 流 系 统, 但 两 者 各 有 特 点。

----IBM 公 司 基 于" 持 续 性 信 息 传 送" 机 制 的 最 大 优 点 是 增 加 了 系 统 的 错 误 恢 复 能 力。 它 强 调 了 每 个 结 点 的 功 能 独 立 性, 使 得 一 个 结 点 的 失 败 只 影 响 到 与 该 结 点 有 关 的 相 应 工 作 流 实 例 或 某 一 工 作 流 步 骤, 从 而 将 影 响 限 制 在 最 小 范 围, 系 统 构 造 方 面 也 有 更 好 的 升 级 性 和 适 应 性。 但 是 它 没 有 提 供 类 似 于" 事 件 历 史" 的 历 史 记 录, 所 以 该 机 制 现 在 正 在 研 究 如 何 使 用 日 志 文 件 来 管 理 工 作 流, 并 尝 试 用 非 持 续 性 的 信 息 传 送 来 提 高 性 能。

----苏 黎 士 大 学 所 研 究 的 基 于" 事 件 驱 动" 的 机 制 主 要 是 开 发 了Brokers/Services 模 型 和EVE 平 台, 从 而 将 分 布 式 工 作 流 的 实 现 分 为 三 步: 首 先 由 高 层 的 图 形 界 面 提 供 工 作 流 建 模 工 具, 然 后 由 中 层 的Brokers/Services 模 型 执 行 工 作 流, 最 后 由 底 层 的EVE 平 台 提 供 分 布 式 工 作 流 的 实 现 框 架, 主 要 负 责 事 件 管 理、 历 史 记 录 和 工 作 流 执 行 者 之 间 的 交 流。 这 种 模 型 提 供 了 一 个 较 完 善 的 语 言 定 义 机 制, 保 证 建 模 人 员 可 以 了 解 工 作 流 执 行 者 的 实 际 行 为, 组 成 可 以 正 确 地 定 义 工 作 流 说 明 的 执 行 过 程, 执 行 过 程 的 准 确 性 得 到 保 证, 工 作 流 执 行 完 毕 后 的 分 析 也 成 为 可 能。 但 是, 对 活 动 的 工 作 流 或 正 在 运 行 的 组 成 部 件 进 行 修 改 所 带 来 的 影 响 还 没 有 得 到 很 好 地 解 决, 这 将 是 以 后 的 研 究 方 向。

结 语

---- 虽 然 目 前 的 研 究 取 得 了 一 定 的 成 绩, 分 布 式 工 作 流 的 实 现 机 制 在 某 种 程 度 上 也 开 始 发 挥 作 用, 但 是 这 些 模 型 还 是 十 分 理 想 化 的。 例 如 现 今 的EVE 平 台 还 不 能 处 理 异 常 的 恢 复, 在 某 些 长 时 间 运 行 的 工 作 流 应 用 例 子 中, 工 作 流 类 型 的 发 展 变 化 问 题 仍 未 得 到 解 决。 所 以 我 们 还 要 继 续 努 力, 利 用 现 有 的 理 论 研 究 成 果 进 行 深 入 研 究 并 逐 渐 完 善, 力 求 开 发 出 能 够 真 正 支 持 分 布 式 工 作 流 的 系 统。


周报全文频道联系方式:010-68130909
【关于我们】  【广告服务】  【周报发行】  【投稿指南】  【投稿声明】  【联系方式】  【法律声明】
  【媒体手册】  【编读往来】  
Copyright© ccw.com.cn,All rights reserved
中国计算机世界出版服务公司版权所有