基于弹性框架的信息数据管理系统设计与开发
2022-03-23邱敏
邱 敏
(作者单位:南京高等职业技术学校)
随着信息化技术的发展,企业软件系统建设要能支撑起各种业务职能,最终使企业的运维变得高效有序。而一个行业或企业信息化系统的建设与运维因业务的不同,通常需要专门定制开发,投入使用后也需要运维人员长效地运行维护。另外,随着企业的发展或业务的调整,信息化系统也需不断地升级调整。而企业人力资源、固定资产、财务、办公审批、项目管理等职能的信息化,往往意味着高昂的建设、运维成本,对于中小企业而言,这是实现数据管理信息化最大的难题。
本次设计开发的目的是实现一款数据结构、框架、业务流程与权限可完全自定义的通用数据管理系统,能够满足中小企业日常业务中对信息化系统的需求。用户只需通过后台调整配置,即可实现实时增减数据模块和字段等要素,也可实现系统的自我升级调整,从而大大降低系统后期的开发维护成本。
1 系统应用分析
通过对信息化系统场景分析发现,中小型企业通常信息数据量小于千万级,但应用场景多变,信息框架常随业务需求进行调整。常使用的信息模块包括人力资源管理、固定资产管理、销售、生产管理等模块。要满足这些需求,就要实现在基于常见信息系统架构的基础上来定制开发应用系统。
1.1 常用信息系统架构
现阶段信息系统架构常见以下几种:
CS架构,即Client/Server(客户机/服务器),通常在小型局域网使用。需要在每台客户机上安装相应的客户端程序,从而与服务端程序实现数据交互,完成业务数据的处理。优势是客户端响应速度快、可处理大量复杂数据;劣势是应用场景有限,部署、维护成本较高。
BS架构,即Browser/Server(浏览器/服务器)。服务端为Web服务器和相应业务处理程序,客户端为浏览器(Browse)。其优势是仅通过浏览器即可完成客户端功能,维护成本低;劣势是处理复杂逻辑性能差,数据安全较难保障,特别在跨浏览器响应上不尽如人意。
SOA架构,即Service-Oriented Architecture(面向服务的体系结构),在Internet环境下解决业务集成需求,通过Web service接口连接实现信息系统业务功能。其服务以粗粒度、开放式、松耦合方式呈现,应用程序通过访问服务接口完成信息交换。其优势是系统维护成本低,有良好的可用性和可扩展性;劣势是安全性、可靠性、系统效率性能略差。
ROA架构,即Resource-Oriented Architecture(面向资源的架构体系),体系中所有业务组件被称为资源。资源作为一个独立的、可识别的实体,被分配一个统一的资源定位符(URI),信息系统客户端通过标准通用接口实现对资源信息的管理。其优势是交易复杂信息处理问题,且代码共用,开发维护成本较低,有良好的可扩展性,相对SOA有较好性能、效率和易用性;劣势是接口规范过于简单,复杂操作适用性不佳,特别在仅支持POST、GET的复杂网络应用环境下,应用受到限制。
1.2 弹性框架下信息系统的设计要求
一个通用可自定制信息化系统设计若想满足企业实用要求,须满足以下几个基本要求:
(1)安全。安全几乎是所有信息化系统的基本要求,其内容涵盖数据库安全、服务器安全、通信数据安全、登录授权审计、业务权限等多方面,都需要在信息系统框架设计中被考虑。
(2)可用。作为通用应用系统,设计需建立标准模块,要支持在不同业务流下,各种数据的查询、增加、修改、删除、显示的实现,从而满足人力资源、成产调度、资产管理等各种应用环境的使用需求。
(3)灵活。一个通用信息系统,往往意味着需求多样,在使用中也是多变的。这样导致数据管理将不再结构固化,需要具备基于动态的维护模式。
(4)易用。为满足企业跨地域的应用,在复杂互联网环境下需有良好的可用性:可扩展、易扩展、易维护、架构简单,易在云端部署。
2 信息系统框架设计
基于安全、可用、灵活的互联网信息系统应用需求考虑,显然SOA架构在本次信息化系统设计中会有良好的表现。
2.1 总体设计框架
基本框架由mongoDB副本集数据库+Tomcat部署环境+Java接口程序+C#应用程序(Windows端)组成,如图1所示:
系统客户端为Windows系统下C#应用程序,包括客户端维护、数据解析显示、信息数据的增改删查等基本数据管理功能。考虑互联网通信的可用性和安全性,客户端与接口基于https协议,以post方式通过接口管理、获取服务器数据资源。
服务端采用了Jersey RESTful基本开源框架,考虑接口对各种终端的可用性,接口均采用post方式实现Web服务。接口内容包括数据的增改删查管理、信息系统动态配置管理、客户端机及用户的鉴证授权、客户端升级维护、日志等。
数据库系统为服务端提供数据支撑,系统采用基于分布式文件存储的mongoDB数据库,并工作在副本集模式,可实现良好的数据冗余。mongoDB数据库数据模式自由(schema-free),无须进行任何结构定义,这将非常有利于信息数据结构的随时变换调整,从而使整个系统的弹性架构成为可能。
服务的部署为centos系统,Web服务使用tomcat。系统部署简单,可非常方便地在云服务器上以复制方式部署。随着业务量增加,可采取Nginx实现性能扩展。
2.2 信息数据结构
mongoDB作为基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,数据结构非常松散,类似json的bson格式,可以存储较复杂的数据类型,通过gridFS也可实现文件的存储管理。mongoDB数据使用“面向集合”概念,数据被存储在数据集合(Collection)中,类似RDBMS中的表(table),但其无须进行字段定义。实际上,可以根据需要随时把不同结构的数据以BSON形式存储在一个文档(Document)里,类似关系数据库表中的记录。
出于便于管理和弹性化组合的目的,需要对数据结构进行标准化处理,此处引入以下几个概念:
(1)数据单元。每个数据单元对应数据库中的一个集合,包括系统数据单元和应用数据单元。系统数据单元包括用户、用户组、日志、配置、收藏等5个数据单元;应用数据单元则由配置模块动态生成,如人力资源信息管理中的人员信息表、资产管理表等。
(2)数据流属性。每个数据文档(记录)在数据单元中所处的流程状态,如固定资产信息管理中,有在库房、在使用中、已报废等不同状态。流程的定义与各流程间关系同样由配置模块动态生成。
(3)数据元素。每个数据文档中的标准数据属性。本设计中对数据类型进行了标准处理,使之形成标准组件。系统根据配置可统一调整组件在客户端显示的大小、位置、外观、形式;同时,根据不同组件类型,系统在数据库中有不同的存储模式,在终端也有不同编辑显示形式,如表1所示。
表1 数据元素组件
2.3 Java服务器端
系统Tomcat服务端设计采用了Jersey RESTful基本开源框架,在java环境下实现各种资源的接口服务。信息数据管理维护采用统一URI接口,使用post方式提交Json数据对象,对象属性包括命令码、Token令牌等参数。本系统设计基本接口命令如表2所示。
表2 服务端访问接口
对于文件组件数据元素的维护则需要使用单独的uri接口,上传接口依然采用post方式,除了文件本身外,还将提交文件所属集合、文档信息。当文件上传完毕后,接口同步更新关联的数据信息。而下载则采用get方式,方便共享或调用,客户端向接口提交下载申请后,服务接口返回一个临时下载链接,一次下载完毕后则链接失效,以确保数据安全。
2.4 客户端
系统客户端设计运行在Windows系统下.net 4.0运行环境。作为和用户的交互终端,客户端设计主要承担信息化系统数据解析维护,以及系统配置功能。客户端框架分为前台数据维护项目和后台工具配置项目,如图2所示:
WSAPI类实现了至服务端接口访问的完整封装,前台类仅需处理数据采集和显示问题,通过该类获取或保存数据,无须关心URI、认证、权限、数据格式等问题。
后台设计事实上是整个弹性框架信息系统的核心,而数据元素的动态定义,对每个数据属性的读写权限配置均在此完成,用户操作界面如图3所示。
该界面为cfgMng窗体类生成,配置数据均为json对象格式,配置通过校验后,将提交服务端写入配置接口,客户端或服务端也将实时加载配置,实现数据架构调整。数据元素的配置可通过图4了解。
doc数组属性为数据集合中所有数据配置组,其中每个对象均为一个信息数据库集合的一个数据元素,对象中Typ属性数据元素类别。在配置中,可以调整元素控件在客户端显示的大小、位置、显示形式及内容。
系统前台设计主要着重与用户的交互,包括数据集合、数据文件的查询、显示、导入、管理等功能。如图5所示。
TableMng类用完数据集合的查询、收藏、列表显示功能。如图6所示:
TabelEdit类用于编辑、显示数据元素详细内容。
TableImport类用于从EXCEL文件导入数据。
TableSel 用户lnk类型数据元素从其他数据集合映射关联数据。
图6中,左侧为数据集合图标入口,通过后台配置动态生成,中间栏为数据元素查询栏,可在搜索配置中调整联合查询的内容。右侧栏为搜索数据文档结果的展示。右侧栏上为“数据流”显示,点击可筛选处于当前数据的数据文档。
3 系统安全
安全性是衡量信息系统可用性的一个最重要的指标。系统的安全涵盖数据库安全、部署环境安全、数据传输安全、认证授权、功能权限、日志等多方面内容。
数据库安全,系统设计使用mongoDB数据库,其工作在副本集模式下,数据和保存文件的冗余可保证系统信息资料不被损坏,同时客户端并不直接访问数据库,可配置数据库白名单仅允许接口服务的IP地址访问。同时设置数据库访问授权,可充分保证数据安全。
部署环境和传输安全,通过对centos防火墙设置,系统仅开放443端口,客户端对服务接口的调用需通过https的post方式进行数据交换,以保证传输数据安全,并减少服务端被网络攻击风险。
认证授权,系统限制用户登录时需协调用户、密码、客户端MAC参数,登录接口验证用户密码通过后,对比服务端第一次登录时存储的mac地址,匹配则通过验证,并返回用户对各数据集合的访问权限。如用户多次登录失败,登录账号自动被锁定。
日志,在系统设计中,日志模块被附加在所有服务端接口,登录验证,数据增改删查均被记录至日志数据库中。
4 结语
信息系统使用之初,常需要开发者和使用者的反复磨合,如字段调整、显示等;系统使用中,使用者也会要求调整数据结构、类型。对于使用关系数据库信息的系统,这些修改通常需要付出时间和开发成本。本设计引入了mongoDB非关系数据库作为数据、文件的存储核心。在系统实际应用中,用户可以实时在线调整数据配置,亦可以即时生效。其非结构化、松散的特性,对于弹性数据架构体系设计要求,表现出了非常良好的适应性和可用性。