进行跨节点网络的负载平衡的装置和方法与流程

文档序号:13451431阅读:198来源:国知局
进行跨节点网络的负载平衡的装置和方法与流程

本主题总地涉及用于进行跨节点网络的负载平衡的装置和方法。更具体地,所公开的装置和方法涉及将活动迁移到网络中的节点以跨网络使负载平衡。



背景技术:

近年来,已经提供了可以从云服务器或从物联网(iot)设备运行的程序。然而,为了使相同的程序在云和所述设备上运行,需要两个不同的代码,一个用于云,一个用于服务器。

从与iot设备通信的云服务器运行程序的一个缺点是与云的连接可能会丢失,从而导致在设备上所述程序未完成。



技术实现要素:

根据第一方面,提供了一种用于选择节点网络内的节点以执行活动的系统。所述系统包括:设备能力监视器,被配置为确定设置有所述系统的节点的能力;度量模块,被配置为确定节点度量;迁移确定模块,被配置为确定所述活动的处理需求,并作为确定的所述活动的处理需求、确定的所述节点的能力和确定的节点度量的结果而确定所述活动的执行将被迁移到网络中的另一个节点;远程设备监视器,被配置为识别节点网络中的其他节点并选择识别的节点中的一个节点来执行所述活动;和请求生成模块,被配置为将所述活动传递到选择的节点。

根据另一方面,提供了一种用于执行选择节点网络内的节点以执行活动的方法的计算机应用程序。所述程序包括:确定节点网络内的每个节点的能力;确定在所述节点网络内的每个节点处执行所述活动的度量;确定所述活动的处理需求;确定所述活动的执行将由作为确定的所述活动的处理需求、确定的每个节点的能力和确定的在每个节点处执行所述活动的度量的结果而选择的节点网络内的节点中的一个节点来完成;请求由选择的节点执行所述活动,该请求包含所述活动。

根据另一方面,提供了一种用于确定何时将活动在网络内从节点迁移到另一节点的方法。所述方法包括:确定所述节点的能力;确定执行所述活动的度量;确定在另一个节点处执行所述活动的度量比在所述节点处执行所述活动更便宜;和将所述活动迁移到另一个节点。

根据另一方面,提供了一种将活动迁移到网络中的节点的方法,所述方法包括:识别所述节点的通信范围内的节点;请求识别的节点中的每一个节点的能力;请求识别的节点中的每一个节点的度量;请求识别的节点中的每一个节点的代码清单;使用请求的能力、度量和代码清单来选择识别的节点中的一个节点来迁移所述活动;在尚未在节点处提供执行所述活动所需的数据和代码的情况下,将执行所述活动所需的数据和代码传递到选择的节点。

根据另一方面,提供了一种记录有计算机可读代码的计算机可读介质,所述计算机可读代码被布置成使计算机执行确定何时将活动在网络内从节点迁移到另一节点的方法。

根据另一方面,提供了一种记录有计算机可读代码的计算机可读介质,所述计算机可读代码被布置为使得计算机执行将活动迁移到网络中的节点的方法。

附图说明

为了更好地理解实施例以及如何实现这些实施例,现在将仅通过示例的方式参考附图,在附图中:

图1示意性地示出了节点网络;

图2示意性地示出了iot设备;

图3示意性地示出了面部识别单元;图4示意性地示出了迁移系统;

图5是示意性地示出用于将活动迁移到远程设备的过程的流程图;并且

图6是示意性地示出用于从远程设备接收活动的过程的流程图。

在附图中,相似的附图标记指代相同或相似的元件。

具体实施方式

现在将详细参考实施例,其示例在附图中示出。在下面的详细描述中,通过示例阐述了许多具体细节,以便提供对相关教导的透彻理解。然而,对于本领域的普通技术人员来说将清楚的是,可以在没有这些具体细节的情况下实施本教导。

图1示意性地示出了节点2的网络1,其中网络1中的每个节点2是iot(物联网)设备或云服务器。每个节点2在其他节点2中的至少一个的通信范围内。如本领域中已知的,每个节点2能够执行对周围区域的扫描以便识别在其通信范围内的其它节点2。每个节点2可以能够经由若干不同的通信网络(诸如3g、wifi、蓝牙等)进行通信,并且取决于所使用的通信网络,每个节点2可以在不同节点2的通信范围内。

例如,参考图1,节点2a能够使用wifi与节点2b进行通信,并且能够使用蓝牙与节点2c进行通信。此外,每个节点可以能够使用多于一个的不同通信网络与另一个节点2进行通信。例如,参照图1,节点2d能够使用wifi和蓝牙与节点2e进行通信。

关于不同的功率、电池寿命、处理速度和存储空间,各个节点2可以是高度不对称的。此外,每个节点2是能够执行其自己的预定功能的独立设备。

图2示意性地图示了诸如移动电话之类的iot设备10,其以相机12和面部识别单元14的形式利用面部识别技术,以便当存在授权用户时解锁移动电话10。移动电话10能够经由路由器18与云服务器16进行通信。移动电话10还能够与未示出的其他设备/服务器进行通信。移动电话10、云服务器16和路由器18都可以被认为是网络内的节点。

图3示意性地示出了面部识别单元14。面部识别单元14包括图像源20、spi(串行外设接口)总线22、面部识别器24、特征检测器26、隐马尔可夫模型28、数学库30、数字输出32和处理器40。当面部识别单元14在设备10处运行时,对设备10的处理能力和功耗要求很高。在一个实施例中,为了减少这些要求,设备10将要求最高的活动(例如特征检测器26和数学库30)迁移到其通信范围内的另一个节点,该节点具有使其能够承担所述活动的能力和容量。

为了易于理解,迁移至少一个活动的节点此后将被称为迁移设备,并且可以是设备或服务器。此外,接收被迁移的活动的节点此后将被称为远程设备,并且可以是设备或服务器。如下面将更详细解释的那样,迁移设备还可能能够接收被迁移的活动,在此时它将被称为远程设备,并且远程设备也可能能够迁移活动,在此时它将被称为迁移设备。

在图2和图3所示的示例中,迁移设备10将特征检测器26和数学库30迁移到路由器18(远程设备)。路由器18在设备10的通信范围内并具有市电(mains)电源。此外,路由器18具有使其能够承担其已经从迁移设备10接收到的被迁移的活动的处理能力。所迁移的活动的结果被传回迁移设备10,使得设备10可以在存在授权用户时被解锁。作为替代或者除此之外,迁移设备10可以将特征检测器26和/或数学库30迁移到云服务器16以进行处理。

在另一个示例中,可以通过将数据的压缩从电池设备(迁移设备)迁移到诸如市电供电的wifi路由器之类的远程设备来实现更高的压缩率。这是因为wifi路由器很可能具有更大的压缩窗口或更精细的算法(诸如小波压缩等)。

在另一个示例中,可能需要蓝牙设备定期轮询基于ssl的因特网服务。蓝牙设备(迁移设备)能够将轮询任务迁移到市电供电的边界路由器(远程设备),使得远程设备定期轮询基于ssl的因特网服务,并且仅当新数据变为可用时才向迁移设备发送通知。结果是,与需要迁移设备每隔几分钟就与因特网服务运行一次完整(fully-fledged)的ssl握手相比,迁移设备处的功耗降低了。

活动向网络内具有容量的节点的迁移提供了跨网络的负载平衡,并且可能提高跨网络的处理速度。为了迁移通常会在设备上运行的活动,设备10设置有迁移系统。另外,迁移设备将活动迁移到的每个节点也设置有迁移系统。

图4示意性地示出了迁移系统100。迁移系统100包括设备能力监视器110、度量模块120、迁移确定模块130、存储模块140、远程设备监视器150、迁移活动模块160、请求生成模块170、请求接收模块180和安全模块190。

设备能力监视器110被配置为确定设备的能力中的一个或多个,诸如设备处的处理能力和可用存储之类。设备能力监视器110不断地监视设备操作并保持针对以下各项的性能计数器:与云的数据交换(密度模式、量、带宽);代码块(压缩等)的功率要求;本地存储(闪存访问等)的功率要求。设备能力监视器110还包含关于设备的特征的信息,诸如设备是否具有显示器或扬声器等。需要显示器的活动不应被迁移到不具有显示器的节点,并且同样地,需要扬声器的活动不应被迁移到不具有扬声器的节点。

度量模块120确定节点度量,所述节点度量用于确定在哪个节点处可以最有效地执行什么活动。度量包括设备处的电力预算、设备的处理速度以及对于设备可用的通信技术。

度量模块120被配置为确定设备处的电力预算,例如设备的电池水平或者设备是否连接到市电。度量模块120还被配置为确定设备的处理速度。度量模块120还被配置为识别对于设备可用的通信技术(即3g/wifi网络等)以及针对每种通信技术的到潜在的远程设备的通信链路的相关联的带宽和延迟。关于电力预算、处理速度和可用通信技术的确定都可以随时间而变化。这是因为设备可以与市电连接或断开连接和/或移动到具有不同可用通信技术的不同区域和/或承担导致设备处的处理速度的改变的不同的任务。

度量模块120将“开销”(cost)归因于每个度量。开销表示节点的当前容量并可以随时间而变化。例如,“开销”与设备的电力水平相关联。当节点连接到市电时,开销被认为是低的,而当节点未连接到市电时,开销被认为是高的。此外,随着电池水平降低,开销可能会增加。在另一个示例中,“开销”与设备的处理速度相关联。当设备的处理速度高时,开销被认为是低的,而当设备的处理速度低时,开销被认为是高的。此外,随着处理速度降低,开销可能会增加。开销可能具有或可能不具有实际的货币价值。

度量模块120还被配置为确定数据传递的“开销”。数据传递的开销取决于对于迁移设备和远程设备可用的通信网络,例如,到相邻设备的使用蓝牙的数据传递可以比使用wifi的数据传递或将数据存储到本地闪存更便宜且更快。在某些情况下,数据传递可能会引起实际的货币价值。

根据迁移系统在任何特定时间的需要,度量模块120可以确定电力水平或处理速度或数据传递的开销,或者电力水平或处理速度或数据传递的任意组合的开销。

迁移确定模块130被配置为确定什么时候活动将被迁移以及什么活动将被迁移。例如,当要承担活动但是设备具有有限的电池电力时,或者当要承担需要会使设备减慢的较大处理能力的活动时等,迁移确定模块130确定该活动如果被迁移到另一个节点则可以更有效地进行。关于何时迁移活动的确定是基于从设备能力监视器110和度量模块120获得的迁移设备的当前状态,诸如它是否具有足够的可用电力、是否具有足够的可用的处理能力和存储器等来执行活动。

存储模块140被配置为存储关于在迁移设备处存储什么处理代码的信息。例如,存储模块140可以存储代码清单。在一个实施例中,迁移系统100利用在节点处设置的存储模块并且不具有其自己的存储模块。

远程设备监视器150使用例如upnp、主动或被动的无线扫描等来发现通信范围内的可向其迁移活动的设置有迁移系统的其他节点。潜在的迁移节点的示例是:路由器(诸如住宅wifi路由器或市电供电的网格节点之类);正在充电的电话/平板电脑;市电供电的计算机;具有高的剩余电池寿命的其他电池供电的设备等。远程设备监视器150从发现的节点请求迁移信息。例如,远程设备监视器150请求由每个发现的节点设备能力监视器和度量模块提供的每个发现的节点的能力和度量。远程设备监视器150还请求在每个发现的节点存储模块处保持的用于每个节点的代码清单。然后在远程设备监视器150处就哪个发现的节点(如果有的话)能够以比在迁移设备处执行活动的开销更便宜的开销来执行要迁移的活动做出确定。当多于一个发现的节点能够执行所述活动时,能够以最低开销执行活动的节点被选择。在一个示例中,确定的迁移活动的开销可以被计算为向远程设备递送数据和代码(如果需要的话)的开销、在远程设备处执行所述活动的开销以及向迁移设备递送结果的开销的总和。

请求生成模块170被配置为生成一个或多个迁移请求,以及将活动(数据和代码(如果需要的话))传递到选择的远程设备。

当设备充当迁移设备时,迁移活动模块160保持已经从设备迁移的活动的日志,并确认被迁移的活动的结果已经返回给所述设备。在某些情况下,被迁移的活动的结果可能是第三方设备所需要的。不是远程设备将被迁移的活动的结果传递给迁移设备,随后迁移设备被要求将所述结果传递给第三方设备,而是如果第三方设备在远程设备的通信范围内则远程设备可以直接将结果传递给第三方设备。在这种情况下,远程设备还向迁移设备传递对活动已经完成并且结果成功传递给第三方设备的确认。

当设备充当远程设备时,迁移活动模块160还保持已迁移到设备以进行处理的活动的日志,并确认被迁移的活动的结果已传递到迁移设备或第三方设备。

在远程设备已经从迁移设备或第三方设备接收到对在迁移设备或第三方设备处已经适当地接收到被迁移的活动的结果的确认之后,被迁移的活动的结果可以从远程设备的存储器中丢弃。然而,一直到接收到接收确认之后为止,被迁移的活动的结果将不会被删除。在一些实施例中,即使在接收到接收确认之后,将被迁移的活动的结果存储在远程设备处以供将来参考也可能是有利的。

当确定当前正在为迁移设备执行活动的远程设备不再处于迁移设备的通信范围中使得与远程设备的连接丢失时,迁移设备或者可以自己执行活动,因为所需的代码和数据保持在迁移设备处,或者可以起动将活动迁移到其通信范围内的另一个节点。数据丢失被避免。

请求接收模块180被配置为接收来自其他设备的迁移请求。请求接收模块180还将关于从其他节点接收的代码的信息传递到存储模块140,以添加到代码清单。在一些实施例中,设备可以不接受来自其他设备的迁移请求,诸如仅由电池供电的设备之类。在这些实施例中,迁移系统100不需要请求接收模块180。

安全模块190在活动被传递到节点之前确认网络内的节点符合在迁移设备处设置的迁移系统所要求的在下面进一步讨论的安全需求。

迁移确定模块130还被配置为确定每个活动的需求,即每个活动需要多少处理能力以及每个活动需要/产生的数据量,以便确定要迁移什么活动以及何时迁移每个活动。迁移确定模块130通过随机创建侦听(interception)点来分析节点处的固件中的数据流和代码性能,以监视节点处的活动。迁移确定模块130不断地在整个代码库中转移其焦点,四处移动侦听点以获得每个活动关于数据吞吐量和计算要求的需求的概率性概念。在另一个示例中,迁移确定模块130通过顺序地循环通过代码内的测试点来分析节点处的固件中的数据流和代码性能,以监视节点处的活动。在执行重复或可预测的通信/计算模式的节点处可以获得对每个活动的需求的更精确的预测。此外,当在关于活动的需求始终产生相同结果的节点处执行活动时,则迁移确定模块130将较不频繁地监视所述活动,从而减少这些活动所需的监视量。相比之下,关于活动的需求不产生相同结果的更不稳定的代码可以被更频繁地监视。

迁移确定模块130存储每个活动的预测需求的日志,该日志然后用于确定何时迁移活动以及要迁移什么活动。

迁移确定模块130还被配置为确定与每个活动相关联的用于在节点处执行所述活动的“开销”。使用由度量模块120提供的数据和由迁移确定模块130确定的每个活动的需求来计算开销。

一些活动可能是处理密集的,但只需要少量的数据传递,而其他活动可能具有小的处理需求但是大的数据传递需求,因此为了执行活动而要迁移的数据量影响执行活动的整体“开销”。

迁移系统100可以在制造之后下载到节点,或者可以在制造期间在节点处设置。

图5是示意性地示出用于将活动迁移到另一个设备的过程的流程图。在步骤s101处,迁移设备扫描本地区域以便识别其通信范围内的设置有迁移系统的其他节点。迁移设备还可以在激活迁移设备时、在要求迁移活动时、在将迁移设备移动到新的区域时或者定期性地执行本地区域的扫描以发现潜在的迁移节点。在步骤s102处,设备然后请求所识别的节点的能力。识别的节点的能力由在每个识别的节点处设置的设备能力监视器确定。每个识别的节点将其被请求的能力传递给迁移设备。迁移设备然后在步骤s103处请求每个识别的节点的度量。每个识别的节点的度量由在每个节点处设置的度量模块确定。每个识别的节点将其被请求的度量传递给迁移设备。迁移设备然后在步骤s104处请求每个识别的节点的代码清单。从在每个识别的节点处设置的存储模块中检索代码清单。然后在步骤s105处在迁移设备处基于接收到的信息就要将活动迁移到哪个识别的节点来做出确定。最后,在步骤106处,迁移设备将执行活动所要求的代码和数据迁移到识别的节点(远程设备),或者在步骤107处,当代码已经被提供在识别的节点处时,迁移设备仅将执行活动所需的数据迁移到识别的节点。

在一个实施例中,步骤s102、s103和s104可以按任意顺序执行,例如,可以首先执行步骤s102,接着是步骤s104然后是步骤s103,可以首先执行步骤s103,接着是步骤s102然后是步骤s104,或接着是步骤s104然后是步骤s102,或者可以首先执行步骤s104,接着是步骤s102然后是步骤s103,或接着是步骤s103然后是步骤s102。在另一个实施例中,步骤s102、s103和s104可被组合成一个单独的步骤,使得设备在单个请求中请求设备能力、度量和代码清单。

代码可以在远程设备上进行缓存,使得所述代码可以在以后再次被使用。在远程设备处代码的提供可以影响关于要将活动迁移到哪个设备的确定,因为将活动迁移到已经提供有代码的设备以使得仅需要传递数据可能是优选的(“更便宜”)。此外,在相同的远程设备用于相同的活动的情况下,在远程设备处存储所需的代码提高了整体效率,因为每次要执行活动时都不需要传递代码。在完成活动并将结果成功传递到迁移设备之后,允许远程设备删除与所述活动相关联的数据。在活动的处理期间的任何时间,远程设备或迁移设备可移出另一设备的范围。当活动正由不再处于通信范围内的远程设备承担时,迁移设备回退到自己处理所述活动,或者寻找另一个远程设备来承担所述活动。

图6是示意性示出用于从另一个设备接收活动请求的过程的流程图。在步骤s201处,设备从迁移设备接收设备能力请求,并将其被请求的能力传递给迁移设备。在步骤s202处,设备接收度量请求并将被请求的度量传递给迁移设备。在步骤s203处,设备接收代码清单请求,并将所请求的代码清单传递给迁移设备。设备然后可能会或可能不会被选择为远程设备。当设备未被选择来执行活动时,处理在步骤s203处结束。当设备被选择来执行活动时,设备在步骤s204处接收来自迁移设备的执行活动的请求连同执行该活动所需的代码和数据。或者,在步骤s205处,当代码已经在设备处被提供时,设备接收来自迁移设备的执行活动的请求仅连同执行活动所需的数据。远程设备在步骤s206处执行活动,并且活动的结果在步骤s207处被传递给迁移设备/第三方设备。

在一个实施例中,步骤s201、s202和s203可以按任意次序执行,例如可以首先执行步骤s201,接着是步骤s203然后是步骤s202,可以首先执行步骤s202,接着是步骤s201然后是步骤s203,或接着是步骤s203然后是步骤s201,或者可以首先执行步骤s203,接着是步骤s201然后是步骤s202,或接着是步骤s202然后是步骤s201。在另一个实施例中,步骤s201、s202和s203可被组合成一个单独的步骤,使得该设备接收针对设备能力、度量和代码清单的单个请求,并且在一个响应中传递所请求的信息。

请求指示要将活动的结果传递给谁,即结果是要被传递回到迁移设备还是传递到(一个或多个)第三方设备,或者传递到两者。当代码已经在远程设备处被提供时,请求还可以标识要与数据一起使用的代码。

如上所述,迁移节点可以是云服务器。例如,代替向下发送覆盖大量数据的查询/操作的密集集合或需要实时交互的复杂控制任务,向下发送代码块以及相应数据并在远程设备上执行大部分操作是更便宜的。在该示例中,远程设备是需要活动结果的设备。云测量所有度量并且在通信延迟开始增加时自主地决定是否将某个代码迁移到远程设备是更好的。此外,如果需要的话,远程节点可以保持缓存的代码版本,因此在很多情况下可只将最后(last)的数据状态传递到远程节点。

网络内的每个节点随着延迟和可用带宽不断改变而不断地监视其自己的操作,使得迁移设备在每次要迁移活动时都关于要将活动迁移到哪里做出确定。先前被选择来完成活动的远程设备可能不是现在执行相同活动的开销效率最高的远程设备。此外,网络中的不断变化导致迁移不同量的活动。

当要迁移多于一个活动时,作为分析的结果,每个活动可能迁移到不同或相同的被识别的节点。另外,如果要迁移的活动不依赖于正在执行的任何其他活动的结果,则各个活动可以迁移到多于一个远程设备,由于活动可以在不同的设备上并行执行,所以减少了整体处理时间。例如,三个独立的活动(活动a、b和c)可以迁移到三个不同的远程设备(尽管这些活动可以在同一设备上执行)。因为没有依赖关系,所以要执行的其他活动不需要活动a、b和c中的每一个的结果。在另一个示例中,活动a和b是独立的并且可以迁移到不同的设备(尽管这些活动可以在同一设备上执行)。然而,活动c在其可以被执行之前需要活动a和b的结果。因此,活动c需要在活动a和b之后执行。然而,活动c可以在与活动a或活动b相同的远程设备上执行,或者一旦提供了活动a和b的结果就可以在完全不同的设备上执行。

如上所述,一些节点可能能够迁移活动,但由于其有限的资源可能不能接受迁移请求,例如仅具有电池电源的节点。在一个示例中,iot手表可设置有迁移系统和股票预测应用。手表没有市电电源并且具有有限的处理能力,因此手表将股票预测功能迁移到诸如移动电话、路由器或云服务器之类的远程设备,并且股票预测一旦被计算出就被传递到手表以显示给用户,从而大大降低了在手表处运行股票预测应用所需的处理能力和电力的量。然而,在某些情况下,在结果被传递到迁移设备(手表)之前,到远程设备的连接可能丢失。由于手表设置有股票预测应用,手表包括自己执行该功能的数据和代码,或者手表可以起动将股票预测功能迁移到另一个设备。

在一个实施例中,不要求远程设备在将结果传递到迁移设备之前完成活动。例如,随着每个结果(预测)被计算出,远程设备可以开始将活动的结果(即,股票预测)流传输到迁移设备。在将结果传递到迁移设备之后,远程设备将可能在将来需要以便进行另一个股票预测的任何历史数据或信息传递到迁移设备。在一个实施例中,远程设备不存储执行已被迁移到其的任何活动所需的数据,因为进一步的活动可能不被同一远程设备完成。在另一个实施例中,如果远程设备具有可用的存储容量,则远程设备可以存储执行已被迁移到其的任何活动所需的数据,因为同一远程设备可被选择来完成进一步的活动。此外,存储执行远程设备已经承担的活动所需的数据可以使该远程设备再次完成该活动是更可取的,因为与之先前未完成该活动的远程设备相比,可能需要向其传递更少的数据和代码。

每个活动的执行都需要处理要传递的代码和数据。为了迁移活动,代码和数据二者都需要传递到远程设备以执行活动,除非代码已经在该设备处被提供。一些活动可能需要大处理能力但是因为仅要处理少量数据而需要小的存储器能力,而其他活动需要少量处理但是大量数据。迁移系统确定迁移设备的范围内的设备的功能,并确定哪个本地设备是最合适的。

一旦远程设备已经执行活动,则可能不需要第二次将执行相同活动所需的代码传递到该远程设备。例如,第二次要迁移相同活动时,只有数据需要被迁移到同一远程设备,因为执行该活动所需的代码在第一次执行该活动时被传递到该远程设备,并且该远程设备已经存储了该代码。

由于网络内的所有节点都能够在相同的代码上作用,所以节点网络可以被认为是作为一个实体而行动的,代码可以从云服务器迁移到设备,反之亦然。通过将代码和数据从一个节点传递到网络内具有容量的另一个或多个节点,存在跨网络的负载平衡,从而提高整个网络的效率。从程序员的角度来看,程序员不需要知道什么在哪里运行。

使用面向对象的代码(例如java)来编写代码,使得可以在跨网络的所有节点(即设备和云服务器)处使用相同的代码。下面是可以在设备和云服务器处使用的一些示例性java代码。

在一个示例中,灯开关被提供有控制何时开灯的代码。该代码是java类文件,其当在云服务器上运行时控制设备上的引脚,但是当在设备上运行时与设备上的寄存器对话。

在另一个示例中,可以在云服务器处提供代码,其从多个不同的温度传感器获取多个读数以确定传递给浏览器的平均温度。获取读数和确定平均温度的代码已被迁移到边界路由器,该边界路由器计算平均温度并将平均温度传递到云服务器。如果到云服务器的连接丢失,则仍可以执行该活动,因为代码已被迁移到路由器。

移动平均指示器是java类,并具有数据和代码和变量和模拟输入和模拟输出。设备或网关可以调用程序并将数据传递到设备以运行所述程序。

温度可以被从云中的数据库中读取和存储到云中的数据库中。此外,使用类方法,温度可以在没有网络连接的情况下被读取到程序中。

通过保持关于网络内的所有节点的详细统计数据,可以优化网络内每个节点的处理能力。由于网络的动态性质,正在为迁移节点执行活动的远程节点随时可能丢失与网络的连接,因此只有在迁移设备处确认接收到完成的活动之后远程设备才可以丢弃命令。

迁移节点还可以将活动迁移到远程节点,所述活动的结果被不同节点(不是迁移节点)需要,远程节点可以将结果传递到所述不同节点,而不是将结果传递回到迁移节点以传递到不同节点,因此远程节点可以被认为是中间节点。如果部分操作已经在中间节点处完成,但是连接丢失,则可以通过迁移节点本身或在新选择的远程节点处再次执行计算——从而使该操作结束。

在一个实施例中,作为迁移系统的决策部分的迁移确定模块可以被迁移到另一个设备,因为它只是另一个过程,它然后可以通知节点迁移单独的操作。

迁移系统在迁移节点和远程节点二者处设置。然而,迁移节点的用户无法访问传递到远程设备以进行处理的数据和代码,并且远程节点的用户无法访问已经从迁移节点传递以进行处理的数据和代码。被迁移的数据和代码被加密,使得其在网络内的节点处无法被访问,从而创建安全的执行环境。在一个示例中,迁移节点和远程节点中的任一者或两者的用户可能不知道活动已经从其节点迁移以在另一个节点处处理,或者活动已经迁移到其设备以进行处理。此外,当设备正在处理被迁移的活动时,设备的行为与其在处理非迁移的活动时没有不同。

在一个示例中,要设置有迁移系统的任何设备都须符合迁移系统的安全需求,使得安全的执行环境被提供。因此,为了成为网络的一部分,节点须设置有符合网络内迁移系统的安全需求的迁移系统,以便为网络内的任何其他节点执行活动,节点不需要由同一用户拥有但是须具有正确的安全保证。

所描述的迁移系统可以至少部分地以软件来实现。本领域技术人员将认识到,上述迁移系统可以使用通用计算机设备或使用定制设备来实现。

本领域技术人员将认识到,尽管前文已经描述了什么被认为是最佳模式以及在适当的情况下执行实施例的其他模式,但是实施例不应限于本说明书中公开的具体配置和方法。本领域的技术人员将认识到,这些教导具有广泛的应用范围,并且在不脱离如所附权利要求限定的发明构思的情况下,实施例可以进行大范围的修改。

在实施例中,迁移确定模块可以创建侦听点来监视节点处的活动,四处移动侦听点以获得活动对数据吞吐量和计算要求的处理需求的概率性概念。

在另一个实施例中,迁移确定模块可以创建测试点来监视节点处的活动,并且顺序地循环通过所述测试点以获得活动对数据吞吐量和计算要求的处理需求的概率性概念。

在另一个实施例中,设备能力监视器可以确定设置有系统的节点的处理能力、存储能力和电力能力中的一个或多个。

在另一个实施例中,节点度量可以包括节点处的电源、节点的处理速度和对于节点可用的通信网络中的一个或多个。

在另一个实施例中,网络中的其他节点可以在该节点的通信范围内并提供有该系统。

在另一个实施例中,远程设备监视器还可以被配置为请求识别的其他节点的能力和度量,并且其中远程设备监视器作为识别的其他节点的能力和度量的结果而选择识别的其他节点中的一个来执行活动。

在另一个实施例中,远程设备监视器可以确定将活动迁移到识别的其他节点的开销,并选择识别的其他节点中的具有所确定的最低开销的一个节点来执行活动。

在另一个实施例中,开销可以被计算为将活动递送到选择的节点的开销、在选择的节点处执行活动的开销和将结果递送到节点的开销的总和。

在另一个实施例中,远程设备监视器还可以被配置为从网络中的识别的其他节点请求代码清单,并且其中远程设备监视器可以作为识别的其他节点的能力、度量和代码清单的结果而选择识别的其他节点中的一个节点来执行活动。

在另一个实施例中,该系统还可以包括:迁移活动模块,被配置为确定被迁移的活动的结果已经被返回到节点。

在另一个实施例中,被迁移的活动的返回结果指示结果已经被传递到另一个节点。

在另一个实施例中,迁移活动模块还可以被配置为确定针对被迁移的活动的结果尚未被返回到所述节点。

在另一个实施例中,迁移活动模块还可以被配置为确定所选择的节点不再处于节点的通信范围内并且选择识别的其他节点中的另一个节点来执行活动。

在另一个实施例中,该系统还可以包括:请求接收模块,被配置为从网络中的其他节点接收执行活动的请求。

在另一个实施例中,迁移活动模块还可以被配置为确定所接收的活动已经完成,并且所接收的活动的结果已经被传递到请求执行所述活动的节点。

在另一个实施例中,该系统还可以包括:安全模块,被配置为确定节点网络内的节点符合该系统的安全要求。

在另一个实施例中,该系统还可以包括:存储模块,被配置为存储详述在节点处存储的代码的代码清单。

在另一个实施例中,迁移确定模块可以存储活动的处理需求。

在另一个实施例中,计算机应用程序还可以包括:通过随机地创建侦听点来监视活动并四处移动侦听点来获得活动对数据吞吐量和计算要求的处理需求的概率性概念,来确定活动的处理需求。

在另一个实施例中,计算机应用程序还可以包括:通过创建测试点来监视活动并顺序地循环通过所述测试点来获得活动对数据吞吐量和计算要求的处理需求的概率性概念,来确定活动的处理需求。

在另一个实施例中,计算机应用程序还可以包括:从节点网络内的每个节点获得代码清单,并确定所述活动所需的代码是否已经在节点网络内的任何节点处提供;确定所述活动的执行将由作为确定的所述活动的处理需求、确定的每个节点的能力、确定的在每个节点处执行所述活动的度量和获得的代码清单的结果而选择的节点网络内的节点中的一个节点来完成。

在另一个实施例中,计算机应用程序还可以包括:确定所选择的节点不再位于计算机应用程序的通信范围内;以及确定活动的执行将由节点网络内的其他节点中的一个节点来完成。

在另一个实施例中,计算机应用程序还可以包括:确定被迁移的活动的结果已被返回到所述节点。

在另一个实施例中,计算机应用程序还可以包括:确定节点网络内的节点符合计算机应用程序的安全需求。

这些实施例的系统和方法使得活动能够在网络中的节点之间迁移,导致跨网络的负载平衡。

另外的优点和新颖的特征将在下面的描述中部分地阐述,并且对于本领域的技术人员在查阅以下内容和附图之后将部分地变得清楚,或者可以通过示例的生产或操作来了解。本教导的优点可以通过实践或使用在下面讨论的详细示例中阐述的方法、手段和组合的各个方面来实现和获得。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1