蒋昌兵
摘要:进入数字化时代,日常工作中产生了大量的多媒体图片数据,为了高效存储和使用,设计了一个基于Java语言开发后端为SSM(Spring+SpringMVC+MyBatis)框架的图片信息管理系统,集图片采集、分析、存储、管理于一体。系统通过基础数据采集、图片数据管理和数据流转追溯最终实现图片资源整合、资源共享、资源流转追溯的闭合管理,打破数据孤岛使图片资源能够更好地进行整合与共享,降低图片管理难度,提升信息化管理水平。
关键词:图片管理;SSM框架;软件工程;系统实现
一、前言
当前我国正从互联网时代进入数字化时代,各行各业信息化与数字化建设如火如荼,教学、培训、科研、会议、活动等业务会产生大量的多媒体数据,其中图片数据居多。因归口部门不同,这些数据都是各自保存管理,久而久之形成了数据孤岛,不利于资源整合、资源共享,随着时间的推移给后期进行数据利用造成了极大的不便[1]。研发图片信息管理系统对海量图片数据实现存储、分类、查询、添加特征码和图片转码等功能,能对工作中产生的图片数据管理起到关键性作用[2]。因此建设一套能有效处理多媒体数据资源的图片信息管理系统对实现内部信息化与数字化建设发展具有重要意义。
二、系统分析
(一)需求分析
本系统是一款B/S架构的图片信息管理系统,系统支持用户注册、登录、修改密码、注销和权限管理等基本功能。使用者根据分配的权限对图片进行管理,可为图片添加标题、类型和备注等信息。系统支持图片信息的增删改查,校验图片格式,可以按上传日期、标题、标签等进行排序。所有的用户信息和图片信息都存储在MySQL数据库中,以实现数据的持久化。考虑到用户可能会在不同的设备上使用系统,因此系统的用户界面应采用成熟的前端页面框架设计,以适应不同的屏幕尺寸。
(二)关键技术介绍
本系统使用Java语言开发,前端采用EasyUI框架,后端采用SSM框架,是经典的MVC开发模式。视图层与逻辑层结构分离实现低耦合,符合当前计算机信息系统开发理念,也适合软件研发人员的编码习惯,常用于企业级Web应用开发。本系统使用MySQL数据库系统对图片信息进行持久化进而实现对图片的增删改查。通过对业务量的分析可以对MySQL数据库进行针对性的设置,选择适合的存储引擎实现数据的高效存储,做主从部署从而实现读写分离提高读写速度。EasyUI在样式上已经适配各类浏览器,研发过程中无需再考虑页面兼容性,其支持响应式设计,可以适应不同的屏幕尺寸,因此非常适合用来创建图片信息管理系统的用户界面。SSM框架主要负责系统中业务逻辑处理,使系统中的各模块形成弱关联,遵循软件开发的“高内聚低耦合”思想。MVC设计模式使系统的结构层次清晰,不会出现HTML代码、JS代码、Java代码都混合在一个页面,冗余代码大量减少代码可读性增强。
(三)可行性分析
1.技术可行性
JDK1.8环境、EasyUI前端框架、SSM框架和MySQL数据库是当前Web应用开发的主流开发技术和开发环境。用户能在任何遵循GPL协议下使用EasyUI前端框架;JDK1.8是商业免费版本;SSM框架是免费的开源框架,拥有成熟的社区和用户群;MySQL Community Server社区版本开源免费且使用群体大。采用以上技术无商业风险且市面上有大量的信息管理系统成熟案例,因此本系统在技术上具备可行性。
2.操作可行性
本系统基于B/S架构开发易于部署和维护,移植性强,可根据使用需求跨平台部署,可以在不同的硬件服务器与网络操作系统上运行,系统升级只需要考虑服务器端进而降低了总体维护成本[3]。通信采用标准的HTTP/HTTPS协议,具有良好的可扩展性。使用者只需打开浏览器就可以进行相应操作,因此本系统在操作上具备可行性。
三、系统开发技术
(一)前端技术
本系统前端页面使用一种基于jQuery的用户界面库EasyUI来进行页面信息的展示,是一款帮助开发者更容易地构建Web应用程序的前端用户界面插件开发库。EasyUI提供了一套完整的用户界面组件,包括窗口、对话框、表单、布局、菜单、工具栏、树形控件、数据表格等。它同时支持Angular、Vue、jQuery等技术栈进行开发,并且提供了非常丰富的组件,通过由具体需求进行自由组合使用,构造出的页面应用可以支持兼容多种浏览器。EasyUI的特点:简单易用,提供了丰富的API,组件都是基于HTML、CSS和JavaScript实现的,可以很容易地嵌入任何Web页面中,方便对组件进行定制和扩展;功能丰富,提供了一套完整的用户界面组件,可以满足大部分Web应用程序的需求;主题定制,EasyUI支持主题定制,可以轻松地更改应用程序的外观和风格;支持国际化,可以根据用户的语言偏好自动切换界面的显示语言;兼容性好,兼容所有主流的Web浏览器,包括IE6+、Firefox3+、Safari3+、Chrome和Opera9+。
(二)后端技术
本系统后端采用Spring、Spring MVC和MyBatis三个开源框架的组合,即SSM框架。这三个框架分别在企业级Java应用开发中解决了表现层、业务层和持久层的问题。Spring是一个开源的企业级Java应用框架,提供了一种简单的方式来开发可测试和可重用的代码。Spring的核心思想是控制反转(IoC)和面向切面编程(AOP),可以用于构建各种类型的Java应用,包括Web应用、桌面应用和企业级应用。Spring MVC是Spring框架的一部分,是一个用于构建Web应用的模型-视图-控制器(MVC)框架。Spring MVC提供了一种分离的方式来开发Web应用,使得开发者可以更容易地关注业务逻辑,而不是细节实现。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索。可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通Java对象)映射成数据库中的记录[4-5]。SSM框架的特点是:可以简化Java Web开发,使开发者更专注于业务逻辑的实现;有强大的社区支持,有大量的文档和教程,以及活跃的用户和开发者社区;采用了MVC模式,有助于实现业务逻辑、数据和用户界面的分离,提高了代码的可维护性和重用性;提供了灵活的配置方式,可以根据项目的需要选择适合的配置方式,例如XML配置或注解配置。
(三)数据库技术
MySQL是世界上最流行的开源关系数据库管理系统(RDBMS)。它是基于SQL(Structured Query Language,结构化查询语言)的,SQL是用于管理和操纵数据库的标准语言。MySQL的特点是:
1.开源
意味着任何人都可以使用和修改它的源代码,使得技术得到了广大开发者社区的强大支持,且在性能、稳定性和功能上都得到了持续的优化和改进。
2.在性能上进行了大量优化
可以处理大量数据并支持大并发用户。在许多基准测试中,都表现出了优秀的性能。
3.易于安装和使用
提供了大量的工具和库,使得开发者可以很容易地创建和管理数据库。此外,开发说明文档非常完善,有大量的教程和示例可以帮助开发者快速上手。
4.提供了一套强大的安全机制
包括访问控制、加密和SSL等,可以保护数据的安全。
5.跨平台性能优秀
可以在各种操作系统上运行,包括Windows、Linux和Mac OS等。
6.支持各种存储引擎
每种存储引擎都有其特定的用途和优点,使得其可以应对各种不同的使用场景。
四、图片信息管理系统设计
(一)整体技术路线
以实现图片信息高效管理为目标,以采集的图片资源数据为基础,依据数据处理及使用流程逻辑进行资源构造与数据存储,设计合理的图片信息管理系统,最终实现图片资源整合、资源共享、资源流转追溯的闭合管理。整个图片信息管理系统的技术路线如图1所示。
(二)系统结构设计
根据系统需求分析设计了图片信息管理系统整体业务逻辑,整个系统的功能模块划分如图2所示,系统被划分为系统用户权限模块、图片信息采集模块、图片信息查询模块、图片信息编辑模块、图片信息删除模块、图片相册管理模块、图片浏览下载模块、图片特征码生成模块、系统操作日志模块共9个子模块。
系统用户权限模块将登录账号的角色及对应的权限信息进行验证,系统超级管理员会提前创建好用户角色及配置好该角色访问权限,系统进行验证后将获取的业务模块渲染加载显示。
图片信息采集模块由用户自定义上传采集与第三方接口采集组成。数据信息采集后按文件目录保存并按预先定义好的数据结构将信息存入数据库供系统其他模块使用。
图片信息查询模块、图片信息编辑模块、图片信息删除模块由用户根据使用需要对图片进行相应的操作,目的是进一步优化图片信息做好精细化管理。
图片相册管理模块主要是将图片信息按分类进行管理,不同分类创建相应图片数据集。图片数据集由图片构成,可以实时进行创建、添加、删除操作。相册管理中的操作不会影响图片信息数据。
图片浏览下载模块主要是预览或下载经过系统采集模块预定方式处理后的图片信息。用户打开操作页面点击需要浏览的图片,该图片ID通过数据库读取的数据结构信息从文件目录中打开图片文件并将其转码为base64,由于图片采集保存的资源目录是当前系统部署所在的服务器,因此在前端页面利用data url(本地数据)的特性直接读取图片信息而不是通过访问系统资源路径的方式访问,此举提高了系统资源利用率、节省了系统内部开销及带宽,解决了超高清图片加载时间过长的问题,应用在高清、大分辨率的图片查看时有非常好的鲁棒性。用户在预览图片时有裁剪、尺寸修改等操作无需通过传统的方式去访问服务端提供的url获取图片,可以通过在页面上使用data url的方式进行本地IO读写快速对图片进行显示,此方法极大地提升了用户体验。用户还可以根据尺寸字典表中设定的参数进行不同分辨率的图片下载,以满足不同使用场景的需要。
图片特征码生成模块主要是利用特定的算法生成具有特殊意义的编号或者是特定logo水印的图文进行图片信息内容的添加,最终合并生成含有全新信息的图片供后续有关业务中使用。本模块主要提供用户自定义标识码和随机的水印信息,使图片增强美观性、实用性、安全性。在知识产权与隐私保护日益重视的当下,如果发生盗用、滥用等侵权情况可追踪到图片的来源,也用于保护数据传播,真伪鉴别以及非法拷贝控制。
系统操作日志模块主要提供系统使用者全流程的痕迹管理,根据操作时间、操作模块、操作对象、操作具体内容等信息生成操作记录进行数据库存储。
(三)系统架构设计
系统架构按结构逻辑自上往下为四个层级,如图3所示。用户层主要是系统的操作用户为图片数据采集员、图片数据管理员、系统管理员。表现层也就是视图层是进行人机交互的界面部分,包括系统中的基础数据和业务数据。业务逻辑层主要是根据功能需求进行数据处理,主要负责业务流程的实现,按功能模块划分为两个子系统,用户信息权限子系统功能包括用户信息、角色信息、部门信息、权限信息四个部分,图片信息管理子系统功能包括数据采集、图片管理、相册管理、特征字典、浏览下载、外链分享、操作日志七个部分。数据库层按数据类型分为用户信息数据、 图片信息数据、业务字典数据三部分。
(四)数据库设计
系统的正常运行离不开数据库系统,一个安全、稳定、可靠的数据库对信息系统的运行起到至关重要的作用。本系统的数据库选择免费开源的MySQL,根据系统概要需求按系统权限业务模块、图片业务模块进行了数据表设计,图片信息管理系统数据库结构如表1所示。
本系统数据表按数据类型划分为以下两个模块:
1.系统权限模块
本模块中的主体表有用户表、部门表、角色表、权限表,包含用户姓名、所在部门、登录账号、所属角色、模块菜单的信息。用户表与部门表可以实现操作人员基础信息的管理。角色表与权限表可以分配使用功能菜单的数量,生成角色—菜单的映射关系。用户表与角色表相关联可以实现不同角色在系统中拥有哪些操作功能及系统使用级别。
2.图片业务模块
本模块中主体表有图片信息表、相册表、图片类型表、相册类型表、图片关联表、特征码字典表、水印字典表、尺寸字典表、图片外链表、日志表,包含图片基础信息、相册基础信息、图片配置信息、图片分享信息、数据操作记录信息。图片表与相册表关联可以将图片数据应用于一对多的业务场景。特征码字典与水印字典表可以保存不同用户需要的、经常反复使用的基础数据或者是不同业务流程中需要用到的专用数据。图片外链表可以按需求生成不同尺寸的图片访问地址供其他用户在公网上进行浏览。日志表可以记录所有用户的使用情况,进行系统操作安全审计及数据使用追踪溯源。
五、图片信息管理系统实现
(一)系统用户权限模块实现
用户登录系统前按步骤注册账号或者由系统管理员统一分配账号,在登录页面输入用户名和密码,前端页面进行一些简单的判空、特殊字符的验证,前端页面校验合法的数据进入后端程序的登录方法中访问数据库进行下一步的核验。登录方法中将比对数据库中的用户名与密码和传入的是否一致,通过一致性验证后获得用户名对应的角色信息,再通过角色信息获取与之分配的权限信息,此处的权限信息包括用户所能访问的菜单、模块、按钮等。到此,整个登录流程后端程序部分已处理完毕,前端页面则根据获取的权限信息进行页面渲染,用户进入系统主界面。
(二)图片信息采集模块实现
采集方式主要通过用户登录系统后打开专门的图片上传页面进行。例如,采集手机、平板、数码相机、个人PC机等多媒体设备上产生的图片数据。用户进入页面后选中需要上传的图片,填写一些图片相关信息后即可上传至系统。采集模块会将上传者信息、上传时间、备注信息等进行记录,采集的图片会自动根据字典表中的参数去生成数据。例如,不同类型格式的图片、不同分辨率大小的图片、不同水印logo的图片、预览缩略图等。对采集到的每张图片,系统会生成唯一编号。
(三)图片信息管理模块实现
用户进入对应的图片信息管理页面后可以按条件进行图片资源的检索,单个或批量对图片信息进行编辑操作或删除操作。用户可以查看图片的来源、所属分类、相册关联情况,可以对图片进行裁剪、生成特定大小缩略图、动态生成外链、图片停用等操作。
(四)图片相册管理模块实现
用户进入图片相册管理界面后首先创建一个相册集,进行名称、关键信息的填写,相册集的属性可以是专题、会议、团建等活动,创建好相册后选择系统中的图片添加到相册上,也可以将其他相册中图片复制到新的相册。相册中可以进行图片的增删改查、是否公开分享等操作。相册默认为谁创建谁拥有管理权限。
(五)图片浏览下载模块实现
用户进入页面后默认显示所有采集的图片信息。图片数据按采集上传时间倒序排列,可以选择相册模式浏览,相册模式只显示相册相关联的图片信息。浏览页面可以输入采集人、采集时间、分辨率、标签、备注等条件进行模糊检索,在浏览图片的同时可以进行放大、缩小、旋转、裁剪等操作,点击图片下方“下载”按钮可以进行图片的本地保存。
(六)图片特征码生成模块实现
用户点击图片特征码生成模块会出现水印管理和标识码管理两个子菜单。进入标识码管理页面或水印管理页面会按最新上传时间倒序显示图片数据信息,页面可以输入关键字进行数据检索。水印管理页面点击“上传”按钮可以将制作好的水印图片进行上传,选中某一条数据可以进行水印图片的预览并且进行增删改操作。标识码管理页面中点击“创建”按钮会弹出标识码生成窗口页面,可以选择随机模式或自增模式生成纯数字、纯字母、字母数字符号混合的标识码。两个子菜单上的“合并”按钮可以将水印图像或生成的标识码合并到选中的图片上,合并时可以设置特征码的大小、放置的位置,最终生成含有特征码的图片。
(七)系统操作日志模块实现
系统管理员可以查看所有用户的操作记录,其他用户只能查看自己的操作记录。用户进入页面可以查看当前最新的操作日志数据,输入用户名后点击检索按钮可以查看该用户使用系统以来的所有操作信息,输入开始时间和结束时间可以查询该时间段内用户的操作记录,输入操作类型可以查看用户何时进行过这类操作,最后可以使用导出功能生成报表文件。
六、结语
SSM框架是当前主流的企业级信息系统开发首选技术,可以减少开发成本,提高开发效率。本系统在诸多图片管理的场景中得到了很好的应用,也取得了较好的效果,表明本系统达到了设计之初的要求。系统在使用中也发现需要优化之处。例如,图片进行预览时缺乏各类风格滤镜处理等,后期将进一步对系统进行更新迭代。
参考文献
[1]张华一.基于B/S架构的图片管理系统WEB前端关键技术的设计与实现[D].北京:北京邮电大学,2017.
[2]刘润泽.图片管理系统后台设计与实现[D].北京:北京邮电大学,2017.
[3]刘伟,霍德尚,张效岳.植物图像管理系统设计与实现[J].信息技术与信息化,2022(01):12-15.
[4]唐军,薛亚东,卢慧,等.基于GIS的自然保护区本底资源调查系统的设计与实现[J].计算机应用与软件,2023,40(08):1-6+12.
[5]潘显民,欧战祥,夏雅.仿生学下基于SSM的大学生学习资源共享系统设计[J].湘南学院学报,2023,44(05):44-48.
基金项目:2023年湘潭市科技系统第二批大事要事保障项目“多媒体终端数字图像处理技术研究与应用”(项目编号:GX-YB20231017)
作者单位:湘潭技师学院、湘潭科技职业学院
■ 责任编辑:王颖振、杨惠娟