通用软件体系架构的设计与应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过采用该架构,不仅可借鉴以往系统的成功、失败经验 使 开 发 出 的 系 统 的 稳 定 性 得 到 保 证 ,而 且 采 用 成 熟 的 组 件 使 开 发 新 系 统 的 时 间 极 大 缩 短 ,从 而 更 快 更 好 地 为 客 户 提 供 了 软 件 系 统 ,创 造 更 大 价 值 。
通过结合使用 Web 负载均衡、组件负载均衡、数据库/群 件 的 集 群 技 术 ,可 以 通 过 横 向 扩 充 服 务 器 ,使 得 系 统 能 够 处 理 更 多 并 发 请 求 ,满 足 最 大 型 企 业 的 苛 刻 运 行 需 求 。
Presentation (表现层):系统使用 者通过 Browser 向 WebServer 发出 请求,这些请求将 被 WebServer 传递到后台的 Application Server 中进行业务逻 辑的操作,并且 适时的向 WebServer 进行反应 。当 WebServer 收到 Application Server 的 反 应以后,进行解 释处理生成 Html 页面,表现 层的主要工作 就 是处理客户端 的请求,控制与 客户端的交互 ,显示请求处 理 的结果。
收稿日期:2008-01-20 E-mail:yuefang.gao@gmail.com 作者简介:高月芳 (1979-),女,河南周口人,硕士,讲师,研究方向为多媒体技术、软件工程等; 綦羽 (1973-),女,内蒙古牙克石人,硕 士,讲师,研究方向为软件工程; 王栋 (1977-),女,河南南阳人,硕士,讲师,研究方向为多媒体技术。
视图是用户看到并与之交互的界面。对老式的 Web 应用 程序来说,视图就是由 HTML 元素组成的界面,在新式的 Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但一些 新的技术已层出不穷,它们包括 Macromedia Flash 及 XHTML 等,如何处理应用程序的界面变得越来越有挑战性。MVC 一 个很大的好处是它能为你的应用程序处理很多不同的视图。 在 视 图 中 其 实 没 有 真 正 的 处 理 发 生 ,不 管 这 些 数 据 是 联 机 存 储的还是一个雇员列表,作为视图来讲,它只是作为一种输出 数据并允许用户操纵的方式。
该架构是一个基于模型-视图-控制器(model-view-controller,MVC) 的软件开发平台,提供丰富的、稳定的、经过多个项 目验证的构件和框架 。 [1] 包括如下内Fra Baidu bibliotek:
(1) 页 面 级 构 件 :网 站 布 局 、菜 单 、编 辑 / 查 看 视 图 、可 编 辑 Grid 列表视图、可编辑 Tree Grid 列表视图、树、TAB 页、基础输 入构件(文本、日期、数字、下拉等)、高级输入构件(HTML 文本
总体技术架构如图 1 所示。
浏览器客户端
HTML/XML/XSL
业务流 流程跟踪 查询定位
表 程处理 示 层 维护管理 统计分析 流程变更
页面引擎
流程引擎
应
用
业务引擎
层
规则引擎
核心业务逻辑
数
据 层
LDAP ORACLE
SYBASE
其它系统 J2EE COM+ XML
管理客户端 J2EE COM+ XML
1 架构设计
该架构基于 Java 开发,可以部署于 Tomcat、Weblogic、 JBoss、Oracle AS、Websphere 等各类应用服务器上 ,可 [2-3] 部署在 单机和分布式环境中或跨平台部署。也可与 IIS/.NET 进行集 成,同样运行在基于.NET 框架和 IIS 的环境下,前端完全通过 IIS 进行解析和处理,通过转发适配器和后端 Tomca/Jboss 等 Java 运行环境集成。 1.1 总 体 架 构
图 1 总体架构
1.2 MVC 体 系 结 构模 式 的 应 用 该架构采用了最流行的模型-视图-控制器 MVC 体系结
构模式 。 [6-8] MVC 的处理过程是首先控制器接收用户的请求,并决定
应 该 调 用 哪 个 模 型 来 进 行 处 理 ,然 后 模 型 用 业 务 逻 辑 来 处 理 用 户 的 请 求 并 返 回 数 据 ,最 后 控 制 器 用 相 应 的 视 图 格 式 化 模 型 返 回 的 数 据 ,并 通 过 表 示 层 呈 现 给 用 户 。
Application(应用层):Application 层实现全部的业务逻辑, Application Server 中部署了许多应用程序的引擎,包括流程引 擎 、业 务 引 擎 、页 面 引 擎 、规 则 引 擎 和 核 心 业 务 逻 辑 。 它 们 接 受 WebServer 上传来的请求,完成各种业务逻辑的判断和处 理。此外,Application 层还体现了对后台业务数据的访问控 制 ,也 就 是 说 ,只 有 通 过 应 用 程 序 才 能 实 现 对 数 据 库 的 操 作 , 这 样 就 确 保 了 业 务 数 据 的 安 全 性 。独 立 的 应 用 层 方 便 了 系 统 的扩展和更新。
整 个 系 统 采 用 逻 辑 上 的 三 层 次 架 构[4-5]:展 现 层 ,应 用 逻 辑 层及数据层。三层次体系结构模式是客户机/服务器模式之 上 的 扩 展 ,是 目 前 较 为 流 行 的 体 系 结 构 ,较 好 地 解 决 了 原 有 两 层 客 户 机 / 服 务 器 模 式 存 在 的 问 题 ,并 带 来 了 很 多 好 处 :
高月芳,綦羽,王栋:通用软件体系架构的设计与应用
2009,30 (2) 349
(7) 其 它 构 件 :如 基 础 数 据 构 件 提 供 对 常 用 编 码 、枚 举 、分 类 、状 态 等 的 维 护 机 制 。 菜 单 管 理 、用 户 密 码 重 置 、数 据 结 构 导 出 、缓 存 管 理 和 配 置 等 系 统 配 置 构 件 提 供 对 系 统 实 施 和 维 护的功能。
(3) 规 则 构 件 :异 步 驱 动 构 件 、同 步 驱 动 构 件 、规 则 解 析 构 件 、定 时 构 件 。此 类 构 件 支 持 对 特 殊 的 业 务 规 则 ,比 如 单 据 对 冲 、提 醒 和 报 警 等 逻 辑 提 供 驱 动 机 制 和 开 发 框 架 ;
(4) 工作流构件:流程设计构件、流程引擎、自动分派、自 动 处 理 、日 志 记 录 等 构 件 。 此 类 构 件 可 通 过 定 制 的 方 式 让 单 据 在 不 同 的 人 员 / 部 门 间 流 动 ,驱 动 相 关 业 务 数 据 状 态 的 更 改 和对流程的跟踪和回塑;
摘 要:基于实际 软件开发经验,根据用户和业 务系统的内在 一致性,提出 了一种可用于不 同行业、不同 业务的通用软 件体 系架 构。通过采用该架 构,不仅借鉴了以 往系统的成功 、失败经验使开发 出的系统的稳 定性得到保证,且 采用成熟的组 件使 开发 新系统的时间极 大缩短,从而更 快更好地为客户 提供了软件系 统,创造更大价值 。 关键 词:软件体系架 构; 架构设计; 三层架构; 模型 -视图-控制器; 构 件 中图 法分类号:TP302.1 文 献标识码:A 文章编号:1000-7024 (2009) 02-0348-03
Design and application of general software architecture
GAO Yue-fang, QI Yu, WANG Dong (Research Center of Human Computer Interaction, College of Informatics, South China Agricultural University,
Database (数据服务层):Database-数据库服务层的功能是 存 储 海 量 数 据 ,提 供 快 捷 的 工 具 便 于 数 据 的 查 询 和 更 新 ;提 供 备 份 和 恢 复 机 制 确 保 数 据 存 储 的 安 全 性 ;提 供 访 问 身 份 和 权 限管理确保数据访问的安全性。Achievo 应用框架平台支持 多种主流关系型数据库,如:Microsoft SQL Server、Oracle、MySQL、Sybase、Informix 等。
0引言
软 件 开 发 过 程 中 总 会 碰 到 表 面 上 看 是 各 种 各 样 的 ,仔 细 分析内部结构却相同的系统,比如每一个系统都存在添加、删 除、修改、查询这 4 个基本功能,一些 OA 或业务系统总存在 业 务 流 程 的 流 转 等 。为 避 免 每 开 发 一 个 系 统 都 要 从 底 层 编 写 代码和各个模块,同时为提高系统的开发速度和质量,让开发 人员把精力更多地集中在用户的需求上而不是代码的编写 上,本文基于实际的软件开发经验,根据用户和业务系统的内 在一致性,提出了一种可用于不同行业,不同业务的通用软件 体系架构。
(5) 权限管理构件:权限校验和管理构件 (包括 URL 权限 控 制 、对 象 级 权 限 控 制 、数 据 列 级 权 限 控 制 、数 据 行 级 权 限 控 制 )、登 录 构 件 、权 限 组 管 理 ;
(6) 组织架构构件:组织类型、岗位类型、组织分层规则、 组 织 信 息 、人 员 、组 织 关 系 树 等 构 件 ,此 类 构 件 提 供 无 限 多 层 组 织 架 构 和 岗 位 管 理 的 构 件 ,并 可 基 于 岗 位 、部 门 、人 员 与 权 限 组 进 行 关 联 ,基 于 岗 位 和 个 人 与 流 程 责 任 人 / 组 关 联 ;
Guangzhou 510642, China)
Abstract:Based on the practical experience of developing software, for the consistency between customers and business system. A general software architecture is described, which is used on various businesses. By adopting the architecture, the systems' stability can be more guaranteed from the pasted successful or failed experience. The new project life cycle is decreased by using more mature components. Moreover, better software architecture and more value is provided for customers. Key words:software architecture; architecture design; 3-tier architecture; model-view-controller; component
框、多极联动、树形选择、查找选择等) 等构件,此类构件基本 满足本项目的需求;
(2)业务逻辑构件:增加、删除、更新、批量增加、批量删除、 批 量 更 新 、全 文 搜 索 、数 据 关 联 、搜 索 语 句 分 析 、错 误 处 理 、数 据操作日志等构件。此类构件使得本系统 90%以上的业务逻 辑不需要编写 Java 代码而直接使用这些构件完成数据的搜 索 、更 新 等 操 作 ;
在三层次体系结构下,业务逻辑层负责所有逻辑的处 理,客户端只 是完成信息的显 示和数据的反 馈提交,客户 端 只 看 到 经 过 中 间 层 处 理 过 后 的 数 据 ,进 而 降 低 了 网 络 数 据 的 传输量。
业 务 逻 辑 在 中 间 层 上 运 行 ,从 而 充 分 利 用 了 服 务 器 的 处 理 能 力 。同 时 通 过 多 进 程 / 线 程 、无 状 态 组 件 、组 件 缓 冲 池 、数 据 库 连 接 缓 冲 池 等 技 术 优 化 系 统 的 并 发 性 能 ,在 大 并 发 用 户 量 的 情 况 下 ,仍 然 能 够 确 保 系 统 的 处 理 性 能 。
348 2009,30 (2)
计 算计机算工机工程程与与设设计计 CCoommppuuteter rEEnngginineeerirninggaannddDDeesisgignn
信息化技术
通用软件体系架构的设计与应用
高月芳, 綦 羽, 王 栋 (华南农业大学 信息学院人机交互研究中心,广东 广州 510642)
通过结合使用 Web 负载均衡、组件负载均衡、数据库/群 件 的 集 群 技 术 ,可 以 通 过 横 向 扩 充 服 务 器 ,使 得 系 统 能 够 处 理 更 多 并 发 请 求 ,满 足 最 大 型 企 业 的 苛 刻 运 行 需 求 。
Presentation (表现层):系统使用 者通过 Browser 向 WebServer 发出 请求,这些请求将 被 WebServer 传递到后台的 Application Server 中进行业务逻 辑的操作,并且 适时的向 WebServer 进行反应 。当 WebServer 收到 Application Server 的 反 应以后,进行解 释处理生成 Html 页面,表现 层的主要工作 就 是处理客户端 的请求,控制与 客户端的交互 ,显示请求处 理 的结果。
收稿日期:2008-01-20 E-mail:yuefang.gao@gmail.com 作者简介:高月芳 (1979-),女,河南周口人,硕士,讲师,研究方向为多媒体技术、软件工程等; 綦羽 (1973-),女,内蒙古牙克石人,硕 士,讲师,研究方向为软件工程; 王栋 (1977-),女,河南南阳人,硕士,讲师,研究方向为多媒体技术。
视图是用户看到并与之交互的界面。对老式的 Web 应用 程序来说,视图就是由 HTML 元素组成的界面,在新式的 Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但一些 新的技术已层出不穷,它们包括 Macromedia Flash 及 XHTML 等,如何处理应用程序的界面变得越来越有挑战性。MVC 一 个很大的好处是它能为你的应用程序处理很多不同的视图。 在 视 图 中 其 实 没 有 真 正 的 处 理 发 生 ,不 管 这 些 数 据 是 联 机 存 储的还是一个雇员列表,作为视图来讲,它只是作为一种输出 数据并允许用户操纵的方式。
该架构是一个基于模型-视图-控制器(model-view-controller,MVC) 的软件开发平台,提供丰富的、稳定的、经过多个项 目验证的构件和框架 。 [1] 包括如下内Fra Baidu bibliotek:
(1) 页 面 级 构 件 :网 站 布 局 、菜 单 、编 辑 / 查 看 视 图 、可 编 辑 Grid 列表视图、可编辑 Tree Grid 列表视图、树、TAB 页、基础输 入构件(文本、日期、数字、下拉等)、高级输入构件(HTML 文本
总体技术架构如图 1 所示。
浏览器客户端
HTML/XML/XSL
业务流 流程跟踪 查询定位
表 程处理 示 层 维护管理 统计分析 流程变更
页面引擎
流程引擎
应
用
业务引擎
层
规则引擎
核心业务逻辑
数
据 层
LDAP ORACLE
SYBASE
其它系统 J2EE COM+ XML
管理客户端 J2EE COM+ XML
1 架构设计
该架构基于 Java 开发,可以部署于 Tomcat、Weblogic、 JBoss、Oracle AS、Websphere 等各类应用服务器上 ,可 [2-3] 部署在 单机和分布式环境中或跨平台部署。也可与 IIS/.NET 进行集 成,同样运行在基于.NET 框架和 IIS 的环境下,前端完全通过 IIS 进行解析和处理,通过转发适配器和后端 Tomca/Jboss 等 Java 运行环境集成。 1.1 总 体 架 构
图 1 总体架构
1.2 MVC 体 系 结 构模 式 的 应 用 该架构采用了最流行的模型-视图-控制器 MVC 体系结
构模式 。 [6-8] MVC 的处理过程是首先控制器接收用户的请求,并决定
应 该 调 用 哪 个 模 型 来 进 行 处 理 ,然 后 模 型 用 业 务 逻 辑 来 处 理 用 户 的 请 求 并 返 回 数 据 ,最 后 控 制 器 用 相 应 的 视 图 格 式 化 模 型 返 回 的 数 据 ,并 通 过 表 示 层 呈 现 给 用 户 。
Application(应用层):Application 层实现全部的业务逻辑, Application Server 中部署了许多应用程序的引擎,包括流程引 擎 、业 务 引 擎 、页 面 引 擎 、规 则 引 擎 和 核 心 业 务 逻 辑 。 它 们 接 受 WebServer 上传来的请求,完成各种业务逻辑的判断和处 理。此外,Application 层还体现了对后台业务数据的访问控 制 ,也 就 是 说 ,只 有 通 过 应 用 程 序 才 能 实 现 对 数 据 库 的 操 作 , 这 样 就 确 保 了 业 务 数 据 的 安 全 性 。独 立 的 应 用 层 方 便 了 系 统 的扩展和更新。
整 个 系 统 采 用 逻 辑 上 的 三 层 次 架 构[4-5]:展 现 层 ,应 用 逻 辑 层及数据层。三层次体系结构模式是客户机/服务器模式之 上 的 扩 展 ,是 目 前 较 为 流 行 的 体 系 结 构 ,较 好 地 解 决 了 原 有 两 层 客 户 机 / 服 务 器 模 式 存 在 的 问 题 ,并 带 来 了 很 多 好 处 :
高月芳,綦羽,王栋:通用软件体系架构的设计与应用
2009,30 (2) 349
(7) 其 它 构 件 :如 基 础 数 据 构 件 提 供 对 常 用 编 码 、枚 举 、分 类 、状 态 等 的 维 护 机 制 。 菜 单 管 理 、用 户 密 码 重 置 、数 据 结 构 导 出 、缓 存 管 理 和 配 置 等 系 统 配 置 构 件 提 供 对 系 统 实 施 和 维 护的功能。
(3) 规 则 构 件 :异 步 驱 动 构 件 、同 步 驱 动 构 件 、规 则 解 析 构 件 、定 时 构 件 。此 类 构 件 支 持 对 特 殊 的 业 务 规 则 ,比 如 单 据 对 冲 、提 醒 和 报 警 等 逻 辑 提 供 驱 动 机 制 和 开 发 框 架 ;
(4) 工作流构件:流程设计构件、流程引擎、自动分派、自 动 处 理 、日 志 记 录 等 构 件 。 此 类 构 件 可 通 过 定 制 的 方 式 让 单 据 在 不 同 的 人 员 / 部 门 间 流 动 ,驱 动 相 关 业 务 数 据 状 态 的 更 改 和对流程的跟踪和回塑;
摘 要:基于实际 软件开发经验,根据用户和业 务系统的内在 一致性,提出 了一种可用于不 同行业、不同 业务的通用软 件体 系架 构。通过采用该架 构,不仅借鉴了以 往系统的成功 、失败经验使开发 出的系统的稳 定性得到保证,且 采用成熟的组 件使 开发 新系统的时间极 大缩短,从而更 快更好地为客户 提供了软件系 统,创造更大价值 。 关键 词:软件体系架 构; 架构设计; 三层架构; 模型 -视图-控制器; 构 件 中图 法分类号:TP302.1 文 献标识码:A 文章编号:1000-7024 (2009) 02-0348-03
Design and application of general software architecture
GAO Yue-fang, QI Yu, WANG Dong (Research Center of Human Computer Interaction, College of Informatics, South China Agricultural University,
Database (数据服务层):Database-数据库服务层的功能是 存 储 海 量 数 据 ,提 供 快 捷 的 工 具 便 于 数 据 的 查 询 和 更 新 ;提 供 备 份 和 恢 复 机 制 确 保 数 据 存 储 的 安 全 性 ;提 供 访 问 身 份 和 权 限管理确保数据访问的安全性。Achievo 应用框架平台支持 多种主流关系型数据库,如:Microsoft SQL Server、Oracle、MySQL、Sybase、Informix 等。
0引言
软 件 开 发 过 程 中 总 会 碰 到 表 面 上 看 是 各 种 各 样 的 ,仔 细 分析内部结构却相同的系统,比如每一个系统都存在添加、删 除、修改、查询这 4 个基本功能,一些 OA 或业务系统总存在 业 务 流 程 的 流 转 等 。为 避 免 每 开 发 一 个 系 统 都 要 从 底 层 编 写 代码和各个模块,同时为提高系统的开发速度和质量,让开发 人员把精力更多地集中在用户的需求上而不是代码的编写 上,本文基于实际的软件开发经验,根据用户和业务系统的内 在一致性,提出了一种可用于不同行业,不同业务的通用软件 体系架构。
(5) 权限管理构件:权限校验和管理构件 (包括 URL 权限 控 制 、对 象 级 权 限 控 制 、数 据 列 级 权 限 控 制 、数 据 行 级 权 限 控 制 )、登 录 构 件 、权 限 组 管 理 ;
(6) 组织架构构件:组织类型、岗位类型、组织分层规则、 组 织 信 息 、人 员 、组 织 关 系 树 等 构 件 ,此 类 构 件 提 供 无 限 多 层 组 织 架 构 和 岗 位 管 理 的 构 件 ,并 可 基 于 岗 位 、部 门 、人 员 与 权 限 组 进 行 关 联 ,基 于 岗 位 和 个 人 与 流 程 责 任 人 / 组 关 联 ;
Guangzhou 510642, China)
Abstract:Based on the practical experience of developing software, for the consistency between customers and business system. A general software architecture is described, which is used on various businesses. By adopting the architecture, the systems' stability can be more guaranteed from the pasted successful or failed experience. The new project life cycle is decreased by using more mature components. Moreover, better software architecture and more value is provided for customers. Key words:software architecture; architecture design; 3-tier architecture; model-view-controller; component
框、多极联动、树形选择、查找选择等) 等构件,此类构件基本 满足本项目的需求;
(2)业务逻辑构件:增加、删除、更新、批量增加、批量删除、 批 量 更 新 、全 文 搜 索 、数 据 关 联 、搜 索 语 句 分 析 、错 误 处 理 、数 据操作日志等构件。此类构件使得本系统 90%以上的业务逻 辑不需要编写 Java 代码而直接使用这些构件完成数据的搜 索 、更 新 等 操 作 ;
在三层次体系结构下,业务逻辑层负责所有逻辑的处 理,客户端只 是完成信息的显 示和数据的反 馈提交,客户 端 只 看 到 经 过 中 间 层 处 理 过 后 的 数 据 ,进 而 降 低 了 网 络 数 据 的 传输量。
业 务 逻 辑 在 中 间 层 上 运 行 ,从 而 充 分 利 用 了 服 务 器 的 处 理 能 力 。同 时 通 过 多 进 程 / 线 程 、无 状 态 组 件 、组 件 缓 冲 池 、数 据 库 连 接 缓 冲 池 等 技 术 优 化 系 统 的 并 发 性 能 ,在 大 并 发 用 户 量 的 情 况 下 ,仍 然 能 够 确 保 系 统 的 处 理 性 能 。
348 2009,30 (2)
计 算计机算工机工程程与与设设计计 CCoommppuuteter rEEnngginineeerirninggaannddDDeesisgignn
信息化技术
通用软件体系架构的设计与应用
高月芳, 綦 羽, 王 栋 (华南农业大学 信息学院人机交互研究中心,广东 广州 510642)