5 10 15 20 25 # 基 于 代 码 生 成 的 web 快 速 开 发 平 台 设 计 陈 中 举, 罗 蓉 蓉 ( 长 江 大 学 计 算 机 科 学 学 院, 湖 北 荆 州 434023) 摘 要 : 基 于 数 据 模 型 驱 动 的 代 码 生 成 技 术, 设 计 和 实 现 了 一 个 web 快 速 开 发 平 台 平 台 具 有 较 强 的 通 用 性 和 扩 展 性, 开 发 人 员 只 需 定 义 业 务 功 能 模 块 的 基 本 信 息 以 及 相 关 数 据 模 型, 即 可 完 成 Web 应 用 程 序 的 后 台 和 页 面 编 码 工 作, 且 生 成 的 代 码 具 有 低 耦 合, 易 扩 展 的 特 点, 并 且 支 持 动 态 增 加 删 除 业 务 表 字 段, 以 及 各 种 界 面 的 自 定 义 控 制 此 外, 平 台 提 供 了 审 核 和 简 单 流 程 定 义 机 制 经 测 试, 本 平 台 可 以 帮 助 软 件 开 发 人 员 缩 短 开 发 周 期, 提 高 研 发 效 率, 并 已 经 应 用 到 实 际 web 系 统 开 发 中 关 键 词 : 计 算 机 应 用 ; 代 码 生 成 ;web 开 发 ; 数 据 模 型 中 图 分 类 号 :TP311 Design of Planform for rapid develop Web Application Based on Code Generation Chen Zhongju, Luo Rongrong (Institute of Compute Science, Yantze University, HuBei JingZhou 434023) Abstract: Rapid development platform for web application has been designed and implemented based on the code generation technology of data driven model, which has the generality and expansibility. Developers just need to define basic information and related data model of business, the platform can complete the web application code and the page code.the generated code has the characteristics of low coupling, high scalability, which support dynamic addition and deletion of business table fields. Further, the platform can also provide audit and simple process definition mechanism. After the test, the platform can help software developers shorten the development cycle, improve the efficiency of research, and which has been applied to practical web system development. Keywords: computer application technology; code generatation; web development; data model * 0 引 言 30 35 40 随 着 信 息 化 技 术 和 互 联 网 的 迅 速 普 及, 越 来 越 多 的 应 用 软 件 倾 向 于 采 用 web 方 式 来 实 现, 这 些 应 用 软 件 尽 管 因 为 具 体 的 功 能 和 业 务 有 所 不 同, 但 从 软 件 工 程 的 原 理 来 讲, 其 设 计 过 程 是 大 致 相 同 的 [1] 统 计 发 现, 大 多 数 web 应 用 软 件 在 开 发 的 过 程 中, 由 于 功 能 业 务 需 求, 往 往 需 要 对 各 种 类 似 业 务 进 行 增 删 改 查 以 及 批 量 操 作 审 核 等 设 计 这 样 一 来, 程 序 开 发 员 在 为 这 些 类 似 的 功 能 设 计 花 费 大 量 时 间 去 编 写 测 试, 大 大 降 低 了 开 发 效 率 ; 而 且 一 旦 需 求 发 生 了 变 化, 系 统 的 维 护 和 测 试 也 变 得 相 当 麻 烦 为 了 简 化 web 应 用 软 件 的 开 发, 程 序 设 计 者 也 采 用 了 一 些 开 发 框 架, 如 流 行 的 Struts Spring Hibernate [2] 等, 这 些 开 发 框 架 在 一 定 程 度 上 可 以 有 效 提 高 开 发 效 率, 可 对 于 系 统 业 务 复 杂 或 用 户 需 求 变 化 频 繁 的 情 况, 就 很 难 满 足 设 计 需 求 了 此 外, 研 究 人 员 设 计 了 专 门 的 代 码 生 成 工 具 或 软 件, 但 是 却 不 能 广 泛 用 于 实 际 项 目 开 发 中, 原 因 大 多 由 于 操 作 过 于 复 杂, 不 被 使 用, 或 者 生 成 的 代 码 不 够 智 能, 达 不 到 需 求, 例 如 : 建 模 逻 辑 复 杂, 操 作 不 方 便 ; 用 户 自 定 义 显 示 字 段 编 辑 字 段 和 查 询 字 段, 自 定 义 操 作 ( 增 删 改 ) 某 一 业 务 表 的 数 据 字 段 以 及 自 定 义 复 杂 报 表 等 需 求 不 能 满 足 本 文 针 对 以 上 分 析, 设 计 了 一 个 基 于 代 码 生 成 技 术 的 web 快 速 开 发 平 台 ( 以 下 称 基 金 项 目 : 湖 北 省 自 然 科 学 基 金 项 目 (2011CDC126) 作 者 简 介 : 陈 中 举,(1976-), 男, 讲 师, 信 息 管 理 与 网 络 通 信 E-mail: chenzjdc@163.com - 1 -
WebRDP), 重 点 研 究 该 平 台 的 体 系 结 构 以 及 代 码 生 成 技 术 45 50 55 1 WebRDP 架 构 设 计 由 对 象 管 理 组 织 (OMG) 提 出 的 模 型 驱 动 的 架 构 (MDA), 描 述 了 软 件 系 统 的 设 计 和 实 现 过 程 就 是 建 模 和 模 型 转 换 的 过 程 : 系 统 分 析 时 所 建 立 的 模 型, 称 为 分 析 模 型 ; 设 计 阶 段 所 建 立 的 模 型, 称 为 设 计 模 型 ; 实 现 系 统 的 代 码, 可 以 称 为 实 现 模 型 这 个 过 程 的 实 质 是, 设 计 者 先 建 立 平 台 无 关 的 系 统 模 型 (PIM), 然 后 将 它 逐 步 转 换 成 平 台 特 定 的 模 型 (PSM), 最 后 通 过 这 个 特 定 的 PSM, 使 用 代 码 自 动 生 成 器, 自 动 生 成 大 部 分 的 特 定 平 台 上 的 应 用 程 序 代 码 MDA 的 提 出 改 变 了 软 件 设 计 实 现 和 维 持 的 方 法, 它 提 供 了 一 种 比 中 间 件 层 次 更 高 的 更 抽 象 的 解 决 方 案, 使 将 来 的 互 操 作 和 移 植 变 得 更 加 容 易 和 快 速, 并 且 把 从 模 型 到 代 码 的 自 动 生 成 提 高 到 更 高 的 层 次 [3] 针 对 当 前 web 应 用 开 发 的 特 点, 结 合 OMG 的 MDA 思 想, 本 文 完 成 了 WebRDP 架 构 的 设 计, 该 平 台 主 要 由 三 部 分 组 成 : 数 据 建 模 用 户 访 问 和 平 台 运 行 引 擎 其 总 体 架 构 图 如 图 1 所 示 : 60 65 70 图 1 WebRDP 总 体 架 构 图 Fig. 1 WebRDP architecture diagram WebRDP 架 构 设 计 描 述 如 下 : 1) 数 据 建 模 : 完 成 业 务 对 象 应 用 模 板 的 建 模, 并 将 模 型 信 息 转 换 为 数 据 字 典 信 息, 保 存 到 系 统 模 型 数 据 库 中, 数 据 模 型 包 括 业 务 主 模 型 业 务 描 述 及 相 关 设 置 数 据 模 型 ; 2) 用 户 访 问 : 提 供 对 用 户 的 权 限 控 制 数 据 校 验 以 及 数 据 操 作 等 功 能 ; 3) 平 台 运 行 引 擎 : 一 方 面 完 成 的 数 据 建 模 进 行 分 析, 结 合 模 版 技 术 生 成 代 码, 另 一 方 面 根 据 权 限 控 制 接 收 用 户 的 数 据 访 问 请 求, 结 合 模 版 技 术 生 成 代 码 为 用 户 提 供 访 问 服 务 WebRDP 的 功 能 设 计 实 现 了 权 限 管 理, 系 统 管 理, 业 务 管 理 三 大 功 能 其 中 权 限 管 理 负 责 系 统 数 据 访 问 安 全 控 制 ; 系 统 管 理 为 重 点, 包 含 了 代 码 生 成 器 模 块 管 理 数 据 字 典 管 理 定 制 报 表 管 理 等 核 心 模 块, 业 务 管 理 则 由 代 码 生 成 器 生 成 WebRDP 功 能 结 构 图 如 图 2 所 示 : - 2 -
图 2 WebRDP 功 能 结 构 图 Fig. 2 WebRDP functional structure chart 75 80 2 WebRDP 具 体 设 计 综 合 WebRDP 总 体 架 构 和 功 能 结 构 分 析, 程 序 框 架 代 码 生 成 权 限 控 制 和 系 统 设 置 是 WebRDP 设 计 的 重 要 内 容, 数 据 建 模 和 平 台 运 行 引 擎 是 WebRDP 设 计 的 关 键 技 术 其 中, 程 序 框 架 的 体 系 结 构 要 求 灵 活 可 移 植 性 可 扩 展 性 好, 才 能 满 足 web 实 际 应 用 ; 代 码 生 成 可 以 减 少 程 序 员 对 于 类 似 业 务 的 重 复 编 程 测 试 和 维 护, 规 范 代 码, 提 高 开 发 效 率 ; 权 限 控 制 可 以 控 制 不 同 用 户 灵 活 操 作 操 作 系 统 的 某 些 功 能, 同 时 保 障 系 统 运 行 的 安 全 ; 系 统 设 置 可 以 为 用 户 自 定 义 一 些 功 能 参 数, 同 时 包 括 业 务 审 核 流 程 定 义 自 定 义 报 表 等 功 能 本 节 重 点 介 绍 基 于 数 据 模 型 的 代 码 生 成 设 计 和 程 序 框 架 设 计 2.1 数 据 模 型 设 计 85 90 95 数 据 建 模 是 WebRDP 设 计 中 的 一 项 重 要 工 作, 根 据 数 据 模 型 理 论, 作 为 用 来 描 述 具 体 的 管 理 信 息 系 统 模 型 的 元 模 型 包 括 业 务 流 程 信 息 功 能 模 块 信 息 权 限 控 制 信 息 数 据 库 设 计 信 息 以 及 界 面 设 计 信 息 数 据 模 型 中 的 数 据 对 象 集 是 对 具 体 项 目 所 设 计 的 数 据 字 典 的 统 一 对 象 化 表 示, 由 表 集 合 表 列 集 合 列 对 象 组 成, 对 应 关 系 数 据 模 型 中 的 元 模 型 数 据, 最 终 构 成 了 代 码 生 成 部 件 的 实 际 输 入 支 持 对 象 根 据 自 动 代 码 生 成 的 需 要,WebRDP 数 据 模 型 设 计 包 括 : 1) 业 务 主 模 块 字 段 数 据 模 型 : 用 来 描 述 业 务 表 字 段 的 详 细 信 息 ; 2) 业 务 字 段 数 据 模 型 : 要 在 数 据 库 中 创 建 的 业 务 表 ; 3) 业 务 模 块 描 述 信 息 数 据 模 型 : 描 述 业 务 模 块 的 信 息 ; 4) 模 块 副 表 关 联 信 息 数 据 模 型 : 处 理 与 业 务 表 间 存 在 的 关 联 关 系 ; 5) 业 务 模 块 视 图 显 示 数 据 模 型 : 根 据 模 块 关 联 关 系 生 成 的 数 据 库 视 图 对 象 ; 6) 副 模 块 关 联 数 据 模 型 : 根 据 模 块 关 联 关 系 生 成 的 数 据 字 典 信 息 ; 7) 业 务 模 块 总 体 数 据 模 型 : 包 括 主 表 数 据 字 典 信 息 与 副 模 块 数 据 字 典 信 息 ; 2.2 代 码 生 成 设 计 100 WebRDP 中 的 代 码 生 成 设 计 基 于 数 据 模 型 驱 动, 采 用 了 内 置 模 板 型 和 可 定 制 模 板 型 相 结 合 的 技 术 方 式 对 于 内 置 模 板 型 来 讲, 代 码 的 模 板 与 生 成 工 具 是 一 体 的, 模 板 的 格 式 和 内 容 都 隐 含 在 生 成 工 具 中, 不 能 定 制 对 于 可 定 制 模 板 型 而 言, 代 码 的 模 板 与 生 成 工 具 分 离, 代 码 生 成 工 具 提 供 一 种 标 记 语 言 作 为 模 板 的 编 写 规 则, 用 户 可 通 过 标 记 语 言 编 写 代 码 模 板, - 3 -
从 而 满 足 不 同 应 用 平 台 和 应 用 环 境 的 需 要 [4] 图 3 是 代 码 生 成 的 结 构 模 型 105 110 115 图 3 代 码 生 成 结 构 图 Fig. 3 Code generator structure chart 代 码 生 成 结 构 模 型 描 述 如 下 : 1) 数 据 模 型 建 模 描 述 了 系 统 业 务 数 据 信 息 的 关 系 模 型, 构 成 代 码 生 成 器 的 输 入, 其 模 型 以 采 用 Excel 文 档 直 接 数 据 库 信 息 以 及 UML 文 档 ; 2) 模 板 文 件 采 用 与 Web 容 器 无 关 的 Java 语 言 编 写 的 模 板 引 擎 FreeMarker, 系 统 中 主 要 采 用 该 模 板 技 术 生 成 Java 代 码 文 件 和 页 面 JSP JS 文 件 ; 3) 代 码 生 成 器 作 为 代 码 生 成 结 构 模 型 的 核 心 程 序, 以 数 据 模 型 的 建 模 作 为 输 入, 结 合 模 板 技 术 以 输 出 生 成 后 的 代 码 文 件, 主 要 由 数 据 模 型 管 理 部 件 和 代 码 生 成 部 件 两 部 分 组 成, 其 中 数 据 模 型 管 理 部 件 用 于 将 所 建 的 外 部 数 据 模 型 导 入 并 转 换 到 内 部 定 义 的 数 据 元 模 型 进 行 管 理, 为 代 码 生 成 部 件 提 供 统 一 的 数 据 模 型 访 问 接 口 代 码 生 成 部 件 则 通 过 调 用 FreeMarker 执 行, 在 执 行 过 程 中 对 嵌 入 对 数 据 元 模 型 进 行 解 析, 最 终 生 成 实 际 程 序 代 码 文 件 4) 代 码 文 件 是 代 码 生 成 器 输 出 的 用 来 编 译 执 行 的 源 程 序 文 件 2.3 WebRDP 代 码 结 构 120 125 130 WebRDP 代 码 设 计 选 用 SSH 架 构 [5], 它 将 系 统 结 构 从 职 责 上 分 为 三 层 : 表 示 层 业 务 逻 辑 层 数 据 持 久 层, 其 合 理 的 分 层 方 式 可 以 让 软 件 设 计 人 员 在 短 期 内 搭 建 结 构 清 晰 可 复 用 性 好 维 护 方 便 的 Web 应 用 程 序 此 外, 低 耦 合 高 内 聚 的 代 码 也 是 软 件 开 发 所 提 倡 的, 结 合 面 向 对 象 思 想 和 设 计 模 式 相 关 知 识,WebRDP 的 代 码 分 层 设 计 如 下 : 1)Action : 接 受 浏 览 器 端 请 求, 返 回 数 据 到 浏 览 器 端 ; 2)SuperService : 增 删 改 查 操 作 的 业 务 接 口 层 ; 3)Service : 业 务 逻 辑 处 理 接 口 层 ( 继 承 SuperService); 4)ServiceImpl : 业 务 逻 辑 处 理 层 ( 实 现 Service, 并 继 承 UtilService); 5)UtilService : 执 行 增 删 改 查 操 作 的 业 务 处 理 逻 辑 层 公 用 类 ; 6)SuperDao : 增 删 改 查 操 作 的 数 据 访 问 操 作 接 口 层 ; 7)Dao : 业 务 逻 辑 数 据 访 问 操 作 接 口 层 ( 继 承 SuperDao); 8)DaoImpl : 业 务 逻 辑 数 据 访 问 操 作 层 ( 实 现 Dao, 并 继 承 UtilDao); 9)UtilDao : 执 行 增 删 改 查 操 作 的 数 据 访 问 操 作 层 公 用 类 3 WebRDP 实 现 与 应 用 根 据 WebRDP 框 架 设 计 和 具 体 设 计 的 相 关 知 识, 该 平 台 的 实 现 界 面 如 图 4-4 -
135 140 图 4 WebRDP 的 实 现 界 面 Fig. 4 WebRDP function interface 该 平 台 目 前 已 经 用 于 长 江 大 学 人 力 资 源 管 理 与 考 核 信 息 系 统 长 江 大 学 毕 业 设 计 管 理 系 统 中 以 长 江 大 学 毕 业 设 计 管 理 系 统 为 例, 描 述 WebRDP 快 速 开 发 该 系 统 的 过 程 1) 根 据 长 江 大 学 毕 业 设 计 管 理 业 务 建 模, 篇 幅 所 限, 仅 以 毕 业 设 计 题 目 管 理 为 例, 主 模 块 字 段 数 据 建 模 如 图 5 所 示 : 145 图 5 Excel 文 档 数 据 建 模 Fig. 5 Data modeling of excel document 2) 启 用 代 码 生 成 引 擎 生 成 代 码, 导 入 全 部 数 据 模 型, 生 成 业 务 代 码 刷 新 WebRDP, - 5 -
部 署 项 目, 进 入 系 统, 界 面 如 图 6: 150 155 图 6 系 统 界 面 Fig.6 System interface 由 图 6 可 知, 使 用 WebRDP 设 计 的 web 应 用, 具 有 WebRDP 功 能 结 构 图 中 权 限 管 理 和 系 统 管 理 功 能 以 及 业 务 管 理 功 能, 从 业 务 管 理 功 能 看, 用 户 可 以 对 数 据 进 行 查 询 增 加 预 览 删 除 修 改 等 操 作 除 了 上 述 操 作 外, 系 统 还 提 供 批 量 操 作 审 核 和 简 单 流 程 功 能, 而 且 业 务 是 可 以 灵 活 扩 展 的 另 外, 以 上 界 面 中 的 数 据 字 段 显 示 是 可 以 定 制 的, 包 括 自 定 义 增 加 修 改 查 询 界 面 中 需 要 显 示 的 数 据 字 段, 自 定 义 需 要 导 入 系 统 的 数 据 字 段, 自 定 义 需 要 导 出 的 数 据 字 段, 用 户 只 需 要 设 定 相 应 字 段 相 应 参 数 信 息 即 可 定 制 界 面 显 示 效 果 4 结 论 160 165 本 文 设 计 了 一 种 基 于 代 码 生 成 的 WebRDP, 改 进 了 以 往 代 码 生 成 系 统 建 模 逻 辑 复 杂 操 作 不 方 便, 常 用 功 能 达 不 到 需 求 代 码 不 够 智 能 的 情 况 特 别 在 用 户 自 定 义 显 示 字 段 编 辑 字 段 和 查 询 字 段, 自 定 义 操 作 ( 增 删 改 查 ) 业 务 表 的 数 据 字 段 以 及 自 定 义 复 杂 报 表 等 方 面 有 较 大 的 改 进 经 过 实 际 项 目 应 用, 表 明 WebRDP 可 以 提 高 目 标 系 统 的 可 定 制 性 与 可 维 护 性, 有 效 缩 短 以 数 据 库 为 核 心 的 Web 应 用 软 件 开 发 周 期 同 时, 该 平 台 采 用 数 据 模 型 定 义 多 表 关 联 数 据 基 本 操 作 组 合 以 及 数 据 库 驱 动 的 业 务 逻 辑 的 自 动 生 成, 适 应 了 大 多 数 Web 应 用 软 件 的 实 际 开 发 需 要 由 于 一 些 web 应 用 存 在 复 杂 的 业 务 流 程 和 交 叉 性 逻 辑 控 制, 使 得 代 码 自 动 生 成 技 术 对 后 台 代 码 的 可 重 用 性 受 到 较 大 影 响, 可 视 化 自 定 义 业 务 流 程 将 是 WebRDP 下 一 步 的 研 究 重 点 - 6 -
170 175 [ 参 考 文 献 ] (References) [1] 张 立 勇, 陈 平. 基 于 代 码 生 成 的 Web 信 息 系 统 工 程 化 开 发 方 法 [J]. 计 算 机 科 学,2008,35(5):284-287. [2] 李 刚. 轻 量 级 Java EE 企 业 应 用 实 战 ( 第 三 版 )[M]. 北 京 : 电 子 工 业 出 版 社,2012. [3] 方 乃 钗. 基 于 模 型 驱 动 的 业 务 建 模 平 台 研 究 [J]. 哈 尔 滨 商 业 大 学 学 报 ( 自 然 科 学 版 ),2009,25(4):439-442. [4] 冉 春 娟, 黄 华. 基 于 关 系 数 据 模 型 代 码 生 成 器 的 设 计 与 实 现 [J], 湖 北 大 学 学 报 ( 自 然 科 学 版 ),2010,32(2): 151-157. [5] 朱 敏. 一 种 基 于 SSH 框 架 的 MIS 代 码 生 成 系 统 的 设 计 与 实 现 [J], 南 京 师 范 大 学 学 报 ( 工 程 技 术 版 ),2012, 12(3):49-54. - 7 -