设备间的数据变换和同步

文档序号:1909833 发布日期:2021-11-30 浏览:4次 >En<

阅读说明:本技术 设备间的数据变换和同步 (Data transformation and synchronization between devices ) 是由 S·K·阿加瓦尔 J·丹吉 于 2020-03-30 设计创作,主要内容包括:一种计算机实现的方法包括:在边缘服务器处从多个设备接收数据;对从所述多个设备接收的所述数据进行变换;将所变换的数据存储在边缘服务器数据库中;对所述数据库中的所变换的数据执行分析;以及选择性地将数据经由网络上传到远程服务器。(A computer-implemented method comprising: receiving data from a plurality of devices at an edge server; transforming the data received from the plurality of devices; storing the transformed data in an edge server database; performing an analysis on the transformed data in the database; and selectively uploading the data to a remote server via a network.)

设备间的数据变换和同步

背景技术

预计物联网(IoT)设备会生成大量数据。使用中的IoT设备数量预计将超过数亿台。这种设备可以是电池供电的。电池提供能量的限制意味着许多(如果不是大多数)IoT设备将仅具有短距离无线通信能力。

云计算资源将可能用于处理由大量IoT设备生成的数据。用于将数据传送到云计算资源的网络可能会因海量数据而变得有负担,并且可能无法及时接收和处理数据。

发明内容

一种计算机实现的方法包括在边缘服务器处从多个设备接收数据、变换从多个设备接收的数据、将所变换的数据存储在边缘服务器数据库中、对数据库中所变换的数据执行分析、以及选择性地将数据经由网络上传到远程服务器。

附图说明

图1是根据示例实施例的用于在网络边缘处理设备数据的系统的框图。

图2是示出了根据示例实施例的处理来自耦合到边缘服务器的设备的数据的计算机实现的方法的流程图。

图3是根据示例实施例的为对应于所选场景的应用收集流数据的系统的框图。

图4是实现一个或多个示例实施例的计算机系统的示意框图。

具体实施方式

在下面的描述中,参考了形成其一部分的附图,并且其中通过说明的方式示出了可以实践的特定实施例。对这些实施例进行了足够详细的描述以使本领域技术人员能够实践本发明,并且应当理解,可以利用其他实施例并且可以在不脱离本发明范围的情况下进行结构、逻辑和电学改变。因此,示例实施例的以下描述不应被理解为限制性的,并且本发明的范围由所附权利要求限定。

在一个实施例中,本文描述的功能或算法可以在软件中实现。软件可以由存储在计算机可读介质或计算机可读存储设备上的计算机可执行指令组成,诸如一个或多个非暂态存储器或其他类型的基于硬件的存储设备(本地的或联网的)。此外,这些功能对应于模块,模块可以是软件、硬件、固件或其任意组合。可以根据需要在一个或多个模块中执行多种功能,并且所描述的实施例仅是示例。该软件可以在数字信号处理器、ASIC、微处理器或在计算机系统上运行的其他类型的处理器上执行,诸如个人计算机、服务器或其他计算机系统,将这样的计算机系统变成专门编程的机器。

功能可以被配置为使用例如软件、硬件、固件等来执行操作。例如,短语“被配置为”可以指要实现相关联的功能的硬件元件的逻辑电路结构。短语“被配置为”还可以指硬件元件的逻辑电路结构,用于实现固件或软件的相关联的功能的编码设计。术语“模块”是指可以使用任何合适的硬件(例如,处理器等)、软件(例如,应用等)、固件或硬件、软件和固件的任意组合来实现的结构元件。术语“逻辑”涵盖用于执行任务的任何功能。例如,流程图中所示的每个操作对应于执行该操作的逻辑。可以使用软件、硬件、固件等来执行操作。术语“组件”、“系统”等可以指与计算机相关的实体、硬件和执行中的软件、固件或其组合。组件可以是在处理器上运行的进程、对象、可执行文件、程序、功能、子例程、计算机或软件和硬件的组合。术语“处理器”可以指硬件组件,诸如计算机系统的处理单元。

此外,要求保护的主题可以被实现为使用标准编程和工程技术来生产软件、固件、硬件或其任何组合以控制计算设备以实现所公开的主题的方法、装置或制品。本文使用的术语“制品”旨在涵盖可从任何计算机可读存储设备或介质可访问的计算机程序。计算机可读存储介质可以包括但不限于磁存储设备,例如硬盘、软盘、磁条、光盘、光盘(CD)、数字通用盘(DVD)、智能卡、闪存设备等。相反,计算机可读介质,即非存储介质,可以另外包括通信介质,诸如用于无线信号等的传输介质。

IoT和边缘计算的特征在于通过部署的数百万个IoT传感器生成的大量的数据。根据连接性和带宽限制,这些大量的数据无法全部被迁移到云中进行存储和分析,因此,在迁移聚合/过滤的云之前,需要能够存储、处理、聚合、过滤和预测/分析这些数据集。

考虑到数据量和后勤限制,组织部署数据解决方案变得极其重要,该数据解决方案提供存储、处理、分析、过滤然后在边缘和公共/私有云之间移动该数据的本机能力。边缘数据空间中的现有参与者都没有提供这种内置能力。

图1是用于这种数据解决方案的系统100的框图。系统100包括许多数据产生设备,诸如产生大量数据的IoT传感器110。传感器110还可以包括无线设备,该无线设备用作传感器或甚至用作响应控制信号和执行动作的致动器。在各种实施例中,传感器110的数量可以从一个变化到数百、数千或更多,从而产生大量数据。传感器可以由电池供电并且包括用于无线传输数据的收发机。一些传感器可能以高速率感测和传输数据,诸如每秒多次,而其他传感器可能每隔几秒或几分钟或更长时间传输一次以节省电池能量。

如115所示,数据被传输到边缘设备,诸如边缘服务器120,其包括用于实现诸如SQL的数据库功能的编程,其中SQL代表结构查询语言。边缘服务器120是运行软件的计算设备,该软件具有能够以非常低的延迟延时来接收和处理数据的功能。边缘服务器120的示例包括组织内的服务器,诸如数据中心内的服务器,其可以在数据的发送和边缘服务器接收数据之间以非常短的时间或延迟来快速接收数据。边缘服务器120被配置有软件以从传感器(诸如每秒或其他时间段发射数据的数百或数千个传感器)以及从其他运行的设备,摄取大量数据。

在一些实施例中,边缘服务器120可以与经由网络130耦合的远程服务器125通信。远程服务器可以包括云资源,诸如SQL服务器、数据湖存储装置和其他服务。网络130可以是公共网络,诸如因特网,或专用网络。网络130可以包括许多节点,这些节点包括路由器、交换机、集线器和其他设备,该其他设备被设计用于接收和路由数据,诸如数据分组,并且可能在传输期间对数据执行功能。因此,在数据甚至到达目的地之前,网络中可能存在显著延迟。边缘服务器120是位于传感器110和网络130之间的服务器。边缘服务器120可以被耦合以直接从传感器110或从一个或多个从传感器110接收数据的其他设备接收数据。边缘服务器120可以耦合在网络130的边缘附近,并且也可以被称为网关,从而来自传感器110的数据快速到达边缘服务器120,并且没有与经由网络将数据发送到其他设备相关联的延迟。

在一个实施例中,边缘服务器120包括加窗和变换组件135,其执行数据的聚合或数据的其他变换。加窗和变换组件135可以在接收数据时对数据进行操作,或者可以在与每个传感器110相关联的一个或多个基于时间的窗口期间接收一系列数据。加窗和变换组件135可以对在与传感器相关的时间窗口期间从传感器接收的数据执行功能。这样的功能可以包括在时间窗口期间缓冲所接收的数据并变换数据。变换数据可以包括执行加窗聚合和统计分析,诸如平均值、均值、异常值识别、导数、标准偏差和其他类型的数据变换,这些变换可以根据传感器感测的环境/应用而变化。进一步的变换可能包括数据的聚合、在行和列之间变换数据、按聚合分组、连接来自不同传感器的数据以及在专用工具(ad-hoc)基础上执行的其他功能。在此上下文中,专用工具(ad-hoc)是指在传感器的对应时间窗口期间接收和缓冲的数据的性能,而不是在此类时间窗口之外存储和取回数据。

所变换的数据被提供给数据库引擎140,诸如SQL(结构查询语言)数据库引擎,其中所变换的数据可以被存储、被索引并且在关系数据库142中可用。数据库142中的数据可以访问用于在引擎140上执行的其他功能145的性能。功能145可以包括对被存储在数据库142中的数据的各种分析,诸如许多不同的关系数据库功能、二元分类、线性回归、SQL执行、聚合、关系查询、基于图形的查询、或可以对以关系数据库格式存储的数据执行的其他类型的分析/功能。

一种这样的功能包括一种或多种机器学习模型。一个实施例中的机器学习模型可以基于从边缘服务器120提供的数据经由远程服务器125进行训练。从边缘服务器120提供的数据可以包括传感器数据115以及对也可以存储在数据库142中的原始传感器数据115执行的分析。下面描述了几个不同的应用,称为场景,可以针对这些应用生成模型以进行与这些应用相关联的预测。由于模型训练可能是资源密集型工作,因此将模型训练移至远程服务器可确保边缘服务器的本地资源不受限制,并可在收集数据时应用于收集和本地分析。在一个实施例中,Azure ML(机器学习)模型是经由远程服务器125提供的。还可以执行用不同编程语言编写的各种功能,包括用Python、Spark、Java和其他语言编写的程序。

远程服务器125除了从边缘服务器120接收数据外,还可以通过向边缘服务器120提供数据和部署软件包来提供设备同步。可以从远程服务器接收业务规则或安全策略以用于在边缘服务器120上实现。

边缘服务器120将变换和聚合的数据(来自传感器的数据)卸载到云/企业数据中心、远程服务器125。注意,边缘服务器120是根据可以在处理资源上执行的软件来描述的。此外,边缘服务器120向客户提供了能够在将数据卸载到云或私有数据中心之前,为边缘上的数据配置自定义保留策略的能力。

考虑到在网络边缘生成的大量数据,边缘服务器120对生成的数据执行变换,诸如对流入边缘服务器120的数据流115进行聚合。大多数物联网传感器以固定的时间间隔生成数据,其中每个数据点都有附接到其的时间属性。因此,边缘服务器120经由加窗和变换组件135可以在边缘上执行加窗和时间序列特定处理。

此外,边缘服务器120具有使用本机T-SQL功能或使用模型145或用R、Python、Spark或Java编写的算法来执行数据库内ML的能力。客户将能够使用基于云的可扩展资源和分析在云、远程服务器125中训练他们的模型,并将训练后的模型推送到边缘服务器120以经由模型145进行评分。

边缘服务器120通过诸如Azure流分析的分析功能的本机集成来提供上述能力,而无需外部解决方案来在边缘和公共/私有云之间同步数据。边缘服务器120也是可扩展的,因为可以添加更多的处理资源来执行随着所接收的来自越来越多的传感器的越来越多的数据量而执行的功能。

图2是示出了处理来自耦合到边缘服务器120的设备110的数据的计算机实现的方法200的流程图。方法200开始于多个设备,诸如IoT设备,生成数据并发送它以使得它在操作210中由边缘服务器接收。可以周期性地从多个设备中的每一个接收数据。对于不同的设备,例如传感器,所接收的值之间的时间段可能相同或不同。相同类型的传感器,诸如温度传感器,可能具有相同的感测和传输周期或频率。表示感测参数的数据的每个值都可以加时间戳。边缘服务器可以从多个设备无线接收数据,而无需将数据经由公共网络发送到边缘服务器。

在操作220,边缘服务器对从多个设备中的每一个接收的数据进行变换。变换可包括经由一个或多个统计过程或其他分析来聚合或以其他方式组合数据。在一些实施例中,可以变换在诸如设备特定窗口的指定时间窗口期间接收的数据。对于多个或所有设备,时间窗口可以是相同的长度,或者对于每个设备或设备类型,时间窗口的长度可以不同。统计或数学计算可以是在每个设备特定窗口期间所接收的数据的变换之一。

在操作230,所变换的数据由边缘服务器存储到边缘服务器数据库中。如此存储的数据可以包括所变换的数据。

在操作240,方法200还可以包括执行上面关于分析功能145描述的各种功能。结果也可以被存储在数据库142中。

在操作255,可以基于所执行的功能的结果来确定动作。该动作可以是实现系统100的特定场景的功能。示例场景在下面描述,并且可以包括基于传感器110感测到的参数来生成警报和/或控制各种功能。在操作260,可以基于功能生成控制信号,并且可以在265向无线设备中的一个或多个发送控制信号,用于促使与多个无线设备相关联的动作被执行。在操作270,在边缘服务器处从远程服务器接收数据和/或程序包更新。

图3是系统300的框图,该系统300为对应于所选场景的应用310收集流数据。图1和3中类似组件的附图标记相同。实时传感器数据115从多个传感器110流式传输到边缘服务器120。边缘服务器120包括加窗和变换组件135以变换流式数据,并且还包括引擎140和功能145。网络130提供来自数据库142的数据到云资源325,它可以与远程服务器125相同或包括远程服务器125。

应用310可以包括用于一个或多个场景的仪表板或其他用户界面。应用310可以基于用户定义的逻辑经由用户界面触发将数据从边缘服务器120上传到云资源325,或者可以周期性地执行这样的上传。上传的数据可以从数据库142或从功能145提供的输出中选择,或者在不同实施例中的其组合。通过在上传之前对数据执行功能145,可以及时采取本地控制动作,并且上传的数据量可能明显小于从传感器和其他设备接收的数据量,从而导致更少的网络带宽被消耗。

以下是边缘服务器120和应用310上的本地评分的示例用例场景。还有可以利用系统100或系统300直接实现的更多的场景。每个场景将使用模型或其他分析作为由与场景相关联的历史数据训练的功能145的一部分。

农业农场——农业农场的特征在于存在大量传感器(温度、湿度、水分等),每个传感器每隔几秒产生大量数据。从这些传感器产生的所有这些数据用于经由模型或由特定于这种场景的功能145提供的其他分析来预测几个因素,例如肥料需求、作物喷洒计划、灌溉需求。鉴于这些传感器生成的大量数据以及这些农场的地理位置,将这些数据集合上传到Azure或其他公共/私有云会适得其反。在上传到云端之前,该数据集合通常基于时间窗口(例如,平均1分钟、平均5分钟、平均15分钟等)进行聚合。在这种场景中,边缘服务器120可以位于农场中,诸如在WiFi路由器或局域网设备中。

联网车辆——联网车辆是在边缘生成大量数据的场景的另一个示例。大量数据需要被聚合、处理,然后上传到云存储装置,以便通过可扩展的计算资源进行进一步分析。此外,在联网车辆的情况下,经由在边缘服务器120上运行的ML模型对边缘上的数据进行评分对于提供实时反馈以促进动态路线规划、车辆磨损管理、易腐烂物品温度控制等场景非常重要。在这样的场景中,边缘服务器120可以位于每辆车中,或者可能位于与汽车直接通信的蜂窝塔中。然而,塔之间的切换可能会增加复杂性,使得边缘服务器120更有可能与车辆一起定位。

石油和天然气钻井平台——位于海洋中部或偏远地理位置的石油和天然气钻井平台的特征在于需要提供对边缘上数据的低延迟实时分析。这些钻井平台本质上通常对时间很敏感,并且在大多数情况下无法承受将数据推送到云并在云上执行分析的延迟。数据(主要是最后几分钟或几小时的数据)需要快速被分析以推动钻井平台上的行动/结果。例如,需要实时分析和关联温度、压力和体积数据,以控制阀门上的压力或钻井平台的整体冷却。通过将分析和ML模型移动到边缘服务器120,可以实时分析和关联数据以进行此类控制。该场景中的边缘服务器120可能正在处理钻井平台本地的资源。

安全和监控——安全和监控行业是另一示例,其中对边缘上数据的实时分析对于确保系统可以识别绕过安全的欺诈性尝试至关重要。

图4是根据示例实施例的用于实现边缘设备、服务器、IoT设备和其他设备以执行方法和算法的计算机系统400的示意框图。在各种实施例中不需要使用所有组件。

计算机400形式的一个示例计算设备可以包括处理单元402、存储器403、可移除存储装置410和不可移除存储装置412。尽管示例计算设备被图示和描述为计算机400,但是在不同的实施例中,计算设备可以是不同的形式。例如,计算设备可以替代地是智能电话、平板电脑、智能手表、智能存储设备(SSD)或包括与关于图4所示出和描述的相同或相似的元件的其他计算设备。诸如智能手机、平板电脑和智能手表的设备通常被统称为移动设备或用户装备。

尽管各种数据存储元件被示为计算机400的一部分,但是存储还可以或替代地包括可经由网络访问的基于云的存储,诸如基于因特网或服务器的存储。还要注意,SSD可能包括解析器可以在其上运行的处理器,从而允许通过SSD和主存储器之间的I/O通道传输已解析、过滤的数据。

存储器403可以包括易失性存储器414和非易失性存储器408。计算机400可以包括各种计算机可读介质——或能够访问包括各种计算机可读介质的计算环境——诸如易失性存储器414和非易失性存储器408、可移动存储器410和不可移动存储器412。计算机存储器包括随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)或电可擦除可编程只读存储器(EEPROM)、闪存或其他存储技术、光盘只读存储器(CDROM)、数字多功能磁盘(DVD)或其他光盘存储、磁带、磁带、磁盘存储或其他磁存储设备,或能够存储计算机可读指令的任何其他介质。

计算机400可以包括或可以访问计算环境,该计算环境包括输入接口406、输出接口404和通信接口416。输出接口404可以包括显示设备,诸如触摸屏,其也可以用作输入设备。输入接口406可以包括以下一项或多项:触摸屏、触摸板、鼠标、键盘、相机、一个或多个设备特定按钮、集成在计算机400内或经由有线或无线数据连接耦合到计算机400的一个或多个传感器、以及其他输入设备。计算机可以使用通信连接在联网环境中操作以连接到一台或多台远程计算机,诸如数据库服务器。远程计算机可以包括个人计算机(PC)、服务器、路由器、网络PC、对等设备或其他常见的数据流网络交换机等。通信连接可以包括局域网(LAN)、广域网(WAN)、蜂窝、Wi-Fi、蓝牙或其他网络。根据一个实施例,计算机400的各种组件与系统总线420相连。

在计算机可读介质上存储的计算机可读指令可由计算机400的处理单元402执行,诸如程序418。在一些实施例中,程序418包括用于实现本文描述的一种或多种方法的软件,诸如感测数据、传输数据、执行分析、执行机器学习模型、存储数据和本文描述的其他功能。硬盘驱动器、CD-ROM和RAM是包括诸如存储设备的非暂时性计算机可读介质的物品的一些示例。术语计算机可读介质和存储设备不包括载波,因为载波被认为过于短暂。存储还可以包括联网存储,诸如存储区域网络(SAN)。计算机程序418连同工作空间管理器422可用于使处理单元402执行本文所述的一种或多种方法或算法。

示例:

1.一种计算机实现的方法包括在边缘服务器处从多个设备接收数据、对从多个设备接收的数据进行变换、将所变换的数据存储在边缘服务器数据库中、对数据库中的所变换的数据执行分析,以及选择性地将数据经由网络上传到远程服务器。

2.根据示例1所述的方法,其中从多个设备中的每个设备接收的数据是从多个无线设备周期性地接收的。

3.根据示例1-2中任一项所述的方法,其中变换从所述多个设备中的每个设备接收的数据包括缓冲和变换在指定时间窗口期间接收的数据。

4.根据示例3所述的方法,其中指定的时间窗口是设备相关的。

5.根据示例1-4中任一项所述的方法,并且还包括对边缘服务器数据库中的存储的数据执行功能。

6.根据示例5所述的方法,其中该功能包括执行机器学习模型以进行评分,其中该机器学习模型是从远程服务器提供的。

7.根据示例6所述的方法,并且还包括基于所执行功能的输出来确定动作,基于所确定的动作生成控制信号,以及向所述设备中的一个或多个设备传输所述控制信号,以使所述动作被执行。

8.根据示例5-7中任一项所述的方法,其中所述功能包括以下中的一项或多项以生成输出:关系数据库功能、二元分类、线性回归、查询执行和聚合。

9.根据示例8所述的方法,还包括将输出存储在边缘服务器数据库中。

10.根据示例1-9中任一项所述的方法,并且还包括在边缘服务器处从远程服务器接收更新。

11.根据示例1-10中任一项所述的方法,其中所述网络包括公共网络或专用网络,并且其中所述远程服务器包括云资源。

12.根据示例1-11中任一项所述的方法,其中所述多个设备包括IoT(IoT)无线传感器。

13.根据示例1-12中任一项所述的方法,其中经由网络选择性地将数据上传到远程服务器包括响应于来自应用的按需请求来上传数据。

14.根据示例1-13中任一项所述的方法,其中经由网络选择性地将数据上传到远程服务器包括周期性地上传数据。

15.一种机器可读存储设备具有用于由机器的处理器执行以使处理器执行操作以执行管理通信帐户的方法的指令。这些操作包括在边缘服务器处从多个设备接收数据;对从所述多个设备接收的所述数据进行变换;将所变换的数据存储在边缘服务器数据库中;对所述数据库中的所变换的数据执行分析;以及选择性地将数据经由网络上传到远程服务器。

16.根据示例15所述的设备,其中从所述多个设备中的每个设备所接收的所述数据是周期性地从多个无线设备接收的,并且其中对从所述多个无线设备中的每个无线设备所接收的所述数据进行变换包括对在指定时间窗口期间所接收的数据进行缓冲和变换。

17.根据示例15-16中任一项所述的设备,其中所述操作还包括对所述边缘服务器数据库中所存储的数据执行功能;基于所执行的功能的输出来确定动作;基于所确定的动作来生成控制信号;以及向所述设备中的一个或多个设备传输所述控制信号,以使所述动作被执行。

18.根据示例17所述的设备,其中所述功能包括包括以下中的一项或多项以生成输出:关系数据库功能、二元分类、线性回归、查询执行和聚合中。

19.一种设备包括处理器和存储设备,该存储设备耦合到该处理器并且具有存储在其上的用于由该处理器执行以执行操作的程序。这些操作包括:在边缘服务器处从多个设备接收数据;对从所述多个设备接收的所述数据进行变换;将所变换的数据存储在边缘服务器数据库中;对所述数据库中的所变换的数据执行分析;以及选择性地将数据经由网络上传到远程服务器。

20.根据示例19所述的设备,其中从所述无线设备中的每个设备所接收的数据是从所述多个无线设备周期性地接收的,并且其中对从所述多个无线设备中的每个设备所接收的数据进行变换包括对在指定时间窗口期间所接收的数据进行缓冲和变换。所述操作还包括对边缘服务器数据库中存储的数据执行功能、基于所执行功能的输出确定动作、基于所确定的动作来生成控制信号、以及将控制信号传输到一个或多个无线设备以使得动作被执行。

尽管上面已经详细描述了几个实施例,但是其他修改也是可能的。例如,附图中描绘的逻辑流程不需要所示的特定顺序或有序顺序来实现期望的结果。其他步骤可以从所描述的流程中被提供,或者步骤可以被消除,并且可以向所描述的系统添加或移除其他组件。其他实施例可能在以下权利要求的范围内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于提供捆绑包信息的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类