管理数据获取的制作方法

文档序号:10698567阅读:588来源:国知局
管理数据获取的制作方法
【专利摘要】本申请涉及管理数据获取。具体地,涉及一种用于有效地从多个邻近设备获取数据的方法、系统或计算机可用程序产品,包括:创建移动自组织网络(manet);选择所述移动设备中的一个作为收获节点,以将数据发送到用于存储数据的库;响应于检测到分别来自第一移动设备和第二移动设备的第一数据流和第二数据流,确定来自第一和第二数据流中的数据具有阈值相似性;利用manet中的节点来根据第一压缩技术压缩第一数据流和所述第二数据流的部分以产生压缩后的数据流,其中,来自第一数据流和所述第二数据流的数据存在于压缩后的数据流中;和由收获节点将压缩后的数据流发送到库。
【专利说明】
管理数据获取
技术领域
[0001]本发明一般涉及有效地获取数据,并且尤其涉及用于有效地从多个邻近设备获取数据的计算机实现的方法。
【背景技术】
[0002]随着移动设备的普及,由个人所收集的数据量呈指数增加。这包括照片和视频以及其它类型的数据收集,比如交通堵塞、天气信息、天然气价格等。由于由用户在其移动设备上收集的数据量和在每个移动设上可用数据存储的数量有限,信息可从这些移动设备被上传至数据存储服务器。这个被上传的数据可以在离散包(bundle)中被存储在集中化服务器中、或者作为由托管公司管理的云存储被存储在多个服务器(通常位置)上。这使用户可以在稍后的时间从通常与用于获得该被上传的数据的设备不同的其它设备访问该被上传的数据。

【发明内容】

[0003]示例性实施例提供一种用于有效地从多个邻近设备获取数据的方法、系统或计算机可用程序产品,包括:创建移动自组织(ad-hoc)网络(manet);选择所述移动设备中的一个作为收获(harvest)节点,以将数据发送到用于存储数据的库;响应于检测到分别来自第一移动设备和第二移动设备的第一数据流和第二数据流,确定来自第一和第二数据流中的数据具有阈值相似性;利用manet中的节点来根据第一压缩技术压缩第一数据流和所述第二数据流的部分以产生压缩后的数据流,其中来自第一数据流和所述第二数据流的数据存在于压缩后的数据流中;以及由收获节点将压缩后的数据流发送到库。
【附图说明】
[0004]在所附权利要求中阐述被认为是本发明的特点的新颖特征。本发明本身、其更多目的和优点以及优选实施方式将通过参照在与附图结合时的对示例性实施例的以下具体描述来最好地理解,其中:
[0005]图1是其中可以实施本公开内容的各种实施例的示例性数据处理系统的框图;
[0006]图2是其中可以实施本公开内容的各种实施例的示例性数据处理系统网络的框图;
[0007]图3是在其中可以实施各种实施例的三个移动设备的框图,其利用移动设备中的一个移动设备将数据上传到库;
[0008]图4A和图4B是在其中可以实施各种实施例的移动设备集合之中识别收获节点的示图;
[0009]图5是根据第一实施例收获节点将数据从多个移动设备上传到远程服务器的流程图;
[0010]图6是根据第二实施例收获节点将数据从多个移动设备上传到库的流程图;
[0011]图7是根据第三实施例收获节点将数据从多个移动设备上传到库的流程图;
[0012]图8是在其中可以实施各种实施例的正被选择的收获节点的流程图;和
[0013]图9A-图9C是在其中可以实施各种实施例的数据结构的框图。
【具体实施方式】
[0014]可以实施和利用过程和设备以用于有效获取来自多个邻近设备的数据。可以如以下将参照各种实施例解释的那样实施和利用这些过程和装置。
[0015]图1是其中可以实施本公开内容的各种实施例的示例性数据处理系统的框图。数据处理系统100是适当数据处理系统的一个示例,并且不旨在暗示关于这里描述的实施例的使用或者功能范围的任何限制。无论如何,数据处理系统100能够被实施和/或执行这里阐述的功能中的任何功能,比如有效地从多个邻近设备获取数据。
[0016]在数据处理系统100中有可与许多其它通用或者专用计算系统环境、外设或者配置一起操作的计算机系统/服务器112。可以适合用于与计算机系统/服务器112—起使用的熟知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持或者膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程客户电子装置、网络PC、小型计算机系统、大型机计算机系统和包括以上系统或者设备中的任何系统或者设备的分布式云计算环境等。
[0017]可以在由计算机系统执行的计算机系统可执行指令(比如程序模块)的一般情境中描述计算机系统/服务器112。一般而言,程序模块可以包括执行特定任务或者实施特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式计算环境中实践计算机系统/服务器112,在这些分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质二者中。
[0018]如在图1中所示,以通用计算设备的形式示出了数据处理系统100中的计算机系统/服务器112。计算机系统/服务器112的组件可以包括但不限于一个或者多个处理器或者处理单元116、系统存储器128和总线118,该总线118将包括系统存储器128的各种系统组件耦合到处理器116。
[0019]总线118代表若干总线结构类型中的任何总线结构类型中的一个或者多个,这些总线结构类型包括存储器总线或者存储器控制器、外围总线、加速图形端口和使用多种总线架构中的任何总线架构的处理器或者本地总线。举例而言而并非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。
[0020]计算机系统/服务器112通常包括多种非瞬态计算机系统可用介质。这样的介质可以是计算机系统/服务器112可访问的任何可用介质,并且它包括易失性和非易失性介质、可移除和非可移除介质二者。
[0021]系统存储器128可以包括形式为易失性存储器(比如随机存取存储器(RAM)130和/或高速缓存132)的非瞬态计算机系统可读介质。计算机系统/服务器112还可以包括其它非瞬态可移除/非可移除、易失性/非易失性计算机系统存储介质。举例而言,存储系统134可以被提供以用于从和向非可移除、非易失性磁介质(未示出并且通常被称为“硬盘”)读取和写入。虽然未示出,但是可以提供用于往来于可移除、非易失性磁芯片(例如,“闪存驱动”)而读取和写入的USB接口和用于往来于可移除、非易失性光盘(比如⑶-ROM、DVD-ROM或者其它光介质)而读取或者写入的光盘驱动。在这样的实例中,每一个都可以被一个或者多个数据介质接口连接到总线118。存储器128可以包括具有程序模块集合(例如,其中至少一个程序模块)的至少一个程序产品,这些程序模块被配置为实现实施例的功能。存储器128也可以包括将由程序产品处理的数据。
[0022]可以例如而不限于在存储器128中存储具有程序模块集合(或者其中的至少一个程序模块)142的程序/实用程序140以及操作系统、一个或者多个应用程序、其它程序模块和程序数据。操作系统、一个或者多个应用程序、其它程序模块和程序数据中的每项或者其某个组合可以包括联网环境的实现。程序模块142总体上执行实施例的功能和/或方法。例如,程序模块可以是用于有效地从多个邻近设备获取数据的软件。
[0023]计算机系统/服务器112也可以与一个或者多个外部设备114(比如键盘、指点设备、显示器124;使用户能够与计算机系统/服务器112交互的一个或者多个设备)和/或使计算机系统/服务器112能够与一个或者多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)通信。这样的通信可以通过有线连接或者无线连接经由I/O接口 122发生。进而另夕卜,计算机系统/服务器112可以经由网络适配器120与一个或者多个网络(比如局域网(LAN)、一般广域网(WAN)和/或公用网络(例如,因特网))通信。如描绘的那样,网络适配器120经由总线118与计算机系统/服务器112的其它组件通信。应当理解,虽然未示出,但是可以与计算机系统/服务器112结合使用其它硬件和/或软件组件。示例包括但不限于:微代码、设备驱动器、带驱动、RAID系统、冗余处理单元、数据档案存储系统、外部盘驱动阵列等。
[0024]图2是其中可以实施本公开内容的各种实施例的示例数据处理系统网络的框图。数据处理环境200是比如以上参照图1描述的数据处理系统的网络。比如用于有效地从多个邻近设备获取数据的软件应用可以在数据处理环境200中的任何计算机或者其它类型的数据处理系统上执行。数据处理环境200包括网络210。网络210是用来提供在数据处理环境200内被连接在一起的单工、半双工和/或全双工通信链路的介质。网络210可以包括诸如有线、无线通信链路或者光纤线缆之类的连接。
[0025]服务器220和客户端240与存储单元230—起耦合到网络210。此外,膝上型计算机250和设施280(比如家里或者企业)包括比如通过网络路由器253无线地耦合到网络210。移动电话260可以通过移动电话塔262耦合到网络210。数据处理系统(比如服务器220、客户端240、膝上型计算机250、移动电话260和设施280)包含数据并且具有在其上执行的包括软件工具的软件应用。其它类型的数据处理系统(比如个人数字助理(PDA)、智能电话、平板计算机和上网本可以耦合到网络210。
[0026]服务器220可以包括用于根据这里描述的实施例有效地从多个邻近设备获取数据的软件应用224和数据226或者其它软件应用和数据。存储装置230可以包含软件应用234和内容源(比如用于有效地从多个邻近设备获取数据的数据236)。其它软件和内容可以存储于存储装置230上以用于在各种计算机或者其它数据处理设备之中共享。客户端240可以包括软件应用244和数据246。膝上型计算机250和移动电话260也可以包括软件应用254和264以及数据256和266。设施280可以包括软件应用284和数据286。耦合到网络210的其它类型的数据处理系统也可以包括软件应用。软件应用可以包括用于有效地从多个邻近设备获取数据的web浏览器、电子邮件或者其它软件应用。
[0027]服务器220、存储单元230、客户端240、膝上型计算机250、移动电话260和设施280以及其它数据处理设备可以使用有线连接、无线通信协议或者其它适当的数据连通性来耦合到网络210。客户端240例如可以是个人计算机或者网络计算机。
[0028]在所描绘的示例中,服务器220可以向客户端240和膝上型计算机250提供数据,比如引导文件、操作系统图像和应用。服务器220可以是单个计算机系统或者一起工作以在客户端服务器环境中提供服务的多个计算机系统的集合。在这一示例中,客户端240和膝上型计算机250可以是服务器220的客户端。客户端240、膝上型计算机250、移动电话260和设施280或者其某个组合可以包括它们自己的数据、引导文件、操作系统图像和应用。数据处理环境200可以包括未示出的附加服务器、客户端和其它设备。
[0029]在所描绘的示例中,数据处理环境200可以是因特网。网络210可以代表使用传输控制协议/因特网协议(TCP/IP)和其它协议以相互通信的网络和网关的汇集。在因特网的中心处是在包括对数据和消息进行路由的数千个商业、政府、教育和其它计算机系统的主要节点或者主机计算机之间的数据通信链路的主干。当然,数据处理环境200也可以被实施为多个不同类型的网络,比如例如内联网、局域网(LAN)或者广域网(WAN)。图2旨在于作为示例而并非作为对于不同示例性实施例的架构限制。
[0030]在其它使用以外,数据处理环境200可以用于实施其中可以实施这些实施例的客户端服务器环境。客户端服务器环境使软件应用和数据能够被跨网络分布,从而使得应用通过使用在客户端数据处理系统与服务器数据处理系统之间的交互来工作。数据处理环境200也可以运用面向服务的架构,其中跨网络分布的可互操作软件组件可以被封装在一起作为一致企业应用。
[0031]图3是在其中可以实施各种实施例的三个移动设备的框图300,其利用移动设备中的一个移动设备将数据上传到库。三个移动设备320,340和360可以通过蜂窝塔305与远程服务器310通信,该服务器包括用于存储移动设备数据的库。这些移动设备可以是移动电话,膝上型计算机或者其它类型的移动设备。尽管示出的是蜂窝通信,但是替代实施例可以利用其它类型的通信,比如无线LAN,近场通信,光,红外等。在本示例中,每个移动设备的这种蜂窝通信是通过蜂窝天线322,342和362。每个移动设备也通过无线天线324,344和364直接互相进行通信。尽管示出的是无线通信,但是,替代实施例可以利用其它类型的通信,比如蜂窝,光,红外,近场无线通信等。在替代实施例中,相同类型的通信和相同的天线可以被用于与服务器310以及与其它移动设备(例如,无线LAN)进行通信。服务器310可以是单个服务器,它可以是实现云存储库应用的多个服务器,或者它可以是另一种类型的数据收集库。
[0032]在这个示例中,移动设备320是一种通过蜂窝塔305向服务器提供由每个移动设备获得的数据的收获节点。移动设备340和360是供应节点以及可以不需要与服务器的连接,虽然可以建立这种连接以用于协助识别具有类似数据上传到服务器310以存储在库中的邻近移动设备。此外,在供应节点340和360(移动设备340和360)之间可能并不需要无线连接,尽管这种连接可以帮助协调向收获节点320的数据传输。收获节点320也可以是供应节点。
[0033]每个移动设备通过数据获得设备获得数据326,346和366。数据获得设备可以是静态照相机,摄像机,麦克风,热传感器,位置传感器(例如,全球定位位置或GPS设备),或者用于获得数据的其它类型的传感器。此所获得数据被内部地提供到处理单元328,348或368以用于进行处理和外部传输。该处理可以包括数据管理(例如,图像稳定),数据压缩,或者其它类型的数据处理。该处理还包括通过天线向接收设备发送数据。对于移动设备340和360来说,数据可以被发送到移动设备(收获节点)320。收获节点320然后组合该数据,并且可以在通过蜂窝塔305将所有三组获得的数据发送到服务器310之前利用附加的数据压缩技术。每个移动设备可以包括其它类型的设备,比如存储器、图形处理器等。
[0034]可以实施若干方法以用于组合和压缩所获得的数据以用于传输。例如,如果每个移动设备正在彼此邻近的地方获得音乐会的视频,则该图像可能是非常相似的。这种相似性可以被利用来进一步压缩所获得的数据。用于压缩图像(或其它类似的数据)的一个常见的一般方法是发送标准图像压缩的图像数据的第一帧,然后通过仅发送与图像数据的第一帧的差异来传送第二帧。然后可以通过取出数据的先前发送的第一帧并且然后将所传送的差异作为图像数据的第二帧来应用从而构建图像数据的第二帧。类似的技术可以被用于组合来自邻近移动设备的数据帧。例如,每个移动设备可以正在利用摄像机来从略微不同的角度获得相同的图像(例如,一场音乐会)。结果,图像可能是非常相似的。可替代地或与上述技术进行组合,可以利用其它类型的数据压缩。对于其它类型的数据可以利用其它类型的压缩。
[0035]在第一实施例中,移动设备340和360可以通过无线连接发送它们获得的数据(例如,图像数据帧)给收获节点320。收获节点320然后可以发送标准压缩的它自己的图像数据的第一帧,然后将移动设备340的第一帧作为与收获节点320的第一帧的差异进行发送,然后将移动设备360的第一帧作为与收获节点320的第一帧的差异进行发送。这可以包括对于数据的每一帧使用报头,以确保数据的每一帧被远程服务器310恰当地处理以用于在存储库中进行存储。许多其它类型的压缩技术可以被利用。例如,如果移动设备360比移动设备360更靠近移动设备340,将移动设备360图像数据作为与移动设备340图像数据的差异而不是作为收获节点320图像数据的差异进行发送可能是更有效的。在如何执行数据压缩中的这些变化可以在发送被获得的数据时变化。
[0036]在第二实施例中,移动设备(收获节点)320可以将其获得的数据(例如,图像数据帧)无线地发送到移动设备340和360。移动设备340和360然后可以将它们获得的图像与来自移动设备320的图像进行比较,并生成压缩格式的差异。那些差异然后可以被蜂窝发回到移动设备320,以用于由收获节点随后蜂窝传输到远程服务器310。这种方法可以提高无线传输(取决于移动设备的数量和数据的压缩量)的量,同时在多个移动设备之间分散处理负荷。
[0037]这两个实施例将在下面更详细地描述。在收集、压缩和上传所获得的数据到远程服务器的库或其它数据收集库系统中可以利用替代实施例。替代类型的数据可以被获得、收集、压缩和上传,或者使用本文描述的相同原理以其它方式获得。
[0038]图4A和图4B是在其中可以实施各种实施例的移动设备集合之中识别收获节点的示图。在这个示例中,多个移动设备同时正在执行对观看对象(例如,一场音乐会或公开演奏)的视频记录并且正在流传输或以其它方式上传它们的每一个视频到远程服务器。尽管在本实施例中描述了视频流传输,但是也可以执行其它类型的数据获得,比如在地震中的空气质量采样或运动感测。如图4A中所示,多个移动设备405正在记录同一观看对象400一一但是是从如箭头所示的略有不同的角度。结果,移动设备可以受益于它们的视频数据联合压缩,以减少需要被同时上传到远程服务器的数据量。然而,一个移动设备430为瞄准观看对象。结果,移动设备430的记录与其它移动设备非常不同,并且很可能未从联合数据压缩中受益。
[0039]每一个移动设备可以通过蜂窝塔、W1-Fi网络或者其它类型的通信设备与远程服务器联络。每个移动设备也可以通过各种类型的本地近场无线通信(比如蓝牙)直接与其它附近的移动设备联络。移动设备然后可以被组织成用于收集、合并、压缩和上传各种视频数据流的多个移动自组织网络(manet)。该组织过程可以由远程服务器进行管理,或者它可以由移动设备自组织。
[0040]为了说明的目的,在本示例中,单个移动设备可以能够合并且上传所收集的来自14个不同移动设备的数据。结果,两个集中化移动设备410和420被选择为收获节点,如图4B所示。每个收获节点可以具有用于从其它移动设备收集数据的初始通信范围412和422。该通信范围可以基于移动设备可以能够直接与其它附近移动设备的距离、可以与之通信的移动设备的数量、或者其它因素。该通信范围也可以基于该范围内的移动设备的数量或者为了减小与另一收获节点范围的重叠而被修改。在这个示例中,最初的通信范围412和422重叠。由于范围412包含比范围422更多的移动设备,所以收获节点410的通信范围被减小至通信范围414,从而减小重叠。结果,移动设备426先前在收获节点410和420 二者的通信范围内,但由于收获节点410的范围尺寸减小,所以现在只在移动设备420的通信范围内。虽然所示的通信范围是圆形的,但是如椭球形、椭圆形等其它形状也可以被使用,并且可以基于天线形状和位置或者其它因素。
[0041 ]移动设备430和435未被包括在任何收获节点通信范围中,并且可以独立地上传它们收集到的数据。这会由于如下因素而出现:由于所选择的收获节点的限制(例如,能与之进行组织的设备的有限数目或有限范围),由于诸如离观看对象的距离之类的视频图像的大变化或者其它考虑。可替代地,未被组织的移动设备可以与要被选择的附加收获节点组织在一起。
[0042]图5是根据第一实施例收获节点将数据从多个移动设备上传到库的流程图。这个过程可以在数据正从多个移动设备被上传时被实施,或者可以在数据被上传之前被实施然后在数据被上传或以其它方式被获得时被调整。为便于参考,诸如图像帧之类的适用于数据压缩的数据的离散集合在本文中被称为被收集在作为数据包流(也被熟知为数据流)的序列中的包或团(blob)。如上所述,收获节点是收集来自其它移动设备(S卩,供应节点)的数据以用于上传到库的移动设备,所述库存储并可管理所述上传的数据。
[0043]在第一步骤500中,邻近移动设备的manet(移动自组织网络)被建立。该manet可以通过蜂窝、无线网络或者其它类型的通信网络而被建立。该manet的建立可以包括交换安全信息以建立安全连接。该manet可以由移动设备自发地建立,或者它可以基于例如库之类的中央设备的请求被建立。可替代地,在库注意到许多邻近的移动设备正在上传超过相似性阈值的相似数据时,可以由该库建立manet。如上面参照图4描述的那样,可以建立多于一个manet。每个移动设备可以利用先前或同时下载到该移动设备的公共的或类似的应用。这样的应用可以包括用于改善移动设备之间的通信(包括改善移动设备之间的数据流的共享)的公共应用接口。
[0044]然后在步骤502中,从manet中选择收获节点用于将从邻近移动设备集合中采集的数据上传或以其它方式发送到库。对于有关选择收获节点的步骤请参见下面的图8。收获节点可以正在上传数据或者不在上传数据。可替代地,收获节点可能已经在建立manet之前就已被选择并被用于建立该manet。
[0045]在步骤504中,manet中的其它移动设备的位置被确定。这些位置可以是GPS(全球定位位置)坐标、manet中每个移动设备相对于收获节点的相对位置,或者简单地来自收获节点基于信号强度的距离测量。这个步骤是可选的,并且可以在一些应用中被利用,而在其它应用中不被利用。也可以在建立manet时或者在此过程中的其它时间处执行这个步骤。然后在步骤506中,manet内不是收获节点的移动设备被识别并作为manet内潜在的邻近供应节点而被保留。也就是说,如果移动设备潜在地位于两个manet内,则基于它与收获节点的相对位置以及邻近度,它可以由于位于那些manet之一内而被保留。这可以基于数据相似性而被改变,如下所述。
[0046]接着,在步骤510中,收获节点开始压缩由收获节点获得的数据包的过程。许多类型的数据压缩可以被利用并且可以基于收集到的数据的类型以及针对该数据的任何用户要求而变化。例如,该压缩可以是无损的或有损的。压缩的类型可以根据情况而有所不同。即,一种类型的数据压缩可以在一段时间内被利用,直到在被压缩的数据或数据类型变化的情况下确定另一种类型的压缩将更为有效为止。数据压缩的一种形式是采样,其中作为一种压缩的形式,丢弃冗余数据而不是仅仅压缩该数据。然后在步骤515中,收获节点压缩比被确定。即,把要被压缩的数据量与压缩后的数据相比来确定该数据压缩的效率。这个压缩比可以与收获节点的标识符一起被存储在存储器中。这个压缩比将被设置为现有压缩比,如下所述这是有用的。如果收获节点没有在收集数据,那么步骤510至步骤515可以被跳过并且现有缩比被设置为零。
[0047]然后,在步骤520中,邻近供应节点被选择并被联络以用于提供数据包或数据包流,其可以与收获节点数据流相似。邻近供应节点是这样移动设备:该移动设备一般最邻近(基于靠近准则)收获节点。最邻近者可以是最靠近收获节点的移动设备,虽然也可以利用其它量度。例如,当获得听觉数据时,由于数据流相似性所以直接在收获节点后面的移动设备可以具有比与收获节点毗邻的或者旁边的移动设备所获得的更相似的数据。结果,收获节点后面的移动设备可以首先被联络一一即使该移动设备可能比毗邻的移动设备距离收获节点略远一些。数据流相似性在于:当两个或更多数据流共享一些共同类型的数据时使得一起被压缩的两个(或更多)数据流提供比分别压缩的数据流更大的数据压缩、或者当合并成一个信号的数据降低了对于处理该信号的蜂窝塔或其它网络的整体带宽要求。对于首先联络哪个移动设备的判断可以由收获节点或者由远程服务器来确定。替代实施例可以基于其它因素比如信任准则或者历史数据(比如现有成功联合数据压缩)来选择并联络邻近提供商节点。
[0048]邻近供应节点然后在步骤525中向收获节点提供数据包或数据包流。然后在步骤530中,收获节点比较邻近供应节点数据流与目前收获节点数据流(其可以包括来自其它邻近供应节点的数据流)的相似性。即,判断邻近供应节点数据流是否比先前可能已经提供的阈值更相似。例如,收获节点数据流和供应节点数据流可以都是听觉数据,但是一个数据流可以是一种格式而另一数据流可以是不同的格式。这些数据流是否足够类似将基于所提供的阈值。该阈值可以基于比如合并与压缩该数据流所需的处理功率量之类的各种因素、或者比如那些数据流对公共应用的可适用性与否之类的其它因素。如果在步骤530中为否,则处理继续到步骤540,否则处理继续到步骤550。
[0049]在步骤540中(预定的阈值还没有被满足),则通知先前选择的邻近供应节点:那个移动设备的数据将不会被收集并与收获节点数据合并。然后在步骤545中,与先前所选择的供应节点的连接被删除,允许该供应节点通过另一个manet与另一个收获节点连接。可选地,在条件将改变的情况下该连接可以被保留。处理继续到步骤550。
[0050]在步骤550中,确定收获节点是否具有增加另一个供应节点所需的带宽和处理功率,者可以延伸manet。在作出该确定的过程中可以利用压缩比。如果是,则处理返回到步骤520(除非所有邻近供应节点都已被联络),否则处理继续到步骤560。
[0051 ]在步骤560中,处理继续用于利用先前选择的收获节点来由收获节点收集、合并、压缩和上传数据流。这可以继续直到供应节点停止提供数据包(数据流)、直到针对任何邻近供应节点的数据相似性均低于预定阈值、或者直到其它预定条件为止。取决于原因,收获节点可以根据需要降低和增加供应节点一一只要满足预定的阈值和条件。
[0052]在第一实施例中,针对数据相似性的阈值主要是基于被压缩的数据的类型。然而,其它类型的阈值和数据相似性可以被利用。例如,在下面描述的第二和第三实施例中,阈值是基于联合的数据压缩成功。也就是说,如果添加附加的邻近供应节点数据流保持数据压缩在阈值内,则可以添加附加节点。
[0053]图6是根据第二实施例的收获节点将数据从多个移动设备上传到库的流程图。这个过程可以在数据正从多个移动设备被上传时被实施或者可以在数据的上传之前被实施然后在数据被上传或以其它方式被获得时被调整。为便于参考,诸如图像帧之类的适用于数据压缩的数据的离散集合在本文中被称为被收集在作为数据包流(也被熟知为数据流)的序列中的包或团。如上所述,收获节点是收集来自其它移动设备(即,供应节点)的数据以用于上传到库中的移动设备,所述库存储并可管理所述上传的数据。
[0054]在第一步骤600中,邻近移动设备的manet(移动自组织网络)被建立。该manet可以通过蜂窝、无线网络或者其它类型的通信网络而被建立。该manet的建立可以包括交换安全信息以建立安全连接。该manet可以由移动设备自发地建立,或者它可以基于例如库之类的中央设备的请求被建立。可替代地,可以在库注意到许多邻近的移动设备正在上传相似性超过阈值的相似数据时由该库建立manet。如上面参照图4描述的那样,可以建立多于一个manet。每个移动设备可以利用先前或同时下载到该移动设备的公共的或类似的应用。这样的应用可以包括用于改善移动设备之间的通信(包括改善移动设备之间的数据流的共享)的公共应用接口。
[0055]然后在步骤602中,从manet中选择收获节点用于将从邻近移动设备集合中采集的数据上传或以其它方式发送到库。对于有关选择收获节点的步骤请参见下面的图8。收获节点可以正在上传数据或者不在上传数据。可替代地,收获节点可能已经在建立manet之前就已被选择并被用于建立该manet。
[0056]在步骤604中,manet中的其它移动设备的位置被确定。这些位置可以是GPS(全球定位位置)坐标、manet中每个移动设备相对于收获节点的相对位置,或者简单地来自收获节点基于信号强度的距离测量。这个步骤是可选的,并且可以在一些应用中被利用,而在其它应用中不被利用。也可以在建立manet时或者在此过程中的其它时间处执行这个步骤。然后在步骤606中,manet内的、不是收获节点的移动设备被识别并作为manet内潜在的邻近供应节点而被保留。也就是说,如果移动设备潜在地位于两个manet内,则基于它与收获节点的相对位置以及邻近度,它可以由于位于那些manet之一内而被保留。这可以基于数据相似性而被改变,如下所述。
[0057]接着,在步骤610中,收获节点开始压缩由收获节点获得的数据包的过程。许多类型的数据压缩可以被利用,并且可以基于收集到的数据的类型以及针对该数据的任何用户要求而变化。例如,该压缩可以是无损的或有损的。压缩的类型可以根据情况而有所不同。即,一种类型的数据压缩可以在一段时间内被利用,直到在被压缩的数据或数据类型变化的情况下确定另一种类型的压缩将更为有效为止。数据压缩的一种形式是采样,其中作为一种压缩的形式,丢弃冗余数据而不是仅仅压缩该数据。然后在步骤615中,收获节点压缩比被确定。即,把要被压缩的数据量与压缩后的数据相比来确定该数据压缩的效率。这个压缩比可以与收获节点的标识符一起被存储在存储器中。这个压缩比将被设置为现有压缩比,如下所述这是有用的。如果收获节点没有在收集数据,那么步骤610-步骤615可以被跳过并且现有缩比被设置为零。
[0058]然后,在步骤620中,邻近供应节点被选择并被联络以用于提供与收获节点数据流相似的数据包或数据包流。邻近供应节点是这样移动设备:该移动设备一般最邻近(基于靠近准则)收获节点。最邻近者可以是最靠近收获节点的移动设备,虽然也可以利用其它量度。例如,当获得视频数据时,由于数据流相似性所以直接在收获节点后面的移动设备可以具有比与收获节点毗邻的或者旁边的移动设备所获得的更相似的数据。结果,收获节点后面的移动设备可以首先被联络一一即使该移动设备可能比毗邻的移动设备距离收获节点略远一些。数据流相似性在于:当两个或更多数据流共享一些共同数据时使得一起被压缩的两个(或更多)数据流提供比分别压缩的数据流更大的数据压缩。对于首先联络哪个移动设备的判断可以由收获节点或者由远程服务器来确定。替代实施例可以基于其它因素比如信任准则或者历史数据(比如现有成功联合数据压缩)来选择并联络邻近提供商节点。
[0059]邻近供应节点然后在步骤625中向收获节点提供数据包或数据包流。然后在步骤630中,收获节点压缩来自供应节点数据的数据流与收获节点获得的数据包。取决于数据的类型和任何用户要求,这种压缩可以通过各种技术来实现。例如,收获节点数据包可以被供应节点包重叠并压缩在一起。然而,这样的方法会使之更难以在稍后将数据包分离。对于另一个示例,供应节点包可以与收获节点包进行比较,并且将所识别的任何差异(或相似性)与被压缩的差异(或相似性)进行比较。使用小的报头或其它技术,供应节点数据包可以在稍后很容易与收获节点包分开。用于选择用于合并数据包的节点的其它类型的用户要求可以被实现,比如安全要求(例如,加密)。然后在步骤635中,确定联合压缩比。即,来自收获和供应节点的要被压缩的数据量与步骤630的未压缩数据相比较,以确定联合数据压缩的效率。由于被压缩的基本数据中的变化,这个比例可以是动态的。
[0060]在步骤640中,将联合压缩比与现有压缩比进行比较,以确定联合压缩成功因子,也被称为改善因子。这个改善因子可以是绝对数字(例如通过从联合压缩比中减去现有压缩比),或者如果联合压缩除以现有压缩比则可以是改善压缩比。替代实施例为了比较的目的可以利用其它因子。然后在步骤645中,确定改善因子是否超过预定阈值。该阈值可以是正数或零,从而要求任何其它供应节点改善或维持整体数据压缩。阈值也可以是一个小的负数,从而增加供应节点不显著影响整体数据压缩。阈值也可以是动态的,以虑及基础数据的动态性质和联合压缩比上的所得变体。也就是说,该阈值比可以允许在更严格地执行阈值比之前在预定的时间段内的压缩变体。如果在步骤645中为“是”,则处理继续到步骤650,否则,处理继续到步骤660。
[0061 ]在步骤650中(预定的阈值已被满足),确定收获节点是否具有添加另一个供应节点所需的带宽和处理能力,从而延展manet。如果是,则处理继续到步骤655,否则,处理继续到步骤680。在步骤655中,联合压缩比被设定为现有压缩比,并且处理返回到步骤620,以添加另一个供应节点。在步骤660中(预定的阈值还没有被满足),通知先前选择的供应节点:该移动设备的数据将不会被收集和与收获节点数据合并。然后在步骤665中,与先前选择的供应节点的连接被丢弃。可选地,在条件将改变的情况下该连接可以被保留。在步骤670中,确定附加的供应节点是否可以被选择。即,确定收获节点的范围内是否有任何其它供应节点有望成为用于收集它们的数据流、并将其与收获节点合并的候选者。如果没有任何更多的有希望的候选者,那么处理继续到步骤680,否则处理返回到步骤655。
[0062]在步骤680中,处理继续用于利用先前选择的收获节点通过收获节点收集、合并、压缩和上传数据流。这可以继续直到供应节点停止提供数据包(数据流)、直到改善因子下落至低于另一预定阈值、或者直到其它预定条件为止。取决于起因,收获节点可以根据需要丢弃和添加供应节点一一只要满足一定的预定阈值。例如,如果一个或多个邻近供应节点改变其视频中的视场角,则在移动设备之间的视频相似性将更少,从而降低了压缩率。如果压缩比下降超过阈值,则那个邻近供应节点可以被收获节点丢弃并且结果另一个邻近供应节点可以被添加。
[0063]第二实施例可以包括作为压缩过程一部分的数据隐私和数据加密。例如,供应节点数据可以未加密地被发送到收获节点,但是该收获节点具有适当安全要求以便在收获节点处保护供应节点数据的隐私。然后收获节点可以利用未加密的供应节点数据联合压缩收获节点数据,然后对所得到的压缩数据进行压缩以上传到服务器库中。这个过程同时保护供应节点和收获节点数据的隐私。其它实施例可以允许供应节点在递送到收获节点之前对它的数据进行加密,同时收获节点在对数据进行联合压缩之前还对其数据使用类似加密。对于加密的适当选择,收获节点可以能够获益于数据流之间的数据相似性,从而获益于联合压缩一一即使在数据加密钱两个数据流均被加密。使用数据隐私和数据加密的其它替代实施例可以被使用。
[0064]图7是根据第三实施例的收获节点将数据从多个移动设备上传到库的流程图。这个过程可以在数据正从多个移动设备被上传时被实施或者可以在数据的上传之前被实施,然后在数据被上传或以其它方式被获得时被调整。为便于参考,诸如图像帧之类的适用于数据压缩的数据的离散集合在本文中被称为被收集在作为数据包流(也被熟知为数据流)的序列中的包或团。如上所述,收获节点是收集来自其它移动设备(即,供应节点)的数据以用于上传到库中的移动设备,所述库存储并可管理所述上传的数据。
[0065]在第一步骤700中,邻近移动设备的manet(移动自组织网络)被建立。该manet可以通过蜂窝、无线网络或者其它类型的通信网络而被建立。该manet的建立可以包括交换安全信息以建立安全连接。该manet可以由移动设备自发地建立,或者它可以基于例如库之类的中央设备的请求被建立。可替代地,在库注意到许多邻近的移动设备正在上传相似性超过阈值的相似数据时,可以由该库建立manet。如上面参照图4描述的那样,可以建立多于一个manet。每个移动设备可以利用先前或同时下载到该移动设备的公共的或类似的应用。这样的应用可以包括用于改善移动设备之间的通信(包括改善移动设备之间的数据流的共享)的公共应用接口。
[0066]然后在步骤702中,从manet中选择收获节点用于将从邻近移动设备集合中采集的数据上传或以其它方式发送到库。对于有关选择收获节点的步骤请参见下面的图8。收获节点可以正在上传数据或者不在上传数据。可替代地,收获节点可能已经在建立manet之前就已被选择并被用于建立该manet。
[0067]在步骤704中,manet中的其它移动设备的位置被确定。这些位置可以是GPS(全球定位位置)坐标、manet中每个移动设备相对于收获节点的相对位置,或者简单地来自收获节点基于信号强度的距离测量。这个步骤是可选的,并且可以在一些应用中被利用,而在其它应用中不被利用。也可以在建立manet时或者在此过程中的其它时间处执行这个步骤。然后在步骤706中,manet内的不是收获节点的移动设备被识别并作为manet内的潜在邻近供应节点而被保留。也就是说,如果移动设备潜在地位于两个manet内,则基于它与收获节点的相对位置以及邻近度,它可以由于位于那些manet之一内而被保留。这可以基于数据相似性而被改变,如下所述。
[0068]接着,在步骤710中,收获节点开始压缩由收获节点获得的数据包的过程。许多类型的数据压缩可以被利用并且可以基于收集到的数据的类型以及针对该数据的任何用户要求而变化。例如,该压缩可以是无损的或有损的。压缩的类型可以根据情况而有所不同。即,一种类型的数据压缩可以在一段时间内被利用,直到在被压缩的数据或数据类型变化的情况下确定另一种类型的压缩将更为有效为止。数据压缩的一种形式是采样,其中作为一种压缩的形式,丢弃冗余数据而不是仅仅压缩该数据。然后在步骤715中,收获节点压缩比被确定。即,把要被压缩的数据量与压缩后的数据相比来确定该数据压缩的效率。这个压缩比可以与收获节点的标识符一起被存储在存储器中。这个压缩比将被设置为现有压缩比,如下所述这是有用的。如果收获节点没有在收集数据,那么步骤710-步骤715可以被跳过并且现有缩比被设置为零。
[0069]然后,在步骤720中,邻近供应节点被选择并被联络以用于提供与收获节点数据流相似的压缩数据包或压缩数据包流。邻近供应节点是这样移动设备:该移动设备一般最邻近(基于靠近准则)收获节点。最邻近者可以是最靠近收获节点的移动设备,虽然也可以利用其它量度。例如,当获得视频数据时,由于数据流相似性所以直接在收获节点后面的移动设备可以具有比与收获节点毗邻的或者旁边的移动设备所获得的更相似的数据。结果,收获节点后面的移动设备由于数据流相似性而可以首先被联络一一即使该移动设备可能比毗邻的移动设备距离收获节点略远一些。数据流相似性在于:当两个或更多数据流共享一些共同数据时以使得一起被压缩的两个(或更多)数据流提供比分别压缩的数据流更大的数据压缩。对于首先联络哪个移动设备的判断可以由收获节点或者由远程服务器来确定。替代实施例可以基于其它因素比如信任准则或者历史数据(比如现有成功联合数据压缩)来选择并联络邻近提供商节点。
[0070]邻近供应节点然后在步骤725中被提供由收获节点获得的数据包或数据包流以及现有的数据压缩比。然后在步骤730中,供应节点压缩从收获节点接收的数据包与由供应节点获得的数据包。取决于数据的类型和任何用户要求,这种压缩可以通过各种技术来实现。例如,供应节点数据包可以被收获节点包重叠并压缩在一起。然而,这样的方法会使之更难以在稍后将数据包分离。对于另一个示例,供应节点包可以与收获节点包进行比较,并且将所识别的任何差异(或相似性)与被压缩的差异(或相似性)进行比较。使用小的报头或其它技术,供应节点数据包可以在稍后很容易与收获节点包分开。用于选择用于合并数据包的节点的其它类型的用户要求可以被实现,比如安全要求(例如,加密)。然后在步骤735中,由压缩该数据的供应节点确定联合压缩比。即,来自收获和供应节点的要被压缩的数据量与步骤730的未压缩数据相比较,以确定联合数据压缩的效率。由于被压缩的基本数据中的变化,这个比例可以是动态的。
[0071]在步骤740中,供应节点将联合压缩比与现有压缩比进行比较,以确定联合压缩成功因子,也被称为改善因子。这个改善因子可以是绝对数字(例如通过从联合压缩比中减去现有压缩比),或者如果联合压缩除以现有压缩比则它可以是改善压缩比。替代实施例为了比较的目的可以利用其它因子。然后在步骤745中,确定改善因子是否超过预定阈值。该阈值可以是正数或零,从而要求任何其它供应节点改善或维持整体数据压缩。阈值也可以是一个小的负数,从而增加供应节点不显著影响整体数据压缩。阈值也可以是动态的,以虑及基础数据的动态性质和联合压缩比上的所得变体。也就是说,该阈值比可以允许在更严格地执行阈值比之前在预定的时间段内的压缩变体。如果在步骤745中为“是”,则处理继续到步骤750,否则,处理继续到步骤760。在替代实施例中,在步骤725中,收获节点可以提供压缩阈值而非现有压缩比,然后在步骤745中供应节点将联合压缩比与该压缩阈值进行比较。
[0072]在步骤750中(预定的阈值已被满足),则供应节点提供压缩的供应节点数据以及联合压缩比给收获节点以用于上传。收获节点发送数据包到供应节点、供应节点压缩供应节点数据与收获节点数据、然后发送该压缩的供应节点数据给收获节点以用于上传的这个过程可以继续,直到数据流被中止或者直到联合压缩比跌落低于期望的压缩比已经有一段预定的时间。
[0073]在此期间,在步骤752中,确定收获节点是否具有添加另一个供应节点所需的带宽和处理能力,从而延展manet。如果是,则处理继续到步骤755,否则,处理继续到步骤780。在步骤755中,联合压缩比被设定为现有压缩比并且处理返回到步骤720,以添加另一个供应节点。在步骤760中(预定的阈值还没有被满足),通知先前选择的供应节点:该移动设备的数据将不会被收集和与收获节点数据合并。然后在步骤765中,与先前选择的供应节点的连接被丢弃。可选地,在条件将改变的情况下该连接可以被保留。在步骤770中,确定附加的供应节点是否可以被选择。即,确定收获节点的范围内是否有任何其它供应节点有望成为用于收集它们的数据流并将其与收获节点合并的候选者。如果没有任何更多的有希望的候选者,那么处理继续到步骤780,否则处理返回到步骤755。
[0074]在步骤780中,处理继续用于利用先前选择的收获节点来通过收获节点收集、合并、压缩和上传数据流。这可以继续直到供应节点停止提供数据包(数据流)、直到改善因子低于另一预定阈值、或者直到其它预定条件为止。取决于原因,收获节点可以根据需要丢弃和添加供应节点一一只要满足一定的预定阈值即可。例如,如果一个或多个邻近供应节点改变其视频的视场角,则在移动设备之间的视频相似性将更少,从而降低了压缩率。如果压缩比下降超过阈值,则那个邻近供应节点可以被收获节点丢弃并且结果另一个邻近供应节点可以被添加。
[0075]第三个实施例可以包括作为压缩过程一部分的数据隐私和数据加密。例如,收获节点数据可以未加密地被发送到供应节点,但是该供应节点具有安全要求到位以便在供应节点处保护收获节点数据的隐私。然后供应节点可以利用未加密的收获节点数据联合压缩供应节点数据,然后对所得到的压缩数据进行压缩以上传到服务器库中。这个过程同时保护收获节点和供应节点数据的隐私。其它实施例可以允许收获节点在递送到供应节点之前对它的数据进行加密,同时供应节点在对数据进行联合压缩之前还对其数据使用类似加密。对于加密的适当选择,供应节点可以能够获益于数据流之间的数据相似性,从而获益于联合压缩一一即使在数据加密钱两个数据流均被加密。使用数据隐私和数据加密的其它替代实施例可以被使用。
[0076]许多替代实施例可以被实现,从而可以利用第一、第二和第三实施例的组合。例如,收获节点可以联合压缩来自多个供应节点的数据,这些供应节点所来自的地方也可以充当压缩来自其它供应节点的数据的收获节点。又例如,未获取用于上传的数据的供应节点可以被收获节点利用来处理某些数据处理负载。利用这些和其它实施例的许多其它类型的组合都可以被实现。
[0077]图8是在其中可以实施各种实施例的选择收获节点的流程图。每当检测到上传数据的多个移动设备处于相互接近时可以实施这一过程。不是使得多个设备同时上传数据从而把大负荷放在通信带宽上,而是可以利用选定的移动设备作为收获节点来获得同样的数据。这些收获节点可以利用邻近移动设备上传之间的数据相似性来提高数据压缩和降低整体带宽需求。
[0078]在第一步骤800中,确定邻近度范围中的多个移动设备(靠近准则)是否正在开始上传相似数据。如果没有,那么处理返回到步骤800以重复该确定,否则处理继续到步骤805。每当小区或其它可识别的地理区域显示数据业务的增加(这指示大量平行数据正在被执行)时可以启动该确定。例如通过检查GPS(全球定位系统)位置或者每个移动设备在该小区中的其它位置指示符,可以检查移动设备的邻近度。该移动设备还可以通过近场通信来彼此联络,比如通过先前建立的移动自组织网络(manet)或其它类型的检测,从而检查邻近度。可以对正在上传的数据简单地比较相似性。例如,该数据可以全部是具有相似信息的视频数据,所述相似信息指示数据对于联合数据压缩而言足够相似。
[0079]在步骤805中,可以确定期望的收获节点的数量。例如,如果在邻近范围有上传相似类型数据的100个移动设备,那么可以从过去被获取相似数据的历史数据来确定收获节点的数量。在这种情况下,基于历史数据表明每个收获节点应该处理从平均10个供应节点移动设备获取的数据,收获节点的数量最初可以被设置为10。替代实施例可以利用其它因素比如移动设备的平均密度。即,移动设备越紧密堆积,则正在上传的数据越相似,导致那个数据的更好压缩。另外,历史数据可以反映:对于这种类型的数据,一个收获节点可以处理最多14个供应节点,从而10是考虑到那个最大值的情况下的合理数量。
[0080]然后,在步骤810中,候选的移动设备被选择作为潜在的收获节点。例如,一些移动设备可能是旧的设备,而不能够成为收获节点。另外,一些移动设备可能电池低下使得它们不能充当随着功能而来的处理需求的收获节点。此外,一些设备可能不具备用于充当收获节点的安全性要求或拥有者批准。安全性要求可以包括用于保护由供应节点提供给收获节点的数据的机密或所有权的规定。在确定潜在的收获节点时可以考虑其它因素。
[0081]接着,在步骤815中,基于位置和邻近度的移动设备的集群被利用来选择用于获取数据的收获节点。也就是说,如果用一个或多个潜在的收获节点标识移动设备的集群,则选择位于该集群中心的一个或多个移动设备作为收获节点。每个集群可以通过距离潜在收获节点的半径或其它技术来确定。如果集群不充分或者作为替代,那么可以利用其它技术用于从潜在的收获节点中选择收获节点。例如,每个潜在的收获节点可以查询在一定半径范围内邻近的移动设备,以基于由邻近移动设备所提供的数据确定联合压缩比。这个联合压缩比伴随有在产生该联合的压缩比中被包含的移动设备的列表。来自潜在收获节点的压缩结果可以被用来选择收获节点以获取数据。请注意,上面参照图5、图6和图7描述的技术可以被用来生成manet并生成联合压缩比。
[0082]然后,在步骤820中,可以对每个收获节点处理的供应节点进行调整以避免重叠并提高压缩比。例如,用于选择供应节点的半径可以减小或者利用其它技术。最后,在步骤825中,继而向所选择的移动设备通知它们的状态:作为包括作为收获节点的供应节点而被包括的移动设备列表的收获节点。然后处理继续到步骤830中利用这些选择的收获节点获取数据。这可以包括在服务器处由移动设备分开所获取的数据以由每个节点的所有者用于存储和用于使用。数据的这种处理可以继续直到一个或多个移动设备停止提供数据、多个移动设备从该区域开始上传数据、移动设备相对于彼此移动(这可能需要将供应节点连接到另一收获节点)等等。当发生这种情况时,处理可以返回到步骤800。
[0083]许多替代的实施例可以被实施。在这个示例中,用于识别收获节点的过程对上传数据的多个设备来说是反应性的。在替代实施例中,该方法可以更主动,包括联络未上传数据的移动设备充当收获节点。此外,参照上述图5、图6和图7所描述的实施例可以被用于获取数据。
[0084]图9A-图9C是在其中可以实施各种实施例的数据结构的框图。这些框图是可以利用的数据结构类型的示例。替代实施例根据所提供的数据类型、所利用的通信类型等可以利用不同类型的数据结构。
[0085]图9A示出了一种数据结构,该数据结构可以被供应节点利用来将两帧数据发送到收获节点。数据帧可以是由供应节点发送到收获节点的数据的视频帧或其它分立单元,如上面参考第二实施例所述的。数据的每一帧被表示为数据900和910的记录。记录900包括具有供应节点的标识符904和数据的时间戳906的报头902以及数据的第一帧的数据908。数据908可以是未压缩的或压缩的。例如,多个连续的黑色像素可以由颜色描述符和表示具有该颜色的连续像素数目的数字来表示。记录910包括具有供应节点的标识符914和数据的时间戳916的报头912、以及数据的第二帧的数据918。数据918可以是未压缩的或压缩的。例如,可以只提供数据的第一和第二帧之间的差异,以减少表示数据的第二帧所需的数据量。数据结构或数据压缩类型的许多其它替代形式都可以使用。此外,这种相同类型的数据结构可以被收获节点使用在如上述参照第三实施例所述的那样将数据帧发送到供应节点中。
[0086]图9B示出了一种数据结构,该数据结构可以由供应节点利用来将完全压缩的数据的两帧发送给收获节点。数据帧可以是由供应节点发送到收获节点的数据的视频帧或其它分立单元。这些数据帧如上参照第三实施例所描述的那样可以已被压缩。数据的每一帧被表示为数据920和930的记录。记录920包括具有供应节点的标识符924和数据的时间戳926的报头922、以及数据的第一帧的数据928。数据928是参考来自收获节点的对应数据帧而被完全地压缩。记录930包括具有供应节点的标识符934和数据的时间戳936的报头932、以及参考来自收获节点的对应数据帧而被完全地压缩的数据938。例如,可以只提供供应节点数据帧与相应的收获节点数据帧之间的差异,以减少表示数据的第一帧所需的数据量。数据结构或数据压缩类型的许多其它替代形式都可以使用。
[0087]图9C示出了一种数据结构,该数据结构可以收获节点利用来将来自多个供应节点以及收获节点的两个数据帧发送到远程服务器。数据帧可以是由供应节点发送到收获节点的数据的视频帧或其它分立单元。数据的每一帧被压缩,并被表示为数据950和960的记录。记录950包括具有收获节点和供应节点的标识符集合954和数据的时间戳956的报头952。数据958包括来自收获节点和供应节点的用于数据的第一帧中的数据。数据958,参照来自收获节点的已压缩数据帧被完全压缩。例如,可以只提供每一个供应节点数据帧和对应收获节点数据帧之间的差异,来减少表示数据的第一帧所需要的数据量。记录960包括具有收获节点和供应节点的标识符集合964和数据的时间戳966的报头962。数据968包括来自收获节点和供应节点对于数据的第一帧中的数据。数据968参照来自收获节点的已压缩数据帧被完全压缩。例如,可以只提供每一个供应节点数据帧和对应收获节点数据帧之间的差异,来减少表示数据的第一帧所需要的数据量。数据结构或数据压缩类型的许多其它替代形式都可以使用。
[0088]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(或媒介),其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0089]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括如下:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROMS闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0090]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0091]用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及常规的过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0092]这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0093]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0094]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0095]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0096]适合用于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或者间接耦合到存储器单元的至少一个处理器。存储器单元可以包括在实际执行程序代码期间运用的本地存储器、大容量存储介质和高速缓存,这些高速缓存提供至少一些程序代码的暂时存储以便减少在执行期间必须从大容量存储介质取回代码的次数。
[0097]数据处理系统可以充当服务器数据处理系统或者客户端数据处理系统。服务器和客户端数据处理系统可以包括计算机可用(比如计算机可读)的数据存储介质。与服务器数据处理系统关联的数据存储介质可以包含比如用于从多个邻近设备有效地获取数据的计算机可用代码。客户端数据处理系统可以下载该计算机可读代码比如用于存储在与客户端数据处理系统关联的数据存储介质上,或者用于在客户端数据处理系统中使用。服务器数据处理系统可以相似地从客户端数据处理系统(比如内容源)上传计算机可用代码。可以用这一方式使用服务器和客户端数据处理系统来上传或者下载从示例实施例的计算机可用程序产品实施例产生的计算机可用代码。
[0098]输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等)可以直接或者通过居间I/o控制器耦合到系统。
[0099]网络适配器也可以耦合到系统以使数据处理系统能够变成通过居间专用或者公共网络耦合到其它数据处理系统或者远程打印机或者存储设备。调制解调器、线缆调制解调器和以太网卡仅为当前可用网络适配器类型的少数类型。
[0100]本发明的描述已经出于示例和描述的目的而加以呈现、但是并非旨在于穷举本发明或者使本发明限于公开的形式。许多修改和变化将为本领域普通技术人员所清楚。选择和描述实施例以便说明本发明的原理、实际应用,并且使本领域其它普通技术人员能够针对具有如与设想的特定使用相适合的各种修改的各种实施例来理解本发明。
[0101]这里所用术语仅为了描述具体实施例而未旨在于限制公开内容的示例实施例。如这里所用,除非上下文另有明示,单数形式“一个”和“该”旨在于也包括复数形式。还将理解术语“包括”在说明书中使用时指定存在陈述的特征、整件、步骤、操作、单元和/或组件、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、组件和/或其组合。
[0102]所附权利要求中的所有装置或者步骤加上功能要素的对应结构、材料、动作和等效物旨在于包括用于与如具体要求保护的其它权利要求要素组合执行功能的任何结构、材料或者动作。已经出于示例和描述的目的而呈现本发明的描述、但是并不旨在于穷举本发明或者使本发明限于公开的形式。在不脱离公开内容的范围和精神实质的情况下,许多修改和变化将为本领域普通技术人员所清楚。选择和描述实施例以便最好地说明本发明的原理和实际应用并且使本领域其它普通技术人员能够对于具有如与设想的特定使用相配的各种修改的各种实施例来理解本发明。
【主权项】
1.一种有效地从多个邻近设备获取数据的方法,包括: 创建具有所述多个邻近移动设备的集合的移动自组织网络manet; 选择所述移动设备中的一个移动设备作为收获节点,以将从邻近移动设备的所述集合采集的数据发送到用于存储数据的库; 响应于检测到分别来自邻近移动设备的所述集合的第一移动设备和第二移动设备的第一数据流和第二数据流,确定来自所述第一数据流和所述第二数据流的数据具有阈值相似性; 利用所述manet中的节点来根据第一压缩技术压缩所述第一数据流和所述第二数据流的部分以产生压缩后的数据流,其中来自所述第一数据流和所述第二数据流的数据存在于所述压缩后的数据流中;以及 由所述收获节点发送所述压缩后的数据流到所述库。2.根据权利要求1所述的方法,其中所述manet是响应于来自事件附近的移动设备的对于数据的数据请求而被创建的。3.根据权利要求1所述的方法,进一步包括:基于与所述收获节点的靠近准则,选择邻近移动设备的所述集合。4.根据权利要求1所述的方法,进一步包括:基于附加数据流与所述第一数据流和所述第二数据流的相似性,从所述多个邻近移动设备选择所述附加数据流。5.根据权利要求1所述的方法,进一步包括:基于信任准则将移动设备选择作为所述收获节点,并加密所述第一数据流和所述第二数据流。6.根据权利要求1所述的方法,其中所述压缩技术是丢弃相似数据的采样技术。7.根据权利要求1所述的方法,进一步包括:基于压缩技术将来自邻近移动设备的附加数据流添加到所述manet中的移动设备的所述集合,所述压缩技术以超过预定阈值的压缩效率来压缩所述附加数据与所述第一数据流和所述第二数据流。8.根据权利要求1所述的方法,其中所述收获节点被用来压缩所述第一数据流和所述第二数据流。9.根据权利要求7所述的方法,其中预定压缩比是动态的,以将所述第一数据流、所述第二数据流和所述附加数据流中的变化考虑在内。10.根据权利要求1所述的方法,进一步包括:创建具有邻近移动设备的第二集合的第二manet;以及选择所述邻近移动设备的第二集合中的一个邻近移动设备作为第二收获节点以将从所述邻近移动设备的第二集合采集的数据发送到用于存储数据的库;其中第三移动设备能够靠近每个收获节点,其中来自所述第三移动设备的第三数据流是基于所述第三数据流与由所述收获节点压缩的数据流的相似性而被所述收获节点中的一个收获节点选择的。11.一种用于有效地从多个邻近设备获取数据的数据处理系统,所述数据处理系统包括: 处理器;以及 存储程序指令的存储器,所述程序指令在被所述处理器执行时执行如下步骤: 创建具有所述多个邻近移动设备的集合的移动自组织网络manet; 选择所述移动设备中的一个移动设备作为收获节点,以将从所述邻近移动设备的所述集合采集的数据发送到用于存储数据的库; 响应于检测到分别来自邻近移动设备的所述集合的第一移动设备和第二移动设备的第一数据流和第二数据流,利用所述处理器确定来自所述第一数据流和所述第二数据流的数据具有阈值相似性; 利用所述manet中的节点来根据第一压缩技术压缩所述第一数据流和所述第二数据流的部分以产生压缩后的数据流,其中来自所述第一数据流和所述第二数据流的数据存在于所述压缩后的数据流中;以及 由所述收获节点发送所述压缩后的数据流到所述库。12.根据权利要求11所述的数据处理系统,进一步包括:基于与所述收获节点的靠近准贝IJ,选择邻近移动设备的所述集合。13.根据权利要求11所述的数据处理系统,进一步包括:基于附加数据流与所述第一数据流和所述第二数据流的相似性,从所述多个邻近移动设备选择所述附加数据流。14.根据权利要求11所述的数据处理系统,进一步包括:基于压缩技术将来自邻近移动设备的附加数据流添加到所述manet中的移动设备的所述集合,所述压缩技术以超过预定阈值的压缩效率来压缩所述附加数据与所述第一数据流和所述第二数据流。
【文档编号】H04L29/08GK106067892SQ201610245134
【公开日】2016年11月2日
【申请日】2016年4月19日 公开号201610245134.9, CN 106067892 A, CN 106067892A, CN 201610245134, CN-A-106067892, CN106067892 A, CN106067892A, CN201610245134, CN201610245134.9
【发明人】D·B·莱克逊, M·B·斯特文斯, J·D·威尔森
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1