本文由edobnet贡献
应用技术
的
设计与实现
郑 琨 ! 徐汀荣
&;苏州大学
计算机科学与技术!苏州 -9:;;< ’ 摘 要# 应用框架是当代
软件技术发展的新阶段#它标志着现代应用开发已从
程序复用进入到设计重用 阶段 $ 通过对一般应用
系统的研究 # 本文详细介绍了一种通用快速开发框架的设计过程 $ 关键词# 框架% #$%&; % ’()#$%&; % 对象&;关系映射
引 言
随着 "#$% 技术的推广! 越来越多的公司正在向
数据库层!用于对象的持久化储存!即数据的存放" 在这三个层次中!系统的主要功能和业务逻辑在 应用服务层进行处理" 系统在应用服务层应该解决以 下四个
问题$
"#&;’ 转型采用"#$% 开发系统 " 但是 ! 如何方便 # 快速 #
灵活地创建稳定的软件系统是一个亟待解决的问题! 构建开发框架就是一个很好的解决
方案" 开发框架是 项目软件开发过程中提取特定领域软件的共 性部分 形成的体系结构!不同领域的软件项目有着不同的框 架类型" 综合各种对软件框架的定义!可以看出框架 的特点有 $ 它是面向特定领域的可复用软件制品 % 框 架反映了应用的体系结构! 具有部分实现的特性%基 于框架开发应用是通过扩展过程实现的%框架由一组 相互协作的构件组成 "
!实体类的描述方式# 在对数据库表的操作中!
通常要把关系数据库中的数据表首先转化 为一个持 久化类!然后通过对该类的操作来实现对数据表的操 作" 这样的类在本框架中定义为数据实体类" 与 ,-$$ 中的实体对象不同的是 ! 它可以包含数据表中的一条 或多条记录"
!数据的存取方式 # 即实体类的持久化问题 " 通
常采用数据库来永久存储数据实体!这就需要解决同 数据库的交互问题 "
!
开发框架概述
本 开 发 框 架 建 立 在 微 软 推 出 的 "#+* 平 台 上 !具
!业务逻辑的组织方式# 在面向对象的系统中!
业务逻辑是通过对象间的消息传递来实现的 " 在这个 部分!为了保证逻辑处理的正确性和可靠性!还 必须 支持事务处理的能力 "
有良好的通用性!既适用于软件开发企业对多类应用 软件的开发 ! 特别是当前需求很大的电子政务和企业 信息化&;$() 等’之类的软件!同时也可作为传统企业 自行开发管理软件的工具" 本框架具体包含三个部分
!业务服务的提供方式#为了保证系统的灵活性和
封装性 !系统必须有一个层来封装这些业务逻辑 !向客 户端提供服务!同时作为系统各个模块间功能调用的接 口!保证系统的高内聚和低耦合性" 表示层&;./)"#+* 页 面或 *012345 表单界面’通常只同这个部分交互!而不 是直接调用业务逻辑层或者数据实体的功能" 根据上述四个问题可将应用服务层分为下面 四 个子层" !"" 实体定义层 实体定义层实际上是一些描述数据实体 结 构 的
现 代 计 算 机 ! 总 第 二 一 五 期 "
的内容 $ 完整的应用软件系统架构的规范 # 数据 访问 中间件以及简化软件开发的辅助工具"
"
软件系统架构规范的设计
!!"设计思路 对于典型的应用系统来说!通常可以把系统分成三
个层次$用户界面层!用于同用户的交互!可以是 *&;+ 浏览器用户或传统客户端%应用服务层!应用服务层封 装了对数据的访问和业务逻辑的处理!同时负责同用户 界面层的交互! 应用服务层是三层应用系统的核心层%
678 文件的集合 " 这些 678 文件用于确定实体类的
结构!且符合某种对象实体描述语言的规范" 数据访
! ! " # $ % &; ’ "! ( ) * + % "
万方数据
,--./!
应用技术
问 层 借 助 于 实 体 定 义 层 的 实 体 描 述 来 实 现 " #$ %&;’’()* ! +%, 文件中包含以下几个方面的内容" 系数据库&;数据访问层建立在此基础上! 对于不同的 应用系统&;通过配置文件$扩展以及子类 化中间件中 相关的一些类 &;可以很容易实现数据访问层 ! 中间件 按其功能可以划分为如下三层" !$" 实体持久化管理层 实体持久化管理层位于中间件的最底层&;通过封 装 %489:; 7&;@&; AB2C(D/B 来直接与数据 库 进 行 交 互! 这一层提供的主要功能有如下几种"
! 数据表信息 #包括数据表名称 $描述 % " 字段信息&;包括字段名称$字段描述$字段数据
类型 $ 字段长度 $ 字段约束 $ 字段权限 $ 字段界面 显示 ’如显示为文本框$下拉框或 -./-0123 (等信息% # 关联信息&;包括关联表名称$关联字段等%
$
查询语句信息&;即对该表进行查询或操作的基
本 45, 语句%
% 关键字信息 ) !!"数据访问层
数据访问层通过封装 67"89:; 来对数据库进行 访问! 这个部分要完成的
工作是将数据实体保存到数 据库中&;或者从数据库中读取数据实体! 数据访问层 建立在一个通用的数据访问中间件上&;不直接操纵数 据库&; 而是通过中间件提供的数据访问服务来进行! 中间件数据库访问服 务作为应用程序同数据库之间 的中介者&;能够有效防止对数据库的不安全操作! !"" 业务逻辑层 业务逻辑层包含各种业务规则和逻辑的实现! 是 整个应用系统中最为复杂的部分! 业务规则层的设计 通常需要进行很好的建模工作! 业务规则的建模&;一 般采用 <%, 来进行&;可 以 使 用 <%, 的 序 列 图 $状 态 图 $ 活动图等来为业务规则建模 ! !#"业务外观层 业务外观层为 =/1 层提供处理 $ 浏览和操作的 界面! 业务外观层用作隔离层&;它将用户界面与各种 业务功能的实现隔离开来! 业务外观层将已经完成的 系统功能&;根据各个模块的需要&;对业务规则进 行高 层次的封装! 整个系统的结构如图 > 所示 ? 箭头表示各层次之 间的调用关系!
!"#$% !"#$%
!对象#关系数据库映射服务!"#$ %&;’’()*+ "#$ %&;’’()* 通 常 的 做 法 是 将 程 序 中 的 类 映 射
到数据库的一个或多个表! 在中间件中&;数据实体的 表 现 上 采 用 了 另 外 一 种 方 式 &; 那 就 是 利 用 7&;@&;4/@! 7&;@&;4/@ 是 微 软 在 67"89/@ 中 新 提 出 的 数 据 对 象 &;能 够容纳多条记录集! 7&;@&;4/@ 类似于一个内存数据库&; 由 多 个 7&;@&;;&;1E/ 组 成 &; 而 一 个 7&;@&;;&;1E/ 又 有 多 个
F2EGH) ! 这样的结构可以同数据库很好地进行映射! 中 间 件 的 核 心 类 库 定 义 了 :)@(@I 类 &; 这 个 类 继 承 了 7&;@&;4/@ 并添加了一些方法&;用来作为实体类! 由前面 的介绍可以知道 &; 实体类的具体结构通过 +%, 文件
来确定! 因此每个实体类具体的结构由一系列的类构 造器在运行时刻根据相应的 +%, 定义文件来生成!
"数据操纵语句及查询服务
在中间件设计的系统架构中&;对数据库进行操作 的 45, 语句不在程序中硬编码 &; 而是通过实体 定义 层 中 的 +%, 文件来描述! 这些操纵语句中的基本部 分 &;如数据的插入 $删除 $修改 $查询等语句可以通过辅 助开发工具生成&;这样增强了系统的易改性和灵活性!
#事务处理服务
中 间 件 可 以 利 用 =()D2JK F"%L 事 务 处 理 机 制 的强大功能&;使在应用程序中能够充分使用事务处理 的功能 &;保证应用系统的稳定性和可靠性 ! 当某个类需要使用事务处理功能时&;首先使该类 继 承 4IK@/H8:)@/B’B(K/4/BC(-/K 名 称 空 间 下 的 4/B0 C(-/DF2H’2)/)@ 类&;然后使用如下方式申明该类使用
!"#$%
! " #
!"#$%
$ %
的 事 务 类 型 " M;B&;)K&;-@(2) N;B&;)K&;-@(2)"’@(2)8$/0 OG(B/DPQ! 系统在该类第一次被调用时&;自动在 F"%L 服务中
注册该类&;使得应用程序可以使用 F"%L 的事 务处理功能! !%"实体缓冲管理层 系统中的实体对象在第一次创建后 &; 就被中间件 缓存起来&;当系统第二次需要访问该对象时&;不 需要 再从头创建这个对象 &; 而只需要从缓存中取出即可 &; 这就是中间件提供的实体对象缓存服务! 同时提供的 服务还有实体对象的查找服务&;即从这些缓存的实体 对象中寻找相应的实体对象的服务!
!"#$%
!"#$
图 > 系统结构图
现 代 计 算 机 ! 总 第 二 一 五 期 "
!
数据访问中间件的设计
中间件实现了通用的数据访问功能&;支持多种关
!
万方数据
! " # $ % &; ’ "! ( ) * + % ,--./!
" !
应用技术
!!"实体控制层 实体控制层主要作用是向数据访问层的 上 一 层 ! 业务逻辑层 " 提供服务接口 # 使得用户可以透明地对 实体对象进行增加$删除$更新$查询等基本操作# 这 一层中的操作对象是经过 "#$ %&;’’()* 后构造的数 据实体对象%而不直接与数据库进行交互#
XML !" !" XSLT !" !" XSLT !" !"
!"
中间件的结构框图如图 + 所示 #
!"#$%&;’
图 : 自动代码生成原理图
为了更加灵活方便地自动生成代码%代码自动生 成器主要功能特点有 &;
!"#$%&;’
!代码模板的动态加载#这个功能使用户可以根
据开发需要加载自己定制的代码模板%这样增强了框 架的可扩充性和灵活性 #
!"#$
!"#$
MS.
NETDataProvider
!"#
!与 !"# 的集成#与 ;<0 的集成可以通过 =(49&;6 -29>(? @A0/ 提供的外接程 序开发接口来实现# 通过
与集成开发环境的融合%可以最大限度地发挥辅助开 发工具方便性的特点# 通常情况下%程序员只需简单 几步操作便可完成基本界面和代码的设计开发 % 大大 提高了开发效率和速度#
图 + 数据访问中间件结构图
!
辅助开发工具的设计
对应用系统进行详细分层的好处是不仅 能 够 使
系统的架构清晰 %而且使每个层次完成的功能更加单 一# 更重要的是实现这些功能的代码有规律可循%因 此可以开发一些工具来生成这些代码%以此来进一步 减少代码编写的工作量 %使得开发人员可以将更多的 精力放到业务逻辑的处理上# 辅助开发工具主要包含 如下两个部分 &; !""代码模板 !!!!!! 代码模板采用 ,-./ 语言# ,-./ 由 ,-. !0123)0 4(563 -2763 -8332 .&;)*9&;*3" 发展 而 来 %,-./ 是
|
-
相关文章
-
最新文件
关于网学 |
万能工具 |
在线交流 |
会员中心 |
查询论文 |
招聘说明 |
精品资源 |
专题论文 |
会员中心 |
联系方式 |
下载目录
论文目录
Copyright 2005-2018 www.myeducs.cn All Rights Reserved 版权所有·网学网 提供大量原创论文 参考论文 论文资料 源代码 管理及投稿 E_mail:3710167@qq.com
郑重声明: 本网站论文均来自互联网,由本站会员上传或下载,仅供个人交流、学习、参考之用,版权归原作者所有
请下载完后24小时之内删除,任何人不得大幅抄录、在期刊上发表或作为商业之用。如涉及版权纠纷,本网站不承担任何法律及连带责任。
|