一种分布式环境下资源定位方法及其系统
技术领域
本发明涉及一种分布式环境下资源定位技术
背景技术
随着工业自动化控制的迅速发展,愈来愈多的工业企业使用其内部(或专用)网络将其生产过程专用设备或工业智能设备(Intelligent Electric Device-IED)互联在一起,形成生产控制系统网络。这种工业企业用内部(或专用)网络称之为工业互联网。
随着工业互联网的发展,工业互联网不再局限于一个场站或一个城市,大型企业,如电力公司、油气输送企业、以矿产资源勘查和开发为主的大型矿业集团,其控股公司往往分布在全国乃至全球各地,仅使用内部网络无法满足其信息交互需求。利用已有公众网络(万维互联网)的硬件和软件设施,将两个或更多个工业互联网进行通讯连接,使得一个中心控制系统能对所有个子生产控制系统进行监督和控制,也使得多个子生产控制系统之间能相互通讯,形成一个更大的工业互联网,对其资源进行更优化控制和使用。
由于工业互联网中各子系统通常分布在各个地区,为了提高系统运行效率、均衡负载,提高系统稳健性,越来越多领域采用分布式处理的模式使得多种应用系统并存运行工作。如电力行业的能量管理系统(Energy management system,简称“EMS”)、数据采集与监控系统(Supervisory Control And Data Acquisition,简称“SCADA”)等多种系统;长输管道行业的管道SCADA系统、管道方针系统、泄露检测与定位系统等应用系统,大大提高了该领域系统的运行效率。
随着跨网络的分布式工业互联网应用系统的深入使用,新的问题随之产生:分布式工业互联网将已有的两个或更多工业内部网络进行通讯连接,不同工业内部网络所采购的应用系统来自于不同厂商开发、在不同时期建立,各应用系统所使用的数据模型、应用接口、开发平台千差万别。从而可能造成应用系统之间的互不兼容、互不操作。更换设备可以解决这个问题,但是这个方法造成了资源的极大的浪费以及过多的重复投资。
公共信息模型(Common Information Model,简称“CIM”)这一概念的出现,从技术的角度出发很好的解决了这一问题。CIM是计算机工业中用来定义设备和应用方式的一种标准,以便于系统管理员和管理程序用相同的方式控制来自不同厂商和来源的设备和应用程序。
以电力系统为例,国际电工委员会(IEC)制订了电力系统的标准--IEC61970系列标准,公共信息模型CIM正是电力系统标准允许异结构系统集成的重要基础。该模型通过提供一种标准的方法来描述电力系统资源,统一了系统互操作的数据模型,是电力企业应用集成的重要工具。
在基于上述公共信息模型CIM的工业互联网分布式系统(如油气、电力、交通行业等)中,包含大量不同类型的资源,大型工业互联网分布式系统可能包含几百万资源点,这些资源ID采用8Bytes的无符号整数表示。这里所描述的“资源”主要是指信息资源,它是对现实世界的实体(如变电所、变压器、空调、RTU等)、信息世界的软件实体(如各种系统、服务等),也包括虚拟的信息点(如数据采集点、控制点等)等的抽象描述。
这些资源在创建时,为其添加一个随机产生的资源ID号码,该ID号码与该资源唯一对应,当客户端通过资源ID号向CIM服务器发出资源调用指令时,CIM服务器可向资源所在的模型数据库发送查询信息,将模型数据库的返回值反馈给用户。
然而在分布式环境下,大量记录被分布在不同的模型数据库中。当客户端发送调用指令时,CIM服务器并不知道该资源存在于哪个模型数据库中。于是,CIM服务器向所有的模型数据库发送查询信息,并等待各数据库的返回结果,再将最终数据反馈给用户,如图1所示。
通过上述方式在分布式环境下查找资源,显然存在如下缺点:
1.当模型资源库的数量达到一定数目时,CIM服务器将发送大数量的查询信息,并接收大数量的返回信息,大量资源消耗在发送与接收信息的过程中。
2.由于资源ID无序且无意义,每次信息查询将耗费大量时间,用户将长时间等待CIM服务器的回馈。
3.对于大型工业互联网分布式系统,可能包含几百万个资源点,采用上述资源查找方式,每个模型资源库需要比对大量信息,效率太低。
要解决上述资源定位问题,最常见的方式是设置一个资源定位代理。基本思路是对资源赋予唯一的ID和统一资源标识(Uniform Resource Identifier,简称“URI”),所有资源都在代理上进行注册,在需要使用资源时,通过一种数据访问代理机制去全局查找、定位。但该方法适合应用在集中式部署环境,如各种数据中心、电力石油等行业的调控中心等。随着工业应用系统规模的扩大,涉及资源量与种类的增多,该方法的缺点日益突出,如对资源定位代理的系统容量、处理性能等要求越来越高,且资源定位代理很容易成为系统瓶颈,降低系统整体的运行效率,无法满足分布式环境的应用需求。
发明内容
本发明主要解决的技术问题是提供一种分布式环境下资源定位方法及其系统,使得在大数据量的分布式系统中能够快速定位资源,且不会对定位设施的性能产生过高要求。
为了解决上述技术问题,本发明提供了一种分布式环境中资源定位方法,系统中对象资源存储在各分布式服务器中,将所述对象资源分为可部署对象资源和普通对象资源,普通对象资源与其所属的可部署对象资源存储在同一服务器中,每个对象资源包含一唯一对应的资源标示,该资源标示包含该对象资源所属的上一级可部署对象资源标识码和本资源标识码两部分,该方法包含以下步骤:
将可部署对象资源的资源标示和存储地址发送到资源定位设备进行注册,资源定位设备保存所述可部署对象资源的资源标示和存储地址的对应关系;
资源定位设备在收到资源定位请求时,根据请求中的资源标示,确定所请求的对象资源是否为可部署对象资源,如果是可部署对象资源,则根据所述资源标示中本资源标识码部分,从所保存的对应关系中查找该对象资源的存储地址;如果是普通对象资源,则根据所述资源标示中上一级可部署对象资源标识码部分,从所保存的对应关系中查找该对象资源的存储地址;
所述资源请求方从所述存储地址对应的服务器获取所需的对象资源。
作为上述技术方案的改进,所述本资源标识码分为两部分;
所述可部署对象资源的本资源标识码的第一部分为一预设值,第二部分为任意值;
所述普通对象资源的本资源标识码的第一部分不为该预设值,第二部分为任意值;
所述根据请求中的资源标示确定所请求的资源是否为可部署对象资源的步骤中,根据所述资源标示中本资源标识码中第一部分是否为该预设值,确定所请求的资源是否为可部署对象资源。
作为上述技术方案的改进,所述本资源标识码包含16位,所述第一部分为低8位,所述第二部分为高8位;
所述可部署对象资源的本资源标识码低8位为0,高8位为任意值;
所述普通对象资源的本资源标识码低8位不为0,高8位为任意值。
作为上述技术方案的改进,所述将可部署对象资源的资源标示和存储地址发送到资源定位设备进行注册的步骤中,由可部署对象资源所绑定的应用服务在初次启动时将可部署对象资源的资源标示和存储地址发送到资源定位设备进行注册;
所述资源定位设备保存所述可部署对象资源的资源标示、存储地址和绑定的应用服务的对应关系。
作为上述技术方案的改进,所述资源请求方从所述存储地址对应的服务器获取所需的对象资源的步骤中,包含以下子步骤:
所述资源定位设备将查找到的存储地址返回给资源请求方;
资源请求方根据所述存储地址找到对应的服务器,从所述服务器中获取所需的对象资源。
作为上述技术方案的改进,该方法还可以包含以下步骤:
在所述可部署对象资源的存储地址发生变更时,向所述资源定位设备更新所述存储地址。存储地址发生变更的情况可以包括以下之一或任意组合:可部署对象资源所存储的资源库分库、合并、迁移等等。
本发明还提供了一种分布式环境中的资源定位系统,系统中对象资源存储在各分布式服务器中,将所述对象资源分为可部署对象资源和普通对象资源,普通对象资源与其所属的可部署对象资源存储在同一服务器中,每个对象资源包含一唯一对应的资源标示,该资源标示包含该对象资源所属的上一级可部署对象资源标识码和本资源标识码两部分,该系统包含:
资源注册模块,用于将可部署对象资源的资源标示和存储地址发送到资源定位设备进行注册;
资源定位设备,进一步包含存储模块、查找模块和反馈模块:
存储模块,用于保存所述可部署对象资源的资源标示和存储地址的对应关系;
查找模块,用于在收到资源定位请求时,根据请求中的资源标示,确定所请求的资源是否为可部署对象资源,如果是可部署对象资源,则根据所述资源标示中本资源标识码部分,从所述存储模块保存的对应关系中查找该对象资源的存储地址;如果是普通对象资源,则根据所述资源标示中上一级可部署对象资源标识码部分,从所述存储模块保存的对应关系中查找该对象资源的存储地址;
反馈模块,用于将所述查找模块查找到的存储地址反馈给资源请求方,由资源请求方从该存储地址对应的服务器上获取所需的对象资源。
作为上述技术方案的改进,所述本资源标识码分为两部分;所述可部署对象资源的本资源标识码的第一部分为一预设值,第二部分为任意值;所述普通对象资源的本资源标识码的第一部分不为该预设值,第二部分为任意值;
所述查找模块根据所述资源标示中本资源标识码中第一部分是否为该预设值,确定所请求的资源是否为可部署对象资源。
作为上述技术方案的改进,所述本资源标识码包含16位,所述第一部分为低8位,所述第二部分为高8位;
所述可部署对象资源的本资源标识码低8位为0,高8位为任意值;
所述普通对象资源的本资源标识码低8位不为0,高8位为任意值。
作为上述技术方案的改进,所述资源注册模块位于各分布式服务器上,在所述可部署对象资源所绑定的应用服务初次启动时将可部署对象资源的资源标示和存储地址发送到资源定位设备进行注册;
所述资源定位设备的存储模块保存所述资源标示、存储地址和绑定的应用服务的对应关系。
作为上述技术方案的改进,该系统还可以包含:资源更新模块,用于在所述可部署对象资源的存储地址发生变更时,向所述资源定位设备更新所述存储地址;
所述存储地址发生变更的情况可以包含以下之一或其任意组合:可部署对象资源所存储的资源库分库、合并、迁移。
本发明实施方式与现有技术相比,主要区别及其效果在于:将分布式系统中的对象资源分为可部署对象资源和普通对象资源,存储在各分布式服务器中,普通对象资源与其所属的可部署对象资源存储在同一服务器中,每个对象资源包含一资源ID,ID中包含该对象资源所属的上一级可部署对象资源标识码和本对象资源标识码两部分。将可部署对象资源的ID和存储地址发送到资源定位设备注册;资源定位设备收到资源请求时,首先判断是否为可部署对象资源,如果是可部署对象资源,则根据本资源标识码部分,查找该对象资源存储地址;如果是普通对象资源,则根据上一级可部署对象资源标识码部分,查找该对象资源存储地址;资源请求方从存储地址对应服务器获取所需对象资源。对于包含大量数据、且资源类型繁多的分布式系统,该资源定位方式大大加快了资源查找和定位速度,且由于资源注册时只需要注册可部署对象资源ID,因此解决了大数据量、多类型信息资源注册问题,降低了对资源定位设施的系统容量、处理性能等要求,有效地避免资源定位设施造成系统瓶颈。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是现有技术中资源定位方法流程图;
图2是本发明第一实施方式的分布式环境下资源定位方法中资源从属示意图;
图3是本发明第一实施方式的分布式环境下资源定位方法中资源ID示意图;
图4是本发明第一实施方式的分布式环境下资源定位方法中资源注册流程图;
图5是本发明第一实施方式的分布式环境下资源定位方法主要流程图;
图6是本发明第一实施方式的分布式环境下资源定位方法详细流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种分布式环境下资源定位方法,尤其适用于基于CIM建模的工业互联网、物联网、油气、电力、交通等工业领域信息系统。本实施方式中所描述的“资源”都是指信息对象资源,它是对现实世界的实体(如变电所、变压器、空调、RTU等)、信息世界的软件实体(如各种系统、服务等),也包括虚拟的信息点(如数据采集点、控制点等)等的抽象描述,这些对象资源及相互关系基于CIM建模形成,是信息系统运行所必须的信息模型。
一般情况下,各对象资源之间会存在从属关系,主对象资源下包含多个从属对象资源,从属对象资源其下可以进一步包含下一级从属对象资源。如对于某电力系统,电力公司本身即一对象资源,其下还可以包含变电站、监控中心、电力局变电站网络结构图、系统登陆图等对象资源,变电站之下还可以包含主接线图、网络结构图等对象资源。本实施方式中将对象资源分为可部署对象资源和普通对象资源,其中可部署对象资源一般为主对象资源或比较主要的从属对象资源,如变电站、监控中心等;其他的为普通对象资源,如电力局变电站网络结构图、主接线图等等,如图2所示。
在工程师部署对象资源时,系统为每个对象资源分配一个唯一对应的8Bytes的资源ID。如图3所示,该8比特资源ID分为L1、L2、H1、H2四个部分。其中,H2记录对象资源类型信息,H1记录本对象资源所属的上一级可部署对象资源标识码,L2和L1记录本资源标识码。其中可部署对象资源ID的L1部分为0,L2部分不为0,普通对象资源ID的L1部分不为0,如表1所示。
表1
根据上述规则,可部署对象资源的资源ID如表2所示:
表2普通对象资源的资源ID如表3所示:
表3
本实施方式中可部署对象资源需要将其资源ID和存储地址发送到资源定位服务器进行注册,而普通对象资源则可以不用注册。
具体流程如图4所示,步骤401中,系统工程师将对象资源部署到各相关应用服务器,并配置服务与对象资源的绑定关系以及运行环境等。将普通对象资源与其所属的可部署对象资源存储在同一服务器中。
步骤402中,由可部署对象资源所绑定的应用服务在初次启动时自动将可部署对象资源的资源ID和存储地址等信息发送到资源定位服务器进行注册。
步骤403中,资源定位服务器接受资源注册,保存各可部署对象资源的资源ID、存储地址和绑定的应用服务的对应关系,建立服务-资源-存储地址的绑定关系表。
由于资源注册时只需要注册可部署对象资源ID,因此解决了大数据量、多类型信息对象资源注册问题,降低了对资源定位设施的系统容量、处理性能等要求,有效地避免资源定位设施造成系统瓶颈。
具体的资源定位流程如图5所示。在步骤501中,客户端/应用服务在需要使用某个对象资源时,向资源定位服务器发送一资源定位请求,在请求中包含该对象资源的资源ID。
步骤502中,资源定位服务器在收到资源定位请求时,根据请求中的资源ID,在服务-资源-存储地址绑定关系表中查找该资源ID对应的存储地址。
在步骤503中,资源定位服务器将查找到的存储地址返回给客户端/应用服务。
步骤504中,客户端/应用服务根据收到的存储地址找到对应的分布式应用服务器/数据库,从该应用服务器/数据库中获取所需的对象资源。
资源定位服务器在收到资源定位请求后,根据请求中的资源ID查找对应的存储地址的过程如图6所示。
步骤601中,资源定位服务器收到资源定位请求,请求中包含所需对象资源的资源ID。
步骤602中,资源定位服务器判断所请求的对象资源是否为可部署对象资源,可以根据资源ID中的L1部分来判断,如果L1部分为0,则是可部署对象资源,进入步骤603;如果L1部分不为0,则是普通对象资源,进入步骤604
步骤603中,对于可部署对象资源,直接提取资源ID中本对象资源标识码部分(即L2部分)作为资源定位识别码。
步骤604中,对于普通对象资源,则提取资源ID中上一级可部署对象资源标识码部分(即H1部分)作为资源定位识别码。
步骤605中,根据提取出来的资源定位识别码查找对象资源的存储地址。具体可以从之前保存的服务-资源-存储地址绑定关系表中进行查找。
在实际实施时,可能并非所有的可部署对象资源都会进行注册,在可部署对象资源的信息量比较小的情况下,也可能只注册其上级可部署对象资源,如可部署对象资源下暂时没有普通资源对象时,可能只注册其上级可部署对象资源,因此,在步骤605中,如果根据资源定位识别码找到对应的存储地址,则结束本流程,如果未找到对应的存储地址,则进入步骤606,判断是否是可部署对象资源,如果是普通对象资源,则说明未找到该对象资源信息,结束本流程;如果是可部署对象资源,则进入步骤607。
步骤607中,重新提取资源ID中上一级可部署对象资源标识码部分(即H1部分)作为资源定位识别码,之后进入步骤608,重新根据提取出来的资源定位识别码查找对象资源的存储地址。
对于包含大量数据、且资源类型繁多的工业互联网分布式系统,上述对象资源定位方式大大加快了对象资源查找和定位速度,且由于对象资源注册时只需要注册可部署对象资源ID,因此解决了大数据量、多类型信息对象资源注册问题,降低了对资源定位设施的系统容量、处理性能等要求,有效地避免资源定位设施造成系统瓶颈。并且在进行资源定位时,只需要采用“服务名,资源ID”定位方式,也使所有对象资源有了统一的访问接口基础。
本发明第二实施方式涉及一种分布式环境中的资源定位系统,系统中对象资源存储在各分布式服务器中,将对象资源分为可部署对象资源和普通对象资源,普通对象资源与其所属的可部署对象资源存储在同一服务器中,每个对象资源包含一唯一对应的资源标示,该资源标示包含该对象资源所属的上一级可部署对象资源标识码和本资源标识码两部分,该系统包含:
资源注册模块,用于将可部署对象资源的资源标示和存储地址发送到资源定位设备进行注册。资源定位设备,进一步包含存储模块、查找模块和反馈模块:存储模块,用于保存可部署对象资源的资源标示和存储地址的对应关系。查找模块,用于在收到资源定位请求时,根据请求中的资源标示,确定所请求的资源是否为可部署对象资源,如果是可部署对象资源,则根据资源标示中本资源标识码部分,从存储模块保存的对应关系中查找该对象资源的存储地址;如果是普通对象资源,则根据资源标示中上一级可部署对象资源标识码部分,从存储模块保存的对应关系中查找该对象资源的存储地址。反馈模块,用于将查找模块查找到的存储地址反馈给资源请求方,由资源请求方从该存储地址对应的服务器上获取所需的对象资源。
作为进一步改进,本资源标识码分可以为两部分;可部署对象资源的本资源标识码的第一部分为一预设值,第二部分为任意值;普通对象资源的本资源标识码的第一部分不为该预设值,第二部分为任意值。查找模块根据资源标示中本资源标识码中第一部分是否为该预设值,确定所请求的资源是否为可部署对象资源。
具体地说,本资源标识码可以包含16位,第一部分为低8位,第二部分为高8位;可部署对象资源的本资源标识码低8位为0,高8位为任意值。普通对象资源的本资源标识码低8位不为0,高8位为任意值。
上述资源注册模块可以位于各分布式服务器上,在可部署对象资源所绑定的应用服务初次启动时将可部署对象资源的资源标示和存储地址发送到资源定位设备进行注册;由资源定位设备的存储模块保存资源标示、存储地址和绑定的应用服务的对应关系。
作为进一步改进,该系统还可以包含:资源更新模块,用于在可部署对象资源的存储地址发生变更时,向资源定位设备更新存储地址;存储地址发生变更的情况可以包含以下之一或其任意组合:可部署对象资源所存储的资源库分库、合并、迁移。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。