问答题 论企业应用系统的数据持久层架构设计 数据持久层(Data Persistence Layer)通常位于企业应用系统的业务逻辑层和数据源层之间,为整个项目提供一个高层、统一、安全、并发的数据持久机制,完成对各种数据进行持久化的编程工作,并为系统业务逻辑层提供服务。它能够使程序员避免手工编写访问数据源的方法,使其专注于业务逻辑的开发,并且能够在不同项目中重用本框架,这大大简化了数据的增加、删除、修改、查询功能的开发过程,同时又不丧失多层结构的天然优势,继承延续应用系统架构的可伸缩性和可扩展性。当运用关系型数据库作为数据存储机制时,在业务层与数据源间加入数据持久层,能够解决对象与关系的“阻抗不匹配”问题,将对象的状态持久化存储到关系型数据库中。 请围绕“企业应用系统的数据持久层架构设计”论题,依次从以下三个方面进行论述。 1.概要叙述你参与分析和设计的企业应用系统开发项目以及你所担任的主要工作。 2.分析在企业应用系统的数据持久层架构设计中有哪些数据访问模式,并详细阐述每种数据访问模式的主要内容。 3.数据持久层架构设计的好坏决定着应用程序性能的优劣,请结合实际说明在数据持久层架构设计中需要考虑哪些问题。
【正确答案】(1)对你在论文中准备列举的、实践参与过的信息系统软件项目的背景、发起单位、目标、项目周期、项目建设费用、项目内容、主要的技术路线和交付的产品等做简要的介绍。注意,所列举的项目与外部系统、参与者要有较多的交互,这些外延将使你的信息系统软件项目更加翔实。反之,如选取与外部系统外延较少的信息系统软件项目,在写作过程中可能会言之无物,且达不到论文写作2000~3000字的字数要求。在第1段的末尾,尽量用一两句话简要说明在该项目中你所担任的角色及所承担的主要工作(尤其要突出架构设计方面的职责)。
(2)论文的第2部分是体现你的软件工程领域理论知识的精华所在。在层次式架构风格中,数据持久层(数据访问层)主要负责和应用中的各种数据源(如DB2或Oracle等关系型数据源、XML数据及其他类型的非关系型数据、Web服务,以及各种特别的遗留系统等)打交道,并将它们整合起来,为业务逻辑层提供统一的数据服务。在线访问(Online Access,OA)模式、数据访问对象(Data Access Object,DAO)模式、数据传输对象(Data Transfer Object,DTO)模式、离线数据(Off-line Data,OD)模式,以及对象/关系映射(Obiect/Relation Mapping,ORM)模式是数据持久层设计中典型的数据访问模式。各种数据访问模式的说明如下表所示。
{{B}}各种数据访问模式{{/B}}
数据访问模式 说明
在线访问模式 是最基本和最常用的数据访问模式,该数据访问模式会占用一个数据库连接,读取数据,
每个数据库操作都会通过这个连接不断地与后台的数据源进行交互
数据访问对象
模式
是标准J2EE设计模式之一,开发人员常用这种模式将底层数据访问操作与高层业务逻辑分
离开。一个典型的DAO实现通常具有以下组件:①一个DAO工厂类;②一个DAO接口;③
一个实现了DAO接口的具体类(包含访问特定数据源的数据逻辑);④数据传输对象(或
称为值对象)
数据传输对象
模式
是经典EJB设计模式之一。它本身是一组对象或是数据的容器,需要跨不同的进程或是网
络的边界来传输数据。这类对象本身应该不包含具体的业务逻辑,并且通常这些对象内部
只能进行一些诸如内部一致性的检查和基本验证之类的方法,而且这些方法最好不要再调
用其他的对象行为。在具体实现DTO时,可以使用编程语言内置的集合对象,也可以通过
创建自定义类来实现DTO对象
离线数据模式 以数据为中心,数据从数据源获取之后,将按照某种预定义的结构(如SDO中的Data图表
结构、ADO.NET中的关系结构)存放在系统中,成为应用的中心。离线:可以使得对数据
的各种操作独立于各种与后台数据源之间的连接或是事务;与XML集成:离线数据集所维
护的数据可以方便地与XML格式的文档之间互相转换:独立于数据源:该模式的不同实现
定义了数据各异的存放结构和规则,这xie都是独立于具体的某种数据源的
对象/关系映射
模式
对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中
表现为关系数据。ORM一般以中间件的形式存在,能够帮助将应用程序中的数据转换成关
系型数据库中的记录;或者将关系数据库中的记录转换成应用程序中便于操作的对象
(3)论文的第三部分是体现你的软件工程领域理论知识和项目实践相结合的精华所在。结合项目实践经验,归纳、梳理你参与分析设计的软件开发项目在数据持久层架构设计中需要考虑的具体问题。数据持久层架构设计的好坏决定着应用程序性能的优劣,无论在C/S,还是在B/S结构中,数据持久层在处理数据的同时,对服务器锁的类型和持续时间、输入输出活动量以及处理器负荷等产生主要影响,并由此影响应用程序的总体性能。在数据持久层设计阶段需要考虑的问题包括(但不限于):①网络流量问题;②返回结果集的问题;③查询或锁定超时的问题;④应用程序开发工具的问题;⑤使用游标的问题;⑥应用层设计的问题。
接着简要阐述针对这些具体问题所采用的解决方法、技术和步骤,以及它们对该工程项目后期的工作产生了哪些积极(或消极)的影响(效果和存在的问题)。论文最后可以进一步讨论你在该工程项目中获得的相关体会,以及在今后的工作过程中,如果碰到类似的开发项目你将如何应用这些经验或教训。对需要进一步改进的地方,不可脱离实际提出过高的要求,要给出评价依据,评价要客观、适当。
【答案解析】