信息管理数据库系统的业务逻辑层实现步骤
2023-07-11
来源:二三四教育网
・算法分析・ 信息管理数据库系统的业务逻辑层实现步骤 饶晟 (阿勒泰地区国土资源信息中心新疆阿勒泰836500) 摘要:本文从业务逻辑层的职责及其对象的职责分析,包括与表示层交互的对象,问题域对象,与数据层交互的对象等业务逻辑层的对象,应用的 普遍需求及典型结构,主要阐述业务逻辑层的设计及实现步骤。 关键词:数据库 业务逻辑层 实现步骤 中图分类号:TN06 文献标识码:A 文章编号:1007—9416(2010)I卜0078—02 虽然多层结构中数据库系统的业务逻 的,他承载着整个系统最核心的部分,也是 要使用NBearDAL,则这一项应该这样写: 辑层的创建和实现在本论文中已经得到探 客户最关注的部分。这一部分的实现,通常 <add key=”DAL”value=”NBearDAL” 讨,但在具体地实际开发过程中,有很多不 需要技术专家和领域专家通力合作。在业务 /> 确定的因素,由于理论知识的不足,对SQL 逻辑层实现中,业务逻辑层主要承担了以下 词句和流程控制语句掌握程度还不够,因 职责: 此,本文还有待进一步的完善。 (1)对不同数据访问层的封装。使得表示 层可以不关心具体的数据访问层。 1数据访问的三层结构 (2)业务逻辑数据的填充与转换。如管理 数据访问三层结构将应用功能分成表 员口令的加密。 示层、逻辑层和数据层三部分,对这三层进 (3)核心业务的实现。这里很多业务逻 行明确分割,并在逻辑上使其独立,表示层 辑只有一行代码,即一个业务逻辑方法恰 是应用的用户接口部分,一般位于客户机 好对应一个数据访问方法,但是也有通过 上。它担负着与用户的交互和与逻辑层的对 多个数据访问方法实现业务的。如Admin 话功能,但不包括有关业务本身的处理逻 BLL中的Change Password方法就调用了 辑。逻辑层是应用的关键,它负责处理业务 Admin DAL的Get By ID和Update两个方 逻辑和数据库逻辑,即接受表示层方的请 法。另外,虽然许多方法只调用一个数据 求,根据业务逻辑将其转化为数据库请求后 访问方法,但是从命名看也能看出两者着 与位于数据层上的数据库服务器交互,并将 眼点的不同。如Admin DAL中的Get By 与数据库服务器交互的结果传送给表示层 Name And Password,这个名字显然是从 方。数据层软件即DBMS,根据逻辑层发送 数据库的角度看问题一一指按照指定的N 的请求进行数据库操作,并将操作结果传送 ame和Password两个字段的值取出相应信 给逻辑层。Web应用系统B/s模型的三层或 息,至于这样做的业务意义它不需要知 多层框架结构基本是基于J2EE的层次结构, 道。而Admin BLL中,调用它的方法 ̄qLog 一般系统分为表示层、业务逻辑层、数据层。 in,这是从业务角度看问题一一即这个方 三层结构的特点是形式逻辑与业务逻 法是管理员登录。 辑位于不同的平台上,并且业务逻辑被所有 用户共享。系统必须提供形式逻辑与业务逻 2建立工程 辑之间的连接,它们之间的通信协议是系统 在这个架构中,业务逻辑层是可以替换 自行定义的。逻辑层是整个系统的核心,必 的。及业务逻辑层不是直接耦合于表示层, 须为处理系统的具体应用而提供事务处理、 而是通过依赖注入机制实现。所以,我们这 安全控制及为满足不同数量客户的请求而 里将这个业务逻辑层不直接命名为BLL,而 进行性能调整的能力。 是新建一个 ̄qSimple BLL的工程,放置我们 传统的C/s结构在可扩充性、可维护 这个业务逻辑层的相关代码。 性、可重用性及安全性等诸多方面存在缺 BLLCollege实现:CoHege类实现了IBLL 陷,使得三层(多层体系结构成为目前数 College接口,它是院系管理模块的业务逻辑 据库应用开发的首选,但是它的开发比两 层的核心部分。 层结构更加困难。特别是业务逻辑层与表 示层和数据层进行频繁的交互,如何提高 3配置依赖注入 业务逻辑层中对象的可重用性、内聚性, 业务逻辑层要通过反射工厂加载相应 降低与表示层和数据层的耦合,是获取高 的数据访问层,这样就需要在Web.config中 质量、低耗费、易维护软件最重要的环节, 配置需要使用的数据访问层。打开Web.con 也是我们在面向对象设计阶段优化设计 f ,找到appSettings; 的重要目标之一。 节点下的“DAL”项,将其中的value赋予 在实际应用中,业务逻辑层是至关重要 我们要使用的数据访问层工程名称,例如: 78 数字技术与应用Digital technology and application 3.1与数据访问层的通信 业务逻辑层需要与数据访问层通信,利 用数据访问层访问数据库,因此业务逻辑层 与数据访问层之间就存在依赖关系。在数据 访问层引入接口程序集以及数据工厂的设 计前提下,使业务层与数据访问层之间的关 系为弱依赖。BLL模块不直接引用SQLServe rDAL和OracleDAL程序集。在业务逻辑层 中,有关数据访问层中数据对象的调用,均 利用多态原理定义了抽象的接口类型对象, 然后利用工厂对象的工厂方法创建具体的 数据对象。在领域对象College类中,利用数 据访问层的工厂类DALFactory.DataAccess 创建LabMIS.IDAL.ICollege类型的实例,解 除了对具体程序集SQLServerDAL或Oracle DAL的依赖。只要LabMIS.IDAL的接口方法 不变,即使修改了IDAL接口模块的具体实 现,也不会影。 3.2晌业务逻辑层的实现 业务逻辑层要通过反射工厂加载相应 的数据访问层,这样就需要在Web.corffig中 配置需要使用的数据访问层。打开web.con fig,找gUappSettings I 节点下的“DAL”项,将其中的value赋予 我们要使用的数据访问层工程名称,例如: 要使用NBearDAL,则这一项应该这样写: <add key=”DAL”value=”NBearDAL’’ /> 3.3与数据访问层的通信 业务逻辑层需要与数据访问层通信, 利用数据访问层访问数据库,因此业务逻 辑层与数据访问层之间就存在依赖关系。 在数据访问层引人接口程序集以及数据 工厂的设计前提下,使业务层与数据访问 层之间的关系为弱依赖。BLL模块不直接 引用SQLServerDAL和0racleDAL程序 集。在业务逻辑层中,有关数据访问层中 数据对象的调用,均利用多态原理定义了 抽象的接口类型对象,然后利用工厂对象 的工厂方法创建具体的数据对象。在领域 对象College类中,利用数据访问层的工厂 ・算法分析・ public static stirng MD5 Encry ̄t(string 参考文献 text) 类DALFactory.DataAccess ̄0建LabMI S.IDAL.ICollege类型的实例,解除了对 具体程序集SQLServerDAL或OracleDAL 的依赖。只要LabMIS.IDAL的接口方法不 变,即使修改了IDAL接口模块的具体实 [1]周秋平,倪友聪.面向对象设计中业务逻 辑层对象的优化.安徽教育学院学报,20 O4年l1月. {Return System Web Security Forms Authentication Hash Password For Storing In Config File(text,?”MD5”);} /**////<summary> HA1算法求Hash散列 ///</s'ammary> 【2】朱文忠.分布式数据库与Cline/Server体 现,也不会影响业务逻辑层的实现。 ///使用S 系结构.自贡师范高等专科学校学报,20 01. 4编写散列加密工具类 因为在业务逻辑层的多处需要用到散 列加密,所以在Utility工程下写一个辅助类 [3】孙宏彬,苏长龄.基于J2EE三层结构分布 ///<param name-”text”>明文</par am> 系统设计与实现.齐齐哈尔大学学报,20 O2. Encryptor,完成这个工作,这个辅助类的具 体代码如下: Encryptor.CS Using SystemI ///<returns>散列值</returns> [4】田小玲,林荣霞.基于Struts架构的一种 业务逻辑层设计方法.科技资讯,2008. 【5】刘家宁.基于多层分布式数据库结构的 研究.海南师范学院学报(自然科学版), 20o1. public static string SHA1Encrypt(tsring text) {return System.Web.Security.Forms Authentication.HashPasswordForStoringIn Using System CoHecNons Genetic; Using System Text} ConfigFile(text,”SHA1”);} [6】石双元,吴新明,刘琦.构件化信息系统 体系结构及其业务构件模型研究….计 算机工程与科学,2005. Namespace Guestbook Utility 业务逻辑层建立在DAO层之上,由业务 逻辑组件对DAO组件进行Facade封装。为了 分离业务逻辑层与DAO层之间的耦合,业 务逻辑层应面向接口编程,即业务逻辑组件 { /**////<summary> ///辅助类一用于对敏感数据进行Has h散列,达到加密效果 ///</summary> pubHc sealed class Encryptor 只调用DAO组件的接口,而不与具体的实 现类耦合,同时将业务逻辑放在接口中定 义。使web层仅仅与业务逻辑组件的接口耦 合,而无须理会业务逻辑组件的实现。本文 从业务逻辑层的职责及其对象的职责分析, 包括与表示层交互的对象,问题域对象,与 数据层交互的对象等业务逻辑层的对象,应 用的普遍需求及典型结构,主要阐述业务逻 辑层的创建及实现步骤。 {/**////<summary> ///使用MD5算法求Hash散列 ///</summary> ///<param name=”text”>明 ̄</par am> ///<returns>散列值</returns> (上接77页) 下”概率,若P 大于某随机概率,根据改进 向发展。 数值型属性的数值;对于分类型属性,统计 二放在合适位置;④根据改进三更新参数 这个数据子集中每个分类型属性值出现的 次数,次数最多的属性为初始点的分类型属 性。重复次k,得到k个初始点; (10)For i=1,2,…,n;给簇重新分配聚类 参考文献 序号,并递归的将其邻域对象标记为同样的 f1】裴振奎,李华,宋建伟,韩锦峰。《蚁群聚 序列号。 类算法研究与应用》[J】.计算机工程与设 计.2008年10月. 【2J YANG Y,KAMEL M.Clustering ensemb (6)计算各数据到各初始点的距离,并将 其划分到离它最近的聚类初始点的聚类中; 对于每个聚类,重新计算初始点; (U)当迭代次数≤M时,重复(9)、(10);否 则执行(12) (12)对于重新分配聚类序号的簇,计算 初始点,重复次k,得到k个初始点; le using swariN intelligence【A】.In:IEE E Swarm inteiligence symposium【C】.P i scataway,NJ:IEEE service center,2003. (7)重复(6)直到各个聚类中数据对象稳 定,迭代目标函数不变; (13)计算未被重新分配聚类序号的各个 (8)初始化蚁群中蚂蚁个数”ant,最 数据,计算数据到各初始点的距离,并将其 大迭代次数 ,局部区域边长 ,参数 65—71. 划分到离它最近的聚类初始点的聚类中,对 [3]朱峰,陈莉.《一种改进的蚁群算法》.计 于每个聚类,重新计算初始点; (14)重复(13);输出结果。 等参数设置,每只蚂蚁随机捡起一个簇, 并移动到平面上一个随机空闲位置;参数 取三种类型值之一:常数、随机数或递减 随机数; (9)For f.L2,…,M,For J=1,2,…,1l" ant: 算机工程与应用….2010,46(6):1 33 13 5. 4,结语 蚁群算法和k prototypes算法的混合, ①根据<1>和<4>式计算对象的平均相似 既弥补了蚁群聚类算法收敛速度慢的缺 性;②如果蚂蚁未负载,根据<2>式计算概 点,又弥补了k—prototypes受初始点选择影 率,若P 大于某随机概率,而同时该对象未 象;③如果蚂蚁负载,根据<3>式计算“放 响较大的缺点,两种算法交替使用,可以在 被其他蚂蚁“捡起”,根据改进一捡起合适对 短时间内得到“高质量”的聚类结果。这两 种算法的结合将使研究向着更远更深的方 /. 79 Digital technology and application 数学技术与应用