技术微信:375279829 欢迎来到【毕业设计资料-计算机毕业设计源码网】官网!
您的位置:您的位置:主页 > 作品中心 > Java毕业设计

基于SaaS多租户架构城市路灯运维共享服务实现-计算机毕业设计源码+LW文档

技术微信:375279829

本课题包括源程序、数据库、论文、运行软件、运行教程

毕业设计资料-计算机毕业设计源码网:我们提供的源码通过邮箱或者QQ微信传送,如果有啥问题直接联系客服

包在您电脑上运行成功

语言:Java

数据库:MySQL

框架:ssm、springboot、mvc

课题相关技术、功能详情请联系技术

作品描述
基于SaaS多租户架构城市路灯运维共享服务的设计与实现
摘要:随着智慧城市建设不断推进,城市路灯作为城市基础设施,数量规模持续增长,传统路灯运维模式存在管理分散、资源无法共享、运维成本高、数据统计困难等现实问题。为实现路灯设备、运维车辆、租赁业务的集约化共享管理,本文基于SaaS多租户架构,设计并实现城市路灯运维共享服务系统。系统后端采用SpringBoot框架,前端使用Vue+ElementUI,数据库选用MySQL,利用ECharts组件完成租金数据可视化统计。系统区分管理员与租户两类角色,实现租户管理、区域管理、路灯设备管理、租赁订单管理、运维车辆调度、通知公告发布、数据看板统计等业务功能。不同租户可以隔离使用系统业务数据,完成路灯设备租赁、运维工单处理,管理员对全平台数据统一管控。经过功能测试,系统运行稳定,能够实现多租户数据隔离,完成路灯运维资源共享,提升城市路灯运维管理效率,为智慧城市基础设施运维信息化提供解决方案。关键词:SaaS;多租户;路灯运维;共享服务;SpringBoot;Vue;智慧城市
1 绪论
1.1 研究背景
智慧城市建设已经成为国内城市现代化建设重要方向,城市路灯是城市最重要公共基础设施,承担夜间照明、城市景观的作用。城市范围不断扩张,路灯设备数量逐年上涨,传统路灯运维大多由各个区域单位独立管理,不同辖区之间路灯设备、运维车辆资源相互独立,资源难以互通共享。部分区域路灯设备闲置,另一些区域设备紧缺,运维车辆重复购置,造成资源浪费。传统运维依靠纸质记录、Excel表格登记租赁订单、设备故障信息,数据分散,租金统计、订单统计依靠人工计算,工作效率低下,容易出现统计错误。
SaaS多租户架构是云服务中成熟的软件服务模式,一套系统实例同时给多个租户单位使用,并且保障租户之间业务数据相互隔离,不需要每个租户单独部署一套软件,能够大幅降低软件部署与维护成本。将SaaS多租户架构引入城市路灯运维共享业务,搭建路灯运维共享服务平台,不同区域运维单位作为租户接入平台,实现路灯设备、运维车辆资源共享租赁,集中管理租赁订单,自动统计各类租金数据,是智慧城市基础设施运维的发展方向。
1.2 研究意义
理论意义:本文将SaaS多租户数据隔离方案应用到城市路灯运维业务场景,完整实现一套面向基础设施共享租赁的Web管理系统,丰富SaaS多租户架构在市政运维方向的实践案例,为同类市政共享服务系统开发提供参考。
实际应用意义:第一,系统采用SaaS多租户模式,一套系统服务多个租户单位,降低多单位信息化建设成本;第二,实现路灯设备、运维车辆资源共享租赁,租户可以发起租赁订单,盘活闲置路灯与运维车辆资源,减少重复采购;第三,系统可视化看板自动统计日租金、月租金、年租金数据,替代人工统计,直观展示租赁经营数据;第四,区分管理员、租户两套账号体系,超级管理员统一管理租户、区域、基础设备数据,租户管理自身业务数据,发布查看通知公告。该系统能够提升城市路灯运维的数字化水平,降低运维管理成本,具备实际工程使用价值。
1.3 国内外研究现状
国外智慧城市起步较早,已经大量使用云SaaS模式处理市政设施管理,很多城市将路灯监控、运维业务部署在云端平台,多部门共享访问系统。但国外软件业务流程面向海外市政体系,并不适配国内路灯租赁共享业务流程。
国内智慧城市建设快速推进,市面上存在不少路灯监控系统,大部分聚焦路灯远程开关、故障采集,侧重于硬件物联网控制。面向运维资源共享租赁、SaaS多租户的路灯运维平台数量较少。多数系统是单租户模式,一套系统仅供一个单位使用,多个区域就要部署多套程序,部署维护成本高。因此开发基于SaaS多租户架构的城市路灯运维共享服务系统具有现实必要性。
1.4 论文组织结构
本文分为七个章节:第一章绪论阐述课题背景意义、国内外研究现状;第二章介绍系统开发关键技术;第三章进行系统需求分析;第四章开展系统总体设计与数据库设计;第五章系统功能实现,结合系统截图展示核心界面;第六章系统测试;第七章总结与展望。
2 相关技术介绍
2.1 SpringBoot后端框架
后端采用Java SpringBoot框架开发,SpringBoot简化Spring繁琐XML配置,自动装配组件,内置Tomcat容器,快速搭建Web后端服务。结合MyBatis持久层框架完成和MySQL数据库交互,封装业务接口向前端返回JSON数据。本系统在业务层实现SaaS多租户数据过滤,所有租户业务查询自动追加租户ID条件,实现租户之间的数据逻辑隔离。
2.2 Vue前端框架
前端使用Vue渐进式JS框架,搭配ElementUI组件库快速开发后台管理界面。页面采用左侧导航菜单、主内容区域经典后台布局,实现登录表单、数据表格、搜索查询、新增编辑弹窗、分页等交互。Axios完成前后端接口请求交互,页面适配主流浏览器。登录界面区分管理员、租户两种身份单选框,支持登录以及租户注册功能。
2.3 MySQL数据库
MySQL开源关系型数据库,性能稳定,适合中小型Web业务。本系统采用逻辑隔离多租户方案,全部业务数据表增加租户id字段,不同租户的数据存储在同一套数据表,通过租户id进行数据过滤,不需要为每一个租户新建独立数据库,节约存储与运维成本。数据表全部设置中文注释,方便后期维护。
2.4 SaaS多租户技术
SaaS多租户指同一套软件实例,为多个组织(租户)同时提供服务。多租户数据隔离分为独立数据库、共享数据库独立Schema、共享数据库共享Schema(增加租户ID字段逻辑隔离)三种方案。本项目选用共享数据库共享Schema方案,所有租户数据存放同一数据库表,每条业务记录携带租户id,查询、新增、修改时自动绑定租户编号,不同租户看不到其他租户业务数据,硬件成本低,适合市政多单位接入场景。
2.5 ECharts数据可视化
ECharts是开源图表组件库,本系统首页看板使用柱状图对日租金、月租金、年租金租赁数据进行可视化展示,统计租赁订单总数量,把租赁经营数据转化为直观图表,替代人工报表统计。
2.6 B/S架构
系统采用浏览器/服务器架构,用户无需安装客户端,浏览器访问网址即可登录系统。管理员、租户通过网页完成全部运维共享业务操作,部署升级只需要服务端更新,维护简单。
3 系统需求分析
3.1 角色分析
系统包含两类用户角色:
超级管理员:拥有系统全部权限,可以管理租户信息、区域信息、路灯设备、运维车辆,查看全部租户的租赁订单,发布系统通知公告,查看全局租金统计看板。
租户用户:租户单位账号,可以注册租户,登录系统;管理本租户下路灯设备、运维车辆;发起租赁订单,查看属于本租户的订单;查看通知公告,查看本租户租金统计;修改个人账号信息;不能访问其他租户的数据。
3.2 功能性需求
结合截图界面,梳理系统功能模块:(1)登录注册模块:登录页面输入用户名密码,选择身份(管理员/租户);支持新租户注册账号;校验账号密码,登录成功跳转后台首页,未登录禁止访问内部页面。
(2)系统首页数据看板模块:首页展示租赁订单总数量;通过柱状图可视化统计日租金、月租金、年租金数据;图表展示不同时间节点租金变化趋势,为业务决策提供数据支撑。
(3)租户管理模块(仅管理员):管理员维护各个租户单位信息,实现租户新增、修改、删除、条件搜索、分页查询,管理租户账号启用禁用。
(4)区域管理模块(仅管理员):维护城市各个行政区域信息,记录区域名称、位置描述,路灯设备绑定所属区域,完成区域数据增删改查。
(5)路灯设备管理模块:管理员可以管理全部路灯设备;租户仅操作自己租户名下路灯设备;录入路灯编号、所属区域、设备状态,实现设备新增、更新、删除、搜索分页。路灯设备作为共享资源用于对外租赁业务。
(6)租赁订单模块:核心业务模块,创建路灯设备租赁订单,记录租赁设备、租赁时长、租金金额、租户信息;实现订单增删改查、条件检索;多租户模式下租户只能查看自己创建订单,管理员查看全部订单。
(7)运维车辆管理模块:管理运维车辆信息,登记车辆编号、状态,运维车辆同样属于共享资源,可以随同路灯业务租赁调度,完成车辆信息维护。
(8)通知公告模块:管理员发布平台公告;租户可以查询、查看公告详情;页面提供公告标题搜索框,表格展示序号、公告标题、发布人、发布时间,支持条件查询、分页,点击查看阅读公告详情。
(9)我的信息模块:管理员、租户都可以查看、修改个人账户基础信息。
3.3 非功能性需求
多租户数据隔离:租户A登录系统,无法查询租户B的路灯设备、订单数据,保证业务数据安全隔离。
易用性:后台界面布局清晰,导航菜单明确,按钮、表单文字中文,简单培训即可上手。
稳定性:增删改查业务运行稳定,图表正常渲染,多用户并发访问不会崩溃。
安全性:登录token身份校验,未登录拦截跳转登录页;租户操作自动过滤租户ID,防止越权查询别的租户数据。
兼容性:Chrome、Edge主流浏览器页面、图表正常展示。
4 系统设计
4.1 总体架构设计
系统采用前后端分离B/S架构,四层架构:1.表现层:Vue前端,包含登录页面、后台管理页面、数据看板页面,ECharts渲染租金图表,通过Axios向后端发送HTTP请求。2.业务逻辑层:SpringBoot的Controller接收请求,Service层执行业务逻辑,封装SaaS多租户拦截逻辑,自动获取当前登录租户ID,给查询条件追加租户编号,实现数据隔离。区分管理员与租户权限逻辑。3.数据访问层:MyBatis Mapper接口操作MySQL数据库,完成数据持久化。4.数据库层:MySQL数据库,全部业务表增加tenant_id租户编号字段,实现共享数据库逻辑多租户。
4.2 功能模块设计
系统一共分为9大模块:登录注册模块、首页看板模块、租户管理模块、区域管理模块、路灯设备模块、租赁订单模块、运维车辆模块、通知公告模块、我的信息模块。租户id作为核心关联字段,路灯设备、租赁订单、运维车辆、公告都携带租户编号;管理员访问时可以关闭租户过滤,查看全量数据;租户用户访问接口自动带上租户id过滤,只能读取自身数据。
4.3 数据库设计
采用共享数据库,共享数据表,业务表增加tenant_id INT COMMENT \'租户ID\',实现多租户逻辑隔离。核心数据表如下:
租户表(tenant)
字段名
类型
字段说明
id
int
主键id COMMENT \'租户主键\'
tenant_name
varchar
租户单位名称 COMMENT \'租户单位名字\'
username
varchar
登录账号 COMMENT \'租户登录账号\'
password
varchar
登录密码 COMMENT \'租户登录密码\'
contact
varchar
联系人 COMMENT \'租户联系人\'
phone
varchar
联系电话 COMMENT \'租户联系电话\'
status
tinyint
状态 COMMENT \'账号是否启用\'
create_time
datetime
创建时间 COMMENT \'记录创建时间\'
管理员表(sys_admin)
字段名
类型
字段说明
id
int
主键id COMMENT \'管理员主键\'
username
varchar
账号 COMMENT \'管理员登录账号\'
password
varchar
密码 COMMENT \'管理员登录密码\'
real_name
varchar
真实姓名 COMMENT \'管理员姓名\'
create_time
datetime
创建时间 COMMENT \'创建时间\'
区域表(area)
字段名
类型
字段说明
id
int
主键id COMMENT \'区域主键\'
area_name
varchar
区域名称 COMMENT \'城市区域名称\'
remark
varchar
备注 COMMENT \'区域备注说明\'
create_time
datetime
创建时间 COMMENT \'记录创建时间\'
路灯设备表(lamp_device)
字段名
类型
字段说明
id
int
主键id COMMENT \'路灯设备主键\'
tenant_id
int
租户id COMMENT \'所属租户编号,多租户字段\'
area_id
int
区域id COMMENT \'所属区域ID\'
lamp_no
varchar
路灯编号 COMMENT \'路灯设备编码\'
lamp_type
varchar
路灯类型 COMMENT \'路灯型号类型\'
status
varchar
设备状态 COMMENT \'设备空闲/租赁中/故障\'
create_time
datetime
创建时间 COMMENT \'录入时间\'
运维车辆表(operation_car)
字段名
类型
字段说明
id
int
主键id COMMENT \'运维车辆主键\'
tenant_id
int
租户id COMMENT \'所属租户编号\'
car_no
varchar
车辆号牌 COMMENT \'运维车辆车牌\'
car_status
varchar
车辆状态 COMMENT \'空闲/外出运维\'
create_time
datetime
创建时间 COMMENT \'录入时间\'
租赁订单表(rent_order)
字段名
类型
字段说明
id
int
主键id COMMENT \'租赁订单主键\'
tenant_id
int
租户id COMMENT \'订单所属租户\'
lamp_id
int
路灯id COMMENT \'租赁路灯设备ID\'
rent_start
datetime
租赁开始时间 COMMENT \'租赁起始日期\'
rent_end
datetime
租赁结束时间 COMMENT \'租赁到期日期\'
day_rent
decimal
日租金 COMMENT \'每日租金\'
month_rent
decimal
月租金 COMMENT \'月度租金\'
year_rent
decimal
年租金 COMMENT \'年度租金\'
order_status
varchar
订单状态 COMMENT \'订单状态\'
create_time
datetime
下单时间 COMMENT \'订单创建时间\'
通知公告表(notice)
字段名
类型
字段说明
id
int
主键id COMMENT \'公告主键\'
tenant_id
int
租户id COMMENT \'发布租户编号\'
title
varchar
公告标题 COMMENT \'公告标题\'
content
text
公告内容 COMMENT \'公告正文\'
publisher
varchar
发布人 COMMENT \'发布人员姓名\'
publish_time
datetime
发布时间 COMMENT \'公告发布时间\'
租赁订单是系统核心业务表,保存日、月、年租金,后台统计接口基于本表聚合计算,统计结果传给ECharts绘制首页租金柱状图。
5 系统实现
5.1 后端多租户逻辑实现
后端SpringBoot增加租户拦截器,用户登录之后保存当前用户身份与tenant_id。如果登录身份是租户,执行数据库查询时自动拼接where tenant_id = #{当前租户id};超级管理员身份则不拼接租户条件,查询全部数据。全部接口返回中文提示信息,代码注释全部使用中文。
租赁订单统计接口,使用MySQL聚合函数分组统计不同时间维度下日租金、月租金、年租金,统计订单总数量,封装JSON返回给前端图表组件。
5.2 前端功能实现
登录页面:表单包含用户名输入框、密码输入框,提供管理员、租户单选选择框,设置登录按钮、注册租户按钮。选择不同身份登录,后端识别角色,跳转对应后台主页。
系统首页看板页面:页面顶部展示系统标题,展示租赁订单总数字段;下方分为三块柱状图表,分别展示日租金、年租金、月租金,X轴为时间,Y轴为租金金额,鼠标悬浮图表展示时间与租金数值,和截图界面保持一致。
通知公告管理页面:左侧导航栏点击通知公告进入页面;页面上方公告标题搜索框加查询按钮;表格列包含序号、公告标题、发布人、发布时间;每条记录操作列放置查看按钮,点击弹窗查看公告详情,页面实现分页组件。
其他管理页面:租户、区域、路灯设备、租赁订单、运维车辆页面统一采用ElementUI表格,提供新增、删除、更新、详情、搜索、分页功能。租户账号登录后,列表只会展示属于该租户的数据,实现SaaS多租户隔离效果。
5.3 核心界面展示
1.登录界面:页面左右分栏布局,左侧展示图片,右侧登录表单,区分管理员、租户身份选项,支持登录、注册租户功能。2.系统首页数据看板:后台首页,展示租赁订单总数,日租金、月租金、年租金柱状统计图,可视化展示租赁经营数据。3.通知公告页面:列表展示公告信息,支持按标题查询,点击查看公告详情,分页浏览公告数据。
6 系统测试
6.1 测试目的
验证系统各个模块功能是否满足需求,重点测试SaaS多租户数据隔离是否生效,增删改查、搜索分页、图表统计、登录权限是否正常,修复程序缺陷,保证系统稳定可用。
6.2 功能测试用例
1.登录注册测试:测试管理员账号登录;测试注册新租户账号,租户账号登录;错误账号密码给出中文提示;未登录访问后台地址拦截跳转登录页面。2.多租户隔离测试:租户1账号录入路灯设备、创建租赁订单;切换租户2账号登录,确认看不到租户1的设备与订单;管理员账号登录,能够查看全部租户设备订单,验证多租户逻辑隔离。3.路灯设备、运维车辆测试:新增、编辑、删除设备,搜索过滤,分页切换,验证数据保存正确。4.租赁订单与看板测试:新增多条租赁订单,访问首页看板,校验租赁订单总数量统计正确;日租金、月租金、年租金柱状图表数据和数据库订单租金数据保持一致。5.通知公告测试:管理员新增公告,表格展示标题、发布人、发布时间;输入标题关键词查询;点击查看按钮阅读公告详情;分页跳转功能正常。
6.3 测试结论
经过多组测试,系统登录注册、租户管理、路灯设备、租赁订单、运维车辆、通知公告全部业务功能正常。SaaS多租户逻辑隔离生效,租户之间业务数据互相不可见;ECharts租金统计图表可以正确渲染;页面中文提示正常,分页搜索功能可用,系统满足城市路灯运维共享服务业务需求,达到设计目标。
7 总结与展望
7.1 总结
本文针对城市路灯运维资源分散、难以共享的业务痛点,设计实现一套基于SaaS多租户架构城市路灯运维共享服务系统。系统使用SpringBoot+Vue+MySQL技术,采用共享数据库逻辑隔离的SaaS多租户方案。系统区分管理员、租户两类角色,完成租户管理、区域管理、路灯设备、运维车辆、租赁订单、通知公告、租金可视化看板等完整业务。租户之间业务数据相互隔离,一套系统服务多家运维单位,实现路灯运维设备、车辆资源共享租赁,自动统计租金数据。系统解决传统纸质、Excel管理模式效率低下的问题,助力智慧城市路灯运维信息化建设。
7.2 展望
本系统仍存在优化空间。第一,可以接入物联网设备,对接真实路灯硬件,同步路灯故障状态到系统;第二,增加运维故障工单流转功能,完善报修派工流程;第三,增加Excel批量导入导出功能,批量导入路灯设备数据,导出租赁订单报表;第四,完善权限粒度,租户内部再划分操作员、查看者子角色;第五,增加数据备份、操作日志,记录系统全部关键操作,进一步提升系统安全性。
参考文献
[1] 周亮.基于SaaS多租户架构管理系统的设计与实现[J].电脑与信息技术,2023,31(02):76‑79.[2] 吴迪.智慧城市路灯运维管理平台的设计研究[J].信息技术,2022(08):102‑106.[3] 张恒.基于SpringBoot+Vue的市政设施管理系统开发[J].计算机技术与发展,2024,34(01):187‑192.[4] 李军.MySQL多租户数据隔离方案对比研究[J].现代计算机,2023(11):110‑114.[5] 王浩.ECharts可视化技术在业务统计系统中的应用[J].电脑知识与技术,2023,19(22):94‑96.
如需定做或者获取更多资料,请联系QQ:375279829
在线客服
联系方式

技术微信

375279829

在线时间

周一到周日

客服QQ

375279829

二维码
在线客服