CN106406836A - 面向电力系统分析的软件平台及其运行和分布式开发方法 - Google Patents
面向电力系统分析的软件平台及其运行和分布式开发方法 Download PDFInfo
- Publication number
- CN106406836A CN106406836A CN201510462816.0A CN201510462816A CN106406836A CN 106406836 A CN106406836 A CN 106406836A CN 201510462816 A CN201510462816 A CN 201510462816A CN 106406836 A CN106406836 A CN 106406836A
- Authority
- CN
- China
- Prior art keywords
- data
- algorithm
- client
- software
- development
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种面向电力系统分析的软件分布式开发方法,包括:构建具有通信功能的服务器端和客户端;软件算法的分布式开发,开发团队通过客户端调用服务器端的基础数据及通用算法进行相应算法的开发研究;软件的成果汇总,使开发团队的算法成果与软件服务器端无缝链接,实现软件的分布式开发。本发明提供的技术方案解决了软件构建过程中基础数据和基本算法的共享问题,避免了集中开发的高成本,提升了开发速度,同时实现了算法开发成果与软件的无缝融合,同时软件成果具有可移植性和重用性。
Description
技术领域
本发明涉及一种基于面向电力系统工程应用的软件平台,具体讲涉及一种面向电力系统分析的软件平台及其运行和分布式开发方法。
背景技术
开发基于面向电力系统工程应用的软件是一个工作量较大的系统工程,需要多个项目开发小组的共同协作。软件中的高级算法需要涉及实际电网中的相关数据和一些电力系统的基础算法。实际电网中的相关数据出于安全性的考虑不能随意拷贝,而同一类型的基础算法,采用不同的方式,得出相应的计算结果也有较大的差别。所以在开发电力系统软件时,保证数据的安全性和密封性,基础算法的统一性是十分有必要的。
同时,开发基于面向电力系统工程应用的软件,采用传统的集中式开发方式,或是项目开发小组在某地共同进行开发,实际上存在多个开发小组分散在各个地区的情况。针对这种情况,若是将各个开发小组集中到某地进行算法开发的成本过高,或是各项目小组完成相应的算法后,集中到一起再将算法整合,整个软件需要进行大量修改,耗时较长,所以传统的集中开发并不可行。
基于上述情况,电力系统工程应用迫切需要一种新的软件开发模式,来适应新形势,使得在软件能够在保证数据的安全性和密封性,基础算法的统一性的前提下,支持开发机构进行异地开发,不必拘束于集中于一地开发的现实条件。这种异地进行算法研发的分布式开发方式,避免了传统开发方式交互性差且控制复杂,开发和维护成本高等缺点,实现了缩短开发周期和提高代码重用性的目的。但是现有技术中尚无针对电力系统算法的分布式的开发方式,目前绝大部分开发的电力系统算法都是针对事先约定的特定运行环境进行算法的研发,或是修改传统开发方式开发的算法成果的接口后移植到其他平台架构,像这样限在某种开发环境进行的定制和修改的开发方式,耗费较多的时间,很难满足最终用户需要。
发明内容
为解决上述现有技术中的不足,本发明的目的是提供一种面向电力系统分析的软件平台及其运行和分布式开发方法,通过这种分布式开发方式,使电力系统软件的开发具有基本算法统一,相关数据保密的特点,还避免了集中式开发的高成本的问题。
本发明的目的是采用下述技术方案实现的:
本发明提供一种面向电力系统分析的软件平台,其改进之处在于,所述平台包括服务器端和客户端,所述平台的服务器端包括:
电力系统算法库:用于存储电力系统的算法;
历史数据库:用于存储电网的拓扑数据;
内存数据库:用于缓存电力系统算法计算所需要的电网配置数据、算法中间结果的数据和输出的计算结果数据;
服务器端通讯模块:实现与客户端的通讯,用于接收客户端的通讯请求并向客户端发送计算的结果数据;
服务管理类模块:用于对服务进行管理,包括线程的产生、管理和销毁;
服务线程类模块:用于完成计算任务,解析、生成通讯报文,该模块采用每服务每线程的运行模式,即每一个服务对应一个独立的线程;
所述平台的客户端包括:
可视化模块:用于实现数据的显示,显示方式包括数据的列表显示方式、图文显示方式、表格显示方式;
数据库管理模块:用于管理客户端的数据,客户端的数据包括配置参数、电网基础的拓扑数据和计算结果数据;
客户端通讯模块:实现与服务器端的通讯功能,可以向服务器端发送数据请求并接受来自服务器端发送计算的结果数据。
一种面向电力系统分析的软件平台的运行方法,其改进之处在于:所述方法包括下述步骤:
步骤1、对软件运行平台进行启动,完成初始化操作,初始化的内容为判断电网拓扑数据是否存在以及判断加载软件所需的配置文件是否存在,若均存在则执行步骤2,否则发出错误提醒;
步骤2、平台的服务器端的通讯模块监听来自客户端通讯模块的连接请求,客户端通过服务器端的IP地址和端口号向服务器端发出连接请求,建立通讯连接;
步骤3、客户端的可视化模块加载系统配置文件,启动客户端的数据库管理工具,并将数据库中的配置参数传递给可视化模块,由客户端通讯模块向服务器端发送计算请求的数据报文,该报文包括计算所需的电网的基础拓扑数据,计算参数和计算指令;
步骤4、服务器端的通讯模块响应客户端请求,服务管理类模块根据请求创建分配服务线程;
步骤5、服务线程类模块解析通讯报文,根据客户端发送的数据报文要求进行计算,其中计算过程中的中间数据存储在内存数据库中;
步骤6、服务器端通讯模块根据客服端的请求将计算后的结果和异常信息,进行XML格式的编码后返回给客户端;
步骤7、服务器端服务管理类模块将线程关闭;
步骤8、客户端通讯模块将服务器端返回的XML格式的数据进行解析,可视化模块加载解析后的数据并进行显示。
其中,步骤5中服务线程类模块解析通讯报文,根据客户端发送的数据报文要求进行计算包括:
步骤5-1、加载计算所需的电网拓扑数据的线程资源,保存连接的句柄;
步骤5-2、对XML格式的通讯报文进行解析,得到报文内容;
步骤5-3、根据步骤5-2中计算功能要求来调用平台中对应的算法函数,完成客户端要求的电力系统计算;
步骤5-4、将步骤5-3计算的结果发送至服务端通讯模块。
其中,步骤5-3中的算法函数包括数据输入、启动计算和结果输出三个函数,具体为:
步骤5-3-1、进行数据输入计算,将历史数据库中的电网拓扑数据缓存到内存数据库中;
步骤5-3-2、启动计算,加载内存数据库中的数据,启动指定的电力系统算法进行计算;
步骤5-3-3、获取结果,获取步骤5-3-2的计算结果。
一种软件平台的分布式开发方法,其改进之处在于,所述开发方法包括以下步骤:
步骤A、构建具有通信功能的基础软件平台,包含服务器端和客户端;
步骤B、对软件平台算法进行分布式开发;
步骤C、对软件平台的成果进行汇总,通过将远端开发的相关高级算法整合移植到软件服务器端,使软件的功能完整化,实现最终的面向电力系统分析的软件的开发。
其中:所述步骤A中,服务器端用于处理客户端的算法计算,获取到客户端的计算请求之后,接收客户端的计算数据,并进行相应的计算,最终将计算结果返回给客户端;客户端用于显示各种不同的数据,包括输入的算法数据,算法计算结束后的结果数据,以及通过调用服务器端的通用数据接口显示通用数据;所述步骤A包括下述步骤:
步骤A-1:根据客户端和服务器端的通信的要求,软件采用ACE封装的C++的底层通讯,使客户端和服务器端实现基于ACE的C/S通讯;
步骤A-2:建立电力系统中服务器端的算法库,制定统一的调用接口;
步骤A-3:建立电力系统中服务器端的数据库,制定统一的访问接口;
步骤A-4:制定统一的计算服务流程;
步骤A-5:完善软件的数据管理,优化人机交互体验。
其中:所述步骤A-2中,算法库包含用于电力系统分析的基础算法和开发机构研发的高级算法,提供给算法开发机构和客户端调用计算使用;基础算法包括潮流计算、暂态稳定计算、短路电流计算、网损分析、电压稳定分析、静态安全分析、静态和动态等值分析、小干扰稳定分析、最优潮流计算、无功优化和继电保护整定电力系统常用的成熟算法,高级算法为研发机构基于上述常用算法针对电力系统某一课题进行二次开发后的算法;
所述步骤A-3中,数据库包括内存数据库和历史数据库;内存数据库指的是在内存中操作数据的数据库,用于完成算法计算过程中的数据暂存功能,将不同格式的数据存入内存数据库中转化成为统一格式的数据;历史数据库用于存储电网通用拓扑数据,供算法开发者调用使用;
所述步骤A-4中,服务器端提供计算服务的基类,所述计算服务流程包括数据输入、启动计算和获取结果;
数据输入采用数据输入函数实现;启动计算采用启动计算函数实现,在启动计算函数中,实现算法的计算过程,将计算过程统一到一个函数中;获取结果采用获取结果函数实现;
所述步骤A-5中,实现客户端的数据显示,显示方式包括数据的列表显示方式、图文显示方式和表格显示方式。
其中:所述步骤B中包括以下步骤:
步骤B-1:在异地开发的算法成果,通过软件客户端的算法访问接口和数据库访问接口,获取储存在服务器端的输入数据和基础算法;输入数据采用输入数据函数Input_data()实现数据的录入;
步骤B-2:在获取的输入数据和基础算法的基础上,进行相应高级算法的开发;启动开始计算函数。
所述步骤C,开发的高级算法成果使用的接口与服务端相同,即平台数据服务的调用接口异地-本地同构,经过修改把分布式开发的高级算法成果嵌入到软件平台。
本发明提供的技术方案具有的优异效果是:
1)本发明的软件平台采用C/S构架,将计算所需的基本参数保存在客户端,而更加重要数据保存在服务端,保证了数据的安全性和密封性;2)本发明的软件平台将电力系统的成熟算法集中在服务端算法库中,基于这些成熟算法开发的高级算法具备更优良性能和更高精度;3)本发明将开发完毕后的高级算法移植到服务端电力系统算法库,可供后续算法继续使用,提高了算法的使用效率;4)本发明提供的分布式的开发方式将算法开发与其它方面完全解耦,可以使开发机构不必关心底层通信的实现,专注于算法的开发,加快开发的进度。
附图说明
图1为本发明实施例公开的面向电力系统分析的软件运行平台的总体架构示意图;
图2为本发明实施例公开的软件平台计算服务接口同构示意图;
图3为本发明实施例公开的计算服务的数据管理示意图;
图4为本发明实施例公开的历史数据库和内存数据库结构示意图;
图5为本发明实施例公开的计算流程计示意图;
图6为本发明实施例公开的软件平台分布式开发流程示意图;
图7为本发明实施例公开的软件平台成果汇总示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
如图1所示,一种面向电力系统分析的软件运行平台包括服务端和客户端;
服务端的功能为处理各种客户端需求的算法计算,获取到客户端的计算请求之后,接收到客户端的计算数据,并进行相应的计算,并最终将计算结果返回给客户端。包括电力系统算法库、历史数据库、内存数据库、服务端通讯模块、服务管理类模块和服务线程类模块;
客户端的功能为负责显示各种不同的数据,包括电网的基础拓扑数据,算法计算后的结果数据以及服务端通讯模块返回的其他数据如异常信息等。包括可视化模块、数据库管理模块和客户端通讯模块。
各组成部分的功能分述如下:
电力系统算法库:包含基础算法和算法研发机构研发的高级算法,提供给算法开发机构和客户端调用计算使用。基础算法包括潮流计算、暂态稳定计算、短路电流计算、网损分析、电压稳定分析、静态安全分析、静态和动态等值分析、小干扰稳定分析、最优潮流计算和无功优化、继电保护整定等电力系统常用的成熟算法,高级算法为研发机构基于上述常用算法针对电力系统某一课题进行二次开发后的算法。
历史数据库:存储电网详细的拓扑数据,相对于客户端的电网基础的拓扑数据,该数据库中的信息更加具体详细。以Table表的形式存储,算法开发机构根据需求在服务端调用使用。历史数据库使用Oracle数据库,并且定义了通用的接口,方便函数调用。将历史数据库接口封装,隐藏历史数据库的属性和实现细节,仅公开接口,控制在程序中属性的读取和修改的访问级别。封装后可以增强数据的安全性,通过外部接口以特定的访问权限使用类的成员进行数据的访问,可以简化编程。使用历史数据库,一方面,可以长久存储数据;另一方面,算法开发机构在算法的开发过程中,通过函数从历史数据下载数据表缓存到内存数据库,实现算法数据格式的通用化。
内存数据库:内存数据库就是将数据放在内存中操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。同时,将不同格式的数据存入内存数据库中,即转化成为统一格式的数据。统一格式的数据保证了算法数据的通用性。平台通过采用内存数据库与历史数据库来实现对数据的管理,将数据库与算法的实现解耦,实现了数据的统一管理。
通讯模块:服务端通讯模块实现与客户端的通讯功能,可以接收客户端的通讯请求并向客户端发送数据;客户端通讯模块实现与服务端的通讯功能,可以向服务端发送数据请求并接受来自服务端发送的数据。由于使用基于C++Socket的连接方式不仅使用繁杂,而且不具备很好的可移植性,所以本平台采用ACE封装的C++的底层通讯,实现基于ACE的C/S通讯,使得平台具备了良好的可移植性和封装性。
服务管理类模块:用于对服务进行管理,即事件的分发管理,包括线程的产生、管理和销毁。例如,当有连接请求事件发生时,事件分发器首先判断是什么时间,根据时间分配线程,事件分发模块检测到连接事件发生,并根据事件类型将连接事件分发给相应的事件处理模块。
服务线程类模块:负责事件的处理,即实现完成计算任务,解析、生成通讯报文等功能。首先需要将要处理的事件,注册到事件分发模块,表明该事件处理模块负责处理该类型的事件,然后,事件到来时,该事件处理模块就会自动调用事件处理函数,进行相应的处理。例如,将连接事件注册到事件分发模块,这样,当事件分发模块检测到有连接事件发生时,就会自动将事件分发给该连接事件处理模块,连接事件处理模块自动调用处理函数,处理完毕之后返回。该模块采用每服务每线程的运行模式,即每一个计算服务对应一个独立的线程;
数据库管理模块:用于管理客户端的数据,客户端的数据包括配置参数、电网基础的拓扑数据和计算结果数据;
可视化模块:用于实现数据的显示,显示方式包括数据的列表显示方式、图文显示方式、表格显示方式。
如图2所示,其中平台选择了平台数据和服务的调用接口异地-本地同构化模式,即令客户端和服务端具有相同结构的接口,将开发阶段的算法,无缝地融入到最终成果阶段的平台算法库中。算法的调用接口异地-本地同构采用两种方法实现,分别是基于CORBA的异地-本地架构实现和基于消息的异地-本地架构实现。基于CORBA实现的异地-本地架构,屏蔽了系统以及语言的差别,很好的解耦客户端与服务端,无需定义繁杂的数据报文,使得远程调用变得简单。采用基于消息的异地-本地架构实现,将每一个API接口定义一个消息进行区分,通过XML语言进行数据通信,使用基于消息的异地-本地架构,能够全程把握,对每一个技术细节均很明确。
对应于图1所示的面向业务模型的软件运行平台,公开一种软件运行平台的运行方法,包括以下步骤:
步骤1、对软件运行平台进行启动,完成初始化操作,初始化的内容为判断电网拓扑数据是否存在以及判断加载软件所需的配置文件是否存在,若均存在则执行步骤2,否则发出错误提醒;
步骤2、平台服务端的通讯模块监听来自客户端通讯模块的连接请求,客户端通过服务端的IP地址和端口号向服务端发出连接请求,从而建立通讯连接;
其中,上述步骤2中客户端和服务器通讯连接的建立,是基于ACE的C/S通讯。服务端的通讯基本流程如下:
1)创建地址对象;
2)创建被动连接对象;
3)创建数据通讯对象;
4)设置服务器地址;
5)将地址作为参数传给被动连接对象,启动接收;
6)将数据通讯对象传给被动连接对象,启动接收,接受连接;
7)利用通讯对象接收和发送数据。
客户端的通讯基本流程如下:
1)创建地址对象;
2)创建主动连接对象;
3)创建数据通讯对象;
4)设置服务器地址;
5)将数据通讯对象和地址作为参数传给主动连接对象,发起主动连接;
6)利用通讯对象接收和发送数据。
步骤3、客户端的可视化模块加载系统配置文件,启动客户端的数据库管理工具,并将数据库中的配置参数传递给可视化模块,由客户端通讯模块向服务端发送计算请求的数据报文,该报文包括计算所需的电网的基础拓扑数据,计算参数和计算指令;
步骤4、服务端的通讯模块响应客户端请求,服务管理类模块根据请求创建分配服务线程;
步骤5、服务线程类模块解析通讯报文,根据客户端发送的数据报文要求进行计算,其中计算过程中的中间数据存储在内存数据库中;
其中,步骤5中服务线程类模块解析通讯报文,根据客户端发送的数据报文要求进行计算具体为:
步骤5-1、加载计算所需的电网拓扑数据的线程资源,保存连接的句柄;
步骤5-2、对XML格式的通讯报文进行解析,得到报文内容;
步骤5-3、根据步骤5-2中计算功能要求来调用平台中对应的算法函数,完成客户端要求的电力系统计算;
其中,步骤5-3中的算法函数流程如图5所示,服务端提供算法的基类Calculate_Base。
具体的计算算法的流程分成了三个函数:包括数据输入,启动计算和获取结果。平台服务端提供了所有算法的基类,算法开发机构进行算法研发时,需要继承算法的基类,并实现其中的相应方法。
数据的输入的函数为:Input_data():算法开发者通过实现该函数,将需要的数据,加载到数据库的相应位置,为之后的计算做好必要的准备。
启动计算的函数为:Start_calculate():启动计算函数为整个算法的核心函数。在这个函数中,实现了算法的计算过程。将计算过程统一到一个函数中。具体的计算过程由可由算法设计者来实现。
获取结果函数,函数名为:Get_data():获取计算结果的函数,可以将计算的结果返回给。同时重载了多种获取结果的函数,丰富的接口使客户端可以按需选用。这样,使得获取结果的方式灵活多样。
算法函数实现的具体步骤为:
步骤5-3-1、进行数据输入计算,将历史数据库中的电网拓扑数据缓存到内存数据库中;
步骤5-3-2、启动计算,加载内存数据库中的数据,启动指定的电力系统算法进行计算;
步骤5-3-3、获取结果,获取步骤5-3-2的计算结果。
如图3、图4所示,服务端的线程服务将数据库与算法的解耦,实现将数据的统一管理。通过将算法规范成三个部分,能够支持多个算法的串行计算,同时数据可以通过丰富的计算数据访问接口进行灵活的交互。基于此流程进行算法的调用,可以将算法与算法之间进行完全的解耦,使得其他算法开发者,可以快速的调用算法库的算法。
步骤6、服务端通讯模块根据客服端的请求将计算后的结果和异常信息,进行XML格式的编码后返回给客户端;
步骤7、服务端服务管理类模块将线程关闭;
步骤8、客户端通讯模块将服务端返回的XML格式的数据进行解析,可视化模块加载解析后的数据并进行显示。
基于上述软件运行平台及其运行方法,使得其面向电力系统分析的软件的分布式开发方法通过以下步骤即可实现,如图6所示:
步骤A、构建具有通信功能的基础软件平台,包含服务器端和客户端;
步骤B、对软件平台算法进行分布式开发;
其中,上述分布式开发方法步骤B中,在分布式开发阶段,远端的算法研发机构完成现算法的异地开发。远端的算法研发机构按照软件平台规定的通讯协议和提供的服务接口,调用服务端的常用算法和电网数据,在获取电网数据和常用算法的基础上,开发符合平台规范的高级算法程序。具体开发流程如下:
步骤B-1:确定Table定义表,Field定义表。算法研究机构首先根据算法的需求,定义数据库表,定义输入数据的格式以及类型,输出数据的格式以及类型。不同的表存储不同的数据,如母线表和支路表存储的就是电力系统中母线和支路的信息。字段定义表用于描述表定义表中的字段信息。如表1,表2所示。
表1 Table定义表
表2 Field定义表
步骤B-2:实现基于算法基类的研发算法派生类Calculate_Demo。当开发者需要开发自己的算法时,需要继承Calculate_Base这个基类,并实现其中的数据输入和启动计算即可,其中Get_data()函数并不需要开发者实现,由软件平台来实现。
步骤B-3:实现输入函数。算法研究机构根据自身的需求,在输入数据函数Input_data()中,实现数据的录入。在此处算法开发机构根据自身的需要使用相应的数据管理接口,实现数据的输入。
步骤B-3-1:定义输入数据类型。在Input_data函数中,数据包括由客户端发送过来的数据和服务端历史数据库中的数据。平台支持多种多样的输入数据。如,文件指针、格式字符串流、格式二进制流、XML数据流、历史数据库表格内容等。开发者需要定义自己要使用的输入数据类型。
步骤B-3-2:下载表定义表,字段定义表。将需要的表定义表,字段定义表,通过计算数据访问接口,从历史数据库下载到内存数据库的指定位置。
步骤B-3-3:解析输入数据到内存数据库。开发者需要将这些多种多样的输入数据,通过平台提供的计算数据访问接口,解析到内存数据库中。实现将多种多样的输入数据划归到统一的格式,即内存数据库中。
步骤B-4:实现计算函数。算法研究机构在Start_calculate()函数中,完成函数的计算过程,在这个函数中实现算法的核心功能。
其中,上述步骤B-4实现数据的计算,为整个算法的核心函数,将计算过程统一到一个函数中。其输入流程如下:
步骤B-4-1:从内存数据库中,提取需要的数据;
步骤B-4-2:进行相应的运算;
步骤B-4-3:将运算结果保存相应的内存数据的位置;
步骤C、对软件平台的成果进行汇总,通过将远端开发的相关高级算法整合移植到基础平台,使软件平台的功能完整化,实现整个平台的分布式开发。
其中,上述分布式开发方法步骤C中,如图7所示,在在成果汇总阶段期间,将远端开发的高级算法移植到平台的服务端。由于远端开发的算法结果使用和服务端相同的接口,将研发机构开发的算法类移植到服务端,由于平台数据服务的调用接口异地-本地同构,经过少量修改即可把分布式开发的算法成果,嵌入到软件平台中去。
本发明针对电力系统工程应用,解决了平台构建过程中基础数据和基本算法的共享问题,避免了集中开发的高成本,提升了开发速度,同时实现了算法开发成果与平台的无缝融合,同时软件成果具有可移植性和重用性。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。
Claims (9)
1.一种面向电力系统分析的软件平台,其特征在于,所述平台包括服务器端和客户端,所述平台的服务器端包括:
电力系统算法库:用于存储电力系统的算法;
历史数据库:用于存储电网的拓扑数据;
内存数据库:用于缓存电力系统算法计算所需要的电网配置数据、算法中间结果的数据和输出的计算结果数据;
服务器端通讯模块:实现与客户端的通讯,用于接收客户端的通讯请求并向客户端发送计算的结果数据;
服务管理类模块:用于对服务进行管理,包括线程的产生、管理和销毁;
服务线程类模块:用于完成计算任务,解析、生成通讯报文,该模块采用每服务每线程的运行模式,即每一个服务对应一个独立的线程;
所述平台的客户端包括:
可视化模块:用于实现数据的显示,显示方式包括数据的列表显示方式、图文显示方式、表格显示方式;
数据库管理模块:用于管理客户端的数据,客户端的数据包括配置参数、电网基础的拓扑数据和计算结果数据;
客户端通讯模块:实现与服务器端的通讯功能,可以向服务器端发送数据请求并接受来自服务器端发送计算的结果数据。
2.一种如权利要求1所述的面向电力系统分析的软件平台的运行方法,其特征在于:所述方法包括下述步骤:
步骤1、对软件运行平台进行启动,完成初始化操作,初始化的内容为判断电网拓扑数据是否存在以及判断加载软件所需的配置文件是否存在,若均存在则执行步骤2,否则发出错误提醒;
步骤2、平台的服务器端的通讯模块监听来自客户端通讯模块的连接请求,客户端通过服务器端的IP地址和端口号向服务器端发出连接请求,建立通讯连接;
步骤3、客户端的可视化模块加载系统配置文件,启动客户端的数据库管理工具,并将数据库中的配置参数传递给可视化模块,由客户端通讯模块向服务器端发送计算请求的数据报文,该报文包括计算所需的电网的基础拓扑数据,计算参数和计算指令;
步骤4、服务器端的通讯模块响应客户端请求,服务管理类模块根据请求创建分配服务线程;
步骤5、服务线程类模块解析通讯报文,根据客户端发送的数据报文要求进行计算,其中计算过程中的中间数据存储在内存数据库中;
步骤6、服务器端通讯模块根据客服端的请求将计算后的结果和异常信息,进行XML格式的编码后返回给客户端;
步骤7、服务器端服务管理类模块将线程关闭;
步骤8、客户端通讯模块将服务器端返回的XML格式的数据进行解析,可视化模块加载解析后的数据并进行显示。
3.如权利要求2所述的软件平台的运行方法,其特征在于,步骤5中服务线程类模块解析通讯报文,根据客户端发送的数据报文要求进行计算包括:
步骤5-1、加载计算所需的电网拓扑数据的线程资源,保存连接的句柄;
步骤5-2、对XML格式的通讯报文进行解析,得到报文内容;
步骤5-3、根据步骤5-2中计算功能要求来调用平台中对应的算法函数,完成客户端要求的电力系统计算;
步骤5-4、将步骤5-3计算的结果发送至服务端通讯模块。
4.如权利要求3所述的软件平台运行方法,其特征在于,步骤5-3中的算法函数包括数据输入、启动计算和结果输出三个函数,具体为:
步骤5-3-1、进行数据输入计算,将历史数据库中的电网拓扑数据缓存到内存数据库中;
步骤5-3-2、启动计算,加载内存数据库中的数据,启动指定的电力系统算法进行计算;
步骤5-3-3、获取结果,获取步骤5-3-2的计算结果。
5.一种权利要求1所述软件平台的分布式开发方法,其特征在于,所述开发方法包括以下步骤:
步骤A、构建具有通信功能的基础软件平台,包含服务器端和客户端;
步骤B、软件算法的分布式开发,算法开发团队通过客户端调用服务端的基础数据及基础算法进行高级算法的开发研究;
步骤C、对软件平台的成果进行汇总,通过将远端开发的相关高级算法整合移植到软件服务器端,使软件的功能完整化,实现最终的面向电力系统分析的软件的开发。
6.如权利要求5所述的分布式开发方法,其特征在于:所述步骤A中,服务器端用于处理客户端的算法计算,获取到客户端的计算请求之后,接收客户端的计算数据,并进行相应的计算,最终将计算结果返回给客户端;客户端用于显示各种不同的数据,包括输入的算法数据,算法计算结束后的结果数据,以及通过调用服务器端的通用数据接口显示通用数据;所述步骤A包括下述步骤:
步骤A-1:根据客户端和服务器端的通信的要求,软件采用ACE封装的C++的底层通讯,使客户端和服务器端实现基于ACE的C/S通讯;
步骤A-2:建立电力系统中服务器端的算法库,制定统一的调用接口;
步骤A-3:建立电力系统中服务器端的数据库,制定统一的访问接口;
步骤A-4:制定统一的计算服务流程;
步骤A-5:完善软件的数据管理,优化人机交互体验。
7.权利要求6所述的分布式开发方法,其特征在于:所述步骤A-2中,算法库包含用于电力系统分析的基础算法和开发机构研发的高级算法,提供给算法开发机构和客户端调用计算使用;基础算法包括潮流计算、暂态稳定计算、短路电流计算、网损分析、电压稳定分析、静态安全分析、静态和动态等值分析、小干扰稳定分析、最优潮流计算、无功优化和继电保护整定电力系统常用的成熟算法,高级算法为研发机构基于上述常用算法针对电力系统某一课题进行二次开发后的算法;
所述步骤A-3中,数据库包括内存数据库和历史数据库;内存数据库指的是在内存中操作数据的数据库,用于完成算法计算过程中的数据暂存功能,将不同格式的数据存入内存数据库中转化成为统一格式的数据;历史数据库用于存储电网通用拓扑数据,供算法开发者调用使用;
所述步骤A-4中,服务器端提供计算服务的基类,所述计算服务流程包括数据输入、启动计算和获取结果;
数据输入采用数据输入函数实现;启动计算采用启动计算函数实现,在启动计算函数中,实现算法的计算过程,将计算过程统一到一个函数中;获取结果采用获取结果函数实现;
所述步骤A-5中,实现客户端的数据显示,显示方式包括数据的列表显示方式、图文显示方式和表格显示方式。
8.权利要求5所述的软件分布式开发方法,其特征在于:所述步骤B中包括以下步骤:
步骤B-1:在异地开发的算法成果,通过软件客户端的算法访问接口和数据库访问接口,获取储存在服务器端的输入数据和基础算法;输入数据采用输入数据函数Input_data()实现数据的录入;
步骤B-2:在获取的输入数据和基础算法的基础上,进行相应高级算法的开发;启动开始计算函数。
9.权利要求5所述的软件分布式开发方法,其特征在于:所述步骤C,开发的高级算法成果使用的接口与服务端相同,即平台数据服务的调用接口异地-本地同构,经过修改把分布式开发的高级算法成果嵌入到软件平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510462816.0A CN106406836A (zh) | 2015-07-31 | 2015-07-31 | 面向电力系统分析的软件平台及其运行和分布式开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510462816.0A CN106406836A (zh) | 2015-07-31 | 2015-07-31 | 面向电力系统分析的软件平台及其运行和分布式开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106406836A true CN106406836A (zh) | 2017-02-15 |
Family
ID=58007512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510462816.0A Pending CN106406836A (zh) | 2015-07-31 | 2015-07-31 | 面向电力系统分析的软件平台及其运行和分布式开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106406836A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107658879A (zh) * | 2017-10-26 | 2018-02-02 | 南方电网科学研究院有限责任公司 | 一种电力系统的安全分析系统 |
CN107844675A (zh) * | 2017-12-18 | 2018-03-27 | 国家电网公司 | 一种基于燃气‑蒸汽联合循环的系统及其快速建模方法 |
CN109245310A (zh) * | 2018-11-13 | 2019-01-18 | 北京工业大学 | 一种基于实时数据库的电力监控系统 |
CN109345377A (zh) * | 2018-09-28 | 2019-02-15 | 北京九章云极科技有限公司 | 一种数据实时处理系统及数据实时处理方法 |
CN110007901A (zh) * | 2019-02-28 | 2019-07-12 | 华电电力科学研究院有限公司 | 一种集团级风电监控平台的开发系统及其运行方法及开发方法 |
CN111046021A (zh) * | 2019-11-30 | 2020-04-21 | 许昌许继软件技术有限公司 | 一种物联网型配变终端应用开发平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130966A (zh) * | 2011-04-15 | 2011-07-20 | 北京三博中自科技有限公司 | 一种用于企业综合信息平台的系统架构及其实现方法 |
CN103440150A (zh) * | 2013-08-30 | 2013-12-11 | 西安电子科技大学 | 一种从远程组件仓库按需下载的软件现场组装方法 |
CN104102947A (zh) * | 2014-06-27 | 2014-10-15 | 许继电气股份有限公司 | 基于软构件的产品管控方法 |
-
2015
- 2015-07-31 CN CN201510462816.0A patent/CN106406836A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130966A (zh) * | 2011-04-15 | 2011-07-20 | 北京三博中自科技有限公司 | 一种用于企业综合信息平台的系统架构及其实现方法 |
CN103440150A (zh) * | 2013-08-30 | 2013-12-11 | 西安电子科技大学 | 一种从远程组件仓库按需下载的软件现场组装方法 |
CN104102947A (zh) * | 2014-06-27 | 2014-10-15 | 许继电气股份有限公司 | 基于软构件的产品管控方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107658879A (zh) * | 2017-10-26 | 2018-02-02 | 南方电网科学研究院有限责任公司 | 一种电力系统的安全分析系统 |
CN107844675A (zh) * | 2017-12-18 | 2018-03-27 | 国家电网公司 | 一种基于燃气‑蒸汽联合循环的系统及其快速建模方法 |
CN107844675B (zh) * | 2017-12-18 | 2021-03-02 | 国家电网公司 | 一种基于燃气-蒸汽联合循环的系统及其快速建模方法 |
CN109345377A (zh) * | 2018-09-28 | 2019-02-15 | 北京九章云极科技有限公司 | 一种数据实时处理系统及数据实时处理方法 |
CN109245310A (zh) * | 2018-11-13 | 2019-01-18 | 北京工业大学 | 一种基于实时数据库的电力监控系统 |
CN110007901A (zh) * | 2019-02-28 | 2019-07-12 | 华电电力科学研究院有限公司 | 一种集团级风电监控平台的开发系统及其运行方法及开发方法 |
CN111046021A (zh) * | 2019-11-30 | 2020-04-21 | 许昌许继软件技术有限公司 | 一种物联网型配变终端应用开发平台 |
CN111046021B (zh) * | 2019-11-30 | 2023-11-10 | 许昌许继软件技术有限公司 | 一种物联网型配变终端应用开发平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106406836A (zh) | 面向电力系统分析的软件平台及其运行和分布式开发方法 | |
CN112866333B (zh) | 基于云原生的微服务场景优化方法、系统、设备和介质 | |
CN107193546A (zh) | 一种微服务化业务应用系统 | |
CN104866327B (zh) | 一种php开发方法及框架 | |
CN107203376A (zh) | 一种企业级信息化系统 | |
CN102819452B (zh) | 一种从android系统获取数据的方法 | |
CN110661842B (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
CN109067890A (zh) | 一种基于docker容器的CDN节点边缘计算系统 | |
CN108932588A (zh) | 一种前后端分离的水电站群优化调度系统及方法 | |
WO2023103247A1 (zh) | 一种组件及策略联动方法、装置、设备、系统及存储介质 | |
CN103268230B (zh) | 用于构建可拓展服务的云计算信息管理平台的方法 | |
Li et al. | Optimizing energy of http requests in android applications | |
CN108038796A (zh) | 基于c++的gis服务运行方法、存储介质 | |
CN109726004A (zh) | 一种数据处理方法及装置 | |
CN105320522A (zh) | 基于面向服务的体系结构的xbrl应用平台 | |
CN115619162A (zh) | 一种基于云平台和微服务架构的供电服务指挥系统 | |
CN113591448B (zh) | 报表生成方法、装置及存储介质 | |
CN105406983A (zh) | 一种基于用户需求的云计算网络管理控制方法 | |
US9058227B2 (en) | Transactional service pipeline | |
Sun et al. | Building robust geospatial web services for agricultural information extraction and sharing | |
CN110007901A (zh) | 一种集团级风电监控平台的开发系统及其运行方法及开发方法 | |
CN109597611A (zh) | 前端数据流控制组件开发系统、方法、设备及存储介质 | |
CN110759191B (zh) | 基于5g智慧园区电梯控制方法 | |
CN103399786B (zh) | 一种基于运行时上下文的出站式服务实现方法及系统 | |
Wu et al. | Research and application of SOA and cloud computing model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170215 |