支持数据共享、生态开放的网上国网开放平台

2022-09-13 02:14王锦志张才俊耿爱国
能源与环保 2022年8期
关键词:开放平台国网用户

王锦志,钱 奇,张才俊,杨 维,耿爱国

(1.国家电网有限公司客户服务中心,天津 300300;2.南瑞集团有限公司(国网电力科学研究院有限公司,江苏 南京 211106;3.北京科东电力控制系统有限责任公司,北京 100192)

随着“网上国网”建设的不断深入,目前初步建成以八中心为主体的业务中台及数据中台[1],具备了对外开放的能力,内外部渠道对网上国网数据资源及服务能力对接需求日益迫切。但当前开放平台系统仍存在运行低下,数据共享能力差、生态开发程度低的问题[2]。

针对上述存在的问题,文献[3]结合电网自动化系统的运行情况,提出将电网调度自动化和服务平台一体化,使多套系统数据统一,解决了信息不通畅、共享数据不及时的问题。但没有对监控信息进行合理分类分层,重要信息无法快速挖掘。文献[4]提出基于SMPC技术的数据共享系统,设计一个数据共享协议,实现源数据不出库的情况下完成数据共享。但系统将数据明文共享到一个中心节点上,源数据直接暴露在平台中。本研究基于“SG-UAP3.0”平台建立网上国网开放平台,按照信息内、外网部署方式进行模块构建,采取OAuth2.0的协议进行身份鉴权,具有防伪造和防重放功能,防止对服务的非法访问。

1 分布式网上国网开放平台系统

本研究网上国网开放平台依据项目总体目标,将信息内网和信息外网按照模块化进行部署。信息外网为互联网区域用户提供统一门户、接入服务和支撑服务,并部署能力开放服务、管理平台、开发者网站、能力接入、测试技术支持服务等应用功能[5]。在信息内网部署能力开放服务、开放平台能力接入、测试技术支持服务等应用功能,为信息内网行业内单位提供接入服务及支撑服务。开放平台基于“SG-UAP3.0”进行开发,根据内外网隔离的原则,进行系统架构设计[6]。网上国网开放平台系统架构如图1所示。

图1 网上国网开放平台架构Fig.1 Online State Grid Open Platform Architecture

本研究网上国网开放平台系统由基础资源层、数据存储层、内网服务层、外网服务层、隔离交互层和展示层构成。基础资源层采用统一的云平台为信息内网和信息外网提供基础服务,主要提供计算资源、存储资源和网络资源等[7]。数据存储层为信息内网和信息外网提供结构化数据、非结构化数据、缓存数据的存储及服务,可以按需供应服务及横向扩展。隔离交互层使用逻辑硬隔离设备将信息内网和信息外网隔离起来,内、外网服务层主要包括内外网穿透服务、能力开放服务、能力接入服务、测试技术支持服务、共享服务中心等。展示层主要运用Html、JS、CSS、HTML5、SDK等技术,通过WEB和APP两种方式进行数据展示[8]。

信息外网中开发者网站主要面向省市公司、产业单位、渠道合作伙伴以及社会企事业单位或个人开发者,为其开放国网服务能力。网上国网开放平台实现行业内外部系统间的业务协同、信息交互和数据融合共享。信息内、外网集成架构如图2所示。

信息内网与用户中心,工单中心,账单中心,ISC、BPM及网上国网运管平台集成,在信息外网与共享服务中心、网上国网 App、95598智能互动网站、95598智能终端、营业厅移动终端、第三方系统、ISC、BPM及网上国网运营平台等集成[9]。能力开放作为上层和下层的能力管控中心,对各平台进行整合统一,规范各系统接口提供统一服务和运营。

图2 信息内、外网集成架构Fig.2 Information internal and external network integration architecture

能力开放服务基于验证与授权协议对服务发布与服务共享进行开放时间、使用期限、权限范围、应用类型及登陆令牌等多维度的管控,并通过其管控能力实现对服务发布与共享的多重校验与授权,最大限度保证服务发布与共享的可靠性、安全性,全面提升服务质量。

综上所述,本研究的创新点在于:①开放平台采用应用管理机制,完成用户的应用身份认证和功能验证,采用REST接口实现Web服务,可根据不同的应用场景选择不同的鉴权服务,加入鉴权信息同步模块和安全认证功能,保证了鉴权系统的用户信息同步和网络传输过程中的信息安全。②数据共享平台采用基于Web的云服务,为开放平台用户提供数据交换、数据集成和资源共享等功能。WebService Server对数据库和文件等数据资源提供操作服务,调用提供的WebService接口即可实现应用服务层与服务层的连接。

2 关键技术设计

2.1 能力开放平台的接入访问鉴权

本研究能力开放平台提供多种有效地机制来保护用户的服务安全,以RESTful API的方式对外提供间接的服务访问[10],隐藏服务的真实地址,降低服务开放风险;提供服务访问身份鉴权机制,具有防伪造和防重放功能。能力开放平台的鉴权功能完成对用户身份和应用能力关系的鉴权认证。用户通过开放平台的管理系统使用某项应用时,接入子系统将使用请求发送到鉴权子系统进行使用鉴权认证,全方面确认用户信息和、应用信息、能力信息等,认证通过的用户才能通过开放平台接入应用服务[11]。本研究能力开放平台的鉴权子系统如图3所示。

图3 鉴权子系统结构Fig.3 Structure diagram of authentication subsystem

鉴权子系统程序具有高扩展性,能够满足复杂多变的业务需求,采用REST接口实现Web服务,面向接口的编程理念[12]。使用开闭原则等设计,通过高度可配置化提高了可扩展性,降低了鉴权子系统的耦合度。其中信息同步功能是鉴权认证的基础,开放平台的管理系统通过信息同步接口向鉴权子系统和接入子系统发送同步信息,保证了整个开放平台的信息一致性,完成了用户、开发人员、应用、能力、应用产品、能力产品等信息的同步。安全认证功能包括防伪管理、Token管理、证书管理和身份认证等功能,保证了开放平台数据传输过程中用户信息的安全。本研究鉴权子系统根据不同的应用场景提供2种鉴权服务:Appkeys鉴权和OAuth2+JWT鉴权[13]。Appkeys鉴权适用于公有云API和不涉及用户、权限等敏感信息的数据开放服务。Appkeys鉴权流程如图4所示。

图4 Appkeys鉴权流程Fig.4 Appkeys authentication flow chart

Appkeys鉴权步骤如下所示:①调用方获取能力开放平台服务认证颁发的Key;②调用方携带AppKey请求能力服务;③服务网关请求认证服务验证AppKey合法性;④验证成功后,服务网关请求上游服务,此处上游服务不做任何校验,直接返回结果。

OAuth2+JWT鉴权适用于安全等级要求较高、不明确服务调用者身份的场景,这种情况下各服务间互不授信,彼此调用需要验证合法性[14]。

OAuth2+JWT鉴权流程如图5所示。OAuth2+JWT鉴权步骤如下所示:①获取Access Token。②调用能力开放平台API。③服务网关到认证服务置换JWT Token。④携带JWT Token请求上游服务;⑤根据请求认证服务获取JWK,使用JWK对JWT Token校验、解密,完成角色判断,实现服务调用。

进行用户身份鉴权时信息同步模块完成与外部接口的信息同步,信息同步的UML类图如图6所示。

图5 OAuth2+JWT鉴权流程Fig.5 OAuth2+JWT authentication flow chart

图6 信息同步的UML类图Fig.6 UML class diagram for information synchronization

鉴权信息同步根据与外部系统交互的不同分为外部系统同步信息和鉴权系统同步信息。外部系统同步信息生成后再同步到鉴权系统,鉴权系统将处理结果发送到外部系统[15]。在系统初始化时,外部系统将用户必要数据主动同步到鉴权系统,之后进行数据的增加或删减时,通过信息同步接口告知鉴权系统。鉴权同步信息由鉴权系统产生,并将结果同步到外部系统,主要包括UserAppRelationSync用户应用关系同步和DevEapRelationSync开发者能力产品关系同步。

2.2 分布式数据共享平台

本研究网上国网开放平台系统的数据共享平台采用基于Web的云服务,为用户提供云模式下的数据共享服务[16]。分布式数据共享平台为网上国网开放平台用户提供数据交换、数据集成和资源共享等功能,建立了任务管理子系统、数据集成子系统和作业管理子系统,主要进行任务管理、资源管理、资源分发、服务分布、用户管理和数据集成等操作。本研究分布式数据共享平台架构如图7所示。

图7 分布式数据共享平台架构Fig.7 Distributed data sharing platform architecture

数据共享平台中资源提供者向平台提供数据资源,完成抽取数据任务、转换数据任务和爬取数据任务,并进行加载数据任务的构建和配置[17]。资源管理者对元数据进行管理,处理数据模板和映射关系文件,同时进行资源的备份和数据处理作业的管理等任务。数据共享平台中业务处理构件包括服务管理构件、资源分发构件、辅助决策构件、作业管理构件和任务管理构件[18]。业务处理构件清单见表1。数据共享平台的WebService Server对数据库和文件等数据资源提供操作服务,主要包括数据共享作业的元数据配置ConfigJobMetaDataService、执行调度、MapMetaDataService、案例信息上传UploadCaseService、更新UpdateCaseService等服务。

3 应用测试

为验证本研究网上国网开放平台系统的性能,进行实验测试系统的数据共享时间和鉴权系统的吞吐率。

实验环境参数如下:①SG-UAP 开发平台;②中间件为Edas 3.3、docker、spring-cloud、spring-boot;③数据库为Oracle 11g、Redis3.0;④开源软件为Git 2.14、RedisDesktopManager 0.8;⑤浏览器为Chrome 89.0、IE 11、firefox83.0;⑥数据访问为mybatis-plus、JDBC。

打开网上国网开放平台App,在登录界面输入用户名和密码,然后输入验证码后进入到系统界面,用户系统主页中进行查询电量使用情况、进行缴费、个人户号的管理等操作。

在系统主界面选择电费账单即可获得用户当月的电费明细,显示当月有功总电量、电费单价、电费金额、上期示数和本期示数。

研究实验环境中数据共享的逻辑节点分为数据需求方和数据提供方,数据需求方提出数据共享需求,并提供数据共享模型。数据提供方响应需求方的共享请求,执行模型并返回执行结果。

实验过程中随机挑选一个节点作为数据需求方,其他节点作为数据提供方,并在数据库中存储源数据。分别使用2~10个节点进行了10 000次数据共享实验,得到本研究系统的运行时间见表2。

研究系统运行速度较快,数据共享使用时间较短,节点数量的增加对运行时间的影响不大。在开放平台稳定的网络环境中,数据共享系统速度快且稳定性强。当节点数量增加到10个时,本研究系统数据共享所用时间仅为710 ms。

表2 系统运行时间Tab.2 System running time

对3种鉴权系统的内部接口进行服务调用测试,在不同的并发量条件下,使用Apache Benchmark测试鉴权系统的吞吐率。并发量设定为100~500,测试得到系统的吞吐率,见表3。

随着并发量的增加,系统吞吐率逐渐下降,在并发量和请求总量较小时,本研究开放平台鉴权子系统的吞吐量可达到1 000以上,完全满足系统需求,此时系统时延在100 ms以下。并发量达到300时,本研究系统的吞吐量下降到692。并发量大于300后,系统吞吐率下降缓慢,最终稳定在660以上。

表3 系统的吞吐率Tab.3 Throughput rate of the system

4 结论

本研究完成了网上国网开放平台的整体设计,建立网上国网服务中台能力开放技术体系,面向开发人员和能力发布者提供应用创建、能力创建、文档管理等服务供功能。开放平台向内外部单位开放网上国网数据资源及服务能力,支持省公司、政府部门、商业伙伴及公众用户开展服务创新,促进网上国网生态业务融合创新发展。

本研究仍存在一些不足之处还需进一步改进,由于数据源和数据处理方式的多样化,系统需要不断添加对于新的数据源类型的抽取服务支持,和对不同数据持久化的方式的支撑。

猜你喜欢
开放平台国网用户
基于百度地图开放平台的导航电子地图课程实践教学研究
国网上海市电力公司圆满完成春节长假保电任务
国网浙江电力 多措并举抓好电力保供和能耗双控“头等大事”
基于在线开放平台的混合式课堂教学模式构建与实践
红袄漫画
国网今年投资27亿元 新建7.8万个充电桩
基于AliGenie语音开放平台的传统家居智联网解决方案
关注用户
关注用户
关注用户