自适应编码网络的制作方法

文档序号:27512553发布日期:2021-11-22 17:31阅读:87来源:国知局
自适应编码网络的制作方法

1.本公开内容的实施方式总体上涉及电气计算机系统架构的技术领域,并且更具体地但非限制性地涉及使用自适应编码网络来改进计算机系统的功能的系统和方法。


背景技术:

2.计算机系统的功能通常受到在机器、节点、队列、高速缓存和其他实体之间传输的大量数据的负担,从而过度消耗重要带宽并且导致系统和网络延迟。涉及在传输之前对数据进行编码以减小所传输消息的大小的当前解决方案过于静态而无法有效或高效,未能考虑数据传输中所涉及的动态方面。实现这样的编码解决方案的计算机系统依赖于用户对静态编码方案的特定配置,从而阻止了计算机系统实时地适应事件。也可能出现其他技术问题。
附图说明
3.在附图的图中以示例而非限制的方式示出了本公开内容的一些实施方式,在附图中,相似的附图标记指示相似的要素。
4.图1是示出根据一些示例实施方式的联网系统的框图。
5.图2示出了根据一些示例实施方式的自适应编码网络的部件。
6.图3示出了根据一些示例实施方式的用于编码分配的跟踪数据。
7.图4示出了根据一些示例实施方式的其中以规则的间隔轮询最新的编码版本的自适应编码网络的用例的序列图。
8.图5示出了根据一些示例实施方式的其中存在基于由不同机器同时提出不同编码的共识冲突的自适应编码网络的用例的序列图。
9.图6示出了根据一些示例实施方式的其中编码分配被批准并且然后在后续消息中实现的自适应编码网络的用例的序列图。
10.图7是示出根据一些示例实施方式的通过实现自适应编码系统来改进计算机系统的功能的方法的流程图。
11.图8是示出根据一些示例实施方式的通过实现自适应编码网络来改进计算机系统的功能的另一方法的流程图。
12.图9示出了根据一些示例实施方式的在mapreduce环境中实现的自适应编码网络。
13.图10是示出根据一些示例实施方式的在基于网络的发布系统内的各种服务上实现的自适应编码网络的各种部件的框图。
14.图11是示出根据一些示例实施方式的代表性软件架构的框图。
15.图12是根据示例实施方式的计算机系统形式的机器的图形表示,在该计算机系统内可以执行指令集以使机器执行本文中所讨论的方法中的任何一种或更多种方法。
具体实施方式
16.以下的描述包括体现说明性实施方式的说明性系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于说明的目的,阐述了许多具体细节以便提供对本发明主题的各种实施方式的理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。通常,公知的指令实例、协议、结构和技术并未详细示出。
17.本公开内容提供了用于通过实现自适应编码网络来改进计算机系统的功能的技术解决方案。在一些示例实施方式中,自适应编码网络使用共识服务器对特定消息部分的编码达成一致,对机器之间频繁传送的消息部分(例如,消息中的值)提供动态编码。在自适应编码网络的一个示例实施方式中,第一机器与一个或更多个其他机器通信。第一机器在滑动时间窗口期间跟踪消息中的所有值的计数,例如在最近3小时期间已经在消息中使用特定值(例如,“usd”)的次数。使用启发式方法,第一机器基于所跟踪的值的计数满足阈值(例如,“美元”在最近3小时内被使用超过1000次)来确定应当向编码分配特定值。第一机器将所提出的编码分配(例如,

usd’=0000001)发送至共识服务器以供批准。共识服务器基于共识协议批准或拒绝来自不同机器的提出的编码分配。如果多个机器大约同时发送针对相同的值的提出的不同的编码分配,则共识服务器批准一个并且拒绝其他。如果共识服务器批准针对特定值的提出的编码分配,则在自适应编码网络的机器之间的后续消息中使用所批准的编码分配。
18.此外,在共识服务器批准来自机器的针对值的提出的编码分配之后的短的设定或固定的时间窗口期间,机器可以在其涉及该值的后续消息中包括(1)基于新编码分配的值的新编码版本,以及(2)值的旧编码版本。此外,为了避免写放大,机器可以等待应用(例如,由共识服务器批准的)新编码分配,直到新编码分配的应用处于可以通过网络业务量确定的非峰值窗口内(例如,等待在消息中应用编码分配直到网络业务足够低)。
19.本文中公开的特征的实现涉及非通用、非常规和非例行操作或操作的组合。通过应用本文中公开的解决方案中的一个或更多个,本公开内容的系统和方法的一些技术效果是提供减少网络带宽消耗和网络延迟的用于消息传输的数据值的动态自适应编码。本公开内容的系统和方法的附加技术效果是通过基于数据的使用选择性地对数据进行编码而不是盲目地将静态编码方案应用于所有数据来优化编码。因此,改进了计算机系统的功能。根据本公开内容,对计算机或机器的功能的其他改进也是明显的。
20.在一些示例实施方式中,由具有存储器和至少一个硬件处理器的计算机系统或其他机器执行操作,其中,所述操作包括:由具有存储器和至少一个硬件处理器的第一机器向共识服务器发送针对值的新编码分配,新编码分配表示利用新代码对值的编码;由第一机器从共识服务器接收对新编码分配的批准;以及基于从共识服务器接收到对新编码分配的批准,由第一机器将新编码分配应用于从第一机器到一个或更多个其他机器的后续消息中的值,新编码分配的应用包括将新编码分配的新代码与该值相关联地包括在后续消息中。在一些示例实施方式中,应用新编码分配还包括将新代码的版本标识符包括在后续消息中。
21.在一些示例实施方式中,操作还包括:由第一机器跟踪该值包括在第一时间窗口期间发送的消息中的次数,其中,向共识服务器发送针对该值的新编码分配是基于所跟踪
的次数满足阈值次数。
22.在一些示例实施方式中,应用编码分配还包括:将旧编码分配的旧代码与值相关联地包括在后续消息中,旧编码分配先前已经被共识服务器批准,并且在批准新编码分配之前应用于从第一机器到所述一个或更多个其他机器的先前消息。在一些示例实施方式中,应用新编码分配还包括:将新代码的版本标识符和旧代码的另一版本标识符包括在后续消息中。
23.在一些示例实施方式中,应用新编码分配还包括:基于网络业务量低于阈值网络业务量的非峰值时间窗口来确定非峰值时间窗口;以及等待应用新编码分配直到非峰值时间窗口。
24.在一些示例实施方式中,操作还包括:由第一机器向共识服务器发送该值的另一新编码分配,该另一新编码分配表示利用另一新代码对该值的另一编码;由第一机器从共识服务器接收对该另一新编码分配的拒绝;以及基于从共识服务器接收到对该另一新编码分配的拒绝,由第一机器将新编码分配而不是该另一新编码分配应用于从第一机器到所述一个或更多个其他机器的后续消息中的值。
25.本文中公开的方法或实施方式可以被实现为具有一个或更多个模块(例如,硬件模块或软件模块)的计算机系统。这样的模块可以由计算机系统的一个或更多个硬件处理器执行。本文中公开的方法或实施方式可以被体现为存储在机器可读介质上的指令,该机器可读介质在由一个或更多个处理器执行时使所述一个或更多个处理器执行指令。
26.参照图1,示出了基于客户端

服务器的高级网络架构100的示例实施方式。呈基于网络的市场或支付系统的示例形式的联网系统102经由网络104(例如,因特网或广域网(wan))向一个或更多个客户端设备110提供服务器端功能。图1示出了例如在客户端设备110上执行的web客户端112(例如,浏览器,如由华盛顿州雷蒙德市的微软公司(corporation)开发的internet 浏览器)、应用114以及编程式客户端116。
27.客户端设备110可以包括但不限于:移动电话、台式计算机、膝上型计算机(laptop)、便携式数字助理(pda)、智能电话、平板电脑、超级本、上网本、膝上型电脑(laptops)、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏控制台、机顶盒或用户可以利用以访问联网系统102的任何其他通信设备。在一些实施方式中,客户端设备110可以包括显示模块(未示出)以显示信息(例如,以用户界面的形式)。在其他实施方式中,客户端设备110可以包括触摸屏、加速度计、陀螺仪、摄像装置、麦克风、全球定位系统(gps)设备等中的一个或更多个。客户端设备110可以是用户的用于在联网系统102内执行涉及数字项目的交易的设备。在一个实施方式中,联网系统102是基于网络的市场,其对产品列表的请求进行响应,发布包括在基于网络的市场上可获得的产品的项目列表的发布物,并且管理这些市场交易的支付。一个或更多个用户106可以是人、机器或者与客户端设备110交互的其他装置。在实施方式中,用户106不是网络架构100的一部分,但可以经由客户端设备110或其他装置与网络架构100交互。例如,网络104的一个或更多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网的一部分、公共交换电话网络(pstn)的一部分、蜂窝电话网络、无线网络、wifi网络、wimax网络、另一类型的网络或者两个或更多个这
样的网络的组合。
28.每个客户端设备110可以包括一个或更多个应用(也被称为“app”),例如但不限于web浏览器、消息传送应用、电子邮件(email)应用、电子商务站点应用(也被称为市场应用)等。在一些实施方式中,如果电子商务站点应用包括在给定的客户端设备110中,则该应用被配置成根据需要针对不是本地可用的数据和/或处理能力(例如,访问针对销售可用的项目的数据库以认证用户、验证支付方法等)在本地向用户接口和至少一些功能提供被配置成与联网系统102通信的应用。相反,如果电子商务站点应用未包括在客户端设备110中,则客户端设备110可以使用其web浏览器来访问在联网系统102上托管的电子商务站点(或其变体)。
29.一个或更多个用户106可以是人、机器或者与客户端设备110交互的其他装置。在示例实施方式中,用户106不是网络架构100的一部分,但可以经由客户端设备110或其他装置与网络架构100交互。例如,用户106向客户端设备110提供输入(例如,触摸屏输入或字母数字输入),并且该输入经由网络104被传送至联网系统102。在这种情况下,联网系统102响应于从用户106接收到输入而经由网络104将信息传送至客户端设备110以呈现给用户106。以这种方式,用户106可以使用客户端设备110与联网系统102进行交互。
30.应用程序接口(api)服务器120和web服务器122耦接至一个或更多个应用服务器140,并且分别向一个或更多个应用服务器140提供编程接口和web接口。应用服务器140可以托管一个或更多个发布系统142、支付系统144和自适应编码网络150,所述一个或更多个发布系统142、支付系统144和自适应编码网络150中的每个可以包括一个或更多个模块或应用,并且所述一个或更多个发布系统142、支付系统144和自适应编码网络150中的每个可以被体现为硬件、软件、固件或其任何组合。应用服务器140又被示出为耦接至一个或更多个数据库服务器124,所述一个或更多个数据库服务器124促进对一个或更多个信息存储库或数据库126的访问。在示例实施方式中,数据库126是存储要公布至发布系统142的信息(例如,发布物或列表)的存储设备。根据示例实施方式,数据库126还可以存储数字项目信息。
31.此外,在一个或更多个第三方服务器130上执行的第三方应用132被示出为经由api服务器120提供的编程接口对联网系统102进行编程式访问。例如,利用从联网系统102检索的信息,第三方应用132支持由第三方托管的网站上的一个或更多个特征或功能。例如,第三方网站提供由联网系统102的相关应用支持的一个或更多个促销功能、市场功能或支付功能。
32.发布系统142可以向访问联网系统102的用户106提供多个发布功能和服务。支付系统144同样可以提供多个功能以执行或促进支付和交易。尽管在图1中发布系统142和支付系统144被示出为这两者均形成联网系统102的一部分,但是应当理解,在替选实施方式中,每个系统142和144可以形成与联网系统102分离且不同的支付服务的一部分。在一些实施方式中,支付系统144可以形成发布系统142的一部分。
33.如下面将进一步详细讨论的,自适应编码网络150提供可操作以执行各种自适应编码操作的功能。自适应编码网络150可以访问来自数据库126、第三方服务器130、发布系统142和其他源的数据。在一些示例实施方式中,自适应编码网络150可以分析数据以执行自适应编码操作。在一些示例实施方式中,自适应编码网络150与发布系统142(例如,访问
项目列表)和支付系统144通信。在替选实施方式中,自适应编码网络150是发布系统142的一部分。
34.此外,虽然图1中所示的基于客户端

服务器的网络架构100采用了客户端

服务器架构,但是本发明主题当然不限于这样的架构,并且同样可以在例如分布式或对等架构系统中找到应用。各种发布系统142、支付系统144和自适应编码网络150也可以实现为不必然具有联网能力的独立的软件程序。
35.web客户端112可以经由web服务器122支持的web接口访问各种发布系统142和支付系统144。类似地,编程式客户端116经由api服务器120提供的编程接口访问由发布系统142和支付系统144提供的各种服务和功能。编程式客户端116可以例如是销售者应用(例如,由加利福尼亚州圣何塞市的公司开发的turbo lister应用),以使得销售者能够以离线方式在联网系统102上创建和管理列表,并且在编程式客户端116与联网系统102之间执行批量模式通信(batch

mode communication)。
36.此外,在一个或更多个第三方服务器130上执行的一个或更多个第三方应用132被示出为可经由api服务器120提供的编程接口对联网系统102进行编程式访问。例如,利用从联网系统102检索的信息,第三方应用132可以支持由第三方托管的网站上的一个或更多个特征或功能。例如,第三方网站可以提供由联网系统102的相关应用支持的一个或更多个促销功能、市场功能或支付功能。
37.图2示出了根据一些示例实施方式的自适应编码网络150的部件。在图2中,自适应编码网络150在包括多个机器210的池200的系统环境中实现。例如,系统环境可以包括多个池200(例如,图2中的池

1至池

n),并且每个池200可以包括其自己的多个机器210(例如,图2中的池

1的机器

1至机器

n和池n的机器

x至机器

y)。在一些示例实施方式中,每个池200可以被定向至特定服务212并提供特定服务212。在图2所示的示例中,池

1的机器210提供服务

a(例如,定价服务),而池

n的机器210提供服务

b(例如,销售服务)。在实现它们各自的服务212时,机器210可以例如经由通信网络(例如,图1中的网络104)从彼此请求数据值以及响应这样的数据请求。
38.在一些示例实施方式中,自适应编码网络150包括启发式模块214、编码器/解码器模块216、共识模块218和共识服务器220中的一个或更多个的任何组合。每个机器210可以包括其自己相应的启发式模块214、编码器/解码器模块216和共识模块218,上述模块例如经由通信网络在机器210上彼此通信地耦接,并且共识服务器220可以例如经由通信网络通信地耦接至每个机器210。除了在机器210上实现之外或作为在机器210上实现的替选,在一些示例实施方式中,启发式模块214、编码器/解码器模块216和共识模块218也在其他实体上实现。其他这样的实体的示例包括但不限于节点、队列和高速缓存。
39.在一些示例实施方式中,机器210的启发式模块214被配置成跟踪在时间窗口期间从机器210发送的消息中包括值(例如,数据值)的次数。该所跟踪的次数在本文中也被称为计数。由于网络数据通常被表示为键(key)/值对,因此在一些示例实施方式中,启发式模块214被配置成跟踪在滑动时间窗口中从机器210发送的针对键的所有值的计数——例如,最近两小时内每个值的使用,并且然后采用启发式方法来针对每个值确定是否应当实现针对该值的新编码分配。编码分配表示利用新代码对值的编码。例如,对于键“listing_currency”的不同值可能包括“usd”和“cad”。值“usd”可以利用代码“00000001”编码,而值

cad”可以利用代码“00000010”编码。
40.在一些示例实施方式中,启发式模块214基于值的计数是否满足阈值来确定是否应当针对该值实现新编码分配。例如,如果该值的计数不满足阈值(例如,至少一百的计数),则启发式模块214确定不应当针对该值实现新编码分配并继续跟踪该值的计数。然而,如果该值的计数确实满足阈值,则启发式模块214确定应当针对该值实现新编码分配。在一些示例实施方式中,响应于或以其他方式基于应当针对该值实现新编码分配的确定,共识模块218将提出的新编码分配发送至共识服务器220以供批准,以避免彼此通信的不同机器针对相同的值使用不同的编码分配的情况。通过在针对后续消息实现新编码分配之前首先从共识服务器220获得针对新编码分配的批准,机器210避免了其他机器210的数据通信错误,从而使得机器210之间的通信更高效。
41.在一些示例实施方式中,共识服务器220被配置成从机器210接收提出的新编码分配,并且使用共识协议来确定是批准还是拒绝每个提出的新编码分配,该共识协议被配置成确定哪些编码分配应当跨机器210的池200实现。共识协议被配置成确保针对相同的值不会同时实现多个不同的编码分配。在一些示例实施方式中,响应于或以其他方式基于从机器210接收到针对特定值的提出的新编码分配,共识服务器220检查以查看其是否已经同时或在彼此相隔特定时间量内从另一机器210接收到针对相同特定值的另一提出的新编码分配(例如,在彼此相隔三十秒内从不同的机器接收的不同的提出的新编码分配)。如果对于相同值不存在其他冲突的提出的新编码分配(例如,没有由另一机器210同时或在阈值时间量内提出的其他新编码分配),则共识服务器220批准由机器210提出的新编码分配,并且将其对新编码分配的批准发送至机器210。如果对于相同值存在冲突的提出的新编码分配(例如,已经由另一机器210同时或在阈值时间量内提出另一新编码分配),则共识服务器220使用共识协议来选择针对值的所提出的新编码分配中的一个来进行批准,拒绝针对该值的其他所提出的新编码分配,并且然后将批准和拒绝发送至对应机器210。在一些示例实施方式中,共识服务器220在存在冲突时随机选择新编码分配中的一个。然而,可以构想,共识协议可以指定在存在冲突时选择编码分配进行批准的其他方式。
42.在一些示例实施方式中,机器210的服务212之间的服务调用在被发送至其他机器210之前经过编码器/解码器模块216。编码器/解码器模块216可以管理针对值的编码分配的列表,以正确地对从编码器/解码器模块216所在的机器210发送至其他机器210的消息中包括的值进行编码,并且正确地对从其他机器210发送至编码器/解码器模块216所在的机器210的消息中包括的值进行解码。在一些示例实施方式中,编码器/解码器模块210定期地与共识服务器通信以获得针对值的编码分配的最新版本,并且然后存储编码分配的最新版本,以供后续在对机器210之间的消息中包括的值进行编码和解码时使用。
43.编码器/解码器模块216可以被配置成存储与值和编码分配相关联的针对每个值的不同版本的编码分配,以及对应的版本标识符(例如,版本1、版本2、
……
、版本n)。在一些示例实施方式中,编码器/解码器模块216被配置成基于从共识服务器220接收到对新编码分配的批准,将新编码分配应用于后续消息中的值。新编码分配的应用可以包括将新编码分配的新代码与值相关联地包括在后续消息中。在一些示例实施方式中,新编码分配的应用还包括将与新代码相关联的新代码的版本标识符包括在后续消息中。在一些示例实施方式中,应用编码分配还包括将旧编码分配的旧代码与值相关联地包括在后续消息中,其中,
旧编码分配先前已经被共识服务器批准并且在批准新编码分配之前应用于从机器210到一个或更多个其他机器210的先前消息。新代码的版本标识符和旧代码的另一版本标识符可以包括在后续消息中。
44.在一些示例实施方式中,在批准了针对值的新编码分配之后,编码器/解码器模块216将新编码分配的应用延迟一定时间段,直到确定网络业务处于适当的水平。例如,编码器/解码器模块216可以基于网络业务量低于阈值网络业务量的的非峰值时间窗口来确定非峰值时间窗口,并且然后等待应用新编码分配直到非峰值时间窗口。
45.图3示出了根据一些示例实施方式的用于编码分配的跟踪数据300。跟踪数据可以存储在机器210中,以用于由机器210的模块在处理在机器210之间传送的消息时访问。在一些示例实施方式中,跟踪数据300包括具有针对每个值的对应计数的不同值。例如,在图3中,与值“usd”相关联地存储计数“45987”,并且与值“cad”相关联地存储计数“8821”。跟踪数据300还可以包括与每个值相关联地存储的针对每个值的对应编码。例如,在图3中,值“usd”具有对应的编码分配“00000001”,并且值“cad”具有对应的编码“00000010”。在图3中,值“inr”不具有对应的编码分配,因为已经确定值“inr”的计数太低而不能生成编码分配并将其发送至共识服务器220以供批准。跟踪数据300还可以包括每个编码分配的对应状态,例如编码分配是否已经被批准(例如,图3中的“共识_批准”)或者编码分配是否已经被发送至共识服务器220以供批准但是尚未接收到共识服务器220的决定(例如,图3中的“共识_请求”),或者值在当前时间是否没有资格进行编码分配(例如,图3中的“没有资格”)。在一些示例实施方式中,每个机器210存储对应于其已经向共识服务器220提出的编码分配的跟踪数据300。每个机器210还可以存储用于已经由其他机器210提出并被共识服务器220批准的编码分配的跟踪数据300。
46.在一些示例实施方式中,编码分配的应用包括利用代码替换消息中的值。例如,可以利用二进制代码替换值的基于文本的表示。在从销售者服务至服务于具有标识号“123”的项目列表的定价的消息的一个示例中,该消息可以包括项目列表的货币值而不应用任何编码分配,如下所示:
[0047][0048]
在后续消息中,可以将编码分配应用于项目列表的货币值,其中货币值被表示为二进制代码,如下所示:
[0049]
[0050]
图4示出了根据一些示例实施方式的其中以规则的间隔轮询最新的编码版本的自适应编码网络的用例的序列图。在图4中,两个不同的机器210

1和210

2正在与共识服务器220一起使用自适应编码网络150的特征。在一个示例中,当前正针对value1实施编码分配的第一版本(v1)。在操作410处,机器210

1发送value1将被编码为“001”的针对value1的新编码分配的提议。在操作410处发送的该提议可以包括当前正在实施的编码分配的版本标识符(v1)。在操作420处,共识服务器220批准由机器210

1提议的编码分配,并且将该批准连同用于刚由共识服务器220批准的新的当前编码分配的版本标识符(v2)一起发送至机器210

1。共识服务器220和机器210

1两者都可以存储新编码分配(“value1”:“001”)以及其对应的版本标识符(v2)。在操作430处,机器210

2与共识服务器220通信以获得在自适应编码网络150内实现的任何编码分配的最新版本,并且在操作440处,共识服务器220发送value1的新编码分配以及对应的版本标识符。机器210

1和机器210

2然后可以使用新编码分配“value1”:“001”。
[0051]
图5示出了根据一些示例实施方式的其中存在基于由不同机器同时提出不同编码的共识冲突的自适应编码网络的用例的序列图。在一个示例中,当前正针对value2实施编码分配的第二版本(v2)。在操作510处,机器210

2发送其中value2将被编码为“011”的针对value2的新编码分配的提议。在操作510处发送的该提议可以包括当前正实施的编码分配的版本标识符(v2)。在操作520处,机器210

1还发送其中value2将被编码为“101”的针对value2的新编码分配的提议。在操作520处发送的该提议可以包括当前正实施的编码分配的版本标识符(v2)。在由机器210

1和机器210

2同时或在彼此的特定时间量内向共识服务器220提出针对value2的新编码分配的一个示例中,共识服务器220批准所提出的编码分配中的一个并且拒绝另一个所提出的编码分配。例如,在操作530处,共识服务器220批准由机器210

2提出的编码分配,并且将批准连同用于刚由共识服务器220批准的新的当前编码分配的版本标识符(v3)一起发送至机器210

2。并且,在操作540处,共识服务器220拒绝由机器210

1提出的编码分配并且将拒绝发送至机器210

1。
[0052]
发送至机器210

2的批准和发送至机器210

1的拒绝两者都可以包括用于刚由共识服务器220批准的新的当前编码分配的版本标识符(v3),以及在自适应编码网络150内正实施的所有当前编码分配。共识服务器220、机器210

1和机器210

2可以存储新编码分配(“value2”:“011”)以及该新编码分配的对应的版本标识符(v3)以用于后续使用,例如用于由机器210

1和机器210

2的对应编码器/解码器模块216使用。
[0053]
图6示出了根据一些示例实施方式的其中编码分配被批准并且然后在后续消息中实施的自适应编码网络150的用例的序列图。在一个示例中,当前正在针对value3实施编码分配的第三版本(v3)。在操作610处,机器210

2发送其中value3将被编码为“111”的针对value3的新编码分配的提议。在操作610处发送的该提议可以包括当前正在实施的编码分配的版本标识符(v3)。在操作620处,共识服务器220批准由机器210

2提出的编码分配,并且将批准连同用于刚由共识服务器220批准的新的当前编码分配的版本标识符(v4)一起发送至机器210

2。共识服务器220和机器210

2两者都可以存储新编码分配(“value3”:“111”)以及该新编码分配的对应的版本标识符(v4)。机器210

2在从机器210

2到机器210

1的消息中使用第四版本(v4)的新编码分配“value3”:“111”。在一些示例实施方式中,为了确保机器210

1能够在批准针对value3的编码分配的最新版本(v4)之后的短持续时间内正
确地解译来自机器210

2的消息,机器210

2还在使用value3的消息中包括针对value3的更旧版本的编码分配。通过包括更旧版本的编码,机器210

2避免了机器210

1尚未从共识服务器220接收到最新编码分配的情况。
[0054]
图7是示出根据一些示例实施方式的通过实现自适应编码系统150来改进计算机系统的功能的方法700的流程图。方法700的操作可以由系统或系统的模块来执行。方法700的操作可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合。在一个示例实施方式中,如上面所描述的,方法700由图1和图2的自适应编码网络150的机器210或其部件或模块(例如,启发式模块214、编码器/解码器模块216、共识模块218)中的一个或更多个的任何组合来执行。
[0055]
在操作710处,机器210将针对值的新编码分配发送至共识服务器220。在一些示例实施方式中,新编码分配表示利用新代码对值的编码。
[0056]
在操作720处,机器210从共识服务器220接收对新编码分配的批准。在一些示例实施方式中,来自共识服务器220的对新编码分配的批准还可以包括用于新批准的编码分配的对应版本标识符。
[0057]
在操作730处,响应于或以其他方式基于在操作720处从共识服务器220接收到对新编码分配的批准,机器210将新编码分配应用于从机器210到一个或更多个其他机器210的后续消息中的值。在一些示例实施方式中,新编码分配的应用包括将新编码分配的新代码与值相关联地包括在后续消息中。在一些示例实施方式中,应用新编码分配还包括将新代码的版本标识符包括在后续消息中。
[0058]
在一些示例实施方式中,应用编码分配还包括将旧编码分配的旧代码与值相关联地包括在后续消息中,旧编码分配先前已经被共识服务器220批准并且在批准新编码分配之前应用于从机器210到一个或更多个其他机器210的先前消息。在一些示例实施方式中,应用新编码分配还包括将新代码的版本标识符和旧代码的另一版本标识符包括在后续消息中。在一些示例实施方式中,应用新编码分配还包括:基于网络业务量低于阈值网络业务量的非峰值时间窗口来确定非峰值时间窗口,并且然后等待应用新编码分配直到非峰值时间窗口。
[0059]
可以构想,方法700的操作可以结合本文所公开的其他特征中的任何特征。
[0060]
图8是示出根据一些示例实施方式的通过实现自适应编码网络150来改进计算机系统的功能的另一方法800的流程图。方法800的操作可以由系统或系统的模块来执行。方法800的操作可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合。在一个示例实施方式中,如上面所描述的,方法800由图1和图2的自适应编码网络150的机器210或其部件或模块(例如,启发式模块214、编码器/解码器模块216、共识模块218)中的一个或更多个的任何组合来执行。
[0061]
在一些示例实施方式中,方法800包括在执行图7中的方法700的操作710、操作720和操作730之前被执行的操作802和操作804。
[0062]
在操作802处,机器210跟踪值包括在特定时间窗口期间发送的消息中的次数(例如,计数)。在操作804处,机器210确定所跟踪的次数是否满足阈值次数(例如,所跟踪的次
数是否等于或超过阈值次数)。如果机器210确定所跟踪的次数不满足阈值次数,则机器210继续在操作802处跟踪次数。如果机器210确定所跟踪的次数满足阈值次数,则机器210进行至操作710,如先前所讨论的,在操作710处,机器210将针对值的新编码分配发送至共识服务器220。
[0063]
可以构想,方法800的操作可以结合本文所公开的其他特征中的任何特征。
[0064]
图9示出了根据一些示例实施方式的在mapreduce系统900中实现的自适应编码网络150。在一些示例实施方式中,mapreduce系统900包括编程模型和用于利用集群上的并行、分布式算法来处理和生成大数据集的相关联的实现。mapreduce程序可以由映射过程和规约过程构成,映射过程执行数据的过滤和分类(例如,将数据过滤和分类成队列),规约过程对经过滤和经分类的数据执行汇总操作(例如,对每个队列中的某些类型的数据的数目进行计数、产生数据类型频率)。mapreduce系统900通过管理分布式服务器、并行运行各种任务、管理系统的各部分之间的所有通信和数据传输以及提供冗余和容错来协调处理。mapreduce系统900使用大量计算机(例如,节点)来处理跨大数据集的可并行化问题,所述大量计算机统称为集群(例如,在所有节点都在同一本地网络上并且使用类似的硬件的情况下)或网格(例如,在节点在地理上和管理上分布的系统之间共享并且使用更异构的硬件的情况下)。可以对存储在文件系统(例如,非结构化数据)或数据库(例如,结构化数据)中的数据进行处理。mapreduce系统900可以利用数据的局部性,在该数据的存储位置附近对其进行处理,以最小化通信开销。
[0065]
在一些示例实施方式中,mapreduce系统900包括多个映射器910(例如,图9中的映射器

1、映射器

2和映射器

3)和多个规约器920(例如,图9中的规约器

1和规约器

2)。映射器910和规约器920各自可以包括执行mapreduce系统900的操作或任务的节点。在一些示例实施方式中,mapreduce系统900将输入数据集分割成由映射器910以完全并行的方式处理的独立块。mapreduce系统900对映射器910的输出进行分类,这些输出然后被输入至规约器920,并且规约器920可以并行地按每个键处理每组输出数据。输入和输出两者都可以存储在文件系统中。
[0066]
由于mapreduce系统900的实现涉及映射器910与规约器920之间的数据通信,因此在一些示例实施方式中,在mapreduce系统900中实现自适应编码网络150以使这样的通信更有效且高效。在一些示例实施方式中,mapreduce系统900中的映射器910和规约器920中的每一个包括相应的启发式模块214、编码器/解码器模块216和共识模块218,并且如先前所讨论的,每个共识模块218通信地耦接至共识服务器220,以实现编码分配的管理(例如,批准和拒绝)。
[0067]
在一些示例实施方式中,机器210跟踪同一键的多个值的计数。例如,键“returnatrribute”的可以具有许多不同的被单独跟踪的属性,例如“returnwithin/unit”和“returnshipentpayee/refundmethodtypes”。这样的多维度量跟踪可以由每个机器210自主执行而无需预先指定。可以由机器210使用所跟踪的多维计数来生成和请求来自共识服务器220的对每个键的对应值的编码分配的批准。
[0068]
图10是示出根据一些示例实施方式的在基于网络的发布系统142内的各种服务1002、1004、1006、1008和1010上实现的自适应编码网络150的各种部件的框图。发布系统142可以托管在通信地耦接以实现服务器机器之间的通信的专用服务器机器或共享服务器
机器上。服务本身(例如,经由适当的接口)彼此通信地耦接,并且通信地耦接至各种数据源,以使得信息能够在服务之间传递或者使得服务能够共享和访问公共数据。此外,服务可以经由数据库服务器124访问一个或更多个数据库126。
[0069]
发布系统142可以提供多个发布、列表和/或价格设定机制,由此销售者(也被称为第一用户)可以列出用于销售或易货的商品或服务(或者发布关于销售或易货的商品或服务的信息),购买者(也被称为第二用户)可以表达对购买或易货这样的商品或服务的兴趣或者表明对购买或易货这样的商品或服务的期望,并且可以完成与商品或服务有关的交易(例如,贸易)。为此,发布系统142可以包括至少一个发布引擎1002和一个或更多个销售引擎1004。发布引擎1002可以在发布系统142上发布诸如项目列表或产品描述页面的信息。在一些实施方式中,销售引擎1004可以包括支持固定价格列表和价格设定机制的一个或更多个固定价格引擎以及支持拍卖格式列表和价格设定机制(例如,英语、荷兰语、中文、双重、反向拍卖等)的一个或更多个拍卖引擎。各种拍卖引擎还可以提供支持这些拍卖格式列表的多个特征,例如通过其销售者可以指定与列表有关的保留价格的保留价格特征以及通过其出价者可以调用自动代理出价的代理出价特征。销售引擎1004还可以包括支持产品和服务的商家生成的提议(offer)的一个或更多个交易引擎。
[0070]
列表引擎1006使得销售者能够方便地创作项目的列表或者使得创作者能够创作发布物。在一个实施方式中,列表与用户(例如,销售者)希望经由发布系统142进行交易的商品或服务有关。在一些实施方式中,列表可以是商品或服务的提议、交易、优惠券或折扣。每种商品或服务均与特定类别相关联。列表引擎1006可以接收列表数据,例如标题、描述和方面名称/值对。此外,可以为商品或服务的每个列表分配项目标识符。在其他实施方式中,用户可以创建作为广告或其他形式的信息发布的列表。然后可以将列表信息存储至耦接至发布系统142的一个或更多个存储设备(例如,数据库126)。列表还可以包括显示产品和与产品相关联的信息(例如,产品标题、说明书、描述和评论)的产品页面。在一些实施方式中,产品页面可以包括与产品页面上描述的产品相对应的项目列表的集合。
[0071]
列表引擎1006还可以使得购买者能够方便地创作对于期望购买的项目的列表或请求。在一些实施方式中,列表可以与用户(例如,购买者)希望经由发布系统142进行交易的商品或服务有关。每种商品或服务均与特定类别相关联。列表引擎1006可以接收购买者知道的关于请求的项目的或多或少的列表数据,例如标题、描述和方面名称/值对。在一些实施方式中,列表引擎1006可以解析购买者的提交的项目信息并且可以完成列表的不完整部分。例如,如果购买者提供所请求项目的简要描述,则列表引擎1006可以解析该描述、提取关键术语并使用这些术语来确定项目的身份。使用所确定的项目身份,列表引擎1006可以检索购买者项目请求中包括的附加项目细节。在一些实施方式中,列表引擎1006可以将项目标识符分配给商品或服务的每个列表。
[0072]
在一些实施方式中,列表引擎1006使得销售者能够生成对产品或服务的折扣的提议。列表引擎1006可以接收列表数据,例如提供的产品或服务、产品或服务的价格和/或折扣、提出有效的时间段等。在一些实施方式中,列表引擎1006准许销售者从销售者的移动设备生成提议。可以将生成的提议上载至发布系统142以进行存储和跟踪。
[0073]
由搜索引擎1008促进对发布系统142的搜索。例如,搜索引擎1008实现对经由发布系统142发布的列表的关键字查询。在示例实施方式中,搜索引擎1008接收来自用户的设备
的关键字查询,并且对存储列表信息的存储设备进行查阅。该查阅将实现对可以被分类并返回至用户的客户端设备110的列表的结果集的汇编。搜索引擎1008可以记录查询(例如,关键字)和任何后续用户动作和行为(例如,浏览)。
[0074]
搜索引擎1008还可以基于用户的位置执行搜索。用户可以经由移动设备访问搜索引擎1008并生成搜索查询。使用搜索查询和用户的位置,搜索引擎1008可以向用户返回产品、服务、提议、拍卖等的相关搜索结果。搜索引擎1008既可以以列表形式标识相关搜索结果,还可以在地图上以图形形式标识相关搜索结果。在地图上选择图形指示符可以提供有关所选择的搜索结果的附加细节。在一些实施方式中,用户可以指定距用户的当前位置的距离或半径作为搜索查询的一部分以限制搜索结果。
[0075]
搜索引擎1008还可以基于图像执行搜索。图像可以从客户端设备的成像部件或摄像装置获取,或者可以从存储装置访问。
[0076]
在另一示例中,浏览引擎1010使得用户能够浏览各种类别、目录或库存数据结构,根据所述类别、目录或库存数据结构,列表可以在发布系统142内分类。例如,浏览引擎1010使得用户能够连续向下浏览包括类别层级的类别树(例如,类别树结构),直到到达特定的列表集。可以提供浏览引擎1010内的各种其他浏览应用以补充搜索和浏览应用。浏览引擎1010可以记录由用户执行的各种用户动作(例如,点击),以便向下浏览类别树。
[0077]
由于发布系统142的实现可能涉及发布系统的服务——例如,服务1002、1004、1006、1008和1010——之间的数据通信,因此在一些示例实施方式中,在发布系统142中实现自适应编码网络150,以使这样的通信更加有效且高效。在一些示例实施方式中,发布系统142中的服务1002、1004、1006、1008和1010中的一个或更多个服务各自包括相应的启发式模块214、编码器/解码器模块216和共识模块218,并且如先前所讨论的,每个共识模块218通信地耦接至共识服务器220,以实现编码分配的管理(例如,批准和拒绝)。
[0078]
可以构想,本文中公开的任何实施方式的任何特征可以与本文中公开的任何其他实施方式的任何其他特征组合。因此,任何这样的混合实施方式都在本公开内容的范围内。
[0079]
在本文中将某些实施方式描述为包括逻辑或者多个部件、模块或机构。模块可以构成软件模块(例如,机器可读介质上包含的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件模块(例如,处理器或处理器组)可以通过软件(例如,应用或应用部分)被配置为进行操作以执行如本文中描述的某些操作的硬件模块。
[0080]
在一些实施方式中,硬件模块可以机械地、电子地或以其任何合适的组合来实现。例如,硬件模块可以包括被永久地配置成执行某些操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,例如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件模块还可以包括由软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件进行配置,硬件模块就成为被唯一地定制成执行所配置的功能的特定机器(或机器的特定部件),并且不再是通用处理器。应当理解,可以通过成本和时间考虑来驱动机械地、以专用且永久配置的电路或以临时配置的电路(例如,由软件进行配置)实现硬件模块的决定。
[0081]
因此,短语“硬件模块”应当被理解为包括有形实体,即,被物理地构造、永久配置
(例如,硬连线)或临时配置(例如,编程)成以特定方式进行操作或者执行本文中描述的某些操作的实体。如本文中使用的,“硬件实现的模块”是指硬件模块。考虑其中硬件模块被临时配置(例如,被编程)的实施方式,硬件模块中的每一个不需要在任一时刻均被配置或实例化。例如,在硬件模块包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间处被配置为分别不同的专用处理器(例如,包括不同的硬件模块)。软件相应地配置特定的一个或多个处理器,例如以在一个时刻构成特定的硬件模块,并且在不同的时刻构成不同的硬件模块。
[0082]
硬件模块可以向其他硬件模块提供信息并且接收来自其他硬件模块的信息。因此,所描述的硬件模块可以被认为是通信地耦接的。在同时存在多个硬件模块的情况下,可以通过信号传输(例如,通过适当的电路和总线)在硬件模块中的两个或更多个之间实现通信。在其中多个硬件模块在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件模块可以访问的存储器结构中并且在该存储器结构中检索信息来实现在这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作并且将该操作的输出存储在其通信地耦接的存储器设备中。其他硬件模块然后可以稍后访问该存储器设备,以检索和处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。
[0083]
在本文中描述的示例方法的各种操作可以至少部分地由被临时地配置(例如,由软件)或永久地配置以执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是被永久地配置,这样的处理器都可以构成处理器实现的模块,所述处理器实现的模块进行操作以执行本文中描述的一个或更多个操作或功能。如本文中使用的,“处理器实现的模块”是指使用一个或更多个处理器实现的硬件模块。
[0084]
类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或更多个处理器或处理器实现的模块来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(saas)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)来执行,其中,这些操作能够经由网络(例如,因特网)以及经由一个或更多个适当的接口(例如,应用程序接口(api))来访问。
[0085]
操作中的某些操作的执行可以分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施方式中,处理器或处理器实现的模块可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器场内)。在其他示例实施方式中,处理器或处理器实现的模块可以跨多个地理位置分布。
[0086]
在一些实施方式中,在机器和相关联的软件架构的背景下实现结合图1至图10描述的模块、方法、应用等。下面的部分描述了适于与所公开的实施方式一起使用的一个或多个代表性软件架构和机器(例如,硬件)架构。
[0087]
软件架构与硬件架构结合使用,以创建针对特定目的而定制的设备和机器。例如,与特定软件架构耦接的特定硬件架构将创建移动设备,如移动电话、平板设备等。稍有不同的硬件架构和软件架构可能产生用于“物联网”的智能设备。而又一组合产生用于在云计算架构内使用的服务器计算机。此处并未呈现这样的软件架构和硬件架构的所有组合,因为本领域技术人员可以容易地理解如何在与本文中包含的公开内容不同的背景下实现本公
开内容的特征。
[0088]
图11是示出可以与本文中描述的各种硬件架构(例如,在自适应编码网络150的机器210或共识服务器220内)结合使用的代表性软件架构1102的框图1100。图11仅是软件架构1102的非限制性示例并且应当理解,可以实现许多其他架构以促进本文中描述的功能。软件架构1102可以在诸如图12的机器1200的硬件上执行,该机器1200包括处理器1010、存储器/存储装置1030和i/o部件1050。图11示出了代表性硬件层1104,并且代表性硬件层1104可以表示例如图12的机器1200。代表性硬件层1104包括具有相关联的可执行指令1108的一个或更多个处理单元1106。可执行指令1108表示包括以上关于图1至图10公开的方法、模块和特征的实现的软件架构1102的可执行指令。硬件层1104还包括也具有可执行指令1108的存储器和/或存储模块1110。硬件层1104还可以包括表示硬件层1104的任何其他硬件的其他硬件1112,例如作为机器1200的部分示出的其他硬件。
[0089]
在图11的示例架构中,软件架构1102可以被概念化为层的堆叠,其中,每个层提供特定功能。例如,软件架构1102可以包括诸如操作系统1114、库1116、框架/中间件1118、应用1120和表示层1144的层。在操作上,应用1120和/或层内的其他部件可以通过软件堆栈来激发应用编程接口(api)调用1124,并且响应于api调用1124而接收示出为消息1126的响应、返回值等。所示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件1118,而其他操作系统可能提供这样的层。其他软件架构可以包括附加层或不同层。
[0090]
操作系统1114可以管理硬件资源并且提供公共服务。操作系统1114可以包括例如内核1128、服务1130和驱动器1132。内核1128可以用作硬件与其他软件层之间的抽象层。例如,内核1128可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务1130可以向其他软件层提供其他公共服务。驱动器1132可以负责控制底层硬件或与底层硬件对接。例如,取决于硬件配置,驱动器1132可以包括显示驱动器、摄像装置驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
[0091]
库1116可以提供可以被应用1120或其他部件或层利用的公共基础设施。库1116通常提供如下功能,该功能使得其他软件模块能够以相比于与底层操作系统1114功能(例如,内核1128、服务1130和/或驱动器1132)直接对接的方式更容易的方式来执行任务。库1116可以包括系统库1134(例如,c标准库),该系统库1134可以提供诸如存储器分配功能、字符串操作功能、算术功能等的功能。另外,库1116可以包括api库1136,例如媒体库(例如,用于支持诸如mpeg4、h.264、mp3、aac、amr、jpg、png的各种媒体格式的呈现和操作的库)、图形库(例如,可以用于在显示器上呈现2d和3d图形内容的opengl框架)、数据库库(例如,可以提供各种关系数据库功能的sqlite)、web库(例如,可以提供web浏览功能的webkit)等。库1116还可以包括各种其他库1138,以向应用1120和其他软件部件/模块提供许多其他api。
[0092]
框架/中间件1118可以提供可以由应用1120或其他软件部件/模块利用的更高级的公共基础设施。例如,框架/中间件1118可以提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架/中间件1118可以提供可以由应用1120或其他软件部件/模块利用的广范围的其他api,其中一些api可以专用于特定操作系统或平台。
[0093]
应用1120包括内置应用1140或第三方应用1142。代表性内置应用1140的示例可以
包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传送应用或游戏应用。第三方应用1142可以包括内置应用1140以及各种其他应用中的任何应用。在具体示例中,第三方应用1142(例如,由除了特定平台的供应商以外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)开发的应用)可以是在诸如ios
tm
、android
tm
、phone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用1142可以激发由诸如操作系统1114的移动操作系统提供的api调用1124,以促进本文中描述的功能。
[0094]
应用1120可以利用内置操作系统功能(例如,内核1128、服务1130和/或驱动器1132)、库(例如,系统库1134、api库1136和其他库1138)以及框架/中间件1118来创建用户接口以与系统的用户交互。替选地或另外地,在一些系统中,与用户的交互可以通过诸如表示层1144的表示层来发生。在这些系统中,应用/模块“逻辑”可以与和用户交互的应用/模块的各方面分开。
[0095]
一些软件架构利用虚拟机。在图11的示例中,这由虚拟机1148示出。虚拟机创建软件环境,在该软件环境中,应用/模块可以执行,好像它们在硬件机器(例如,图12的机器1200)上执行一样。虚拟机1148由主机操作系统(例如,操作系统1114)托管,并且通常但并非总是具有虚拟机监视器1146,该虚拟机监视器1146管理虚拟机1148的操作以及与主机操作系统(例如,操作系统1114)的对接。诸如操作系统1150、库1152、框架1154、应用1156或表示层1158的软件架构在虚拟机1148内执行。在虚拟机1148内执行的这些软件架构的层可以与先前描述的相应层相同或者可以不同。
[0096]
图12是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文中讨论的方法中的任何一种或更多种方法的机器1200的部件的框图。具体地,图12以计算机系统的示例形式示出了机器1200的图形表示,在该机器1200内可以执行用于使机器1200执行本文中讨论的方法中的任何一种或更多种方法的指令1216(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令1216可以使机器1200执行图7和图8的相应方法700和800中的任何一种。另外地或替选地,指令1216可以实现图2的部件中的一个或更多个部件的任意组合等。例如,自适应编码网络150的机器210或共识服务器220可以包括机器1200。
[0097]
指令1216将机器1200变换成特定机器,该特定机器被编程成以所描述的方式执行所描述和所示出的功能。在替选实施方式中,机器1200作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1200可以在服务器

客户端网络环境中以服务器机器或客户端机器的性能来操作,或者在对等(或分布式)网络环境中作为对等机器来操作。机器1200可以包括但不限于:服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器1200采取的动作的指令1216的任何机器。此外,虽然仅示出了单个机器1200,但是术语“机器”还应当被视为包括单独地或共同地执行指令1216以执行本文中讨论的方法中的任何一种或更多种方法的机器1200的集合。
[0098]
机器1200可以包括可以被配置成例如经由总线1202彼此进行通信的处理器1210、
存储器1230和i/o部件1250。在示例实施方式中,处理器1210(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、其他处理器或其任意合适的组合)可以包括例如可以执行指令1216的处理器1212和处理器1214。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)。虽然图12示出了多个处理器1210,但是机器1200可以包括具有单核的单个处理器、具有多核的单个处理器(例如,多核处理)、具有单核的多个处理器、具有多核的多个处理器或其任意组合。
[0099]
存储器/存储装置1230可以包括诸如主存储器或其他存储器存储装置的存储器1232以及存储单元1236,处理器1210例如可经由总线1202访问上述两者。存储单元1236和存储器1232存储呈现本文中描述的方法或功能中的任何一种或更多种的指令1216。指令1216还可以在其被机器1200执行期间完全地或部分地驻留在存储器1232内、存储单元1236内、处理器1210中的至少一个内(例如,在处理器的高速缓冲存储器内)或者其任何合适的组合内。因此,存储器1232、存储单元1236和处理器1210的存储器是机器可读介质的示例。
[0100]
如本文中使用的,“机器可读介质”是指能够临时或永久地存储或携载指令和数据的设备,并且可以包括但不限于:随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存、光学介质、磁性介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(eeprom))和/或其任何合适的组合。术语“机器可读介质”应当被视为包括能够存储指令1216的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应当被视为包括能够存储或携载用于由机器(例如,机器1200)执行的指令(例如,指令1216)的任何介质或多个介质的组合,使得指令在由机器1200的一个或更多个处理器(例如,处理器1210)执行时使机器1200执行本文中描述的方法中的任何一种或更多种方法。因此,“机器可读存储介质”是指单个存储装置或设备以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。术语“机器可读介质”包括诸如信号的传输介质。
[0101]
i/o部件1250可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种部件。在特定机器中包括的特定i/o部件1250将取决于机器的类型。例如,诸如移动电话的便携式机器可能会包括触摸输入设备或其他这样的输入机构,而无头服务器(headless server)机器可能不包括这样的触摸输入设备。要理解的是,i/o部件1250可以包括图12中未示出的许多其他部件。i/o部件1250根据功能被分组仅为了简化以下讨论,并且该分组决不是限制性的。在各种示例实施方式中,i/o部件1250可以包括输出部件1252和输入部件1254。输出部件1252可以包括视觉部件(例如,诸如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt)的显示器)、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件1254可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
[0102]
在其他示例实施方式中,i/o部件1250可以包括生物识别部件1256、运动部件
1258、环境部件1260或定位部件1262以及广泛的其他部件。例如,生物识别部件1256可以包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1258可以包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件1260可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声音传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于出于安全考虑而检测危险气体的浓度或用于测量大气中的污染物的气体检测传感器)或可以提供与周围物理环境相对应的指示、测量或信号的其他部件。定位部件1262可以包括位置传感器部件(例如,全球定位系统(gps)接收器部件)、高度传感器部件(例如,检测气压的高度计或气压计,根据该气压可以得到高度)、取向传感器部件(例如,磁力计)等。
[0103]
可以使用各种技术来实现通信。i/o部件1250可以包括通信部件1264,该通信部件1264可操作以分别经由耦接1282和耦接1272将机器1200耦接至网络1280或设备1270。例如,通信部件1264可以包括网络接口部件或其他合适的设备以与网络1280对接。在其他示例中,通信部件1264可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(nfc)部件、部件(例如,低功耗)、部件以及经由其他模态提供通信的其他通信部件。设备1270可以是另外的机器或各种外围设备中的任何(例如,经由通用串行总线(usb)耦接的外围设备)。
[0104]
此外,通信部件1264可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1264可以包括射频识别(rfid)标签阅读器部件、nfc智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(upc)条形码的一维条形码、诸如快速反应(qr)码的多维条形码、aztec码、数据矩阵(data matrix)、数据符号(dataglyph)、最大码(maxicode)、pdf417、超码(ultra code)、ucc rss

2d条形码和其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件1264得到各种信息,例如经由因特网协议(ip)地理位置的位置、经由信号三角测量得到位置、经由检测可以指示特定位置的nfc信标信号得到位置等。
[0105]
在各种示例实施方式中,网络1280的一个或更多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网络(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另外的类型的网络或者两个或更多个这样的网络的组合。例如,网络1280或网络1280的一部分可以包括无线或蜂窝网络,并且耦接1282可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接1282可以实现各种类型的数据传输技术中的任何技术,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线服务(gprs)技术、gsm演进的增强数据率(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操
作性(wimax)、长期演进(lte)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
[0106]
可以经由网络接口设备(例如,包括在通信部件1264中的网络接口部件)使用传输介质并且利用许多公知的传输协议中的任何一种传输协议(例如,超文本传输协议(http))通过网络1280来发送或接收指令1216。类似地,可以使用传输介质经由到设备1270的耦接1272(例如,对等耦接)来发送或接收指令1216。术语“传输介质”应当被视为包括能够编码或携载用于由机器1200执行的指令1216的任何计算机可读介质,并且包括数字或模拟通信信号或其他无形介质以促进这样的软件的通信。
[0107]
以下所编号的示例是各实施方式。
[0108]
1.一种计算机实现的方法,包括:
[0109]
由第一机器向共识服务器发送针对值的新编码分配,所述第一机器具有存储器和至少一个硬件处理器,所述新编码分配表示利用新代码对所述值的编码;
[0110]
由所述第一机器从所述共识服务器接收对所述新编码分配的批准;以及
[0111]
基于从所述共识服务器接收到对所述新编码分配的所述批准,由所述第一机器将所述新编码分配应用于从所述第一机器到一个或更多个其他机器的后续消息中的所述值,所述新编码分配的应用包括将所述新编码分配的新代码与所述值相关联地包括在所述后续消息中。
[0112]
2.根据示例1所述的计算机实现的方法,还包括:由所述第一机器跟踪所述值被包括在第一时间窗口期间发送的消息中的次数,其中,向所述共识服务器发送针对所述值的所述新编码分配是基于所跟踪的次数满足阈值次数。
[0113]
3.根据示例1或示例2所述的计算机实现的方法,其中,应用编码分配还包括:将旧编码分配的旧代码与所述值相关联地包括在所述后续消息中,所述旧编码分配先前已经被所述共识服务器批准并且在批准所述新编码分配之前应用于从所述第一机器到所述一个或更多个其他机器的先前消息。
[0114]
4.根据示例1至3中任一项所述的计算机实现的方法,其中,应用所述新编码分配还包括:将所述新代码的版本标识符和所述旧代码的另一版本标识符包括在所述后续消息中。
[0115]
5.根据示例1至4中任一项所述的计算机实现的方法,其中,应用所述新编码分配还包括:
[0116]
基于网络业务量低于阈值网络业务量的非峰值时间窗口来确定所述非峰值时间窗口;以及
[0117]
等待应用所述新编码分配直到所述非峰值时间窗口。
[0118]
6.根据示例1至5中任一项所述的计算机实现的方法,其中,应用所述新编码分配还包括:将所述新代码的版本标识符包括在所述后续消息中。
[0119]
7.根据示例1至6中任一项所述的计算机实现的方法,还包括:
[0120]
由所述第一机器向所述共识服务器发送针对所述值的另一新编码分配,所述另一新编码分配表示利用另一新代码对所述值的另一编码;
[0121]
由所述第一机器从所述共识服务器接收对所述另一新编码分配的拒绝;以及
[0122]
基于从所述共识服务器接收到对所述另一新编码分配的拒绝,由所述第一机器将
所述新编码分配而不是所述另一新编码分配应用于从所述第一机器到所述一个或更多个其他机器的后续消息中的所述值。
[0123]
8.一种系统,包括:
[0124]
至少一个处理器;以及
[0125]
非暂态计算机可读介质,其存储可执行指令,所述可执行指令在被执行时使所述至少一个处理器执行示例1至9中任一项所述的方法。
[0126]
9.一种非暂态机器可读存储介质,其有形地包括指令集,所述指令集在由至少一个处理器执行时使所述至少一个处理器执行示例1至7中任一项所述的方法。
[0127]
10.一种携载指令集的机器可读介质,所述指令集在由至少一个处理器执行时使所述至少一个处理器执行示例1至7中任一项所述的方法。
[0128]
在整个说明书中,多个实例可以实现被描述为单个实例的部件、操作或结构。尽管一种或更多种方法的各个操作被示出和描述为独立的操作,但是可以同时执行各个操作中的一个或更多个,并且不要求以所示的顺序执行操作。在示例配置中作为独立的部件呈现的结构和功能可以被实现为组合的结构或部件。类似地,作为单个部件呈现的结构和功能可以被实现为多个独立的部件。这些和其他变型、修改、添加以及改进落入本文中的主题的范围内。
[0129]
尽管已经参考具体示例实施方式描述了本发明主题的概述,但是在不脱离本公开内容的实施方式的较宽范围的情况下,可以对这些实施方式进行各种修改和改变。可以在本文中通过术语“发明”来单独地或共同地提及本发明主题的这些实施方式,这仅仅是出于方便,并且并不旨在事实上公开了不止一个公开内容或发明构思的情况下将本技术的范围自主地限制于任何单个公开内容或发明构思。
[0130]
本文中示出的实施方式被足够详细地描述,以使得本领域技术人员能够实践所公开的教导。可以使用并且从中得到其他实施方式,使得可以在不脱离本公开内容的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不以限制性意义理解,并且各种实施方式的范围仅通过所附权利要求连同这样的权利要求所具有的等同物的全部范围来限定。
[0131]
如本文中使用的,术语“或”可以被解释为包含性或排他性意义。此外,可以针对在本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任意的,并且特定操作在特定说明性配置的背景下示出。功能的其他分配被预见并且可以落入本公开内容的各种实施方式的范围内。通常,在示例配置中作为独立资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为多个独立的资源。这些和其他变型、修改、添加和改进落入如由所附权利要求表示的本公开内容的实施方式的范围内。因此,说明书和附图应被认为是说明性的而不是限制性的意义。
[0132]
尽管已经参考具体示例实施方式描述了实施方式,但是将明显的是,在不脱离本公开内容的较宽的精神和范围的情况下,可以对这些实施方式进行各种修改和改变。因此,说明书和附图应被视为说明性意义而不是限制性意义。形成本文的一部分的附图通过说明而非限制的方式示出了可以实践本主题的具体实施方式。足够详细地描述了所示的实施方式,以使得本领域技术人员能够实践本文中公开的教导。可以利用并且从中得到其他实施
方式,使得可以在不脱离本公开内容的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不以限制性意义理解,并且各种实施方式的范围仅通过所附权利要求连同这样的权利要求所具有的等同物的全部范围来限定。
[0133]
可以在本文中通过术语“发明”单独地和/或共同地提及本发明主题的这些实施方式,这仅仅是出于方便,并且不旨在事实上公开了不止一个发明或发明构思的情况下将本技术的范围自主地限制于任何单个发明或发明构思。因此,尽管已经在本文中示出和描述了具体实施方式,但是应当意识到的是,被计划用以实现相同目的的任何布置可以替换所示出的具体实施方式。本公开内容旨在涵盖各种实施方式的任何以及全部调整或变型。对于本领域技术人员而言,在查阅上述描述时,上述实施方式以及本文中未具体描述的其他实施方式的组合将是明显的。
[0134]
提供了本公开内容的摘要以使得读者能够快速地确定本技术公开内容的本质。摘要是基于以下理解而提交:其不用于解释或限制权利要求的范围或含义。另外,在前述具体实施方式中,可以看到的是,出于使本公开内容精简的目的,各种特征在单个实施方式中被分组在一起。本公开内容的方法不应被解释为反映如下意图:所要求保护的实施方式需要比在每个权利要求中明确记载的特征更多的特征。而是,如所附的权利要求反映的,本发明主题在于少于单个公开的实施方式中的所有特征。因此,所附权利要求书在此并入具体实施方式中,其中每项权利要求自身作为独立的实施方式存在。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1