一种前后端分离的水电站群优化调度系统及方法技术方案

技术编号:19647506 阅读:27 留言:0更新日期:2018-12-05 20:41
本发明专利技术属于水利信息化领域,公开了一种前后端分离的水电站群优化调度系统及方法。方法有水电站群的生成:首先生成机组对象;然后生成电站对象,机组对象作为电站对象的一个属性保存电站对象中;最后根据电站拓扑结构生成有向无环图,组成水电站群对象;后端专注于服务层,进行数据的传递;前端专注于UI层,进行前端页面的控制、渲染逻辑和系统交互。本发明专利技术提取出公共方法设计了相应的接口,新的模型算法只需在此基础上扩展即可,极大地增强了程序的灵活性;本发明专利技术实现了前后端分离,结构清晰、扩展方便,具有简单性、可伸缩性和松耦合等优点。

An Optimal Dispatching System and Method for Hydropower Stations with Separated Front and Back Ends

The invention belongs to the field of water resources informatization, and discloses an optimal dispatching system and method for a group of hydropower stations with front and back ends separated. The method includes generating the hydropower station group: generating the unit object first; then generating the unit object, which is saved in the plant object as an attribute of the plant object; finally generating the directed acyclic graph according to the power station topology structure to form the hydropower station group object; focusing on the service layer at the back end to transfer data; and specializing in the front end. Note in the UI layer to control front-end pages, rendering logic and system interaction. The invention extracts common methods and designs corresponding interfaces, and the new model algorithm only needs to be extended on this basis, which greatly enhances the flexibility of the program; the invention realizes the separation of front and back ends, has clear structure, convenient expansion, and has the advantages of simplicity, scalability and loose coupling.

【技术实现步骤摘要】
一种前后端分离的水电站群优化调度系统及方法
本专利技术属于水利信息化领域,尤其涉及一种前后端分离的水电站群优化调度系统及方法。具体涉及一种基于REST架构风格、前后端分离的水电站群优化调度系统设计。
技术介绍
目前,业内常用的现有技术是这样的:采用浏览器/应用服务器(B/S)架构构建应用系统,在系统开发过程中,利用Java跨平台语言并结合JavaScript、JSP、WebService等技术设计开发服务器端应用程序与客户端图形用户界面,并以MySQL和Tomcat作为数据库服务器与JavaWeb应用服务器。对于客户端用户来说,只需安装浏览器与Java运行环境即可操作该系统,而升级与日常维护等工作均在服务器端完成,与客户端无关,减少了用户工作量。随着我国水电建设的迅猛发展,水利事业的现代化和信息化进程全面推进,水电调度需要承担更复杂的调度任务,处理日益复杂的调度关系。水电站群优化调度系统是十分复杂的大型应用软件,涉及电站生产运行所需的水雨情测报、发电计划编制、运行结果分析评价等各个方面,其功能需求涵盖众多应用模块,如:基础信息管理、水文特性分析、降雨和径流预报、长中短期优化调度、厂内经济运行等。每一个应用模块与各种模型算法紧密相连,而每一个算法又与大量的业务信息相关联,不同应用模块的业务信息又存在不同程度的交叉。综上所述,现有技术存在的问题是:(1)传统的水电站群优化调度系统通常采用MVC架构模式,即将模型(Model)、视图(View)、控制器(Controller)三者分离,便于应用程序的设计和管理。但随着系统规模的不断扩大,视图依赖于模型的问题越来越突出,前端代码越来越复杂,充满了各种约定,导致前后端高度耦合,无法统一协作。前端受限于后端的开发过程,在后端视图层高度耦合导致业务逻辑散落在应用中,从而使得前后端分工不明确,沟通成本大大提高。(2)水电站群优化调度系统的结构极其复杂,设计到的对象和参数众多,相互之间联系非常紧密,在实体类、模型算法的设计上不够灵活,无法通过封装、继承、重载和多态等技术进行扩展,难以满足大规模水电站群优化调度系统的系统性和可伸缩性要求。(3)前端采用JavaSwing和JSP进行开发,技术相对落后,且采用JSP存在增大了服务器的压力、前端与后端未脱离,拖慢开发进度、过于依赖java运行环境、复用率较低等缺点,无法满足水电站群优化调度系统界面友好、响应式布局的要求。解决上述技术问题的难度和意义:解决上述技术问题的难度在于需要运用面向对象的设计思想对流域水电站群联合优化调度有关的各类实体、模型与算法进行抽象,设计出满足封装性、可扩展性的实用类库;同时需要进行良好的前后端分离设计,以满足水电站群联合优化调度系统高内聚、松耦合的要求。意义:(1)结合后端SpringBoot微框架和前端React框架,设计了一种基于前后端分离技术的REST系统总体架构,并依据现有的先进系统集成技术构建满足实际工程需求的软件设计模式,具有一定的工程实用价值。(2)基于上述架构,实现了一种基于REST的前后端分离的调度系统,该系统具有数据采集维护、方案制定与仿真、成果管理与分析等功能。(3)构建了具有广泛的通用性、灵活性、智能性和可扩展性的大规模水电系统,且能切实服务于生产调度的需要。
技术实现思路
针对现有技术存在的问题,本专利技术提供了一种前后端分离的水电站群优化调度系统及方法。本专利技术是这样实现的,一种前后端分离的水电站群优化调度方法,所述前后端分离的水电站群优化调度方法包括:水电站群的生成:首先将与水电站群优化调度相关的基础数据保存在数据库中,数据存储按照不同用途进行分类。生成水电站群对象封装create()方法中,传入一个无序的电站名称数组,即可完成对象的创建,其具体步骤包括:首先调用机组工厂类生成机组对象,然后调用电站工厂类生成电站对象,电站包括一种或几种机组类型,每一种类型的机组只保留一个实体;依次遍历数组,直到所有电站生成完毕,再按照电站的拓扑结构构造有向无环图,组成水电站群对象。前后端分离:后端以SpringBoot微框架为基础,专注于服务层,涉及到数据库交互、实体的抽象与构建、模型算法的编写以及权限认证、日志管理等众多复杂且相互耦合的业务模块。具体地,采用SpringDataJPA进行数据库的连接,只需编写持久层接口,简单的查询可通过解析方法名创建;调度实体、模型与算法的编写以面向对象程序设计为指导,其创建由SpringIOC容器统一管理,按需分配,从而降低对象之间的依赖关系;用户认证和用户授权通过SpringSecurity提供的用户登录认证和访问控制等方法实现,包括密码加密,页面权限等等;日志倾向于门面模式的Slf4j框架,并通过SpringAOP面向切面编程,把分散在各个应用模块的日志记录功能统一处理。前端为单页面应用程序,在启动时只加载单个HTML页面,并通过动态更新完成与用户的交互任务。采用React、Dva以及AntDesign的技术栈,专注于UI层,即前端页面的控制和渲染逻辑、系统交互和用户体验。具体地,利用React声明式的、基于组件的特点,进行前端页面的开发,并通过其虚拟DOM、反应式的单向数据绑定提高效率;采用Dva管理状态,解决从状态到组件的单向数据流转问题,从而使得数据流向清晰简明;基于AntDesign确定和自然的设计价值观和模块化的解决方案,采用AntDesignofReact开箱即用的高质量组件,简化前端开发的工作。后端在服务器上运行,提供数据、处理业务逻辑;前端在浏览器上运行,用于接收数据、返回数据,处理渲染逻辑。前后端是两个独立的程序,互不影响,只通过RESTfulAPI进行交互,是一种真正意义上的前后端分离。进一步,水电站群的生成中,还需先进行数据库的创建;(1)数据收集与整理。收集电站基础数据、运行数据等,按照不同类型、不同用途进行分类,整理并保存在Excel中备用。(2)数据库设计。依据存储数据的用途,将所有库表分为四大类:基础数据存储表(以“basic_”开头)、实际运行数据存储表(以“real_”开头)、方案结果存储表(以“result_”开头)和用户及其他信息存储表(以“other_”开头)。这种设计既满足数据库表的设计规范要求,也有利于库表的快速查询与维护。(3)数据导入。利用Navicat等数据库管理软件,将整理好的数据导入到数据库中,完成数据库的创建。导入前反复检查数据格式是否符合要求,否则需在Excel中调整。进一步,水电站群生成步骤包括:(1)根据调度模型的不同,提取出所涉及的电站名称,将其保存在电站枚举类数组或列表中。电站的顺序不作要求,以增强程序的灵活性。(2)水电站群对象生成过程封装在水电站群工厂类的create()方法中,将步骤一中数组或列表传入即可。具体的,首先调用机组工厂类生成机组对象,然后调用电站工厂类生成电站对象,电站包括一种或几种机组类型,每一种类型的机组只保留一个实体;依次遍历数组,直到所有电站生成完毕,再按照电站的拓扑结构构造有向无环图,组成水电站群对象。(3)水电站群类中包含灵活易用的API,包括获取水电站群的计算次序的方法getAllStations(),依次遍历列表即可;获取某一电站的直接上游电站本文档来自技高网
...

【技术保护点】
1.一种前后端分离的水电站群优化调度系统,其特征在于,所述前后端分离的水电站群优化调度系统包括:后端单元,在服务器上运行,用于提供数据、处理业务逻辑;以Spring Boot微框架为基础,专注于服务层,涉及到数据库交互、实体的抽象与构建、模型算法的编写以及权限认证、日志管理的众多复杂且相互耦合的业务模块;采用Spring Data JPA进行数据库的连接,只编写持久层接口进行查询;调度实体、模型与算法的编写以面向对象程序设计为指导,由Spring IOC容器统一管理,按需分配;用户认证和用户授权通过Spring Security提供的用户登录认证和访问控制方法进行密码加密,页面权限;日志倾向于门面模式的Slf4j框架,并通过Spring AOP面向切面编程,把分散在各个应用模块的日志记录功能统一处理;前端单元,在浏览器上运行,用于接收数据、返回数据,处理渲染逻辑;在启动时只加载单个HTML页面,并通过动态更新完成与用户的交互任务;采用React、Dva以及Ant Design的技术栈,专注于UI层,前端页面的控制和渲染逻辑、系统交互和用户体验;利用React声明式的、基于组件的特点,进行前端页面的开发,并通过虚拟DOM、反应式的单向数据绑定;采用Dva管理状态,从状态到组件的单向数据流转。...

【技术特征摘要】
1.一种前后端分离的水电站群优化调度系统,其特征在于,所述前后端分离的水电站群优化调度系统包括:后端单元,在服务器上运行,用于提供数据、处理业务逻辑;以SpringBoot微框架为基础,专注于服务层,涉及到数据库交互、实体的抽象与构建、模型算法的编写以及权限认证、日志管理的众多复杂且相互耦合的业务模块;采用SpringDataJPA进行数据库的连接,只编写持久层接口进行查询;调度实体、模型与算法的编写以面向对象程序设计为指导,由SpringIOC容器统一管理,按需分配;用户认证和用户授权通过SpringSecurity提供的用户登录认证和访问控制方法进行密码加密,页面权限;日志倾向于门面模式的Slf4j框架,并通过SpringAOP面向切面编程,把分散在各个应用模块的日志记录功能统一处理;前端单元,在浏览器上运行,用于接收数据、返回数据,处理渲染逻辑;在启动时只加载单个HTML页面,并通过动态更新完成与用户的交互任务;采用React、Dva以及AntDesign的技术栈,专注于UI层,前端页面的控制和渲染逻辑、系统交互和用户体验;利用React声明式的、基于组件的特点,进行前端页面的开发,并通过虚拟DOM、反应式的单向数据绑定;采用Dva管理状态,从状态到组件的单向数据流转。2.如权利要求1所述的前后端分离的水电站群优化调度系统,其特征在于,后端单元包括:数据库,依据存储数据的用途,将所有库表分为四大类,分别为以“basic_”开头的基础数据存储表,用于存储电站、机组的基础数据,包括但不限于水位库容曲线、尾水位下泄流量曲线、机组NHQ曲线等;以“real_”开头的实际运行数据存储表,用于存储电站机组实际运行的数据,以月、日或小时进行分类,分别存储;以“result_”开头的方案结果存储表,用于存储调度结果;以“others”开头的用户及其他信息存储表,用于存储调度系统用户信息及其他信息。这种设计既满足数据库表的设计规范要求,也有利于库表的快速查询与维护。Spring模块,采用依赖注入的方式进行资源集中管理,通过内置Tomcat、Jetty容器,利用Java配置方式,进行开箱即用、自动配置;机组模块,用于按照类型进行分类,每种类型只产生一个共享对象;机组对象中含有NHQ曲线、预想出力曲线的基础数据;电站与电站群模块,通过有向无环图(DirectedAcyclicGraph)对混联水电站群进行拓扑结构排序,给出获取直接上游电站、下游相关电站的方法,模型算法模块,包括:优化问题类模块,用于定义问题方法名称、决策变量、目标函数以及约束条件的个数基本信息,并提供产生结果和适应度评价的方法;还用于创建长期优化调度问题和短期优化调度问题;计算结果类模块,用于定义设置和获取变量值、目标函数值的方法,还用于提供拷贝的方法;在数学规划法计算时,作为初始解或者最终解;智能算法求解时,Solution的大小由种群的规模决定;还用于提供长期调度结果与短期调度结果;前端单元,包括:SPA模块,只包含单个页面的应用程序,用于启动时只加载单个HTML页面,并通过动态更新来完成与用户的交互任务;React模块,用于以某种方式组织代码,进行预测、调试;还用于通过组合的方式创建更复杂的应用;还用于利用Node.js在服务端重用代码,或者通过ReactNative创建移动端手机应用;Dva模块,用于解决组件之间的通信、数据与视图的串联、路由与...

【专利技术属性】
技术研发人员:莫莉廖想高新稳彭璐邹义博舒生茂
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1