一种基于微服务的用电数据发布平台
技术领域
本发明涉及数据平台技术领域,具体涉及一种基于微服务的用电数据发布平台。
背景技术
随着智能电网的建设与发展,供电企业的数据量日益增多,尤其是用电数据,每天将产生上亿条数据,对于海量用电数据的有效处理和利用成为电力业务应用中的迫切需求。
用户对数据的应用方式也呈多样化发展,既要满足电力公司生产人员的一线需求,也要满足管理人员生产决策需求,同时也要满足电力用户的需求。因此其应用方式包括PC业务系统、手机APP及其其它各类形式。
然而,受限于单体服务器的处理能力的限制,单体服务器已经难以对大量、多种类的用电数据进行快速处理,也难以保证数据安全,并且仅能向特制的或单一类型的数据展示端发布用电数据。
发明内容
本发明为解决上述技术问题,提供了一种基于微服务的用电数据发布平台,能够对大数据量的用电数据进行快速的处理和发布,并且能够有效保障数据安全,前端接收也较为方便。
本发明采用的技术方案如下:
一种基于微服务的用电数据发布平台,包括前端应用层、业务微服务层和后端存储层,所述后端存储层用于获取和存储用电数据,所述业务微服务层用于根据所述用电数据,通过多个微服务模块提供不同的用电数据发布业务服务,所述前端应用层用于基于不同的所述用电数据发布业务服务实现用电数据的发布。
所述用电数据包括批量发布数据和实时发布数据,所述业务微服务层包括用于暂存所述批量发布数据的数据暂存区,所述业务微服务层还用于对所述实时发布数据进行逐帧校验和对所述数据暂存区的批量发布数据进行统一校验,并将校验通过后的用电数据传输至所述前端应用层。
所述业务微服务层对所述实时发布数据进行CRC校验,并对所述数据暂存区的批量发布数据进行MD5校验。
所述前端应用层所发布的用电数据包括预测数据。
所述预测数据由所述业务微服务层基于灰色叠加马尔可夫链模型生成。
所述前端应用层通过Restful协议消费所述业务微服务层提供的用电数据发布业务服务。
所述前端应用层运行于移动应用端、PC应用端和/或大屏应用端。
所述业务微服务层包括应用层和服务层。
所述应用层划分的应用模块包括数据管理、基础数据、监测中心、电量分析、线损分析、负荷分析、报表中心、能源中心、配网运行、运维支撑、行为分析、需求侧响应、系统管理、资源监控和统一服务。
所述服务层划分的服务模块包括基础数据服务、监测服务、电能质量服务、线损服务、电量服务、负荷服务、分析查询服务、基础服务、报表服务和业务模型服务。
本发明的有益效果:
根据本发明实施例的基于微服务的用电数据发布平台,后端存储层获取和存储用电数据,业务微服务层根据用电数据,通过多个微服务模块提供不同的用电数据发布业务服务,前端应用层基于不同的用电数据发布业务服务实现用电数据的发布,由此,能够对大数据量的用电数据进行快速的处理和发布,并且能够有效保障数据安全,前端接收也较为方便。
附图说明
图1为本发明实施例的基于微服务的用电数据发布平台的方框示意图;
图2为本发明一个实施例的业务微服务层的运行框架示意图;
图3为本发明一个实施例的微服务访问安全设计逻辑架构示意图;
图4为本发明一个实施例的整体应用逻辑架构示意图;
图5为本发明一个实施例的前后端分离的逻辑架构示意图;
图6为本发明一个实施例的APP的逻辑架构示意图;
图7为本发明一个实施例的APP的业务功能示意图;
图8为本发明一个实施例的APP的技术架构示意图;
图9为本发明一个具体实施例的基于微服务的用电数据发布平台的整体架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例的基于微服务的用电数据发布平台包括前端应用层10、业务微服务层20和后端存储层30。其中,后端存储层30用于获取和存储用电数据,业务微服务层20用于根据用电数据,通过多个微服务模块提供不同的用电数据发布业务服务,前端应用层10用于基于不同的用电数据发布业务服务实现用电数据的发布。
在本发明的一个实施例中,用电数据包括批量发布数据和实时发布数据。其中,批量发布数据为在一定时间范围内所统计的并需要批量展示的数据,例如负荷变化数据、线损数据等,实时发布数据为实时变化并需要实时展示的数据,例如实时电压数据、停电区域数据等。业务微服务层20可包括用于暂存批量发布数据的数据暂存区,业务微服务层20可对实时发布数据进行逐帧校验和对数据暂存区的批量发布数据进行统一校验,并将校验通过后的用电数据传输至前端应用层。在本发明的一个具体实施例中,业务微服务层20可对实时发布数据进行CRC校验,并可对数据暂存区的批量发布数据进行MD5校验。由此,通过设置数据暂存区,能够对不同的用电数据进行分类校验,既能够保证所发布数据的准确性,又能够保证部分数据发布的实时性。
在本发明的一个实施例中,前端应用层10所发布的用电数据包括预测数据,例如用电量预测数据、负荷预测数据等。预测数据可由业务微服务层20基于灰色叠加马尔可夫链模型生成。
具体地,首先可进行灰色系统GM(1,1)建模,并进行齐次马尔可夫链MC(MarkovChain)参数估计,得到灰色叠加马尔可夫链模型(GMCPS,Gray Markov Chains predictionmodel based on Probability Summation)。也就是说,灰色叠加马尔可夫链模型的构建包括灰色系统GM(1,1)建模和齐次马尔可夫链MC建模两部分。
灰色模型(Grey Model,简称GM模型)一般表达方式为GM(n,x)模型,其含义是:用n阶微分方程对x个变量建立模型。该模型的特点是无需大量数据样本,短期预测效果好,运算过程简单。
以生成负荷预测数据为例,设定某一用户历史负荷按检测时间(间隔相同)依次为:x
(0)=(x
(0)(1),x
(0)(2),…,x
(0)(n)),n为数据个数,将每一个数据累加以便弱化随机序列的波动性和随机性,得到新的数列为:x
(1)=(x
(1)(1),x
(1)(2),…,x
(1)(n)),其中
根据灰色理论,对x(1)建立关于t的白化形式的一阶一元微分方程GM(1,1):
其中a、u为待解系数。该微分方程的解为:
其中YT=[x(0)(2),x(0)(3),…,x(0)(n)],
为确保模型可靠性,需对模型精度进行检验,这里采用后验差检验法,具体计算如下:
设定残差
即观测值和预测值的差,原始数据的平均值
残差平均值
由此求得原始数据的标准差:
残差q(k)的标准差:
其后验差比值:
小误差概率p:
在后验差检验中,后验差比值c越小,精度越高,一般要求c<0.35(最大不超过0.65),小误差概率p>0.95(不小于0.7)。
然后,可根据负荷值确认各检测时段的负荷状态,并将对应的模型状态作为马尔可夫链模型中的转移状态。例如,可将负荷状态划分为极小、小、中、大、极大五种状状态,并将此状态作为马尔可夫链模型中的转移状态。
进而,可根据灰色系统GM(1,1)模型获得的预测公式给出预测数据,并得出对应的模型状态,进而估计一阶马尔可夫链转移概率。
具体地,设p(xn+1=in+1|xn=in)表示在第n次检测时间,负荷状态是in的条件下,第n+1次检测时间,状态是in+1的概率。若其转移概率和检测时间无关,则转移概率的估计式如下:
pi,j=P(xn+1=j|xn=i)=Mi,j/Mi
其中,Mi,j为从状态i经过一步转移到状态j的转移次数,Mi为处于状态i的次数。用P表示模型的状态转移概率矩阵,如以上,有5个负荷状态。
根据转移概率的估计式,统计已知观测值和GM(1,1)预测值的计数,对马尔可夫转移概率矩阵P参数进行估计P=(pi,j)。
进一步地,设定预测模型某一初始状态用向量表示,记为S0,则依据马尔可夫模型,第1步的状态概率S1=S0P。在齐次模型下,Sn=S0P(n)。在GMCPS模型下,其每个状态的预测概率计算如下:设与待预测时间相距步长k的时间所处状态为i,计算步长k的状态转移矩阵P(k)的第i个行向量,叠加不同步长的行向量即可求得指标值处于该状态的预测概率。取概率值最高的状态即为待预测时间的负荷状态。
下面详细说明用电数据发布平台各层的基本特征,并结合具体实例说明平台的应用架构、用电数据的发布过程和结果。
在本发明的实施例中,前端应用层10采用基于前端展现框架,如JQuery、ajax、html/html5等技术实现与用户的交互功能,前端应用不访问数据源,通过Restful协议的方式消费业务微服务层20提供的用电数据发布业务服务。在本发明的一个实施例中,前端应用层10可运行于移动应用端、PC应用端和/或大屏应用端等用户终端。
在本发明的实施例中,后端存储层30可依据数据的特点,将不同的数据存储在不同的介质中,主要存储在MySQL关系数据库中,主要存储的是大数据分析与处理后的统计汇总数据,这些统计汇总数据由MPP(Massively Parallel Processor,大规模并行处理)或大数据Spark&SparkStreaming计算,最后计算的结果存储在MPP中,统一提供给业务微服务层20访问使用。
在本发明的实施例中,业务微服务层20为平台的核心,所有的业务逻辑在该层实现,实现与各类数据交互,进行数据访问与组装。业务微服务运行在PAAS平台的容器中,由容器统一管理,同时实现统一配置、统一认证的通用功能。
在本发明的一个实施例中,业务微服务层20的运行框架如图2所示,主要分成三大模块,分别为微服务框架能力组件、公共服务访问组件和微服务业务应用。其中微服务框架能力组件和公共服务访问组件两大模块为整个运行框架提供了统一的基础应用能力,如能力组件中的认证鉴权组件和会话管理组件,公共服务访问组件中的数据库访问组件和Redis缓存访问组件等等。微服务业务应用对外提供业务服务逻辑,对内允许通过微服务调用组件相互调用,所有的业务开发集中在微服务业务应用模块。微服务框架能力组件、公共服务访问组件和微服务业务应用中的“微服务运行框架”和“微服务调用组件”作为框架统一开发的组件,当框架组件及对应的服务能力升级后,所有的微服务只需要重新编译新版本发布后即可享受到升级能力带来的服务优化。
其中,对于微服务业务应用,微服务具体对外提供的业务服务逻辑实现模块,每个微服务根据其业务功能编写实现代码,业务开发人员集中精力关注业务功能实现即可。业务微服务类及方法采用注解方式发布Restful风格接口服务。微服务业务应用包括微服务运行框架和业务应用类组成,用户重点关注业务应用代码开发,运行框架处理好微服务运行的系列任务,并负责配置和启动微服务运行的各类组件,如会话管理组件、认证鉴权组件和服务监控组件等。
对于公共服务访问组件,在业务微服务中,需要使用后端资源时,可通过框架提供组件的Java接口实现后端资源存取,这些组件包括Hbase访问组件、Redis访问组件、Kafka访问组件等,使用组件封装,屏蔽后端组件数据存取的复杂度,同时避开后端组件版本升级导致的微服务业务应用实现代码大面积修订。
微服务框架能力组件可为微服务应用提供平台支撑能力,如微服务配置获取、微服务安全访问认证、用户访问全链路路径跟踪等。开发人员正常开发微服务业务逻辑代码时,如无必要需求,甚至可以不关注,开发的微服务就具备这些能力。这些框架能力组件也提供了用户访问接口,以便根据业务需要写入部分业务信息,如全链路监控中,写入用户特征数据等到监控结构的span域中。便于后续的关联分析。
在本发明的一个实施例中,微服务访问安全设计逻辑架构如图3所示,其包含两部分的内容安全,一部分是用户终端接入的安全设计,用户终端通过综合数据网接入,访问分散,每个终端可以有多个用户同时访问;另一部分是服务器端的业务应用/微应用接收到用户请求后,通过调用后端业务微服务进行服务编排组装,最后将结果反馈给调用者。采用的安全架构说明如下:用户终端与服务端应用之间采用Session机制,维持用户会话状态,将用户相关敏感信息存储在服务器端保证信息安全不泄露,本平台全面采用基于微服务的架构实现,因此为了实现微应用、应用质检的安全信息共享,采用外置共享Session机制,确保各应用能够根据应用标识识别具体业务用用并进行认证的过程;Token机制可保障面向微应用/应用与内部微服务之间的信息安全,有都是运行在服务器端,请求要求快速响应,同时,微服务主要是将权限开放给相关应用,而并不是基于用户权限体系的授权机制,因此采用基于Token的应用授权访问体系保障安全。
在本发明的实施例中,用电数据发布平台的应用亦采用前后端分离的模式,前端负责展现页面内容和人机交互,后端则负责数据提取和处理。前后端通过Restful协议交互,数据格式采用JSON作为数据统一交互格式。后端采用微服务架构设计,架构内服务根据并发量和负载率独立制定部署方案,从而实现高可用和负载均衡。
整体应用逻辑架构如图4所示,业务微服务层20可包括应用层和服务层,应用层通过微服务网关接各用户终端,服务层接后端存储层,即基础数据层。PC/大屏应用端的逻辑设计主工作区分布在企业管理层和基础数据两大区域,其中企业管理层包括应用层和服务层。各渠道通过微服务网关访问系统应用层的接口,应用层接口根据业务调用服务层中的服务接口,从而取得所需数据。
在本发明的一个实施例中,应用层依据业务主题、数据库的存储结构、角色功能图表和使用频率划分,划分的应用模块可包括数据管理、基础数据、监测中心、电量分析、线损分析、负荷分析、报表中心、能源中心、配网运行、运维支撑、行为分析、需求侧响应、系统管理、资源监控和统一服务,各应用模块对应的功能如表1所示。
表1
在本发明的一个实施例中,服务层依据业务场景、调用颗粒度划分,划分的服务模块可包括基础数据服务、监测服务、电能质量服务、线损服务、电量服务、负荷服务、分析查询服务、基础服务、报表服务和业务模型服务。各服务模块对应的接口如表2所示。
表2
业务微服务层20中的调用关系参照图4,应用层供所有渠道使用,如移动应用端、PC应用端,服务层的功能职责定义为数据提取和逻辑处理。应用层允许调用一个或者多个服务层接口来完成一次完成的业务流程。以线损功能为例,前端通过微服务网关请求线损相关功能,网关将请求分配到应用层中的线损分析,经过参数拆解和组装后,请求转发到线损服务,服务将逻辑结果逐步往上返回。应用层与服务层中各模块的对应关系如表3所示。
表3
在本发明的实施例中,前后端分离指在系统开发过程中,前端代码和后端代码分别开发,互不干涉,不使用后端代码写前端,也不用前端技术写后端,其核心思想从形式上来说,一般是不用JSP或PHP混写代码,而是前端HTML页面通过ajax调用后端的api接口,并根据返回的数据按照某种规则渲染前端页面。前后端分离后,前后端的通信一般通过HTTP接口的方式进行调用。前后端分离的逻辑架构如图5所示。
前后端分离具有以下四大原则:
一、前端静态化
前端有且仅有静态内容,内容来自完全静态的资源而不需要任何后台技术进行动态化组装。前端内容的运行环境完全基于浏览器本身。
二、后端数据化
后端可以用任何语言,技术和平台实现,但它们必须遵循一个原则:只提供数据,不提供任何和界面表现有关的内容。换言之,他们提供的数据可以用于任何其他客户端。
三、平台无关化
前端本身就是平台无关的,而后台连接部分的本质是实现合适的RESTful接口和交互Json数据,就这两者而言,任何技术和平台都可以实现。
四、架构分离化
前端架构完全基于HTML/CSS的发展和JS框架的演变,与我们耳熟能详的后台语言(如C#,Java,NodeJs等)完全无关。后端构架几乎可以基于任何语言和平台的任何解决方案,大型构架方面,RESTful Api可以考虑负载均衡;而数据,业务实现等可以考虑数据库优化和分布式。
前后端分离主要具有前后端流量大幅减少、表现性能提高、前后端平台无关和技术无关、安全性方面的集中优化、开发的分离和构架的分离等优势。
对于前段架构的设计,前端服务部署在公共服务层的应用,为互联网应用提供统一的服务入口。架构采用JqueryMiniUi的专业WebUI控件库,它大大缩短开发时间,减少代码量,使开发者更专注业务和服务端,同时Jquery MiniUi内置数据懒加载、低内存开销、快速界面布局等机制,实现性能优化。同时为了更直观,交互丰富,可高度个性化定制的数据可视化图表,前端架构需要结合ECharts控件。ECharts是一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
对于后端架构的设计,主要采用以上的业务微服务层的运行架构,参照图4,在层次上主要分为应用层、服务层和基础数据层,各层职能如表4所示。
表4
在本发明的实施例中,以网级电能量数据中心作为前端应用层的应用名称,其可遵循南网公司网级电能量数据平台业务发展规划,基于南方电网移动应用软件开发平台应用架构设计方法,对网级电能量网级电能量数据中心移动APP应用项目架构进行了推导和分析,从业务架构、应用架构、技术架构、硬件架构、系统集成及安全方案等方面进行设计。
APP的逻辑架构如图6所示,其基于大数据平台构建数据层,微服务层基于微服务架构向应用层提供业务服务接口,移动APP应用基于南方电网移动应用软件开发平台应用架构调用微服务层资源实现应用层的各种数据展示和监测功能。
APP的业务功能如图7所示,主要实现用户管理、指标展示、报表管理和业务统计四大模块。
其中,指标展示主要包括建设指标、运维指标和应用指标,建设指标主要包括安装覆盖率,运维指标主要包括终端在线率、采集完整率、自动抄表率等,应用指标主要包括电压质量发布率、重过载公变比率、终端厂商监测、通信运行商监测等。
业务统计主要是统计分析全网及各省市各类计量业务的开展情况,主要包括以下各类子模块:1)电量统计:各省及地市不同类型电量汇总数据查询,包括供购电量、供售电量、行业电量、电量构成、电量排名等内容;2)负荷统计:负荷汇总信息查询,了解负荷排名、极值、构成情况、行业开工率分析等功能;3)停电统计:查看各地市重要客户监测及停电指标信息;4)线损统计:各区域线损情况查询,为用户用电的合理分布提供数据支持;5)西电东送:西电东送关口上网、落地电量的监测,包括西电东送送端电厂发电量、受端用电量,月度年度计划完成情况等功能;6)关口管理:对南网区域内跨境、跨区、跨省关口档案、关口数量、关口电量、关口周检情况进行统计分析。
报表管理主要是对平台出具的各类报表进行集中管理,支持报表下载和在线预览。
APP的技术架构如图8所示,可分为五层:客户端层、终端层、服务接入层、服务实现层和系统资源层,结合原生API能力组件,通过HTML5技术实现业务框架。
其中,本发明实施例的APP位于客户端层,通过调用本地接口服务来进行客户端应用的界面展现与逻辑功能实现。HTML5与JavaScript都是不依赖于操作系统的WEB开发技术,所以本发明实施例的APP具有跨平台性,可以实现“一次开发,多平台展现”。
移动设备的操做系统位于终端层,用户通过移动终端(智能手机、平板电脑)的浏览器来实现多操作系统体验。市面上较为成熟的主流移动终端设备操作系统主要是Android和iOS。
南网移动应用平台服务端平台基于服务接入层所支持的接入技术,实现HTTP、HTTPS、SOCKET和WEBSERVICE等多种通信协议的接入。通过HTTP、WebService来实现业务数据和控制数据的交互;通过访问鉴权实现用户认证;通过FTP等文件传输协议来实现非结构化数据的交互;通过支持面向服务架构SOA的服务开发技术,灵活扩展和实现该平台的服务能力。通过SOA服务协议来与APP对应的主系统业务平台实现对接,完成业务数据、用户数据集成功能。
南网移动应用平台基于服务实现层所支持的WEBSERVICE、HTTP抓取、LDAP和FTP抓取的方式与业务系统对接。通过调用TagLib标签库实现前端界面的特效。通过数据库服务实现数据的持久化等。
系统资源层主要指网级电能量数据中心作为移动APP应用的主系统侧,基于不同的网络、主机设备、操作系统和中间件向移动应用提供结构化与非结构化的数据。
在本发明的一个具体实施例中,基于微服务的用电数据发布平台的整体架构如图9所示。
综上,根据本发明实施例的基于微服务的用电数据发布平台,后端存储层获取和存储用电数据,业务微服务层根据用电数据,通过多个微服务模块提供不同的用电数据发布业务服务,前端应用层基于不同的用电数据发布业务服务实现用电数据的发布,由此,能够对大数据量的用电数据进行快速的处理和发布,并且能够有效保障数据安全,前端接收也较为方便。
在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。