袁宏杰 秦家瑞 臧永娜 李海涛 韩瀚
摘要:为了提高资产管理的效率和水平,对资产管理的业务流程进行了梳理和分析,提出了基于三层架构的资产管理信息系统。前端使用Delphi开发,Delphi能够快速实现界面功能,基于组件屏蔽了系统底层实现,面向对象语言[1],能够让开发者重点关注业务逻辑。另外Delphi可以方便控制外设,打印输出表单,实现套打资产卡片和标签。后台使用基于CXF的Web Service服务,服务部署到Tomcat上,数据库采用MySQL数据库,方便部署。
关键词:网站开发;数据库;资产管理;信息系统
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)02-0060-02
1 背景
基于Delphi框架组件开发的应用[2],稳定性好,系统灵活方便,易于后期维护和管理;另外后台使用Web Service实现业务逻辑,增强扩展性,基于MySQL数据库,安装和部署更为便捷。
2 资产管理信息系统分析与设计
2.1 业务流程分析
近年来,随着高校的改革日益深入,如何高效、准确地进行资产的管理,已成为高校资产管理中面临的严峻挑战。传统的手工或Excel表格的资产管理方式已难于满足管理人员的日常需求,主要存在以下问题:一是随着设备数量和种类的增多,快速准确的查找设备。二是每年度例行设备清查工作量大,用Excel维护管理导出的数据容易产生不一致的现象,给资产清查带来必要的重复劳动。三是各个部门的资产设备变动情况不能实时跟踪掌握。基于以上原因開发资产管理信息系统是十分必要的,经过对资产管理及使用部门的调研分析,资产管理信息系统的总体需求如图1。
资产录入管理:资产手工录入和Excel数据导入,资产编号唯一,不能重复。
资产变动管理:部门内调拨申请、审核;资产部门间调拨申请、审核;退库(销账);报修申请、审核等。
资产合同管理:资产合同录入、合同信息维护、合同设备管理等。
资产查询统计:可以按资产编号、类型、所属部门、合同编号等单一查询或组合查询。
资产清查管理:资产清查是指由于长期资产未按要求进行变动或维护,需要通过清查对设备进行统一的调整过程。主要包括调整设备使用地点、领用人等信息。主要功能包括按部门、实训室、办公室等单位进行调整。
2.2 资产信息系统的技术架构
资产管理信息系统基于Delphi和Web Service框架进行设计,资产管理信息系统实现了资产数据导入、录入和展示以及资产卡片、资产标签、资产报表打印等功能。Delphi通过Web Service接口调用Tomcat发布的Web Service服务,实现业务逻辑处理。Web Service通过JAVA jdbc驱动连接MySQL数据库[3],实现数据存储及查询,考虑到数据查询的效率,采用了连接池技术。资产管理信息系统总体技术框架如图2所示。
3 系统数据库结构设计
资产管理信息系统的数据库结构设计首先分析学院资产管理的需求,包括资产导入、资产录入、资产调配等业务需求,然后确定数据流图,设计并创建数据库表,根据数据库逻辑结构,建立数据库及其应用系统的过程。图3是资产管理系统中的部分E-R实体图[4]。
4 系统技术实现
资产管理信息系统设计为三层架构模式,表示层、业务逻辑层、数据层[5]。系统技术实现方式如下。
4.1 系统前端界面技术实现
前端界面主要采用Delphi提供的组件包括按钮、列表控件listview、菜单XPmenu库,日志控件delphilog4j。首先客户端通过Web Service接口请求参数后转发给业务逻辑层,业务逻辑层对业务数据进行处理,并调用SQL语句将数据保存到MySQL数据库中,最后将处理结果返回至客户端。系统采用Delphi 自带的Web Service基于WSDL导入方式生成Web Service接口单元,表示层包含该接口单元。Web Service接口核心代码如下:
RIO.HTTPWebNode.UseUTF8InHeader := True;
try
Result := (RIO as CommFJJ);
if UseWSDL then
begin
RIO.WSDLLocation := 192.168.1.5;//服务器地址
RIO.Service :=CommFjj;
RIO.Port :=2051;//端口号
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
4.2 控制层的实现
控制层是Web Service CXF框架实现, 使用CXF框架发布WebService需导入CXF框架的相关Jar包,项目引用的cxf版本为3.1.8,该版本后导入lib目录中的所有jar包。
Web Service接口类CommFJJ.java,接口实现类CommFJJImpl.java表示层转发到控制层的消息通过CommFJJImpl接口实现类负责解析,根据功能标识,负责转发到相应的业务逻辑处理模块,业务逻辑处理模块将消息处理完成后,在通过接口返回到表示层,具体的控制层处理过程如图4,控制层的配置如图5所示。
4.3 业务逻辑层的实现
在业务逻辑层,主要是根据资产管理业务逻辑流程进行处理,具体每个业务处理涉及与数据层的交互。业务逻辑层被设计在数据层之上,系统中通过MySQL结构化数据库操作语言方式对数据进行增、删、改、查,加工后的数据通过Web Service接口方式返回给前端界面,进行显示和打印。
资产管理信息系统为了提高拓展性,采用了面向对象的模块化处理方式,涉及公共调用的方法或对象,进行统一抽象成方法和类,具体实现由继承它的方法或对象实现,提高了系统的拓展性。
4.4 数据持久层的实现
资产管理信息系统的数据层实现是通过JDBC来实现对数据库的访问。数据库采用MySQL数据库,采用InnoDB引擎[6],该引擎能够实现自动提交或手动提交,并且可以用ROLLBACK实现回滚,同时具有事物机制,安全存储可靠性高。InnoDB锁定在行级,实现非锁定读。使得事物具有一致性。数据库冷热备份与恢复更具有灵活性。
5 系统实现的关键路径
1)为了降低客户端与后台服务的大量数据交互,提高系统运行效率,前端界面展示部分,要进行界面中数据项的合法性检查,检查通过后再提交到后台服务进行处理。后台服务传给前台的数据,要格式化成字符形式,前端界面收到后,直接显示不用再加工处理。
2)系统采用统一的接口,客户端与Web Service端采用固定字符串格式进行数据交互,这样方便后期系统升级和维护,提高了系统的拓展性。
3)基于Web Service调用方式,为系统后期提供移动端调用提供了接入方式,提高了设备接入的拓展性。
6 结束语
资产管理信息系统是一个基于Delphi+Web Service 模式的三层架构应用系统[7],该系统采用CXF Web Service主流框架作为技术路线,主要框架是开源的,降低了开发成本。各层之间耦合度低,层与层之间采用接口调用方式,提高了系统应用的灵活性和可扩展性。
参考文献:
[1] 王书爱.面向对象程序设计的应用[J].电脑知识与技术,2011,7(29):7289-7290,7299.
[2] 张瑜.基于Delphi的物流企业人力资源管理系统的设计[J].自动化技术与应用,2020,39(9):159-162.
[3] 李伟超.利用Java JDBC进行数据库访问[J].民营科技,2017(4):83.
[4] 李威,高锦涛,高腾.基于E-R图的关系数据库关键字查询[J].计算机系统应用,2012,21(9):156-161,140.
[5] 黄兴荣.基于B/S架构模式的三层结构设计与实现[J].电脑知识与技术,2015,11(32):52-53.
[6] 邬文轩,胡晓勤.一种基于MySQL Innodb数据引擎的增备方法[J].计算机安全,2013(5):30-33.
[7] 林志燦.Struts与Hibernate框架下在线考试系统的设计与实现[J].信息技术与信息化,2018(1):79-83.
【通联编辑:谢媛媛】