登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于WebSocket的工业控制系统BS结构软件用户控制方法毕业论文

 2020-02-23 18:20:26  

摘 要

传统的浏览器获取实时数据方法,是以轮询的方式发送HTTP请求得到最新数据。但这种方式效率不高。而HTML5提出的WebSocket技术不再只是客户端单向发送数据到服务器,而是可以双向通信。本文使用WebSocket来替代HTTP协议更新设备运行状态数据,使得设备状态更新延迟更小。本文从工业控制系统其核心在于维护设备相关数据的特点出发,提出了基于URL地址与角色结合数据接口访问权限控制方法,使得每次访问权限验证时无需查询数据库,加快了服务器程序响应速度。同时提出了一种基于角色-设备类型映射关系的设备操作权限控制方法,实现对设备操作权限管理。

论文讨论了基于WebSocket的工业控制系统的功能需求、系统设计以及实现方法。为了减少各模块的耦合度,本文将整个系统分为三层:模型层、控制层、前端界面层。使得系统进行访问权限管理、设备操作权限控制更加便捷而且设备状态更新延迟更小。

关键词:工业控制系统;WebSocket;访问权限控制;设备操作权限控制;

Abstract

Traditional browsers obtain real-time data by sending HTTP requests in a poll to get the latest data. However, this method is not efficient. The WebSocket technology proposed by HTML5 is no longer just a one-direction client sending data to the server, but can be mutual communication. This thesis uses WebSocket to replace the HTTP protocol to update the running status data of the device, which makes the device status update delay less. This thesis considers the core of the industrial control system is the maintenance of devices data, and proposes an interface access control method based on the combination of URL and role, which makes it unnecessary to query the database every time the access authority is verified, thus accelerating the response speed of the server program. At the same time, a device operation permission control method based on the role-device mapping relationship is proposed to implement the operation permission management of the device.

The thesis discusses the functional requirements, system design and implementation methods of B/S structure software for industrial control system based on WebSocket. In order to reduce the coupling of each module, this thesis divides the whole system into three layers: model layer, control layer, and view layer. The system makes access rights management, device operation permission control more convenient and the device status update delay is smaller.

Key Words:Industrial Control System; WebSocket; Access Control; Device Operation Access Control

目 录

第1章 绪论 1

1.1 研究背景 1

1.2.1 浏览器更新数据方法 2

1.2.2 访问权限控制 2

1.2 论文的主要工作及结构 3

第2章 需求分析 5

2.1 系统功能需求 5

2.2 系统非功能性需求 6

第3章 系统详细设计与实现 8

3.1 系统总体架构 8

3.2 数据库设计 9

3.2.1 操作员信息表 9

3.2.2 角色表 10

3.2.3 设备类型与最低操作权限映射表 10

3.2.4 设备信息表 10

3.3 模型层类设计 11

3.3.1. 数据存取 11

3.3.2. 用户模型类 13

3.3.3. 设备模型类 15

3.4 控制层 16

3.4.1 前后端数据交互接口 16

3.4.2 访问权限控制 18

3.4.3 操控设备 20

3.4.4 用户管理 20

3.4.5 系统的主要视图 22

第4章 系统测试 26

4.1 登录认证测试 26

4.2 访问权限控制测试 27

第5章 总结与展望 30

参考文献 31

致 谢 33

绪论

研究背景

基于浏览器客户端的工业控制系统指操作员通过借助浏览器经由网络对远程设备进行监测、控制的一个软件系统,在客户机中用户可以向目标设备发出控制命令或查看设备运行状态[1]。现代Web通信的常用技术是AJAX,该技术中由Web浏览器定时发送HTTP请求轮询服务器来获取更新后的数据[2]。HTTP每次查询均需要进行三次握手重新建立TCP连接,如图1.1所示。这将会带来一定的延迟。而且每次使用HTTP协议通信都需要至少带上十几个字节的HTTP请求头[3],这相对减少了每次可发送的有效数据量,加重了服务器负担。因此更好的解决方案是使用WebSocket进行通信,每次查询无需额外的请求头,无需重新建立TCP连接[4]

图1.1 发送HTTP请求时三次握手示意图

由于B/S结构的控制系统是一个相对开放的系统,这需要服务器端对每次访问进行权限认证,还需要对收到的设备操作命令判断其是否合法。不同系统其数据组成不同,因此需要基于B/S架构的工业控制系统自身的特点出发,才能设计出合适的工业控制系统权限管理架构。本系统在设备状态数据更新时对网络延迟有较高要求,而采用基于WebSocket进行数据更新能比传统使用AJAX方式网络时延更小,因此使用WebSocket进行数据实时更新是一个好的选择[5]

浏览器更新数据方法

其中,浏览器加载数据的方式目前一共有三种方式:重新加载整个页面、使用AJAX无刷新异步加载数据和使用WebSocket长连接加载数据[6]

浏览器最早加载数据的方式只有重新刷新整个页面,每次用户需要重新获取数据时候都要等待较长时间。而且在这个数据传输过程中浏览器界面将不显示任何组件,这使得操作员在该期间无法进行操作,也重复加载了许多资源增加了服务器负载,当代绝大多数网络应用不采用这种数据加载方式。

随后,诞生了AJAX技术,浏览器通过JavaScript异步加载XML或者JSON数据,并根据这些数据重新更改页面内容[7]。这种方式不用重新加载之前已经加载过的样式表以及图片,实现了局部刷新。用户体验更好,速度更快。

但是由于AJAX本质还是使用了HTTP协议发送请求来获取数据。首先,这使得每次为获取数据所发送的请求字符串中总是会携带一段HTTP请求头,在返回的数据中会携带HTTP响应头。而这些请求头和响应头大部分情况未被使用,造成了数据利用率不高的同时还增加了网络延迟。其次每次发送HTTP请求时都需要通过三次握手重新建立网络连接,这不但增加了建立连接所带来的网络延迟,而且还额外耗费了服务器端口资源降低了系统的并发性。因此AJAX只是适合使用在数据更新频率不高,一定时间内浏览器发送的HTTP请求数量不多的情况。对于像工业控制系统这种需要频繁加载数据而且要求网络延迟小的网络应用AJAX就无法胜任,这推动着WebSocket技术的发展。

WebSocket的提出使得浏览器更新数据不再需要向服务器轮询请求数据,服务器可以在数据发生更新时主动发送数据到浏览器。这种方式省去了重新建立连接以及浏览器发送HTTP请求头字符串所带来的延迟而且一个浏览器可以只使用一个WebSocket连接,也就是说只消耗了一个服务器端口同AJAX每发送一个请求消耗一个服务器端口相比极大减少了服务器资源的消耗[8]。因此使用WebSocket来实时更新工业控制系统中的设备状态数据是一个适合的解决方案。

访问权限控制

关于网络应用访问控制技术,它是采用一系列规则限制用户的访问操作以及范围的技术。现代访问控制中常用的模型在网络应用方面中的运用还存在如下问题:

首先是多数访问权限管理是基于具体页面来管理,访问权限控制模块与业务逻辑部分具有较高耦合度。目前的权限管理系统有两种做法:一种是在具体某个页面判断当前用户的访问是否合法,另一种是操作员访问任何页面均需要从数据库获取当前登录用户可以访问的页面范围[9]。这两种做法均使得访问权限管理模块与设备监控模块耦合度过高,一旦业务需求变更访问权限管理模块也需要相应的变更。

其次是访问权限控制模块不可重用。理想的可重用工业控制系统其访问权限控制系统应该是不依赖工业控制系统所涉及行业的类型,在引入访问控制模块的代码后,只需要设置相关配置文件即可完成访问权限控制。而目前的网络应用访问控制模块大多与业务逻辑相关联,不同的类型的工业控制系统需要开发不同的访问控制系统。

本文创新点在于进行权限验证时不用查询数据库,可以直接根据URL地址判断当前用户是否能访问该数据接口。传统的访问控制方法通常是将用户可访问的页面存储在数据库中,每次用户访问均需要查询数据库[10]。这既增加了浏览器等待时间,同时一旦数据库出现故障会导致访问权限控制出现问题。本文为解决该问题,采用了基于URL地址与角色结合数据接口访问权限控制方法,服务器处理访问请求流程见图1.2,这使得访问权限控制无需查询数据库,有助于更及时可靠地监测和控制相关设备。

图1.2 基于URL地址与角色结合数据接口访问权限控制方法

论文的主要工作及结构

本文主要工作是研究WebSocket技术和基于角色的访问控制技术后,设计出一种新的基于B/S架构并采用WebSocket更新设备状态数据的工业控制系统。本文将WebSocket技术应用该系统中的设备状态更新中,同时在访问控制模块根据工业控制系统的特点设计了一种基于角色与URL地址结合的访问控制方法,使得该系统更通用、设备状态数据更新延迟更小、消耗服务器资源更少。

最后开发了一个基于WebSocket的工业控制系统,验证了使用WebSocket技术更新设备状态可行性以及基于URL地址与角色相结合的访问控制方法的可行性。

本文主要分为五个章节,各章节描述如下:

第一章:绪论。介绍了本文的研究背景、目的、意义、相关研究现状、论文整体框架和论文主要工作。

第二章:需求分析。根据通用工业控制系统需求分析,概要的介绍了系统的功能、介绍了该系统的功能性需求以及非功能性需求。

第三章:系统详细设计。包括系统设计、数据库设计、访问权限控制设计与实现、基于WebSocket技术的设备运行状态数据更新实现、用户管理模块实现。

第五章:总结与展望。总结了设计的工业控制系统其特点并指出了当前存在的一些不足,对进一步的研究方向进行了规划。

需求分析

系统功能需求

工业控制系统结构示意图如图2.1所示,管理员通过客户机借助浏览器访问Web服务器以获取可视化控制界面。同时Web服务器需要对用户进行身份认证,其数据来自于设备状态数据库。在底层设备中有多台设备状态数据收集计算机,实时将各个设备运行状态通过局域网存入设备状态数据库以实现管理员能实时了解各设备的运行状态。

图2.1 工业控制系统结构示意图

本文设计的系统总体如图2.2所示,可以分为六个模块:设备运行状态管理、用户认证、页面访问权限控制、用户管理和操作设备权限控制。其中用户角色按访问权限级别从小到大分为:访客、管理员、超级管理员。访客可以登录后通过浏览网页的形式查看各设备的状态,管理员除了拥有访客的全部功能外还可以对各设备进行操作,超级管理员除了拥有管理员的全部功能外还可以对本系统中的用户进行管理。详细的系统功能需求列表见表2.1。

图2.2 系统业务架构图

表2.1 系统功能需求列表

功能名称

功能描述

登录认证

用户可以点击导航栏登录按钮或者用户在未登录情况下访问需要登录网页时,系统要弹出登录对话框。

用户管理

在系统中有一个且仅有一个初始的超级管理员root。其他各类型管理员账号均由超级管理员root创建并管理,超级管理员Root其密码由系统预设。

操作权限管理

系统根据当前用户权限判断当前操作是否合法。

客户端获取设备数据

客户端可以使用WebSocket发送事先约定的协议字符串向服务器请求数据,服务器将设备数据封装在JSON数据中通过WebSocket返回数据。

客户端发送控制命令

客户端可以采取AJAX的方式发送JSON格式的控制命令到服务器端,服务器对收到的请求进行处理并将处理结果封装在JSON数据中予以反馈。

系统非功能性需求

所有要使用本系统的用户均需要登录,未登录用户应当能被拦截。本系统借鉴Linux系统中的用户权限管理方式,在系统中有一个且仅有一个超级管理员Root。其他各类型管理员账号均由超级管理员Root创建并管理,超级管理员Root其密码由系统预设。

客户端访问各个页面均需要通过过滤器判断当前用户是否已登录以及是否有权限访问。客户端在使用WebSocket获取设备状态或者通过AJAX的方式发送命令时,其所发送的请求字符串中需要携带口令字符串,该口令字符串是在用户登录后服务器分配的,每个用户每次登录口令字符串均不同。用户操控设备在服务器端程序需要验证该角色用户是否能操控该类型设备,操作权限信息存储在角色-设备类型权限映射表中。

由于对通信的及时性要求比较高,因此本文设计了一个基于WebSocket的设备状态信息更新方法,使得设备状态更新网络延迟更小。除了用户登录时的身份验证之外,还将在用户发出控制指令时,验证该角色用户是否能操作该类型设备。由于JSON是键值对格式的字符串与XML相比其传输数据更高效[11],本文将使用JSON格式的字符串进行数据传输。

系统详细设计与实现

系统总体架构

本文所设计系统采用分层架构,分为:用户界面层、控制层、模型层。采用分层架构的好处是可以简化工程的复杂度,降低各部分的耦合度[12]。视图层为用户提供可视化界面将后端提供的数据展示,该层无需考虑后端服务器程序的具体实现,仅需要考虑后端服务器程序提供的数据接口格式。控制层是关键,其不但要为视图层提供数据交互接口,同时也要对所有的浏览器请求进行身份验证以及需要对用户操控设备权限进行控制。控制层无需关心数据库类型以及数据库的具体设计,因为这部分工作交给了模型层进行抽象,控制层调用模型层提供的接口来获取数据。

整个系统将按照用户身份来分配界面以及功能,整个系统用户分为三级从低到高分别是:访客、普通管理员、Root用户。访客仅能在登录后查看各设备的状态。管理员除了可以查看设备状态外还可以通过客户端发送控制命令对设备进行控制。超级管理员除了管理员的所有功能外还负责维护设备信息包括添加、删除、修改设备信息,同时还负责管理其他非超级管理员用户的信息。

关于权限管理方面,本文解决方案是基于角色与URL地址结合进行访问控制。整个系统将只有一个超级管理员,而超级管理员可以创建多个访客和管理员。页面访问的权限管理和设备操作权限管理将分开进行处理,权限管理和功能分配类似。高级别用户将继承所有低级别用户的所有权限[13]。在访问权限控制方面本文创新点在于进行权限验证时不用查询数据库,可以直接根据URL地址判断当前用户是否能访问该数据接口。本文将使用数据库存储各用户可以访问的页面,以及各级用户可以对设备进行何种操作的控制。本文所设计系统只有超级管理员才可以修改以及删除用户信息,该项权限管理将由服务器程序管理不存入数据库。关于设备状态数据源方面,由于模型层将数据访问进行了抽象所以除了模型层以外的所有组件均无需考虑使用何种数据库。如图3.1所示操作员向服务器发送请求,首先是经过过滤器处理进行访问控制验证,随后转交给控制层(Controller)[14]。由控制层调用模型层提供的数据接口并生成JSON格式的数据发送给客户端。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 50元 才能查看全部内容!立即支付

微信号:bysjorg

Copyright © 2010-2022 毕业论文网 站点地图