CN116097240A - 可扩展实时位置共享框架 - Google Patents

可扩展实时位置共享框架 Download PDF

Info

Publication number
CN116097240A
CN116097240A CN202180055813.9A CN202180055813A CN116097240A CN 116097240 A CN116097240 A CN 116097240A CN 202180055813 A CN202180055813 A CN 202180055813A CN 116097240 A CN116097240 A CN 116097240A
Authority
CN
China
Prior art keywords
instance
rtg
device object
user
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180055813.9A
Other languages
English (en)
Inventor
利奥尼德·戈尔金
李孟尧
阿里夫·奥古兹耶尔德兹
热雷米·加博尔
罗伯特·玛丽安斯基
赵小菡
本亚明·费德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snap Inc
Original Assignee
Snap Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Snap Inc filed Critical Snap Inc
Publication of CN116097240A publication Critical patent/CN116097240A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开内容的方面涉及用于执行操作的系统和方法,所述操作包括:在分布式存储系统上存储前端(FE)实例和多个实时图(RTG)实例,多个RTG实例中的每一个包括多个设备对象,FE实例被配置成与和第一用户相关联的客户端设备通信;在FE实例与多个RTG实例之间建立双向流式远程过程调用(RPC)连接;由FE实例从客户端设备接收状态更新;由FE实例确定与客户端设备对应的第一设备对象存储在多个RTG实例中的第一RTG实例上;以及从FE实例向第一RTG实例发送包括状态更新的第一消息以更新第一设备对象。

Description

可扩展实时位置共享框架
优先权要求
本申请要求于2020年6月15日提交的序列号为16/946,284的美国专利申请的优先权的权益,该美国专利申请的全部内容通过引用并入本文中。
技术领域
本公开内容总体涉及实时位置共享。
背景技术
用户与其他用户在线交互的流行性持续增长。用户有许多方式与其他用户在线交互。用户可以使用消息收发应用与其朋友通信,并且可以与其他用户在线玩多人视频游戏,或者使用各种其他应用执行其他动作。用户还越来越希望看到他们的朋友当前位于何处。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的部件。为了容易地识别对任何特定元件或动作的讨论,附图标记中的一个或更多个最高位数字指代元件被首次引入时所在的图号。在附图中以示例而非限制的方式示出了一些示例,在附图中:
图1是根据一些示例的其中可以部署本公开内容的联网环境的图解表示。
图2是根据一些示例的具有客户端侧功能和服务器侧功能两者的消息收发系统的图解表示。
图3是根据一些示例的在数据库中维护的数据结构的图解表示。
图4是根据一些示例的消息的图解表示。
图5是根据一些示例的分布式实时状态更新服务器的图解表示。
图6是根据一些示例的分布式实时状态更新服务器的另一图解表示。
图7是根据一些示例的RTG实例的图解表示。
图8A至图8C是根据一些示例的分布式实时状态更新服务器的设备对象之间的消息交换的图解表示。
图9是根据一些示例的基于不同朋友列表版本发送更新的图解表示。
图10A至图10D是示出根据示例的分布式实时状态更新服务器的示例操作的流程图。
图11是根据一些示例的呈计算机系统的形式的机器的图解表示,在该机器中可以执行一组指令,以使该机器执行本文中讨论的方法中任何一种或更多种。
图12是示出可以在其中实现示例的软件架构的框图。
具体实施方式
以下描述包括实施本公开内容的说明性示例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对各种示例的理解。然而,对于本领域技术人员而言明显的是可以在没有这些具体细节的情况下实践示例。通常,公知的指令实例、协议、结构和技术不必详细示出。
通常,用户不仅访问消息收发应用以与其朋友通信,而且访问消息收发应用以确定其朋友的当前位置。一些消息收发应用呈现当前位置作为其中用户交换消息的聊天界面的一部分,并且还可以在交互式地图上呈现位置。例如,表示用户的化身可以位于地图上各个用户的相应位置处。获得朋友的当前位置消耗许多计算资源和网络资源。具体地,可以将每个朋友的位置推送到需要通过网络交换的大量消息的特定用户设备。这可能降低网络性能并且不必要地消耗网络带宽。
在一些系统中,可以由特定用户设备轮询朋友的位置。例如,用户设备可以向服务器发送具有一个或更多个朋友的标识符的请求,以接收一个或更多个朋友的当前位置。然而,即使在这些系统中,也浪费了网络带宽和系统资源。具体地,有时由给定用户设备请求的朋友的位置可能不会非常频繁地改变,并且对这样的朋友的位置的轮询导致相同的位置被发送回给定用户设备,这浪费了系统资源。此外,引入了归因于向各种用户轮询或推送朋友的位置的延迟,这降低了正在传递的位置的准确性。即,例如,如果给定朋友正在活动地四处移动,则被传递到请求设备的位置可能不反映朋友的实际当前位置。这使得这种系统不那么吸引人并且降低了整体用户体验。
所公开的示例寻求提高使用分布式存储系统实时地向客户端设备提供诸如位置信息的状态更新的效率和速度。分布式存储系统使用实时图实例来存储表示各个用户的状态信息(例如位置信息)的设备对象。设备对象通过前端实例彼此通信。当给定用户的位置改变时,在用户的设备对象中更新该位置。该位置以智能且自动的方式传播到用户朋友的设备对象。当用户的朋友中的给定朋友请求用户的当前位置时,诸如当给定朋友打开化身的交互式地图时,给定朋友的设备与前端实例通信以检索存储在给定朋友的设备对象中的用户设备的位置。这减少了总的网络流量并且增加了传递和交换位置更新的速率。这样,使得位置被请求时与位置被提供给给定用户时之间的滞后最小化,这为用户提供了实时的位置共享体验。
具体地,根据所公开的示例,前端(FE)实例和多个实时图(RTG)实例存储在分布式存储系统上。在一些情况下,可以存储多个FE实例和多个RTG实例,可以基于客户端设备的负载和数目来按比例增加/减少FE实例,并且RTG实例具有固定大小。多个RTG实例中的每一个包括多个设备对象,并且FE实例被配置成与和第一用户相关联的客户端设备通信。在FE实例与多个RTG实例之间建立双向流式远程过程调用(RPC)连接。FE实例接收来自客户端设备的状态更新,并且确定与客户端设备对应的第一设备对象存储在多个RTG实例的第一RTG实例上。FE实例将包括状态更新的第一消息发送至第一RTG实例以更新第一设备对象。第一设备对象标识用户的朋友,并且向用户的朋友的设备对象提供状态更新。当用户的给定朋友最终请求诸如用户位置的状态更新时,该信息在给定朋友的设备对象中容易获得,并且实时地传递到给定朋友的设备。
以该方式,根据所公开的示例,减少了用设备完成任务所需的设备资源(例如,处理器周期、存储器和电力使用)。
联网计算环境
图1是示出用于通过网络来交换数据(例如消息和相关联的内容)的示例消息收发系统100的框图。消息收发系统100包括客户端设备102的多个实例,每个实例托管包括消息收发客户端104的多个应用。每个消息收发客户端104经由网络106(例如,因特网)通信上耦接至消息收发服务器系统108和消息收发客户端104的其他实例。消息收发服务器系统108可以包括分布式实时状态更新服务器107,在这种情况下,每个消息收发客户端104经由消息收发服务器系统108从分布式实时状态更新服务器107接收状态更新(例如,位置更新、位置偏好更新、在线状态更新等)。在一些实现方式中,分布式实时状态更新服务器107的全部或一部分在消息收发服务器系统108的外部实现。在这些情况下,每个消息收发客户端104直接经由网络106从分布式实时状态更新服务器107接收状态更新(例如,位置更新、位置偏好更新、在线状态更新等)。
消息收发客户端104能够经由网络106与另一消息收发客户端104和消息收发服务器系统108通信并且交换数据。在消息收发客户端104之间以及消息收发客户端104与消息收发服务器系统108之间交换的数据包括功能(例如,激活功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息收发服务器系统108经由网络106向特定消息收发客户端104提供服务器侧功能。虽然消息收发系统100的某些功能在本文中被描述为由消息收发客户端104或由消息收发服务器系统108执行,但是某些功能的在消息收发客户端104或消息收发服务器系统108内的定位可以是设计选择。例如,在技术上可以优选的是:最初将某些技术和功能部署在消息收发服务器系统108内,但是后面将该技术和功能迁移至客户端设备102具有足够处理能力的消息收发客户端104。
消息收发服务器系统108支持向消息收发客户端104提供的各种服务和操作。这样的操作包括向消息收发客户端104发送数据、从消息收发客户端104接收数据以及对由消息收发客户端104生成的数据进行处理。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体增强和覆盖、消息内容持续条件、社交网络信息和实况事件信息。通过经由消息收发客户端104的用户接口(UI)可用的功能来激活和控制消息收发系统100内的数据交换.
现在具体地转至消息收发服务器系统108,应用程序接口(API)服务器110耦接至应用服务器112并且向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器118利于访问数据库120,该数据库120存储与通过应用服务器112处理的消息相关联的数据。类似地,web服务器124耦接至应用服务器112,并且向应用服务器112提供基于web的接口。为此,web服务器124通过超文本传输协议(HTTP)和若干其他相关协议处理传入的网络请求。
应用程序接口(API)服务器110在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器110提供一组接口(例如,例程和协议),消息收发客户端104可以调用或查询该组接口以激活应用服务器112的功能。应用程序接口(API)服务器110显露由应用服务器112支持的各种功能,包括:帐户注册;登录功能;经由应用服务器112将消息从特定消息收发客户端104发送至另一消息收发客户端104;将媒体文件(例如,图像或视频)从消息收发客户端104发送至消息收发服务器114并且用于另一消息收发客户端104的可能访问;设置媒体数据集合(例如,故事);检索客户端设备102的用户的朋友列表;检索这样的集合;检索消息和内容;在实体图(例如社交图)中添加和删除实体(例如朋友);在社交图中定位朋友;以及打开应用事件(例如,与消息收发客户端104有关)。
应用服务器112托管若干服务器应用和子系统,包括例如消息收发服务器114、图像处理服务器116以及社交网络服务器122。消息收发服务器114实现了若干消息处理技术和功能,特别是与从消息收发客户端104的多个实例接收到的消息中包括的内容(例如,文本和多媒体内容)的聚合和其他处理有关的消息处理技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以被聚合成内容的集合(例如,被称为故事或图库)。然后,使这些集合对消息收发客户端104可用。鉴于对这样的处理的硬件要求,也可以由消息收发服务器114在服务器侧执行数据的其他处理器和存储器密集型处理。
应用服务器112还包括图像处理服务器116,该图像处理服务器116专用于执行各种图像处理操作,通常相对于在从消息收发服务器114发送或者在消息收发服务器114处接收的消息的有效载荷内的图像或视频,执行各种图像处理操作。
社交网络服务器122支持各种社交网络化功能和服务,并且使这些功能和服务可用于消息收发服务器114。为此,社交网络服务器122维护和访问数据库120内的实体图306(如图3所示)。由社交网络服务器122支持的功能和服务的示例包括识别特定用户与其有关系或“关注”其的消息收发系统100的其他用户,以及识别特定用户的兴趣和其他实体。
分布式实时状态更新服务器107存储实例或节点的实时图(RTG)。这些节点维护关于消息收发服务器114的不同用户的各种信息。客户端设备102从分布式实时状态更新服务器107实时地接收来自朋友的更新(例如位置更新)。分布式实时状态更新服务器107包括一个或更多个前端(FE)实例和一个或更多个实时图(RTG)实例。当给定客户端设备102初始连接至分布式实时状态更新服务器107时,或者当消息被定向到给定客户端设备102的用户时,在分布式实时状态更新服务器107上为客户端设备102创建FE实例并且存储FE实例。在一些情况下,访问已经存在的FE实例,在这种情况下,当客户端设备102连接时不需要创建FE实例。这在客户端设备102先前建立了到FE实例或另一FE实例的流式连接的情况下会发生。根据服务器107的负载按需创建FE实例。这可以包括在FE实例中存储客户端设备的用户或客户端设备的唯一设备标识符。FE实例建立到给定客户端设备102的实时链接,以用于与客户端设备102交换信息。FE实例还与多个RTG实例中的每一个建立双向流式实时gRPC(远程过程调用)连接。
在一些示例中,FE实例从客户端设备102接收更新(例如,位置更新)。作为响应,FE实例识别与客户端设备102对应的设备对象。具体地,每个RTG实例存储与各个客户端设备102(例如,物理设备)对应的一个或更多个设备对象。FE实例访问路由信息,该路由信息标识多个RTG实例中的哪一个存储客户端设备102的设备对象。然后,FE实例经由先前建立的gRPC连接将状态更新发送至存储客户端设备102的设备对象的RTG实例。
RTG实例接收状态更新(例如,位置更新或对诸如位置共享偏好的偏好信息的更新)并且识别要针对客户端设备102更新的设备对象。RTG实例用接收到的更新来更新存储在设备对象中的相应状态更新。设备对象处理更新并且识别消息收发系统100上的客户端设备102的用户相关联的多个朋友。设备对象例如基于相应设备对象的当前状态(例如,设备对象指示朋友是活动的还是不活动的)来生成定向到与用户相关联的朋友的设备对象的多个消息。消息包括对状态的更新(例如,对位置的更新)。在一些情况下,设备对象首先确定状态更新是否满足某些标准。例如,设备对象确定包括在更新中的位置是否与先前存储的位置相差超过阈值量。作为另一示例,设备对象确定包括在更新中的位置是否在超过阈值时间量之前被最后更新(例如,先前存储的位置的时间戳超过更新中的位置的当前时间戳多于指定量)。作为另一示例,设备对象基于用户的当前状态(例如,用户当前是活动的还是不活动的、用户当前正在读取消息还是访问实时呈现朋友的位置的交互式地图、用户的最后连接时间等)来确定更新中所包括的位置是否要与用户共享。如果状态更新满足标准或准则,则设备对象向朋友的设备对象发送消息。在一些情况下,可能对于第一组朋友满足标准,而对于第二组朋友不满足标准。在这种情况下,设备对象向第一组朋友的设备对象发送状态更新,并且延迟或者完全阻止向第二组朋友的设备对象发送更新。
在一些示例中,给定朋友的设备对象驻留在或存储在与存储用户的设备对象的RTG实例不同的RTG实例(例如,第二RTG实例)上。在这种情况下,用户的设备对象将被定向到朋友的设备对象的具有更新的消息发送至随机地或伪随机地选择的FE实例。在一些情况下,以轮循方式选择FE实例,其中FE实例存储在列表中,并且选择与消息先前发送至的FE实例相邻的下一个FE实例。一旦到达列表中的最后FE实例,则选择列表中的第一FE实例以向设备对象发送消息。FE实例接收消息并且确定多个RTG实例中的哪一个存储给定朋友的设备对象。FE实例使用存储在FE实例中的路由信息来识别存储设备对象的第二RTG实例。然后,FE实例将消息发送至存储设备对象的RTG实例。RTG实例接收消息并且更新存储在朋友的设备对象中的用户的状态。
在给定客户端设备102与服务器107断开连接之后的阈值时间间隔之后,从分布式实时状态更新服务器107自动删除存储在RTG实例上的设备对象。一旦达到阈值时间间隔,就将存储在设备对象中的信息移动到不同的持久存储设备,并且终止与客户端设备102的实时连接以及到RTG实例的gRPC连接。以这种方式,每当给定的朋友具有对他们的状态的更新时,该更新被传播到与朋友相关联的用户的设备对象。当这样的用户最终连接至系统(例如,打开消息收发客户端104)时,使存储在这样的用户的设备对象中的状态信息对于用户无缝且快速地可用。这避免了用户轮询或等待直接从其朋友接收状态更新的需要,因为当用户离线时在用户的设备对象中更新了这样的信息。在一些情况下,基于服务器107的负载来创建和删除FE实例。生成gRPC代理对象并且将其存储在FE实例上以通过gRPC连接与客户端设备102通信。这样的代理对象从客户端设备102向存储在RTG实例上的相应设备对象提供诸如状态更新或信息的信息。一旦gRPC代理对象与客户端设备102之间的连接终止,则删除gRPC代理对象,并且FE实例保持被存储并且可用于处理进一步的连接。
系统架构
图2是示出根据一些示例的关于消息收发系统100的进一步细节的框图。具体地,消息收发系统100被显示为包括消息收发客户端104和应用服务器112。消息收发系统100包含若干子系统,这些子系统在客户端侧由消息收发客户端104支持并且在服务器侧由应用服务器112支持。这些子系统包括例如短暂定时器系统202、集合管理系统204、增强系统206、地图系统208和游戏系统210。
短暂定时器系统202负责施行由消息收发客户端104和消息收发服务器114对内容进行临时或限时访问。短暂定时器系统202包含若干个定时器,这些定时器基于与消息或消息集合(例如,故事)相关联的持续时间和显示参数,选择性地实现经由消息收发客户端104访问(例如,用于呈现和显示)消息和相关联的内容。下面提供关于短暂定时器系统202的操作的另外的细节。
集合管理系统204负责管理媒体的组或集合(例如,文本、图像、视频和音频数据的集合)。可以将内容(例如,消息,包括图像、视频、文本和音频)的集合组织成“事件库”或“事件故事”。这样的集合可以在指定的时间段(例如,与内容相关的事件的持续时间)内可用。例如,可以在音乐会的持续时间内使与音乐会相关的内容作为“故事”可用。集合管理系统204还可以负责向消息收发客户端104的用户接口发布提供特定集合存在的通知的图标。
此外,集合管理系统204还包括使得集合管理者能够管理和策展特定内容集合的策展界面212。例如,策展界面212使得事件组织者能够策展与特定事件相关的内容集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些示例中,可以为将用户生成的内容包括到集合中向用户支付补偿。在这样的情况下,集合管理系统204进行操作以自动地向这样的用户支付以使用他们的内容。
增强系统206提供使得用户能够增强(例如,标注或以其他方式修改或编辑)与消息相关联的媒体内容的各种功能。例如,增强系统206提供与生成和发布用于由消息收发系统100处理的消息的媒体覆盖相关的功能。增强系统206基于客户端设备102的地理位置可操作地向消息收发客户端104提供媒体覆盖或增强(例如,图像过滤器)。在另一示例中,增强系统206基于诸如客户端设备102的用户的社交网络信息的其他信息可操作地向消息收发客户端104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括色彩覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片之上的文本或图像。在另一示例中,媒体覆盖包括位置标识覆盖(例如,威尼斯海滩)、实时事件的名称或商家名称覆盖(例如,海滩咖啡馆)。在另一示例中,增强系统206使用客户端设备102的地理位置来标识包括在客户端设备102的地理位置处的商家的名称的媒体覆盖。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以存储在数据库120中并且通过数据库服务器118访问。
在一些示例中,增强系统206提供基于用户的发布平台,该基于用户的发布平台使得用户能够选择地图上的地理位置并且上传与所选择的地理位置相关联的内容。用户还可以指定应当向其他用户提供特定媒体覆盖的情况。增强系统206生成包括所上传的内容并且将所上传的内容与所选择的地理位置相关联的媒体覆盖。
在其他示例中,增强系统206提供基于商家的发布平台,该基于商家的发布平台使商家能够经由竞价过程选择与地理位置相关联的特定媒体覆盖。例如,增强系统206将最高竞价商家的媒体覆盖与相应的地理位置相关联达预定义时间量。
地图系统208提供各种地理位置功能,并且支持由消息收发客户端104呈现基于地图的媒体内容和消息。例如,地图系统208使得能够在地图上显示(例如,存储在配置文件数据308中的)用户图标或化身,以在地图的上下文内指示用户的“朋友”的当前或过去位置,以及由这些朋友生成的媒体内容(例如,包括照片和视频的消息的集合)。例如,可以在消息收发客户端104的地图界面上,将用户从特定地理位置发布到消息收发系统100的消息在地图的上下文内在该特定位置处显示给特定用户的“朋友”。用户还可以经由消息收发客户端104与消息收发系统100的其他用户(例如,使用适当的状态化身)共享他或她的位置和状态信息,其中该位置和状态信息在消息收发客户端104的地图界面的上下文内被类似地显示给选定用户。
游戏系统210在消息收发客户端104的上下文内提供各种游戏功能。消息收发客户端104提供游戏界面,该游戏界面提供可用游戏的列表(例如,基于web的游戏或基于web的应用),该游戏可以由用户在消息收发客户端104的上下文中启动并且与消息收发系统100的其他用户一起玩。消息收发系统100还使特定用户能够通过从消息收发客户端104向这样的其他用户发出邀请来邀请其他用户参与玩特定游戏。消息收发客户端104还支持在玩游戏的上下文中的语音消息传送和文本消息传送(例如,聊天)两者,提供游戏的排行榜,并且还支持提供游戏内奖励(例如,钱币和物品)。
数据架构
图3是示出根据某些示例的可以存储在消息收发服务器系统108的数据库120中的数据结构300的示意图。虽然数据库120的内容被示出为包括若干表,但是应当理解,数据可以存储在其他类型的数据结构(例如,作为面向对象数据库)中。
数据库120包括存储在消息表302内的消息数据。对于任何一条特定消息,该消息数据包括至少消息发送者数据、消息接收方(或接收者)数据和有效载荷。下面参照图4描述关于可以被包括在消息中并且被包括在存储在消息表302中的消息数据中的信息的另外的细节。
实体表304存储实体数据,并且(例如,参考地)链接到实体图306和配置文件数据308。在实体表304内为其维持记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管实体类型如何,消息收发服务器系统108存储关于其的数据的任何实体可以是识别的实体。为每个实体提供唯一的标识符以及实体类型标识符(未示出)。
实体图306存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于兴趣或基于活动的社交关系、专业关系(例如,在共同的公司或组织工作)。
配置文件数据308存储关于特定实体的多种类型的配置文件数据。基于由特定实体指定的隐私设置,配置文件数据308可以被选择性地使用并且呈现给消息收发系统100的其他用户。在实体是个人的情况下,配置文件数据308包括例如用户名、电话号码、地址、设置(例如,通知和隐私设置),以及用户选择的化身表示(或这种化身表示的集合)。然后,特定用户可以将这些化身表示中的一个或更多个选择性地包括在经由消息收发系统100传送的消息的内容中以及在由消息收发客户端104向其他用户显示的地图界面上。化身表示的集合可以包括“状态化身”,其呈现用户可以选择在特定时间进行通信的状态或活动的图解表示。
在实体是团体的情况下,除了团体名称、成员和相关团体的各种设置(例如,通知)之外,团体的配置文件数据308还可以类似地包括与团体相关联的一个或更多个化身表示。
数据库120还在增强表310中存储增强数据,例如覆盖或过滤器。增强数据与视频(视频的数据存储在视频表314中)和图像(图像的数据存储在图像表316中)相关联并且应用于视频和图像。
在一个示例中,过滤器是在向接收方用户呈现期间被显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型的,包括当发送用户正在编写消息时由消息收发客户端104呈现给发送用户的一组过滤器中用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置被呈现给发送用户。例如,可以基于由客户端设备102的全球定位系统(GPS)单元确定的地理位置信息,由消息收发客户端104在用户接口内呈现特定于附近或特殊位置的地理位置过滤器
另一种类型的过滤器是数据过滤器,其可以由消息收发客户端104基于在消息创建过程期间由客户端设备102收集的其他输入或信息选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表316内的其他增强数据包括增强现实内容项(例如,对应于应用透镜或增强现实体验)。增强现实内容项可以是可以被添加至图像或视频的实时特殊效果和声音。
如上所述,增强数据包括增强现实内容项、覆盖、图像变换、AR图像,以及指代可以应用于图像数据(例如,视频或图像)的修改的类似的术语。这包括实时修改,其在使用客户端设备102的设备传感器(例如,一个或多个摄像装置)捕获图像时对图像进行修改并且然后在修改的情况下在客户端设备102的屏幕上显示图像。这还包括对所存储的内容的修改,例如对可以被修改的库中的视频剪辑的修改。例如,在可以访问多个增强现实内容项的客户端设备102中,用户可以使用具有多个增强现实内容项的单个视频剪辑来查看不同的增强现实内容项将如何修改存储的剪辑。例如,通过为内容选择不同的增强现实内容项,可以将应用不同伪随机运动模型的多个增强现实内容项应用于该同一内容。类似地,实时视频捕获可以与示出的修改一起使用,以显示当前由客户端设备102的传感器捕获的视频图像将如何修改捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者由设备传感器捕获的内容可以在进行或不进行修改(或二者)的情况下被记录并且存储在存储器中。在某些系统中,预览功能可以显示不同的增强现实内容项将如何同时在显示器的不同窗口中显示。例如,这可以实现同时在显示器上查看具有不同伪随机动画的多个窗口。
因此,使用增强现实内容项的各种系统或使用该数据修改内容的其他这样的变换系统以及数据可以涉及视频帧中对象(例如,脸、手、身体、猫、狗、表面、物体等)的检测,在这些对象离开视场、进入视场以及在视场四处移动时对这些对象的跟踪,以及在跟踪这些对象时对其进行的修改或变换。在各种示例中,可以使用用于实现这样的变换的不同方法。一些示例可以涉及生成一个或多个对象的3维网格模型,以及在视频内使用模型的变换和动画纹理来实现变换。在其他示例中,可以使用对对象上的点的跟踪来将图像或纹理(其可以是二维或三维的)放置在所跟踪的位置处。在更进一步的示例中,可以使用对视频帧的神经网络分析来将图像、模型或纹理放置在内容(例如,图像或视频帧)中。因此,增强现实内容项既指用于在内容中创建变换的图像、模型和纹理,也指通过对象检测、跟踪和放置实现这样的变换所需的附加建模和分析信息。
可以利用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)来执行实时视频处理。例如,用户可以加载视频文件并且将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。此外,可以使用计算机动画模型来处理任何对象,例如人的面部和人身体的各部分、动物或非生物(诸如椅子、汽车或其他物品)。
在一些示例中,当与要变换的内容一起选择特定修改时,要变换的元素由计算设备识别,并且然后如果要变换的元素存在于视频的帧中,则被检测和跟踪。根据修改请求修改对象的元素,从而变换视频流的帧。对于不同类型的变换,可以通过不同的方法执行对视频流的帧的变换。例如,对于主要是指改变对象的元素的形式的帧的变换,对象的每个元素的特征点(例如,使用主动形状模型(ASM)或其他已知方法)被计算。然后,针对对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中的对象的元素的后续阶段。在跟踪过程中,针对每个元素的提及的网格与每个元素的位置对准。然后,在网格上生成附加点。基于修改请求针对每个元素生成第一点的集合,并且基于第一点的集合和修改的请求针对每个元素生成第二点的集合。然后,可以通过基于第一点的集合和第二点的集合以及网格修改对象的元素,对视频流的帧进行转换。在这种方法中,也可以通过跟踪和修改背景来改变或扭曲被修改对象的背景。
在一些示例中,可以通过计算对象的每个元素的特征点并且基于计算的特征点生成网格来执行使用对象的元素改变对象的一些区域的变换。在网格上生成点,然后基于这些点生成各种区域。然后,通过将每个元素的区域与至少一个元素中的每一个的位置对准来跟踪对象的元素,并且可以基于修改的请求来修改区域的属性,从而转换视频流的帧。根据具体的修改请求,可以以不同的方式变换所提及的区域的属性。这样的修改可以涉及:改变区域的颜色;从视频流的帧中移除区域的至少一些部分;基于修改请求将一个或更多个新对象包括在区域中;以及对区域或对象的元素进行修改或使其变形。在各种示例中,可以使用这样的修改或其他类似修改的任何组合。对于要被动画化的某些模型,可以选择一些特征点作为控制点,以用于确定用于模型动画的选项的整个状态空间。
在使用面部检测来变换图像数据的计算机动画模型的一些示例中,使用特定面部检测算法(例如,Viola-Jones)在图像上检测面部。然后,将主动形状模型(ASM)算法应用于图像的面部区域以检测面部特征参考点。
在其他示例中,可以使用适合面部检测的其他方法和算法。例如,在一些示例中,使用界标来定位特征,该界标表示存在于所考虑的大多数图像中的可区分点。例如,对于面部界标,可以使用左眼瞳孔的位置。如果初始界标不可识别(例如,如果人有眼罩),则可以使用次级界标。这样的界标识别过程可以用于任何这样的对象。在一些示例中,一组界标形成形状。可以使用形状中的点的坐标将形状表示为矢量。将一个形状通过相似变换(允许平移、缩放和旋转)与另一形状对准,该相似变换使形状点之间的平均欧几里得距离最小化。平均形状是对准的训练形状的平均。
在一些示例中,开始从与由全局面部检测器确定的面部的位置和大小对准的平均形状搜索界标。然后,这样的搜索重复以下步骤:通过每个点周围的图像纹理的模板匹配来调整形状点的位置而建议暂定形状,并且然后使暂定形状符合全局形状模型,直至发生收敛。在一些系统中,个别模板匹配是不可靠的,并且形状模型将弱模板匹配的结果进行池化,以形成较强的整体分类器。整个搜索在从粗略分辨率到精细分辨率的图像金字塔的每个级别上重复。
变换系统可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并且在客户端设备102上本地执行复杂的图像操纵,同时保持适当的用户体验、计算时间和功耗。复杂的图像操纵可以包括大小和形状变化、情绪转换(例如,将面部从皱眉变为微笑)、状态转换(例如,使对象变老、减少表观年龄、改变性别)、风格转换、图形元素应用,以及由已经被配置成在客户端设备102上有效执行的卷积神经网络实现的任何其他合适的图像或视频操纵。
在一些示例中,用于变换图像数据的计算机动画模型可以由系统使用,在该系统中,用户可以使用具有神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍),该神经网络操作作为在客户端设备102上操作的消息收发客户端104的一部分。在消息收发客户端104内操作的变换系统确定图像或视频流中的面部的存在并且提供与计算机动画模型相关联的修改图标以变换图像数据,或者计算机动画模型可以被呈现为与本文中描述的界面相关联。修改图标包括以下变化,该变化可以是作为修改操作的一部分的修改图像或视频流中的用户面部的基础。一旦选择了修改图标,则变换系统发起将用户的图像转换以反映所选择的修改图标(例如,在用户上生成笑脸)的过程。一旦图像或视频流被捕获并且指定的修改被选择,修改的图像或视频流就可以呈现在客户端设备102上显示的图形用户界面中。变换系统可以在图像或视频流的一部分上实施复杂的卷积神经网络,以生成和应用所选择的修改。也就是说,用户就可以捕获图像或视频流并且一旦选择了修改图标,则实时或近乎实时地被呈现了修改结果。此外,当正在捕获视频流时,修改可以是持久的,并且所选择的修改图标保持被切换。机器教导的神经网络可以用于实现这样的修改。
呈现由变换系统执行的修改的图形用户界面可以为用户提供附加的交互选项。这样的选项可以基于用于发起内容捕获和对特定计算机动画模型的选择的界面(例如,从内容创建者用户界面发起)。在各种示例中,修改可以在对修改图标的初始选择之后是持久的。用户可以通过轻击或以其他方式选择由变换系统修改的面部来打开或关闭修改,并且将其存储以供以后查看或浏览到成像应用的其他区域。在由变换系统修改多个面部的情况下,用户可以通过轻击或选择在图形用户界面内修改和显示的单个面部来全局打开或关闭修改。在一些示例中,可以单独修改一组多个面部中的个别面部,或者这样的修改可以通过轻击或选择图形用户界面内显示的个别面部或一系列个别面部来单独切换。
故事表312存储关于消息和相关联的图像、视频或音频数据的集合的数据,所述消息和相关联的图像、视频或音频数据被编译成集合(例如,故事或图库)。特定集合的创建可以由特定用户(例如在实体表304中为其维护记录的每个用户)发起。用户可以以已经由该用户创建和发送/广播的内容的集合的形式创建“个人故事”。为此,消息收发客户端104的用户接口可以包括用户可选择的图标,以使得发送方用户能够将特定内容添加到他或她的个人故事。
集合还可以构成作为来自多个用户的内容的集合的“实况故事”,所述内容是手动地、自动地或者使用手动技术和自动技术的组合创建的。例如,“实况故事”可以构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备启用了位置服务并且在特定时间处于共同位置事件处的用户可以例如经由消息收发客户端104的用户接口被呈现有向特定实况故事贡献内容的选项。可以由消息收发客户端104基于他或她的位置向用户标识实况故事。最终结果是从群体角度讲述的“实况故事”。
另外类型的内容集合被称为“位置故事”,其使得其客户端设备102位于特定地理位置(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些示例中,对位置故事的贡献可能需要二级认证以验证最终用户属于特定组织或其他实体(例如,是大学校园中的学生)。
如上面提到的,视频表314存储视频数据,在一个示例中,该视频数据与在消息表302内为其维护记录的消息相关联。类似地,图像表316存储图像数据,该图像数据与其消息数据存储在实体表304中的消息相关联。实体表304可以使来自增强表310的各种增强与存储在图像表316和视频表314中的各种图像和视频相关联。
分布式实时状态更新服务器数据318存储由分布式实时状态更新服务器107使用的实例、节点和路由表或信息。例如,分布式实时状态更新服务器数据318存储FE实例、RTG实例、路由表、代理对象或节点、设备对象以及区域间代理实例或节点。
数据通信架构
图4是示出根据一些示例的消息400的结构的示意图,消息400由消息收发客户端104生成,以用于传送至另外的消息收发客户端104或消息收发服务器114。特定消息400的内容用于填充存储在数据库120中的消息表302,该消息表302可由消息收发服务器114访问。类似地,消息400的内容被存储在存储器中作为客户端设备102或应用服务器112的“传输中”或“飞行中”的数据。消息400被示出为包括以下示例组成部分
·消息标识符402:标识消息400的唯一标识符。
·消息文本有效载荷404:要由用户经由客户端设备102的用户接口生成并且被包括在消息400中的文本。
·消息图像有效载荷406:由客户端设备102的摄像装置部件捕获的或从客户端设备102的存储器部件检索的、并且包括在消息400中的图像数据。针对发送或接收到的消息400的图像数据可以被存储在图像表316中。
·消息视频有效载荷408:由摄像装置部件捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息400中的视频数据。针对发送或接收到的消息400的视频数据可以存储在视频表314中。
·消息音频有效载荷410:由麦克风捕获的或从客户端设备102的存储器部件检索的、并且包括在消息400中的音频数据。
·消息增强数据412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的增强的增强数据(例如,过滤器、标贴或其他注解或增强)。针对发送或接收到的消息400的增强数据可以存储在增强表310中。
·消息持续时间参数414:参数值,其指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将经由消息收发客户端104被呈现给用户或使其对于用户可访问的以秒为单位的时间量。
·消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度坐标和经度坐标)。多个消息地理位置参数416值可以被包括在有效载荷中,这些参数值中的每一个参数值与包括在内容中的内容项(例如消息图像有效载荷406内的特定图像或消息视频有效载荷408中的特定视频)相关联。
·消息故事标识符418:标识一个或更多个内容集合(例如,在故事表312中标识的“故事”)的标识符值,其中消息400的消息图像有效载荷406中的特定内容项与所述一个或更多个内容集合相关联。例如,可以使用标识符值将消息图像有效载荷406内的多个图像各自与多个内容集合相关联。
·消息标签420:每个消息400可以用多个标签来标记,多个标签中的每个标签指示消息有效载荷中所包括的内容的主题。例如,在消息图像有效载荷406中包括的特定图像描绘动物(例如狮子)的情况下,可以在消息标签420中包括指示相关动物的标签值。标签值可以基于用户输入手动地生成,或可以使用例如图像识别自动地生成。
·消息发送者标识符422:指示在其上生成消息400并且从其发送消息400的客户端设备102的用户的标识符(例如消息收发系统标识符、电子邮件地址或设备标识符)。
·消息接收者标识符424:指示消息400被寻址到的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
消息400的各个组成部分的内容(例如,值)可以是指向其之内存储有内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表316内的位置的指针(或是图像表316内的位置的地址)。类似地,消息视频有效载荷408内的值可以指向存储在视频表314内的数据,存储在消息增强数据412内的值可以指向存储在增强表310中的数据,存储在消息故事标识符418内的值可以指向存储在故事表312中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表304内的用户记录。
图5是根据一些示例的分布式实时状态更新服务器107的图解表示。分布式实时状态更新服务器107包括一个或更多个FE实例510、一个或更多个RTG实例520和RTG配置图530。给定客户端设备102建立与第一FE实例510的gRPC连接。在一个示例中,当给定客户端设备102打开消息收发客户端104的聊天界面或地图界面时,给定客户端设备102建立与第一FE实例510的gRPC连接。如果给定客户端设备102先前未连接至分布式实时状态更新服务器107,或者在当前时间之前已连接了超过阈值时间,则创建新的FE实例510。第一FE实例510生成用于与给定客户端设备102通信的代理对象512。代理对象512将来自给定客户端设备102的消息发送至存储在第一RTG实例520上的相应设备对象。
FE实例510从RTG配置图530周期性地获得路由信息,并且在FE实例510生成时从RTG配置图530获得路由信息。路由信息标识多个设备对象在多个RTG实例520上的存储位置。FE实例510确定客户端设备102的标识符是否被包括在所获得的路由信息中。如果是,则FE实例510经由代理对象512从客户端设备102接收更新,并且将该更新发送至存储在RTG实例上的与客户端设备102相关联的设备对象。例如,FE实例510确定第一设备对象522对应于客户端设备102的标识符,并且确定第一设备对象522被维护或存储在第一RTG实例520上。在这种情况下,FE实例510上的代理对象512通过向第一RTG实例520发送被定向到第一设备对象522的消息来向第一设备对象522发送更新。第一RTG实例520还将存储在第一设备对象522中的信息发送回连接至与第一设备对象522相关联的客户端设备102的FE实例510。为此,第一RTG实例520确定分配给从其接收消息的代理对象512的唯一随机标识符,并且将该标识符存储在路由信息529中。第一RTG实例520使用存储在路由信息529中的标识符来识别当前连接至客户端设备102的代理对象512和FE实例510。FE实例510经由代理对象512向客户端设备102提供从RTG实例520接收的信息(设备对象522的内容),客户端设备102然后更新图形用户界面(例如,实时更新地图上的朋友的位置)。
FE实例510可以确定客户端设备102的标识符在所获得的路由信息中缺失或未被包括在所获得的路由信息中。在这种情况下,FE实例510指示RTG实例520之一针对客户端设备102生成新的设备对象。然后,FE实例510经由代理对象512从客户端设备102向设备对象提供数据,或者从设备对象向客户端设备102提供数据。
每个RTG实例520存储一个或更多个设备对象。例如,第一RTG实例520存储第一设备对象522和第二设备对象524。第二RTG实例存储第三设备对象526。每个RTG实例520周期性地获得路由信息529,该路由信息529标识哪些设备对象被存储在相应的RTG实例520中。路由信息529指示由每个相应RTG实例520处理的设备标识符的范围。第一设备对象522可以处理从客户端设备102接收的更新并且识别存储在第一设备对象522上的一个或更多个朋友。第一设备对象522生成包括供传输至朋友的设备对象的更新的消息。第一消息可以直接在第一RTG实例520内被发送至第二设备对象524。需要被递送至第三设备对象526的第二消息可以经由一个或更多个FE实例510被发送至第三设备对象526。即,第三设备对象526可以在存储第一设备对象的RTG实例520外部的RTG实例上。在这种情况下,RTG实例520以随机或循环或轮循方式选择给定FE实例510或FE实例之一上的代理对象。RTG实例520将具有第三设备对象526的标识符的消息发送至所选择的FE实例510或代理对象。所选择的FE实例510接收该消息,并且基于存储在所选择的FE实例510上的路由信息514来确定RTG实例中的哪个存储第三设备对象526。然后,所选择的FE实例510或代理对象将该消息发送至存储第三设备对象526的所识别或确定的RTG实例,以更新与第一设备对象522相关联的用户的信息。
作为示例,第一设备对象522可以更新客户端设备102的位置。该位置更新可以与客户端设备102的用户的其他朋友共享。第三设备对象526可以存储朋友及其相应位置的列表。当第三设备对象526从第一设备对象522接收到对位置的更新时,第三设备对象526识别与第一设备对象522相关联的用户,并且更新针对用户存储的当前位置。FE实例510可以使用存储在与第三设备对象526对应的FE实例510中的另一代理对象来建立与朋友的客户端设备102的连接。在建立连接后,将存储在第三设备对象526中的朋友的位置提供给朋友的客户端设备102,以更新客户端设备102上呈现的图形用户界面。以该方式,用户可以接收对其朋友在地图上的位置的几乎即时更新并且看到其朋友在地图上活动地移动。
在一些示例中,当最初生成并且存储FE实例510时,为FE实例510(例如,存储在FE实例510上的代理对象)分配随机标识符。为存储在RTG实例中的每个设备对象分配与和该设备对象相关联的用户标识符对应的标识符。例如,第一设备对象522与客户端设备102的用户相关联,并且被分配与客户端设备102的用户的用户标识符(例如,用户名)相匹配的标识符。在一些情况下,FE实例仅与RTG实例通信,而不彼此直接通信或交换消息。在一些实现方式中,第一RTG实例520存储在FE实例510上存储的代理对象512的随机标识符,该代理对象512向第一RTG实例520发送消息。当第一RTG实例520中的任何设备对象需要将消息发送回代理对象512时,第一RTG实例520使用所存储的随机标识符来找到适当的代理对象并且将消息路由到该适当的代理对象,并且然后路由到相应的客户端设备102。
FE实例510与RTG实例520之间的布置和交互使得可以在存储器中具有数千个设备对象,而无需执行复杂的同步操作。这还使系统可扩展,并且允许对象以分布式方式驻留在地理上的任何地方和各种存储设备上。
在一些示例中,将成组的FE实例510和RTG实例520被划分到不同的地理区域。例如,第一组FE实例510和RTG实例520存储在第一地理区域(例如,美国)中,而第二组FE实例510和RTG实例520存储在第二地理区域(例如,澳大利亚)中。在相同地理区域内的第一组中的FE实例510与RTG实例520之间交换的消息实时发送。在第一组中的FE实例510与第二组中的FE实例510之间交换的消息被分组并且周期性地批量发送。以该方式,减少了在不同地理区域之间发送消息的次数,这更好地利用了网络资源和带宽。
图6是根据一些示例的跨不同地理区域的分布式实时状态更新服务器107的图解表示。具体地,用户与其在地理上所处的区域相关联。例如,第一地理区域中的第一用户与第一地理区域中的设备对象相关联。第二地理区域中的第二用户与第二地理区域中的设备对象相关联。用户与其所处的区域之间并且因此用户与其相应的设备对象所处的区域之间的映射存储在全局复制的数据库表中。该表在各个地理区域上共享和复制。在一些情况下,当用户移动到不同的地理区域时,映射被周期性地或实时地更新。响应于确定用户已经改变了地理区域,将在第一地理区域中为用户存储的设备对象移动或复制到与新用户位置对应的地理区域中的RTG实例。在一些实现方式中,设备对象被移动或复制,并且分配给用户的地理区域被立即更新,或者在用户已经在新的地理区域中停留了阈值天数之后被更新。
在一些示例中,第一地理区域中的第一设备对象522可以生成被定向到第二地理区域中的第二设备对象的消息。具体地,第一设备对象522在全局复制的数据库中查找与第二设备对象相关联的用户标识符,以确定第二设备对象是否在第一地理区域中。如果确定第二设备对象在第一地理区域中,则第一设备对象522将消息发送至其中存储有第二设备对象的RTG实例。如果确定第二设备对象在第二地理区域中,则第一设备对象522识别与第二区域对应的第一区域间代理节点。第一区域间代理节点可以位于第一地理区域或任何其他合适的位置。第一设备对象522经由FE实例510向区域间代理节点发送具有第二用户和第二设备对象的标识符的消息至所识别的区域间代理节点。
第一区域间代理节点收集并且捆绑来自第一地理区域和其他地理区域引导的多个消息。一旦第一区域间代理节点确定从第一区域间代理节点上一次向位于第二地理区域中的第二区域间代理节点发送消息起已经经过了阈值时间段,第一区域间代理节点就向第二区域间代理节点发送所收集和捆绑的多个消息。在一些实现方式中,一旦第一区域间代理节点确定已达到阈值数目的所收集的消息,第一区域间代理节点就将所收集和捆绑的多个消息发送至第二区域间代理节点。位于第二地理区域中的第二区域间代理节点接收来自第一区域间代理节点的捆绑消息,并且将消息(例如,随机地)分发到第二地理区域中的FE实例。具体地,第二地理区域中的FE实例接收来自第二区域间代理节点的被定向到第二设备对象的消息,并且识别第二地理区域中的包括第二设备对象的RTG实例。FE实例经由所识别的RTG实例向第二设备对象提供消息。
图7是根据一些示例的RTG实例520的图解表示。RTG实例520是结合图5和图6讨论的许多RTG实例之一的实例。作为示例,RTG实例520包括路由器529、设备对象522、输入通道730、goroutine 720(或coroutine),并且可以与远程数据库710通信。在一个示例中,设备对象522存储给定用户的各种信息,诸如用户的最后已知位置、用户的朋友列表、用户的朋友群、设备对象522的最后更新时间、朋友列表或朋友群中的每个朋友的状态和位置信息。
设备对象522经由输入通道730接收消息。例如,设备对象522接收与设备对象522相关联的用户的位置更新或存储在朋友列表中的用户的朋友的位置更新。设备对象522接收设备对象522中列出的用户的一个或更多个朋友的在线状态更新。goroutine 720(或coroutine)可以操纵存储在设备对象522中的设备数据。其通过循环访问经由输入通道730接收的消息并且基于消息类型对消息采取动作来这样做。在某一时刻,goroutine720可以决定不再需要设备对象。当这种情况发生时,从图中删除设备对象,并且终止goroutine720。goroutine 720将存储在设备对象522中的任何相关信息复制到远程数据库710。该信息可以与对应于设备对象522的用户标识符相关联,并且当在稍后的某个时间为同一用户创建新的设备对象522时,该信息被检索并且复制到新的设备对象522。
每当例如利用FE实例510中的代理对象在客户端设备102与分布式实时状态更新服务器之间建立流式gRPC连接时,生成给定用户的设备对象522。在一些情况下,当用户的朋友发送被定向到给定用户的消息时,生成给定用户的设备对象522。在启动时,当初始地创建设备对象522时,设备对象522从消息收发服务器114检索初始朋友列表。然后,设备对象522向与初始朋友列表中的朋友对应的每个设备对象发送消息。即,设备对象522识别列表中每个朋友的用户标识符,并且向与所识别的用户标识符中相应的一个相关联的每个设备对象发送消息。在一些情况下,设备对象522仅向被确定为处于活动状态的这些朋友(例如,当前在线的用户)发送消息。该消息宣布设备对象522刚刚变为在线。
在发送宣布设备对象522已经变为在线的消息之后,goroutine 720开始以特定循环处理在输入通道730上接收的消息。该循环包括根据输入消息的类型处理输入消息(如果有输入的话)。即,可以针对不同类型的消息执行不同的功能。然后,goroutine 720检查过期的朋友位置,并且如果有任何位置过期则删除这些位置。goroutine 720检查否需要使状态持续。如果状态是脏的(dirty)并且如果该状态还没有持续达阈值时间段,则使状态持续。接下来,goroutine 720检查需要定期刷新的偏好。可选地,goroutine 720接下来访问用户位置的第二远程源(例如,第三方源)以拉取或确定与设备对象522相关联的用户的当前位置。如果goroutine 720确定来自第二远程源的拉取的位置不同达到一定因素(例如,相对于为用户存储在设备对象522中的当前位置超过一定距离),则goroutine 720基于从第二远程源检索的位置来更新当前位置。最后,goroutine 720检查客户端设备102或与设备对象522相关联的用户的不活动性。如果设备或用户不活动达到了阈值时间段(例如,8小时),例如如果在设备对象522的输入通道730上没有接收到消息,则将来自设备对象522的信息移动到远程数据库710,并且将该信息与对应于设备对象522的用户的标识符相关联。然后,删除设备对象522并且终止goroutine 720。如果设备或用户并未不活动达到了阈值时间段,则goroutine 720重新开始包括处理输入通道730上的输入消息的循环。
图8A是根据一些示例的分布式实时状态更新服务器的设备对象之间的消息交换的图解表示。如图8A所示,第一用户810(例如,第一用户810的第一客户端设备102)经由流式gRPC连接向与第一用户810相关联的第一设备对象830发送更新(例如,状态更新或位置更新)。图8A所示的节点之间的链路示出了数据流的方向,并且链路的粗细示出了连接的类型(例如,实时数据交换或速率受限数据交换)。
在一个示例中,第一设备对象830从第一用户810接收位置更新。作为响应,第一设备对象830将位置更新推送到与第二用户820对应的第二设备对象832。第二用户820也向与第二用户820相关联的第二设备对象832提供位置更新。第二设备对象832还通过流式gRPC连接840将来自第二用户820的位置更新推送到第一设备对象830。一旦第一设备对象830从第二设备对象832接收到对位置的更新,第一设备对象830就识别第一设备对象830中对应于第二用户820的条目,并且用从第二设备对象832接收到的更新位置来更新条目中存储的位置。
第一设备对象830还将位置更新推送到与第三用户对应的第三设备对象834。第三用户可以不将位置更新发送回第一用户,并且在这种情况下,第三设备对象834仅从第一设备对象830接收位置更新,而不将位置信息发送回第一设备对象830。
在一些实现方式中,在第一设备对象830与第二设备对象832之间实时交换位置更新。即,当第一设备对象830从第一用户810接收到位置更新时,第一设备对象830立即将该更新发送至第二设备对象832。这可以响应于第一设备对象830确定与第二设备对象832相关联的第二用户820具有指示第二用户820需要实时位置信息的状态而执行。例如,如果第二用户820当前正在观看显示第二用户820的朋友的位置的交互式地图,则该状态被发送并且存储在朋友在第一设备对象830中的条目中。第一设备对象830基于确定第二用户820的状态为正在观看显示朋友位置的交互式地图,则在接收到更新时将从第一用户810接收的位置的更新实时发送至第二设备对象832。此外,第二设备对象832确定第一用户810也正在观看朋友的位置的交互式地图,并且因此可以与第一设备对象830实时地共享从第二用户820接收的位置更新。
第一设备对象830可以存储与第三设备对象834相关联的第三用户的状态,该状态指示第三用户当前使消息收发客户端104打开但未观看显示朋友的位置的交互式地图。在这种情况下,第一设备对象830可以周期性地而不是实时地通过速率受限链路841向第三设备对象834发送或与第三设备对象834共享从第一用户810接收的位置更新。即,仅在第一用户810的位置满足第一条件(例如,改变超过第一阈值量,或者如果该位置在超过第一阈值时间量之前被最后发送至第三设备对象834(例如,从位置的最后更新被发送至第三设备对象834起所经过的时间超过第一阈值))的情况下,第一设备对象830可以将对第一用户810的位置的更新发送至第三设备对象834。以该方式,同时地,第一用户810的位置更新可以实时发送给一些用户,但是周期性地或者根本不发送给其他用户
第一设备对象830可以存储与第四设备对象836相关联的第四用户的状态,该状态指示第四用户当前是不活动的。在这种情况下,第一设备对象830可以周期性地而不是实时地通过进一步速率受限链路842向第四设备对象836发送或与第四设备对象836共享从第一用户810接收的位置更新,或者根本不共享位置。与速率受限链路841相比,进一步速率受限链路842的速率更加受到限制。当满足第一条件时,速率受限链路841可以允许交换位置或将位置发送至第三设备对象834。当满足第二条件且不满足第一条件时,进一步速率受限链路842可以允许交换位置或将位置发送至第四设备对象836。即,仅在第一用户810的位置满足第二条件(例如,改变超过第二阈值量,或者如果位置在超过第二阈值时间量之前被最后发送至第四设备对象836(例如,从位置的最后更新被发送至第四设备对象836起所经过的时间超过第二阈值))的情况下,第一设备对象830可以将第一用户810的位置的更新发送至第四设备对象836。具体地,与第四设备对象836共享的位置更新可以相对于与第三设备对象834共享的这些位置更新被进一步限制,因为第四用户不需要查看第一用户810的位置信息。用于限制发送至第四设备对象834的更新的第二阈值量大于用于限制发送至第三设备对象834的更新的第一阈值量。
图8B是根据一些示例的分布式实时状态更新服务器的设备对象之间的消息交换的图解表示。如图8B所示,在线更新(OU)表示在设备之间发送以宣布设备在线并且然后周期性地指示设备对象仍然在线的消息。当客户端设备102变为在线时,将在线更新从客户端设备102发送至设备对象。当客户端设备102发送位置更新时,位置更新(LU)发送至设备对象。当用户与其朋友共享位置时,在设备对象之间发送朋友位置更新(FLU)。当设备对象希望所有其他设备对象删除其位置时,诸如当给定用户进入幻象模式(ghost mode)并且不希望其位置被知道时,发送删除位置更新(DLU)。当用户的偏好被更新时发送偏好更新(PU),使得设备对象检索并且更新所存储的偏好。发送消息接收更新(MRU)以确认设备对象之间的消息接收。
图8B提供了当设备对象初始变为在线时的示例消息交换。当设备对象(例如,设备对象A)变为在线并且首先被初始化时,设备对象向其所有朋友(例如,设备对象A的朋友的设备对象B、C和D)发送在线更新(OU)。每个朋友设备对象B、C和D以三种方式之一进行响应。例如,第一朋友对象B用FLU响应,FLU指示存储在第一朋友对象B中的朋友的位置。这发生在接收OU的设备对象与从其接收OU消息的用户的设备对象共享其位置时。然后,设备对象A将在来自第一朋友对象B的FLU消息中接收的位置存储在设备对象A中的第一朋友的条目中。
第二朋友对象C用在线更新(OU)响应从设备对象A接收的OU消息。这发生在接收OU的设备对象不与从其接收OU消息的设备对象A共享位置而是在线的(例如,具有经由相应的FE实例510物理地连接至第二朋友对象C的客户端设备102)并且对从与设备对象A相关联的用户接收位置更新感兴趣时。即,第二朋友可能期望看到或知道与设备对象A相关联的用户的位置,但可能对与和设备对象A相关联的用户共享他们的位置不感兴趣。
第三朋友对象D用MRU消息响应从设备对象A接收的OU消息。这发生在接收OU的设备对象不与从其接收OU消息的设备对象A共享位置并且也不对从与设备对象A相关联的用户接收位置更新感兴趣时,诸如因为第三朋友对象D离线(例如,不具有经由相应的FE实例510物理地连接至第三朋友对象D的客户端设备102)。即,第三朋友可能不期望看到或知道与设备对象A相关联的用户的位置,并且可能不对与和设备对象A相关联的用户共享他们的位置感兴趣。
图8C是根据一些示例的分布式实时状态更新服务器的设备对象之间的消息交换的图解表示。如图8C中所示,在步骤1中:设备对象A最初变为在线并且向设备对象A中列出的所有朋友发送OU消息。在步骤2中:为了处理从设备对象A接收的每个OU消息,针对每个朋友创建新的设备对象(例如,由虚线圆圈表示的离线设备对象)(B,C,D和E)。由于没有朋友在线或具有新近共享的位置,设备对象B、C、D和E中的每一个用MRU消息响应从设备对象A接收的OU消息。
在步骤3中:给定的朋友具有经由FE实例510建立到设备对象C的连接的客户端设备102。这致使设备对象C变为在线——设备对象C从离线设备对象切换到在线设备对象(由实心圆圈表示)。作为响应,设备对象C向包括设备对象A在内的设备对象C的所有朋友发送OU消息。设备对象A用FLU消息响应从设备对象C接收的OU消息,以向设备对象C指示存储在设备对象A中的用户的当前位置。在步骤4中:设备对象A和C基于它们都在线并且彼此共享位置的事实建立连接。它们继续交换FLU消息以向彼此提供位置更新。同时,在不活动的时段之后或在从与设备对象相关联的事件发生起已经经过阈值时间段之后,删除其他设备对象B、D和E。例如,如果从设备对象B被创建起已经经过了阈值时间量,并且相应的客户端设备102在该阈值时间量内还没有与FE实例510建立连接以使设备对象在线,则删除设备对象B。作为另一示例,如果从设备对象C被创建起已经经过了阈值时间量并且设备对象C还没有接收到进一步消息(例如,来自其他用户或来自设备对象A的进一步消息),则删除设备对象C。
在一些示例中,离线设备对象仅存储相应用户的位置信息或位置共享偏好。在线设备对象包括未包括在离线对象中的附加信息,诸如第一用户的朋友列表、客户端设备与第一设备对象的连接状态、朋友的客户端设备与相应设备对象的连接状态、每个朋友活动的最后时间、提供对第一用户的位置估计和朋友的所估计位置的执行线程。
在步骤5中:设备对象C变为离线(例如,因为经由FE实例510初始地连接至设备对象C的客户端设备102已经断开连接达阈值时间段)。作为响应,设备对象C停止向设备对象A发送FLU消息,但是设备对象A继续向设备对象C发送FLU消息达阈值时间段。在步骤6中:由于设备对象A没有从设备对象C接收到FLU消息达阈值时间段,所以设备对象A停止向设备对象C发送FLU消息。在设备对象A和C停止处理消息达一段时间之后(例如,设备对象A和C没有接收到来自其他设备对象的消息或者它们没有接收到来自与相应设备对象相关联的客户端设备102的消息),从该图中删除设备对象A和C。
虽然根据共享位置更新讨论了图8B和图8C,但是类似的功能适用于共享任何其他类型的更新(例如,状态更新)。在这种情况下,代替发送FLU消息和LU消息,设备交换状态更新消息或偏好更新消息。
图9是根据一些示例的基于不同朋友列表版本发送更新的图解表示。在一些示例中,对于给定客户端设备102提供并且发送给相应设备对象的每个位置更新(LU)消息,客户端设备102还提供朋友列表版本号。这确保客户端设备102的设备对象用来向其他设备对象发送位置更新的朋友列表反映了用户的朋友列表的最新近改变。以该方式,如果给定用户删除朋友或暂时期望阻止该朋友从该用户接收位置更新,则给定用户的设备对象不基于朋友列表或偏好的陈旧副本继续共享位置更新。
例如,如上所讨论的,在启动时,给定用户(用户A)的设备对象930从消息收发服务器114检索当前朋友列表932。这是设备对象930用来向朋友设备对象发送OU消息的朋友列表。此时,与设备对象930相关联的客户端设备102也具有相同的朋友列表,因此二者共享相同的版本号(例如,1000)。在稍后的某个时刻,用户A更新朋友列表(例如,解除与朋友列表上的人的朋友关系)。作为响应,客户端设备102更新(递增)朋友列表的版本号,并且创建具有新版本号的朋友列表910。该更新被发送至消息收发服务器114。其后不久,客户端设备102将位置更新920发送至分布式实时状态更新服务器107,并且具体地发送至设备对象930。该位置更新920包括朋友列表的新版本号。设备对象930将从位置更新接收的版本号与存储在设备对象930上的当前版本号进行比较。响应于确定存储在设备对象930上的版本号不同于在位置更新中接收到的朋友列表的版本号,设备对象930临时阻止进一步的位置更新(FLU消息)被发送至朋友设备对象(B、C、D和E)。
设备对象930与消息收发服务器114或客户端设备102通信以获得与在位置更新中接收的版本号对应的最新朋友列表。这使存储在设备对象930上的朋友列表与对应于设备对象930的客户端设备102的用户所存储或最近改变的朋友列表同步。一旦更新了朋友列表,设备对象930继续向更新的朋友列表上的朋友发送具有位置更新的FLU消息。
图10A是示出根据示例的分布式实时状态更新服务器107在执行过程1000时的示例操作的流程图。过程1000可以通过用于由一个或更多个处理器执行的计算机可读指令来实施,使得过程1000的操作可以部分地或整体地由分布式实时状态更新服务器107的功能部件来执行;因此,参考图10A作为示例来描述过程1000。然而,在其他示例中,过程1000的操作中的至少一些可以部署在各种其他硬件配置上,诸如部署在应用服务器112上。过程1000中的操作可以按任何顺序执行,并行地执行,或者可以完全跳过和省略。
在操作1001处,分布式实时状态更新服务器107存储前端(FE)实例和多个实时图(RTG)实例,多个RTG实例中的每一个包括多个设备对象,FE实例被配置为与和第一用户相关联的客户端设备通信。例如,分布式实时状态更新服务器107存储一个或更多个FE实例510和一个或更多个RTG实例520。FE实例510包括被配置为与客户端设备102通信的代理对象,并且RTG实例包括一个或更多个设备对象(例如,在线设备对象或离线设备对象)。
在操作1002处,分布式实时状态更新服务器107在FE实例与多个RTG实例之间建立双向流式远程过程调用(RPC)连接。例如,FE实例510与一个或更多个RTG实例520建立RPC连接。
在操作1003处,分布式实时状态更新服务器107通过FE实例从客户端设备接收状态更新。例如,FE实例510的代理对象512通过与客户端设备102的实时流式连接从客户端设备102接收位置更新。
在操作1004处,分布式实时状态更新服务器107通过FE实例确定与客户端设备对应的第一设备对象存储在多个RTG实例中的第一RTG实例上。例如,FE实例510例如通过访问路由信息514来识别设备对象522以及RTG实例520中的哪一个存储所标识的设备对象522。
在操作1005处,分布式实时状态更新服务器107将包括状态更新的第一消息从FE实例发送至第一RTG实例以更新第一设备对象。例如,FE实例510通过gRPC连接将从客户端设备102接收的位置更新发送至所识别的RTG实例520中的设备对象522。
图10B是示出根据示例的分布式实时状态更新服务器107在执行过程1001时的示例操作的流程图。过程1001可以通过用于由一个或更多个处理器执行的计算机可读指令中来实施,使得过程1001的操作可以部分地或整体地由分布式实时状态更新服务器107的功能部件来执行;因此,下面参考图10B作为示例来描述过程1001。然而,在其他示例中,过程1001的操作中的至少一些可以部署在各种其他硬件配置上,诸如部署在应用服务器112上。过程1001中的操作可以按任何顺序执行,并行地执行,或者可以被完全跳过和省略。
在操作1011处,分布式实时状态更新服务器107存储一个或更多个前端(FE)实例和多个实时图(RTG)实例。例如,分布式实时状态更新服务器107存储一个或更多个FE实例510和一个或更多个RTG实例520。FE实例510包括被配置成与客户端设备102通信的代理对象,并且RTG实例包括一个或更多个设备对象(例如,在线设备对象或离线设备对象)。
在操作1012处,分布式实时状态更新服务器107通过与给定用户相关联的第一在线设备对象从给定用户的第一客户端设备接收更新。例如,如图8C的步骤1所示,在线设备对象A从耦接至给定用户的第一客户端设备的FE实例510接收位置更新。
在操作1013处,分布式实时状态更新服务器107由第一在线设备对象生成用于发送至给定用户的多个朋友的包括更新的消息。例如,如图8C的步骤1和步骤2所示,在线设备对象A向给定用户的朋友的设备对象(诸如设备对象B、C、D和E)发送OU消息。
在操作1014处,分布式实时状态更新服务器107在多个RTG实例中的给定实例上存储用于多个朋友中的第一朋友的离线设备对象和用于多个朋友中的第二朋友的第二在线设备对象。例如,如图8C的步骤3所示,分布式实时状态更新服务器107存储离线设备对象B(虚线圆圈所示)和在线设备对象C(实线圆圈所示)。
在操作1015处,分布式实时状态更新服务器107通过第一在线设备对象向第一朋友的离线设备对象和第二朋友的第二在线设备对象发送包括更新的消息。例如,如图8C的步骤1至步骤3所示,在线设备对象A向离线设备对象B(以虚线圆圈示出)和在线设备对象C(以实线圆圈示出)发送OU消息。
图10C是示出根据示例的分布式实时状态更新服务器107在执行过程1002时的示例操作的流程图。过程1002可以通过用于由一个或更多个处理器执行的计算机可读指令来实施,使得过程1002的操作可以部分地或整体地由分布式实时状态更新服务器107的功能部件来执行;因此,下面参考图10C作为示例来描述过程1002。然而,在其他示例中,过程1002的操作中的至少一些可以部署在各种其他硬件配置上,诸如部署在应用服务器112上。过程1002中的操作可以按照任何顺序执行,并行地执行,或者可以被完全跳过和省略。
在操作1021处,分布式实时状态更新服务器107存储包括多个设备对象的多个实时图(RTG)实例。例如,分布式实时状态更新服务器107存储一个或更多个FE实例510和一个或更多个RTG实例520。FE实例510包括被配置成与客户端设备102通信的代理对象,并且RTG实例包括一个或更多个设备对象(例如,在线设备对象或离线设备对象)。
在操作1022处,分布式实时状态更新服务器107通过多个设备对象中的第一设备对象从与第一用户相关联的客户端设备接收状态更新。例如,FE实例510的代理对象512通过与客户端设备102的实时流式连接从与第一用户810相关联的客户端设备102接收位置更新。代理对象512向与第一用户810相关联的第一设备对象830提供位置更新。
在操作1023处,分布式实时状态更新服务器107由第一设备对象通过实时链路将包括状态更新的第一消息发送至与第二用户相关联的第二设备对象。例如,第一设备对象830通过实时链路840将位置更新发送至与第二用户820相关联的第二设备对象832。
在操作1024处,分布式实时状态更新服务器107由第一设备对象通过第一速率受限链路将包括状态更新的第二消息发送至与第三用户相关联的第三设备对象。例如,第一设备对象830通过速率受限链路841将位置更新发送至与第三用户相关联的第三设备对象834。
图10D是示出根据示例的分布式实时状态更新服务器107在执行过程1003时的示例操作的流程图。过程1003可以通过用于由一个或更多个处理器执行的计算机可读指令来实施,使得过程1003的操作可以部分地或整体地由分布式实时状态更新服务器107的功能部件来执行;因此,下面参考图10D作为示例来描述过程1003。然而,在其他示例中,过程1003的操作中的至少一些可以部署在各种其他硬件配置上,诸如部署在应用服务器112上。过程1003中的操作可以按任何顺序执行,并行地执行,或者可以被完全跳过和省略。
在操作1031处,分布式实时状态更新服务器107存储包括多个设备对象的多个实时图(RTG)实例,多个设备对象包括与给定用户相关联的第一设备对象。例如,分布式实时状态更新服务器107存储一个或更多个FE实例510和一个或更多个RTG实例520。FE实例510包括被配置成与客户端设备102通信的代理对象,并且RTG实例包括一个或更多个设备对象(例如,在线设备对象或离线设备对象)。
在操作1032处,分布式实时状态更新服务器107通过第一设备对象接收具有第一版本标识符的给定用户的朋友列表。例如,设备对象930从消息收发服务器114接收用户A的朋友列表。朋友列表具有版本号1000。
在操作1033处,分布式实时状态更新服务器107通过第一设备对象从与给定用户相关联的客户端设备接收更新,该更新包括朋友列表版本标识符。例如,设备对象930从与用户A相关联的客户端设备102接收位置更新。位置更新包括由客户端设备102本地访问或存储的朋友列表的版本标识符。版本标识符可以具有版本号1001。作为示例,客户端设备102可能已经与给定朋友解除朋友关系或改变参数以防止与朋友列表上的给定朋友共享位置。作为响应,客户端设备102可以更新消息收发服务器114上的朋友列表并且递增朋友列表的版本标识符。
在操作1034处,分布式实时状态更新服务器107确定第一设备对象中的朋友列表的第一版本标识符与更新中的朋友列表版本标识符不匹配。例如,设备对象930将由设备对象930存储的版本标识符与在更新中接收的版本标识符进行比较,以确保设备对象930对朋友列表的最新版本进行操作。设备对象930在向给定用户的朋友的任何设备对象发送进一步更新之前执行该比较。
在操作1035处,分布式实时状态更新服务器107在向多个设备对象中的其他设备对象发送包括更新的一个或更多个消息之前同步第一设备对象中的朋友列表。例如,响应于设备对象930确定当前版本标识符(例如,1000)与在更新中接收的版本标识符(例如,1001)不匹配,设备对象930在向与给定用户的朋友相关联的设备对象发送进一步更新之前从消息收发服务器114或客户端设备102访问朋友列表。
机器架构
图11是机器1100的图解表示,在该机器1100内可以执行用于使机器1100执行本文所讨论的方法中的任何一个或更多个方法的指令1108(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令1108可以使机器1100执行本文所描述的方法中的任何一个或更多个方法。指令1108将通用的非编程的机器1100转换成被编程成以所描述的方式执行所描述和所示出的功能的特定机器1100。机器1100可以作为独立设备操作或者可以耦接(例如,联网)到其他机器。在联网的部署中,机器1100可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1100可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器1100采取的动作的指令1108的任何机器。此外,虽然仅示出了单个机器1100,但是术语“机器”还应被视为包括单独或联合执行指令1108以执行本文中讨论的方法中的任何一个或更多个方法的机器的集合。例如,机器1100可以包括客户端设备102或者形成消息收发服务器系统108的一部分的若干个服务器设备中的任何一个。在一些示例中,机器1100还可以包括客户端和服务器系统二者,其中在服务器侧执行特定方法或算法的某些操作,并且在客户端侧执行特定方法或算法的某些操作。
机器1100可以包括可以被配置成经由总线1140彼此通信的处理器1102、存储器1104和输入/输出(I/O)部件1138。在示例中,处理器1102(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另外的处理器或其任何合适的组合)可以包括例如执行指令1108的处理器1106和处理器1110。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图11示出了多处理器1102,但是机器1100可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或者其任何组合。
存储器1104包括处理器1102全部可以经由总线1140访问的主存储器1112、静态存储器1114和存储单元1116。主存储器1104、静态存储器1114和存储单元1116存储实现本文中所描述的方法或功能中的任何一个或更多个方法或功能的指令1108。指令1108还可以在其被机器1100执行期间完全地或部分地驻留在主存储器1112内、在静态存储器1114内、在存储单元1116内的机器可读介质1118内、在处理器1102中的至少一个处理器内(例如,在处理器的高速缓存存储器内)或其任何合适的组合内。
I/O部件1138可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种组件。包括在特定机器中的特定I/O部件1138将取决于机器的类型。例如,便携式机器诸如移动电话可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将不太可能包括这样的触摸输入设备。将理解的是,I/O部件1138可以包括图11中未示出的许多其他组件。在各种示例中,I/O部件1138可以包括用户输出部件1124和用户输入部件1126。用户输出部件1124可以包括视觉部件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号生成器等。用户输入部件1126可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在其他示例中,I/O部件1138可以包括生物识别部件1128、运动部件1130、环境部件1132、或定位部件1134以及各种其他部件。例如,生物识别部件1128包括用于检测表情(例如,手表情、面部表情、声音表情、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1130包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。
环境部件1132包括例如:一个或更多个摄像装置(具有静止图像/照片和视频能力)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近度传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)、或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。
关于摄像装置,客户端设备102可以具有摄像装置系统,该摄像装置系统包括例如客户端设备102的前表面上的前置摄像装置和客户端设备102的后表面上的后置摄像装置。前置摄像装置可以例如用于捕获客户端设备102的用户的静止图像和视频(例如,“自拍”),然后可以用上述增强数据(例如,过滤器)对该静止图像和视频进行增强。例如,后置摄像装置可以用于以更传统的摄像装置模式捕获静止图像和视频,这些图像类似地使用增强数据进行增强。除了前置摄像装置和后置摄像装置之外,客户端设备102还可以包括用于捕获360°照片和视频的360°摄像装置。
此外,客户端设备102的摄像装置系统可以包括双后置摄像装置(例如,主摄像装置以及深度感测摄像装置),或者甚至在客户端设备102的前后侧上包括三重、四重或五重后置摄像装置配置。例如,这些多摄像装置系统可以包括广角摄像装置、超广角摄像装置、长焦摄像装置、微距摄像装置和深度传感器。
定位部件1134包括位置传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种各样的技术来实施通信。I/O部件1138还包括通信部件1136,通信部件1136可操作以经由相应的耦接或连接将机器1100耦接至网络1120或设备1122。例如,通信部件1136可以包括网络接口部件或另一合适的设备以与网络1120对接。在其他示例中,通信部件1136可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、
Figure BDA0004113285300000345
部件(例如,
Figure BDA0004113285300000346
低功耗)、
Figure BDA0004113285300000347
部件以及经由其他形式提供通信的其他通信部件。设备1122可以是其他机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件1136可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1136可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速反应(QR)码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(UltraCode)、UCC RSS-2D条形码的多维条形码和其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件1136得出各种信息,例如经由因特网协议(IP)地理位置的位置、经由
Figure BDA0004113285300000348
信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
各种存储器(例如,主存储器1112、静态存储器1114以及处理器1102的存储器)以及存储单元1116可以存储由本文中描述的方法或功能中的任何一个或更多个实现或使用的指令和数据结构(例如,软件)中的一组或更多组。这些指令(例如,指令1108)在由处理器1102执行时使各种操作实现所公开的示例。
可以经由网络接口设备(例如,通信部件1136中包括的网络接口部件),使用传输介质并且使用若干公知的传输协议中的任意一种传输协议(例如,超文本传输协议(HTTP)),通过网络1120来发送或接收指令1108。类似地,可以使用传输介质经由到设备1122的耦接(例如,对等耦接)来发送或接收指令1108。
软件架构
图12是示出软件架构1204的框图1200,该软件架构1204可以安装在本文所描述的任何一个或更多个设备上。软件架构1204由硬件例如包括处理器1220、存储器1226和I/O部件1238的机器1202支持。在该示例中,软件架构1204可以被概念化为层的堆栈,在该层的堆栈中,每个层提供特定的功能。软件架构1204包括诸如操作系统1212、库1210、框架1208和应用1206的层。在操作上,应用1206通过软件堆栈来激活API调用1250并且响应于API调用1250来接收消息1252。
操作系统1212管理硬件资源并且提供公共服务。操作系统1212包括例如核1214、服务1216和驱动器1222。核1214充当硬件层与其他软件层之间的抽象层。例如,核1214提供存储器管理、处理器管理(例如,调度)、部件管理、网络和安全设置以及其他功能。服务1216可以为其他软件层提供其他公共服务。驱动器1222负责控制底层硬件或与底层硬件接口。例如,驱动器1222可以包括显示驱动器、摄像装置驱动器、
Figure BDA0004113285300000351
Figure BDA0004113285300000352
低功耗驱动器、闪存驱动器、串行通信驱动器(例如,USB驱动器)、
Figure BDA0004113285300000353
驱动器、音频驱动器、电源管理驱动器等。
库1210提供由应用1206使用的公共低级基础设施。库1210可以包括系统库1218(例如,C标准库),系统库1218提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。另外,库1210可以包括API库1224,例如媒体库(例如,用于支持各种媒体格式的呈现和操作的库,所述各种媒体格式例如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)进行呈现的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供网页浏览功能的WebKit)等。库1210还可以包括各种各样的其他库1228,以向应用1206提供许多其他API。
框架1208提供由应用1206使用的公共高级基础设施。例如,框架1208提供各种图形用户界面(GUI)功能、高级资源管理以及高级定位服务。框架1208可以提供可由应用1206使用的广泛的其他API,其中的一些API可以专用于特定的操作系统或平台。
在示例中,应用1206可以包括家庭应用1236、联系人应用1230、浏览器应用1232、书籍阅读器应用1234、位置应用1242、媒体应用1244、消息收发应用1246、游戏应用1248和诸如第三方应用1240的各种各样的其他应用。应用1206是执行程序中限定的功能的程序。可以使用各种编程语言来创建以各种方式构造的应用1206中的一个或更多个,所述编程语言例如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如C或汇编语言)。在特定示例中,第三方应用1240(例如,由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在诸如IOSTM、ANDROIDTM
Figure BDA0004113285300000361
Phone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用1240可以调用由操作系统1212提供的API调用1250以有助于本文中描述的功能。
术语表
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以便于这些指令的通信。可以使用传输介质经由网络接口设备来通过网络发送或接收指令。
“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0004113285300000362
网络、其他类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全局移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强数据速率的GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“组件”是指具有以下边界的设备、物理实体或逻辑,该边界由功能或子例程调用、分支点、API或者对特定处理或控制功能提供分区或模块化的其他技术定义。组件可以经由其接口与其他组件组合以执行机器处理。组件可以是被设计用于与其他组件一起使用的经封装的功能硬件单元,并且可以是通常执行相关功能中的特定功能的程序的一部分。
组件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件组件(例如,处理器或处理器组)配置为用于执行本文中描述的某些操作的硬件组件。
也可以机械地、电子地或以其任何合适的组合来实现硬件组件。例如,硬件组件可以包括被永久地配置成执行某些操作的专用电路系统或逻辑。硬件部件可以是例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)的专用处理器。硬件组件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路系统。例如,硬件组件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,硬件组件就变成被独特地定制成执行所配置的功能的特定机器(或机器的特定组件),而不再是通用处理器。将理解,可以出于成本和时间考虑来决定机械地、在专用且永久配置的电路中还是在临时配置(例如,由软件配置)的电路中实现硬件组件。相应地,短语“硬件组件”(或者“硬件实现的组件”)应当被理解成包含有形实体,即被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。
考虑硬件组件被临时配置(例如,被编程)的示例,无需在任一时刻对硬件组件中的每个硬件组件进行配置或实例化。例如,在硬件组件包括通过软件配置成变成专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置一个或多个特定处理器以例如在一个时刻处构成特定硬件组件,并且在不同的时刻处构成不同的硬件组件。
硬件组件可以向其他硬件组件提供信息以及从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间或之中(例如,通过适当的电路和总线)的信号传输来实现通信。在其中多个硬件组件在不同时间处被配置或被实例化的实施方式中,可以例如通过将信息存储在多个硬件组件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件组件之间的通信。例如,一个硬件组件可以执行操作,并且将该操作的输出存储在其通信地耦接到的存储器设备中。然后,其他硬件组件可以在随后的时间访问存储器设备以检索所存储的输出并对所存储的输出进行处理。硬件组件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。
本文所述的示例方法的各种操作可以至少部分地由临时地被配置(例如,由软件)或永久地被配置成执行相关操作的一个或更多个处理器来执行。无论是临时地被配置还是永久地被配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的组件。如本文中使用的,“处理器实现的组件”是指使用一个或更多个处理器实现的硬件组件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器1102或处理器实现的部件来执行。此外,所述一个或更多个处理器还可以操作成支持“云计算”环境中的相关操作的执行或者操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)进行访问。某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是跨多个机器被部署。在一些示例中,处理器或处理器实现的组件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例中,处理器或处理器实现的组件可以跨若干地理位置而分布。
“计算机可读存储介质”是指机器存储介质和传输介质两者。因此,这些术语包括存储设备/介质和载波/调制数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物,并且可以在本公开内容中可互换地使用。
“短暂消息”是指在时间有限的持续时间内可访问的消息。短暂消息可以是文本、图像、视频等。短暂消息的访问时间可以由消息发送者设置。替选地,访问时间可以是默认设置或者由接收者指定的设置。无论设置技术如何,消息都是暂时的。
“机器存储介质”是指存储可执行指令、例程和数据的单个或多个存储设备和介质(例如,集中式或分布式数据库,以及相关联的高速缓存和服务器)。因此,该术语应被视为包括但不限于固态存储器以及光学和磁介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可以互换使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,所述载波、调制数据信号和其他这样的介质中的至少一些被涵盖在术语“信号介质”中。
“非暂态计算机可读存储介质”是指能够存储、编码或携载由机器执行的指令的有形介质。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以有助于软件或数据的通信。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指使其特征中的一个或更多个特征以将信息编码在信号中的方式来设置或改变的信号。术语“传输介质”和“信号介质”指相同的事物并且可以在本公开内容中互换使用。
在不脱离本公开内容的范围的情况下,可以对所公开的示例进行改变和修改。这些和其他改变或修改旨在被包括在本公开的范围内,如所附权利要求中所表达的。

Claims (20)

1.一种方法,包括:
在分布式存储系统上存储前端(FE)实例和多个实时图(RTG)实例,所述多个RTG实例中的每一个包括多个设备对象,所述FE实例被配置成与和第一用户相关联的客户端设备通信;
在所述FE实例与所述多个RTG实例之间建立双向流式远程过程调用(RPC)连接;
由所述FE实例从所述客户端设备接收状态更新;
由所述FE实例确定与所述客户端设备对应的第一设备对象存储在所述多个RTG实例中的第一RTG实例上;以及
从所述FE实例向所述第一RTG实例发送包括所述状态更新的第一消息以更新所述第一设备对象。
2.根据权利要求1所述的方法,其中,所述FE实例包括代理对象和路由信息,路由信息的第一部分指示所述第一RTG实例包括所述多个设备对象的第一子集,并且所述多个RTG实例中的第二RTG实例包括所述多个设备对象的第二子集。
3.根据权利要求2所述的方法,其中,所述第一RTG实例包括路由信息的第二部分,所述路由信息的第二部分标识由所述第一RTG实例处理的所述多个设备对象的第一子集。
4.根据权利要求3所述的方法,还包括:
在实时图配置图上存储所述路由信息的第一部分和第二部分;以及
周期性地更新存储在所述FE实例和所述第一RTG实例上的所述第一部分和所述第二部分。
5.根据权利要求1所述的方法,还包括:
由所述第一RTG实例生成用于发送至与第二用户对应的第二设备对象的包括所述状态更新的第二消息;
确定所述第二设备对象被包括在所述第一RTG实例中;以及
将所述第二消息发送至所述第一RTG内的所述第二设备对象,以更新所述第二设备对象中包括的与所述第一用户相关联的信息。
6.根据权利要求1所述的方法,还包括:
由所述第一RTG实例生成用于发送至与第二用户对应的第二设备对象的包括所述状态更新的第二消息;
确定所述第二设备对象未被包括在所述第一RTG实例中;以及
由所述第一RTG实例向所述FE实例发送所述第二消息,所述第二消息被定向到所述第二设备对象。
7.根据权利要求6所述的方法,还包括:
由所述FE实例确定所述第二设备对象存储在所述多个RTG实例中的第二RTG实例上;以及
将所述第二消息从所述FE实例发送至所述第二RTG实例,以更新所述第二设备对象中包括的与所述第一用户相关联的信息。
8.根据权利要求1所述的方法,还包括:
从第二客户端设备接收状态更新;以及
响应于从所述第二客户端设备接收到所述状态更新而生成第二FE实例,所述第二FE实例具有到所述多个RTG实例的双向流式RPC连接。
9.根据权利要求8所述的方法,还包括:
由所述第二FE实例确定在所述第二FE实例中包括的路由信息中缺少所述第二客户端设备的标识符;以及
响应于由所述第二FE实例确定所述路由信息中缺少所述第二客户端设备的标识符,将与所述第二客户端设备对应的设备对象添加到所述RTG实例中给定RTG实例。
10.根据权利要求9所述的方法,其中,所述FE实例是第一FE实例,还包括:
由所述第一RTG实例选择所述第一FE实例或所述第二FE实例;以及
经由所选择的第一FE实例或第二FE实例从所述第一设备对象向所述第二设备对象发送第二消息。
11.根据权利要求10所述的方法,其中,所述第一FE实例或所述第二FE实例是随机选择的或以轮循方式选择的中的至少一种。
12.根据权利要求1所述的方法,其中,所述第一消息包括所述第一用户的位置信息或位置共享偏好。
13.根据权利要求12所述的方法,其中,所述第一设备对象是仅存储所述第一用户的位置信息或位置共享偏好的离线设备对象。
14.根据权利要求12所述的方法,其中,所述第一设备对象是在线设备对象,所述在线设备对象包括所述第一用户的朋友列表、所述客户端设备与所述第一设备对象的连接状态、所述朋友的客户端设备与相应设备对象的连接状态、每个朋友活动的最后时间、提供对所述第一用户的位置的估计以及所述朋友的估计位置的执行线程。
15.根据权利要求1所述的方法,还包括将数据从所述FE实例移动到数据库存储位置并且在阈值时间段之后删除所述FE实例。
16.根据权利要求1所述的方法,其中,所述FE实例和所述多个RTG实例与第一地理区域相关联,还包括:
在所述FE实例与区域间代理节点之间建立连接;
由所述FE实例接收被定向到与第二用户对应的第二设备对象的第二消息;
确定所述第二设备对象与第二地理区域相关联;以及
向所述区域间代理节点发送所述第二消息。
17.根据权利要求16所述的方法,还包括:
将所述第二消息存储在被定向到所述第二地理区域中的设备对象的多个消息中;以及
在阈值时间间隔之后或者在所述区域间代理节点存储了阈值数目的消息之后,将所述多个消息发送至所述第二地理区域中的代理节点,其中,所述第二地理区域中的所述代理节点将所述消息路由到所述第二地理区域中的相应设备对象。
18.根据权利要求17所述的方法,其中,所述第二地理区域的阈值时间间隔或消息的阈值数目不同于第三地理区域的阈值时间间隔或消息的阈值数目。
19.一种系统,包括:
处理器,其被配置成执行操作,所述操作包括:
在分布式存储系统上存储前端(FE)实例和多个实时图(RTG)实例,所述多个RTG实例中的每一个包括多个设备对象,所述FE实例被配置成与和第一用户相关联的客户端设备通信;
在所述FE实例与所述多个RTG实例之间建立双向流式远程过程调用(RPC)连接;
由所述FE实例从所述客户端设备接收状态更新;
由所述FE实例确定与所述客户端设备对应的第一设备对象存储在所述多个RTG实例中的第一RTG实例上;以及
从所述FE实例向所述第一RTG实例发送包括所述状态更新的第一消息以更新所述第一设备对象。
20.一种非暂态机器可读存储介质,所述非暂态机器可读存储介质包括在由机器的一个或更多个处理器执行时使所述机器执行操作的指令,所述操作包括:
在分布式存储系统上存储前端(FE)实例和多个实时图(RTG)实例,所述多个RTG实例中的每一个包括多个设备对象,所述FE实例被配置成与和第一用户相关联的客户端设备通信;
在所述FE实例与所述多个RTG实例之间建立双向流式远程过程调用(RPC)连接;
由所述FE实例从所述客户端设备接收状态更新;
由所述FE实例确定与所述客户端设备对应的第一设备对象存储在所述多个RTG实例中的第一RTG实例上;以及
从所述FE实例向所述第一RTG实例发送包括所述状态更新的第一消息以更新所述第一设备对象。
CN202180055813.9A 2020-06-15 2021-06-14 可扩展实时位置共享框架 Pending CN116097240A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/946,284 2020-06-15
US16/946,284 US11503432B2 (en) 2020-06-15 2020-06-15 Scalable real-time location sharing framework
PCT/US2021/037220 WO2021257450A1 (en) 2020-06-15 2021-06-14 Scalable real-time location sharing framework

Publications (1)

Publication Number Publication Date
CN116097240A true CN116097240A (zh) 2023-05-09

Family

ID=78826241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180055813.9A Pending CN116097240A (zh) 2020-06-15 2021-06-14 可扩展实时位置共享框架

Country Status (5)

Country Link
US (1) US11503432B2 (zh)
EP (1) EP4165518A4 (zh)
KR (1) KR20230025870A (zh)
CN (1) CN116097240A (zh)
WO (1) WO2021257450A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9226110B2 (en) * 2012-03-31 2015-12-29 Groupon, Inc. Method and system for determining location of mobile device
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US11949527B2 (en) 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat

Family Cites Families (603)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US666223A (en) 1896-12-01 1901-01-15 Alfred Shedlock Refrigerating apparatus.
US4581634A (en) 1982-11-18 1986-04-08 Williams Jarvis L Security apparatus for controlling access to a predetermined area
US5072412A (en) 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4975690A (en) 1988-11-07 1990-12-04 Ibm Corporation Method for concurrent data entry and manipulation in multiple applications
JPH0644339A (ja) 1992-03-06 1994-02-18 Hewlett Packard Co <Hp> 図形オブジェクト操作システム及び方法
US5493692A (en) 1993-12-03 1996-02-20 Xerox Corporation Selective delivery of electronic messages in a multiple computer system based on context and environment of a user
FI98694C (fi) 1994-08-23 1997-07-25 Nokia Telecommunications Oy Sijainninpäivitys matkaviestinjärjestelmässä
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US8799461B2 (en) 1994-11-29 2014-08-05 Apple Inc. System for collecting, analyzing, and transmitting information relevant to transportation networks
WO1996024213A1 (en) 1995-02-01 1996-08-08 Freemark Communications, Inc. System and method for providing end-user free email
US5978773A (en) 1995-06-20 1999-11-02 Neomedia Technologies, Inc. System and method for using an ordinary article of commerce to access a remote computer
US5913040A (en) 1995-08-22 1999-06-15 Backweb Ltd. Method and apparatus for transmitting and displaying information between a remote network and a local computer
US6049711A (en) 1995-08-23 2000-04-11 Teletrac, Inc. Method and apparatus for providing location-based information services
US5794210A (en) 1995-12-11 1998-08-11 Cybergold, Inc. Attention brokerage
EP0814611B1 (de) 1996-06-17 2002-08-28 Siemens Aktiengesellschaft Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
US20030164856A1 (en) 1996-06-28 2003-09-04 Randy Prager Desktop, stream-based, information management system
US6216141B1 (en) 1996-12-06 2001-04-10 Microsoft Corporation System and method for integrating a document into a desktop window on a client computer
US6456852B2 (en) 1997-01-08 2002-09-24 Trafficmaster Usa, Inc. Internet distributed real-time wireless location database
US6285987B1 (en) 1997-01-22 2001-09-04 Engage, Inc. Internet advertising system
JP3610718B2 (ja) 1997-01-31 2005-01-19 富士通株式会社 電子会議システム
JPH10268959A (ja) 1997-03-24 1998-10-09 Canon Inc 情報処理装置及びその方法
CA2202106C (en) 1997-04-08 2002-09-17 Mgi Software Corp. A non-timeline, non-linear digital multimedia composition method and system
JP3783331B2 (ja) 1997-05-14 2006-06-07 ブラザー工業株式会社 メール送信システム、メール受信システムおよび記録媒体
EP1000400A4 (en) 1997-06-17 2005-04-06 Purdue Pharma Lp SYSTEM FOR THE ELECTRONIC MAIL TRANSMISSION OF MESSAGES AND AUTODETRUISANT DOCUMENTS
US6029141A (en) 1997-06-27 2000-02-22 Amazon.Com, Inc. Internet-based customer referral system
US6622174B1 (en) 1997-08-15 2003-09-16 Sony Corporation System for sending, converting, and adding advertisements to electronic messages sent across a network
FI973945A (fi) 1997-10-13 1999-04-14 Nokia Telecommunications Oy Lyhytsanomia välittävä tiedonsiirtojärjestelmä
JPH11120487A (ja) 1997-10-21 1999-04-30 Toyota Motor Corp 移動体端末装置、情報提供装置、情報提供システム、情報提供方法及び移動体端末装置のためのプログラムを記録した媒体
JPH11154240A (ja) 1997-11-20 1999-06-08 Nintendo Co Ltd 取込み画像を用いて画像を作成するための画像作成装置
US6014090A (en) 1997-12-22 2000-01-11 At&T Corp. Method and apparatus for delivering local information to travelers
US5999932A (en) 1998-01-13 1999-12-07 Bright Light Technologies, Inc. System and method for filtering unsolicited electronic mail messages using data matching and heuristic processing
US6012098A (en) 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
US6484196B1 (en) 1998-03-20 2002-11-19 Advanced Web Solutions Internet messaging system and method for use in computer networks
US20020106199A1 (en) 1998-05-27 2002-08-08 Osamu Ikeda Image signal recording/reproduction apparatus, method employed therein, and image signal recording apparatus
US7173651B1 (en) 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6205432B1 (en) 1998-06-05 2001-03-20 Creative Internet Concepts, Llc Background advertising system
WO1999063453A1 (en) 1998-06-05 1999-12-09 Creative Internet Concepts Llc System for inserting background advertising into web page presentation or e-mail messages
US6698020B1 (en) 1998-06-15 2004-02-24 Webtv Networks, Inc. Techniques for intelligent video ad insertion
JP2002524775A (ja) 1998-09-04 2002-08-06 レゴ エー/エス 電子音楽を作曲しグラフィック情報を生成するための方法およびシステム
US6757713B1 (en) 1998-09-23 2004-06-29 John W. L. Ogilvie Method for including a self-removing indicator in a self-removing message
US6643684B1 (en) 1998-10-08 2003-11-04 International Business Machines Corporation Sender- specified delivery customization
US6167435A (en) 1998-10-30 2000-12-26 Netcreations, Inc. Double opt-in™ method and system for verifying subscriptions to information distribution services
US6334149B1 (en) 1998-12-22 2001-12-25 International Business Machines Corporation Generic operating system usage in a remote initial program load environment
KR19990073076A (ko) 1999-03-30 1999-10-05 주진용 인터넷전자우편및채팅을이용한광고방법
US6832222B1 (en) 1999-06-24 2004-12-14 International Business Machines Corporation Technique for ensuring authorized access to the content of dynamic web pages stored in a system cache
US7240199B2 (en) 2000-12-06 2007-07-03 Rpost International Limited System and method for verifying delivery and integrity of electronic messages
US6449657B2 (en) 1999-08-06 2002-09-10 Namezero.Com, Inc. Internet hosting system
US6549768B1 (en) 1999-08-24 2003-04-15 Nokia Corp Mobile communications matching system
WO2001017298A1 (en) 1999-09-02 2001-03-08 Automated Business Companies Communication and proximity authorization systems
US7149893B1 (en) 1999-09-07 2006-12-12 Poofaway.Com, Inc. System and method for enabling the originator of an electronic mail message to preset an expiration time, date, and/or event, and to control processing or handling by a recipient
US6487601B1 (en) 1999-09-30 2002-11-26 International Business Machines Corporation Dynamic mac allocation and configuration
US6684257B1 (en) 1999-10-15 2004-01-27 International Business Machines Corporation Systems, methods and computer program products for validating web content tailored for display within pervasive computing devices
CA2386407C (en) 1999-10-18 2009-05-05 British Telecommunications Public Limited Company Personal mobile communication device
US6724403B1 (en) 1999-10-29 2004-04-20 Surfcast, Inc. System and method for simultaneous display of multiple information sources
US6631463B1 (en) 1999-11-08 2003-10-07 International Business Machines Corporation Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
US6836792B1 (en) 1999-12-03 2004-12-28 Trend Micro Incorporated Techniques for providing add-on services for an email system
US6834195B2 (en) 2000-04-04 2004-12-21 Carl Brock Brandenberg Method and apparatus for scheduling presentation of digital content on a personal communication device
US6981040B1 (en) 1999-12-28 2005-12-27 Utopy, Inc. Automatic, personalized online information and product services
WO2001050416A2 (en) 2000-01-03 2001-07-12 Amova.Com Automatic personalized media creation system
US7237002B1 (en) 2000-01-04 2007-06-26 International Business Machines Corporation System and method for dynamic browser management of web site
US8527345B2 (en) 2000-01-06 2013-09-03 Anthony Richard Rothschild System and method for adding an advertisement to a personal communication
US8645211B2 (en) 2000-01-06 2014-02-04 Anthony R. Rothschild System and method for adding an advertisement to a personal communication
US6636247B1 (en) 2000-01-31 2003-10-21 International Business Machines Corporation Modality advertisement viewing system and method
US6523008B1 (en) 2000-02-18 2003-02-18 Adam Avrunin Method and system for truth-enabling internet communications via computer voice stress analysis
NO314530B1 (no) 2000-02-25 2003-03-31 Ericsson Telefon Ab L M Trådlös reservering, innsjekking, tilgangskontroll, utsjekking og betaling
US6684250B2 (en) 2000-04-03 2004-01-27 Quova, Inc. Method and apparatus for estimating a geographic location of a networked entity
US7124164B1 (en) 2001-04-17 2006-10-17 Chemtob Helen J Method and apparatus for providing group interaction via communications networks
US6684238B1 (en) 2000-04-21 2004-01-27 International Business Machines Corporation Method, system, and program for warning an email message sender that the intended recipient's mailbox is unattended
US7663652B1 (en) 2000-05-03 2010-02-16 Morris Reese Enhanced electronic mail delivery system
US6542749B2 (en) 2000-06-10 2003-04-01 Telcontar Method and system for connecting proximately located mobile users based on compatible attributes
US6720860B1 (en) 2000-06-30 2004-04-13 International Business Machines Corporation Password protection using spatial and temporal variation in a high-resolution touch sensitive display
US7028263B2 (en) 2000-07-19 2006-04-11 Research In Motion Limited User interface and method for viewing short messages on a wireless device
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US6968179B1 (en) 2000-07-27 2005-11-22 Microsoft Corporation Place specific buddy list services
US6618593B1 (en) 2000-09-08 2003-09-09 Rovingradar, Inc. Location dependent user matching system
US6700506B1 (en) 2000-09-14 2004-03-02 Everyday Wireless, Inc. Bus arrival notification system and methods related thereto
US6959324B1 (en) 2000-09-28 2005-10-25 International Business Machines Corporation Method and apparatus for adding data attributes to e-mail messages to enhance the analysis of delivery failures
US8707185B2 (en) 2000-10-10 2014-04-22 Addnclick, Inc. Dynamic information management system and method for content delivery and sharing in content-, metadata- and viewer-based, live social networking among users concurrently engaged in the same and/or similar content
JP2002132647A (ja) 2000-10-19 2002-05-10 Kizna Corp 電子掲示板及び電子掲示板システム
US6904408B1 (en) 2000-10-19 2005-06-07 Mccarthy John Bionet method, system and personalized web content manager responsive to browser viewers' psychological preferences, behavioral responses and physiological stress indicators
US6970907B1 (en) 2000-11-16 2005-11-29 International Business Machines Corporation Method and system for e-mail chain group discussions
US6774919B2 (en) 2000-12-06 2004-08-10 Microsoft Corporation Interface and related methods for reducing source accesses in a development system
GB0029880D0 (en) 2000-12-07 2001-01-24 Sony Uk Ltd Video and audio information processing
US7870592B2 (en) 2000-12-14 2011-01-11 Intertainer, Inc. Method for interactive video content programming
US6668173B2 (en) 2000-12-15 2003-12-23 Motorola, Inc. Instant message user location tracking system
US20020087631A1 (en) 2001-01-03 2002-07-04 Vikrant Sharma Email-based advertising system
GB2371948B (en) 2001-02-02 2005-09-14 Nokia Mobile Phones Ltd Mobile telecommunications device
US7299416B2 (en) 2001-02-15 2007-11-20 Denny Jaeger Metro for creating and using linear time line and play rectangle
US6446004B1 (en) 2001-02-28 2002-09-03 International Business Machines Corporation System and method for implementing proximity or location driven activities
US6529136B2 (en) 2001-02-28 2003-03-04 International Business Machines Corporation Group notification system and method for implementing and indicating the proximity of individuals or groups to other individuals or groups
US7042470B2 (en) 2001-03-05 2006-05-09 Digimarc Corporation Using embedded steganographic identifiers in segmented areas of geographic images and characteristics corresponding to imagery data derived from aerial platforms
US6636855B2 (en) 2001-03-09 2003-10-21 International Business Machines Corporation Method, system, and program for accessing stored procedures in a message broker
JP2002351782A (ja) 2001-05-23 2002-12-06 Nec Corp 伝言板システム及びそれに用いる伝言情報蓄積・検索方法
US7280658B2 (en) 2001-06-01 2007-10-09 International Business Machines Corporation Systems, methods, and computer program products for accelerated dynamic protection of data
US8195745B2 (en) 2001-06-07 2012-06-05 International Business Machines Corporation Automatic download of web content in response to an embedded link in an electronic mail message
JP3672245B2 (ja) 2001-06-15 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション メール発信システム、メールサーバ、メール転送システム、メール転送方法、メール発信方法、メール配信方法、プログラム
US20050064926A1 (en) 2001-06-21 2005-03-24 Walker Jay S. Methods and systems for replaying a player's experience in a casino environment
JP3994692B2 (ja) 2001-07-04 2007-10-24 ヤマハ株式会社 音楽情報提供システム及び方法
US7133900B1 (en) 2001-07-06 2006-11-07 Yahoo! Inc. Sharing and implementing instant messaging environments
US7188143B2 (en) 2001-07-06 2007-03-06 Yahoo! Inc. Messenger-controlled applications in an instant messaging environment
US7380279B2 (en) 2001-07-16 2008-05-27 Lenel Systems International, Inc. System for integrating security and access for facilities and information systems
US6965785B2 (en) 2001-07-17 2005-11-15 Wildseed Ltd. Cooperative wireless luminescent imagery
US7765490B2 (en) 2001-07-18 2010-07-27 International Business Machines Corporation Method and system for software applications using a tiled user interface
JP4440503B2 (ja) 2001-09-20 2010-03-24 富士通株式会社 情報一覧作成装置及びそのプログラム
US7363258B2 (en) 2001-10-01 2008-04-22 Qurio Holdings, Inc. Method and system for distributing affiliate images in a peer-to-peer (P2P) photosharing network through affiliate branding
US7068309B2 (en) 2001-10-09 2006-06-27 Microsoft Corp. Image exchange with image annotation
EP1437027B1 (en) 2001-10-17 2010-04-14 Nokia Corporation Method for the provision of location information
US20030110503A1 (en) 2001-10-25 2003-06-12 Perkes Ronald M. System, method and computer program product for presenting media to a user in a media on demand framework
US7203380B2 (en) 2001-11-16 2007-04-10 Fuji Xerox Co., Ltd. Video production and compaction with collage picture frame user interface
US7610358B2 (en) 2001-11-26 2009-10-27 Time Warner Cable System and method for effectively presenting multimedia information materials
US7240089B2 (en) 2001-12-10 2007-07-03 International Business Machines Corporation Message queuing method, system, and program product with reusable pooling component
US20100098702A1 (en) 2008-09-16 2010-04-22 Longgui Wang Method of treating androgen independent prostate cancer
US7426534B2 (en) 2001-12-19 2008-09-16 International Business Machines Corporation Method and system for caching message fragments using an expansion attribute in a fragment link tag
US7356564B2 (en) 2002-01-09 2008-04-08 At&T Delaware Intellectual Property, Inc. Method, system, and apparatus for providing self-destructing electronic mail messages
US7020494B2 (en) 2002-02-07 2006-03-28 Sap Aktiengesellschaft Integrating contextual information into mobile enterprise applications
US7027124B2 (en) 2002-02-28 2006-04-11 Fuji Xerox Co., Ltd. Method for automatically producing music videos
ATE488746T1 (de) 2002-03-01 2010-12-15 Telecomm Systems Inc Verfahren und vorrichtung zum senden, empfangen und planen von ortsrelevanten informationen
US6658095B1 (en) 2002-03-19 2003-12-02 Nortel Networks Limited Customized presence information delivery
US7227937B1 (en) 2002-03-19 2007-06-05 Nortel Networks Limited Monitoring natural interaction for presence detection
US7112978B1 (en) 2002-04-16 2006-09-26 Transmeta Corporation Frequency specific closed loop feedback control of integrated circuits
US7305436B2 (en) 2002-05-17 2007-12-04 Sap Aktiengesellschaft User collaboration through discussion forums
US7120622B2 (en) 2002-06-10 2006-10-10 Xerox Corporation Authoring tools, including content-driven treetables, for fluid text
US20060026067A1 (en) 2002-06-14 2006-02-02 Nicholas Frank C Method and system for providing network based target advertising and encapsulation
US7645462B2 (en) 2002-08-27 2010-01-12 3T Herbtech, Inc. Acupoint patch
JP2004105671A (ja) 2002-09-16 2004-04-08 Genki Kk 空間位置共有システム、データ共有システム、ネットワークゲームシステム及びネットワークゲーム用クライアント
US7349921B2 (en) 2002-09-27 2008-03-25 Walgreen Co. Information distribution system
US6970088B2 (en) 2002-10-17 2005-11-29 Compex, Inc. Method for tracking and processing passengers and their transported articles
US20040203897A1 (en) 2002-12-17 2004-10-14 Comarco Wireless Technologies System and method for precise navigation in testing wireless communication networks
US7787886B2 (en) 2003-02-24 2010-08-31 Invisitrack, Inc. System and method for locating a target using RFID
US8423042B2 (en) 2004-02-24 2013-04-16 Invisitrack, Inc. Method and system for positional finding using RF, continuous and/or combined movement
US7411493B2 (en) 2003-03-01 2008-08-12 User-Centric Ip, L.P. User-centric event reporting
US6978147B2 (en) 2003-03-19 2005-12-20 Motorola, Inc. Wireless messaging device with selectable scroll display and message pre-fetch
GB2399928A (en) 2003-03-24 2004-09-29 Nec Technologies Baby or child monitor incorporating mobile telephone
US7458081B2 (en) 2003-03-27 2008-11-25 Microsoft Corporation Configurable event handling for an interactive design environment
US6825764B2 (en) 2003-03-28 2004-11-30 Sony Corporation User programmable portable proximity detector
US20040243531A1 (en) 2003-04-28 2004-12-02 Dean Michael Anthony Methods and systems for representing, using and displaying time-varying information on the Semantic Web
US20040243688A1 (en) 2003-05-30 2004-12-02 Wugofski Theodore D. Inbox caching of messages on a mobile terminal
US7315832B2 (en) 2003-06-18 2008-01-01 Copart, Inc. Online bidding system
US7085571B2 (en) 2003-08-26 2006-08-01 Kyocera Wireless Corp. System and method for using geographical location to determine when to exit an existing wireless communications coverage network
KR100754704B1 (ko) 2003-08-29 2007-09-03 삼성전자주식회사 위치에 따라 설정 변경이 가능한 이동통신 단말기 및 방법
JP2005115896A (ja) 2003-10-10 2005-04-28 Nec Corp 通信装置及び通信方法
US7191221B2 (en) 2003-10-30 2007-03-13 International Business Machines Corporation Method for managing electronic mail receipts using audio-visual notification enhancements
KR20060120053A (ko) 2003-10-30 2006-11-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 입력 예측 방법
US7797529B2 (en) 2003-11-10 2010-09-14 Yahoo! Inc. Upload security scheme
US20050104976A1 (en) 2003-11-17 2005-05-19 Kevin Currans System and method for applying inference information to digital camera metadata to identify digital picture content
US7451190B2 (en) 2003-11-26 2008-11-11 Yahoo! Inc. Associating multiple visibility profiles with a user of a real-time communication system
US20050119936A1 (en) 2003-12-02 2005-06-02 Robert Buchanan Sponsored media content
US7394345B1 (en) 2003-12-08 2008-07-01 At&T Corp. Arrangement for indicating presence of individual
US20050122405A1 (en) 2003-12-09 2005-06-09 Voss James S. Digital cameras and methods using GPS/time-based and/or location data to provide scene selection, and dynamic illumination and exposure adjustment
US7535890B2 (en) 2003-12-18 2009-05-19 Ayalogic, Inc. System and method for instant VoIP messaging
CN1886753A (zh) 2003-12-19 2006-12-27 富士通株式会社 现状信息处理方法和程序、终端装置、计算机及现状信息管理服务器
US8418067B2 (en) 2004-01-15 2013-04-09 Microsoft Corporation Rich profile communication with notifications
US7904510B2 (en) 2004-02-23 2011-03-08 Microsoft Corporation Systems and methods for managing discussion threads based on ratings
US8739071B2 (en) 2004-02-27 2014-05-27 Blackberry Limited System and method for message display and management
US20050193340A1 (en) 2004-03-01 2005-09-01 Amburgey James T. Apparatus and method regarding dynamic icons on a graphical user interface
US7206568B2 (en) 2004-03-15 2007-04-17 Loc-Aid Technologies, Inc. System and method for exchange of geographic location and user profiles over a wireless network
US7546554B2 (en) 2004-03-31 2009-06-09 Fuji Xerox Co., Ltd. Systems and methods for browsing multimedia content on small mobile devices
US7912904B2 (en) 2004-03-31 2011-03-22 Google Inc. Email system with conversation-centric user interface
US7607096B2 (en) 2004-05-01 2009-10-20 Microsoft Corporation System and method for a user interface directed to discovering and publishing presence information on a network
US8041701B2 (en) 2004-05-04 2011-10-18 DG FastChannel, Inc Enhanced graphical interfaces for displaying visual data
US7593740B2 (en) 2004-05-12 2009-09-22 Google, Inc. Location-based social software for mobile devices
WO2006005814A1 (fr) 2004-05-27 2006-01-19 France Telecom Procede et installation de transmission d’un message a duree de validite predeterminee a destination d’un terminal d’abonne
US8287380B2 (en) 2006-09-01 2012-10-16 Igt Intelligent wireless mobile device for use with casino gaming table systems
US7519670B2 (en) 2004-08-12 2009-04-14 International Business Machines Corporation Method for disappearing ink for text messaging
US7929796B2 (en) 2004-09-07 2011-04-19 Nec Corporation Image processing system and method, and terminal and server used for the same
US20060058953A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US8745132B2 (en) 2004-09-10 2014-06-03 Silver State Intellectual Technologies, Inc. System and method for audio and video portable publishing system
US7920931B2 (en) 2004-11-24 2011-04-05 Koninklijke Philips Electronics N.V. Recording and playback of video clips based on audio selections
US7456872B2 (en) 2004-11-29 2008-11-25 Rothschild Trust Holdings, Llc Device and method for embedding and retrieving information in digital images
US7522548B2 (en) 2004-12-08 2009-04-21 Motorola, Inc. Providing presence information in a communication network
US8301159B2 (en) 2004-12-31 2012-10-30 Nokia Corporation Displaying network objects in mobile devices based on geolocation
JP4333599B2 (ja) 2005-02-15 2009-09-16 ソニー株式会社 情報処理装置、情報処理方法
US7801954B2 (en) 2005-02-25 2010-09-21 Microsoft Corporation Method and system for providing expanded presence information when a user is offline
US7424267B2 (en) 2005-03-07 2008-09-09 Broadcom Corporation Automatic resource availability using Bluetooth
US7423580B2 (en) 2005-03-14 2008-09-09 Invisitrack, Inc. Method and system of three-dimensional positional finding
US7454442B2 (en) 2005-04-25 2008-11-18 The Boeing Company Data fusion for advanced ground transportation system
US7650231B2 (en) 2005-04-25 2010-01-19 The Boeing Company AGTM airborne surveillance
US7349768B2 (en) 2005-04-25 2008-03-25 The Boeing Company Evacuation route planning tool
US8204052B2 (en) 2005-05-02 2012-06-19 Tekelec, Inc. Methods, systems, and computer program products for dynamically coordinating collection and distribution of presence information
US20060252438A1 (en) 2005-05-04 2006-11-09 Ansamaa Jarkko H Determining user equipment time zones for time-based service fulfillment
US7848765B2 (en) 2005-05-27 2010-12-07 Where, Inc. Location-based services
US20060287878A1 (en) 2005-06-20 2006-12-21 Engage Corporation System and Method for Facilitating the Introduction of Compatible Individuals
US8396456B2 (en) 2005-06-28 2013-03-12 Avaya Integrated Cabinet Solutions Inc. Visual voicemail management
US7805527B2 (en) 2005-06-29 2010-09-28 Microsoft Corporation Using a variable identity pipe for constrained delegation and connection pooling
US20070004426A1 (en) 2005-06-30 2007-01-04 Pfleging Gerald W Location information display for cellular device
US8963926B2 (en) 2006-07-11 2015-02-24 Pandoodle Corporation User customized animated video and method for making the same
US8275397B2 (en) 2005-07-14 2012-09-25 Huston Charles D GPS based friend location and identification system and method
US8266219B2 (en) 2005-07-20 2012-09-11 Research In Motion Limited Method and system for instant messaging conversation security
US7610345B2 (en) 2005-07-28 2009-10-27 Vaporstream Incorporated Reduced traceability electronic message system and method
US8600410B2 (en) 2005-07-28 2013-12-03 Unwired Planet, Llc Wireless network with adaptive autonomous location push
CN1794708A (zh) 2005-07-29 2006-06-28 华为技术有限公司 呈现业务系统及发布呈现信息的方法
JP4492481B2 (ja) 2005-08-16 2010-06-30 株式会社ニコン カメラハウジング
US8332475B2 (en) 2005-08-22 2012-12-11 Triplay Communications Ltd. Messaging system and method
US8405773B2 (en) 2005-09-06 2013-03-26 Nippon Telegraph And Telephone Corporation Video communication quality estimation apparatus, method, and program
US7933632B2 (en) 2005-09-16 2011-04-26 Microsoft Corporation Tile space user interface for mobile devices
US20070073823A1 (en) 2005-09-29 2007-03-29 International Business Machines Corporation Method and apparatus to secure and retrieve instant messages
CN1863172B (zh) 2005-09-30 2010-08-25 华为技术有限公司 一种发布呈现信息的方法和系统
US8284663B2 (en) 2005-10-14 2012-10-09 Turbine, Inc. Selectively ordered protocol for unreliable channels
CN1859320A (zh) 2005-10-26 2006-11-08 华为技术有限公司 一种提供呈现信息的方法及装置
US20070243887A1 (en) 2005-11-01 2007-10-18 Fonemine, Inc. Platform for telephone-optimized data and voice services
US20070214180A1 (en) 2005-11-14 2007-09-13 Crawford C S L Social network application for processing image or video data from wireless devices of users and methods of operation
US7639943B1 (en) 2005-11-15 2009-12-29 Kalajan Kevin E Computer-implemented system and method for automated image uploading and sharing from camera-enabled mobile devices
US20070208751A1 (en) 2005-11-22 2007-09-06 David Cowan Personalized content control
ITMI20052290A1 (it) 2005-11-30 2007-06-01 Pasqua Roberto Della Servizio di messaggistica istantanea con interfaccia utente minimizzata
US8732186B2 (en) 2005-12-01 2014-05-20 Peter Warren Computer-implemented method and system for enabling communication between networked users based on common characteristics
US20070136228A1 (en) 2005-12-13 2007-06-14 Petersen Lars H Systems and methods for check-in processing
US7747598B2 (en) 2006-01-27 2010-06-29 Google Inc. Geographic coding for location search queries
WO2007090133A2 (en) 2006-01-30 2007-08-09 Kramer Jame F System for providing a service to venues where people aggregate
US20070210936A1 (en) 2006-01-31 2007-09-13 Hilton Nicholson System and method for arrival alerts
US8254537B2 (en) 2006-02-03 2012-08-28 Motorola Mobility Llc Method and apparatus for updating a presence attribute
KR20100090312A (ko) 2006-02-10 2010-08-13 스트랜즈, 아이엔씨. 휴대용미디어플레이어 파일들에 우선순위를 설정하는 시스템 및 방법
WO2007093061A1 (en) 2006-02-16 2007-08-23 Shoplogix, Inc. System and method for managing manufacturing information
US8862572B2 (en) 2006-02-17 2014-10-14 Google Inc. Sharing user distributed search results
US20070198921A1 (en) 2006-02-17 2007-08-23 Derek Collison Facilitating manual user selection of one or more ads for insertion into a document to be made available to another user or users
CN1863175B (zh) 2006-02-25 2010-08-25 华为技术有限公司 一种呈现业务接入装置,呈现业务系统及发布和获取呈现信息的方法
US8112478B2 (en) 2006-03-13 2012-02-07 Oracle International Corporation Email and discussion forum system
US20070233556A1 (en) 2006-03-31 2007-10-04 Ross Koningstein Controlling the serving, with a primary document, of ads from a first source, subject to a first compensation scheme, and ads from a second source, subject to a second compensation scheme
US8255473B2 (en) 2006-04-04 2012-08-28 International Business Machines Corporation Caching message fragments during real-time messaging conversations
GB0606977D0 (en) 2006-04-06 2006-05-17 Freemantle Media Ltd Interactive video medium
US10803468B2 (en) 2006-04-18 2020-10-13 At&T Intellectual Property I, L.P. Method and apparatus for selecting advertising
US20070281690A1 (en) 2006-06-01 2007-12-06 Flipt, Inc Displaying and tagging places of interest on location-aware mobile communication devices in a local area network
US20070281716A1 (en) 2006-06-01 2007-12-06 Flipt, Inc Message transmission system for users of location-aware mobile communication devices in a local area network
US8571580B2 (en) 2006-06-01 2013-10-29 Loopt Llc. Displaying the location of individuals on an interactive map display on a mobile communication device
US7779444B2 (en) 2006-07-23 2010-08-17 William Glad System and method for video on request
US20080032703A1 (en) 2006-08-07 2008-02-07 Microsoft Corporation Location based notification services
US20080049704A1 (en) 2006-08-25 2008-02-28 Skyclix, Inc. Phone-based broadcast audio identification
US7814160B2 (en) 2006-08-31 2010-10-12 Microsoft Corporation Unified communication escalation
US8564543B2 (en) 2006-09-11 2013-10-22 Apple Inc. Media player with imaged based browsing
AU2007304834C1 (en) 2006-10-05 2014-01-23 National Ict Australia Limited Decentralised multi-user online environment
TW200820067A (en) 2006-10-19 2008-05-01 Benq Corp Method for controlling power and display parameters of a monitor and monitor for the same
US8077263B2 (en) 2006-10-23 2011-12-13 Sony Corporation Decoding multiple remote control code sets
US20080104503A1 (en) 2006-10-27 2008-05-01 Qlikkit, Inc. System and Method for Creating and Transmitting Multimedia Compilation Data
US7917154B2 (en) 2006-11-01 2011-03-29 Yahoo! Inc. Determining mobile content for a social network based on location and time
US20080109844A1 (en) 2006-11-02 2008-05-08 Adbrite, Inc. Playing video content with advertisement
KR100874109B1 (ko) 2006-11-14 2008-12-15 팅크웨어(주) 친구 위치 정보 제공 시스템 및 방법
US8140566B2 (en) 2006-12-12 2012-03-20 Yahoo! Inc. Open framework for integrating, associating, and interacting with content objects including automatic feed creation
US20080147730A1 (en) 2006-12-18 2008-06-19 Motorola, Inc. Method and system for providing location-specific image information
US8032839B2 (en) 2006-12-18 2011-10-04 Sap Ag User interface experience system
FR2910143B1 (fr) 2006-12-19 2009-04-03 Eastman Kodak Co Procede pour predire automatiquement des mots dans un texte associe a un message multimedia
US7770137B2 (en) 2006-12-20 2010-08-03 Sony Ericsson Mobile Communications Ab Methods, systems and computer program products for enhancing presence services
US20080158230A1 (en) 2006-12-29 2008-07-03 Pictureal Corp. Automatic facial animation using an image of a user
US20080168033A1 (en) 2007-01-05 2008-07-10 Yahoo! Inc. Employing mobile location to refine searches
US20080222545A1 (en) 2007-01-07 2008-09-11 Lemay Stephen O Portable Electronic Device with a Global Setting User Interface
US8572642B2 (en) 2007-01-10 2013-10-29 Steven Schraga Customized program insertion system
JP2008206138A (ja) 2007-01-26 2008-09-04 Matsushita Electric Ind Co Ltd 撮像装置および画像処理装置
US20080189177A1 (en) 2007-02-02 2008-08-07 Anderton Jared M Systems and methods for providing advertisements
US8136028B1 (en) 2007-02-02 2012-03-13 Loeb Enterprises Llc System and method for providing viewers of a digital image information about identifiable objects and scenes within the image
US20080208692A1 (en) 2007-02-26 2008-08-28 Cadence Media, Inc. Sponsored content creation and distribution
US8473386B2 (en) 2007-04-10 2013-06-25 Ingenio Llc Systems and methods to facilitate real time communications between members of a social network
JP2008262371A (ja) 2007-04-11 2008-10-30 Sony Ericsson Mobilecommunications Japan Inc 表示制御装置、表示制御方法、表示制御プログラム、及び携帯端末装置
JP4564512B2 (ja) 2007-04-16 2010-10-20 富士通株式会社 表示装置、表示プログラム、および表示方法
WO2008129542A2 (en) 2007-04-23 2008-10-30 Ramot At Tel-Aviv University Ltd System, method and a computer readible medium for providing an output image
US20080270938A1 (en) 2007-04-29 2008-10-30 Elizabeth Marie Carlson System for self-registering visitor information with geographic specificity and searchable fields
US7958188B2 (en) 2007-05-04 2011-06-07 International Business Machines Corporation Transaction-initiated batch processing
US8694379B2 (en) 2007-05-14 2014-04-08 Microsoft Corporation One-click posting
US7778973B2 (en) 2007-05-18 2010-08-17 Tat Kuen Choi System, method, and program for sharing photos via the internet
US8463253B2 (en) 2007-06-21 2013-06-11 Verizon Patent And Licensing Inc. Flexible lifestyle portable communications device
US8065628B2 (en) 2007-06-25 2011-11-22 Microsoft Corporation Dynamic user interface for previewing live content
US8661464B2 (en) 2007-06-27 2014-02-25 Google Inc. Targeting in-video advertising
US20090005018A1 (en) 2007-06-28 2009-01-01 Apple Inc. Route Sharing and Location
US8312086B2 (en) 2007-06-29 2012-11-13 Verizon Patent And Licensing Inc. Method and apparatus for message customization
WO2009009242A1 (en) 2007-07-06 2009-01-15 Evan Ellsworth Collapsible child seat
KR101373333B1 (ko) 2007-07-11 2014-03-10 엘지전자 주식회사 터치인식을 통한 영상촬영 기능을 구비한 휴대 단말기 및그 촬영방법
JP5184832B2 (ja) 2007-07-17 2013-04-17 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
US20090030999A1 (en) 2007-07-27 2009-01-29 Gatzke Alan D Contact Proximity Notification
JP2009044602A (ja) 2007-08-10 2009-02-26 Olympus Imaging Corp 撮像装置、撮像システム及び撮像方法
US7970418B2 (en) 2007-08-31 2011-06-28 Verizon Patent And Licensing Inc. Method and system of providing event content sharing by mobile communication devices
US7956848B2 (en) 2007-09-04 2011-06-07 Apple Inc. Video chapter access and license renewal
CN101399998B (zh) 2007-09-24 2011-06-08 鸿富锦精密工业(深圳)有限公司 白平衡调整系统及方法
WO2009043020A2 (en) 2007-09-28 2009-04-02 The Trustees Of Dartmouth College System and method for injecting sensed presence into social networking applications
US8352549B2 (en) 2007-09-28 2013-01-08 Ebay Inc. System and method for creating topic neighborhoods in a networked system
US8165604B2 (en) 2007-10-04 2012-04-24 Zos Communications, Llc Methods for processing and distributing location-based data
DE602007003853D1 (de) 2007-10-19 2010-01-28 Research In Motion Ltd Mechanismus zur Ausgabe von Präsenzinformationen innerhalb eines Präsenzdienstes und Benutzerschnittstelle zu dessen Konfiguration
US8472935B1 (en) 2007-10-29 2013-06-25 Iwao Fujisaki Communication device
TWI363993B (en) 2007-10-31 2012-05-11 Ibm Method for auto-deploying an application from a mobile device to a host in a pervasive computing environment and the mobile device implementing the method
US8385950B1 (en) 2007-11-09 2013-02-26 Google Inc. Capturing and automatically uploading media content
US20090291672A1 (en) 2007-11-14 2009-11-26 Ron Treves System And Method For Providing Personalized Automated And Autonomously Initiated Information Delivery And Chaperone Service
WO2009063441A2 (en) 2007-11-14 2009-05-22 France Telecom A system and method for managing widges
US20090132665A1 (en) 2007-11-20 2009-05-21 Evite Llc Method and system for communicating invitations and responses to an event with a mobile device
US20090132341A1 (en) 2007-11-20 2009-05-21 Theresa Klinger Method and System for Monetizing User-Generated Content
KR101387527B1 (ko) 2007-12-06 2014-04-23 엘지전자 주식회사 단말기 및 그 메뉴 아이콘 디스플레이 방법
US20090148045A1 (en) 2007-12-07 2009-06-11 Microsoft Corporation Applying image-based contextual advertisements to images
US8212784B2 (en) 2007-12-13 2012-07-03 Microsoft Corporation Selection and display of media associated with a geographic area based on gesture input
US8655718B2 (en) 2007-12-18 2014-02-18 Yahoo! Inc. Methods for augmenting user-generated content using a monetizable feature
US8412579B2 (en) 2007-12-18 2013-04-02 Carlos Gonzalez Recipes management system
US20090160970A1 (en) 2007-12-20 2009-06-25 Fredlund John R Remote determination of image-acquisition settings and opportunities
US8515397B2 (en) 2007-12-24 2013-08-20 Qualcomm Incorporation Time and location based theme of mobile telephones
US8276092B1 (en) 2008-01-31 2012-09-25 Intuit Inc. Method and system for displaying financial reports
US20090199242A1 (en) 2008-02-05 2009-08-06 Johnson Bradley G System and Method for Distributing Video Content via a Packet Based Network
US20090215469A1 (en) 2008-02-27 2009-08-27 Amit Fisher Device, System, and Method of Generating Location-Based Social Networks
US7447996B1 (en) 2008-02-28 2008-11-04 International Business Machines Corporation System for using gender analysis of names to assign avatars in instant messaging applications
US8214443B2 (en) 2008-03-05 2012-07-03 Aol Inc. Electronic mail forwarding service
US8098881B2 (en) 2008-03-11 2012-01-17 Sony Ericsson Mobile Communications Ab Advertisement insertion systems and methods for digital cameras based on object recognition
US20090239552A1 (en) 2008-03-24 2009-09-24 Yahoo! Inc. Location-based opportunistic recommendations
WO2009120301A2 (en) 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
CA2719794C (en) 2008-03-28 2020-10-27 Celltrust Corporation Systems and methods for secure short messaging service and multimedia messaging service
US8098904B2 (en) 2008-03-31 2012-01-17 Google Inc. Automatic face detection and identity masking in images, and applications thereof
US8645867B2 (en) 2008-04-22 2014-02-04 Apple Inc. Modifying time associated with digital media items
JP2009267526A (ja) 2008-04-22 2009-11-12 Sharp Corp 大量のコンテンツの一覧表示方法及び一覧表示装置
US20090288022A1 (en) 2008-05-15 2009-11-19 Sony Corporation Dynamically changing a user interface based on device location and/or date/time
MX2010012474A (es) * 2008-05-21 2011-03-21 Ericsson Telefon Ab L M Servidor de central de conmutacion que consiste en un conglomerado de servidores blade y metodo para la señalizacion.
US20090292608A1 (en) 2008-05-22 2009-11-26 Ruth Polachek Method and system for user interaction with advertisements sharing, rating of and interacting with online advertisements
US8359356B2 (en) 2008-06-20 2013-01-22 At&T Intellectual Property I, Lp Presenting calendar events with presence information
US20090327073A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Intelligent advertising display
US9305230B2 (en) 2008-07-14 2016-04-05 Jumio Inc. Internet payment system using credit card imaging
JP2012501561A (ja) 2008-07-16 2012-01-19 グリンプス インク ネットワーク化されたコンピュータ環境における位置情報の共有
US10375244B2 (en) 2008-08-06 2019-08-06 Avaya Inc. Premises enabled mobile kiosk, using customers' mobile communication device
US20100082693A1 (en) 2008-09-25 2010-04-01 Ethan Hugg Organization of a contact list based on social network context
US20100082427A1 (en) 2008-09-30 2010-04-01 Yahoo! Inc. System and Method for Context Enhanced Ad Creation
US8295855B2 (en) 2008-11-04 2012-10-23 International Business Machines Corporation GPS driven architecture for delivery of location based multimedia and method of use
US8082255B1 (en) 2008-11-21 2011-12-20 eMinor Incorporated Branding digital content
US8494560B2 (en) 2008-11-25 2013-07-23 Lansing Arthur Parker System, method and program product for location based services, asset management and tracking
US8527877B2 (en) 2008-11-25 2013-09-03 At&T Intellectual Property I, L.P. Systems and methods to select media content
US20100153144A1 (en) 2008-12-09 2010-06-17 Continental Airlines, Inc. Automated Check-in for Reserved Service
WO2010068175A2 (en) 2008-12-10 2010-06-17 Muvee Technologies Pte Ltd Creating a new video production by intercutting between multiple video clips
US9336178B2 (en) 2008-12-19 2016-05-10 Velocee Ltd. Optimizing content and communication in multiaccess mobile device exhibiting communication functionalities responsive of tempo spatial parameters
US8428626B2 (en) 2008-12-23 2013-04-23 At&T Mobility Ii Llc Selective caching of real time messaging threads
US20100162149A1 (en) 2008-12-24 2010-06-24 At&T Intellectual Property I, L.P. Systems and Methods to Provide Location Information
US20100185552A1 (en) 2009-01-16 2010-07-22 International Business Machines Corporation Providing gps-based location and time information
US8719238B2 (en) 2009-01-22 2014-05-06 Sunstein Kann Murphy & Timbers LLP Office-based notification messaging system
US20100191631A1 (en) 2009-01-29 2010-07-29 Adrian Weidmann Quantitative media valuation method, system and computer program
US20100198694A1 (en) 2009-01-30 2010-08-05 Google Inc. Advertisement Slot Configuration
US8725560B2 (en) 2009-02-02 2014-05-13 Modiface Inc. Method and system for simulated product evaluation via personalizing advertisements based on portrait images
US8321509B2 (en) 2009-02-02 2012-11-27 Waldeck Technology, Llc Handling crowd requests for large geographic areas
US20100201536A1 (en) 2009-02-10 2010-08-12 William Benjamin Robertson System and method for accessing a structure using a mobile device
US8791790B2 (en) 2009-02-10 2014-07-29 Yikes Llc System and method for accessing a structure using a mobile device
KR101595254B1 (ko) 2009-02-20 2016-02-18 삼성전자주식회사 화이트 밸런스 조정 방법, 상기 방법을 기록한 기록 매체, 화이트 밸런스 조정 장치
US20100223343A1 (en) 2009-02-27 2010-09-02 Sorel Bosan System and Method for Communicating from an Electronic Device
US8860865B2 (en) 2009-03-02 2014-10-14 Burning Moon, Llc Assisted video creation utilizing a camera
US9020745B2 (en) 2009-03-30 2015-04-28 Microsoft Technology Licensing, Llc Business data display and position correction in street-side imagery
US8264352B2 (en) 2009-04-09 2012-09-11 International Business Machines Corporation System and methods for locating mobile devices using location and presence information
US8428620B2 (en) 2009-04-22 2013-04-23 Centurylink Intellectual Property Llc Mass transportation service delivery platform
US20100274569A1 (en) 2009-04-23 2010-10-28 Douglas Reudink Real-time location sharing
JP5132629B2 (ja) 2009-05-11 2013-01-30 ソニーモバイルコミュニケーションズ, エービー 情報端末、情報端末の情報提示方法及び情報提示プログラム
US8645164B2 (en) 2009-05-28 2014-02-04 Indiana University Research And Technology Corporation Medical information visualization assistant system and method
US8214446B1 (en) 2009-06-04 2012-07-03 Imdb.Com, Inc. Segmenting access to electronic message boards
US8930438B2 (en) 2009-06-17 2015-01-06 Apple Inc. Push-based location update
US9148510B2 (en) 2009-06-23 2015-09-29 MEA Mobile Smart phone crowd enhancement
US20110010205A1 (en) 2009-07-08 2011-01-13 American Express Travel Related Services Company, Inc. Travel fare determination and display in social networks
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US10282481B2 (en) 2009-07-31 2019-05-07 Oath Inc. Providing link to portion of media object in real time in social networking update
AU2010279620B2 (en) 2009-08-03 2014-01-16 Unomobi, Inc. System and method for adding advertisements to a location-based advertising system
US9544379B2 (en) 2009-08-03 2017-01-10 Wolfram K. Gauglitz Systems and methods for event networking and media sharing
US8379130B2 (en) 2009-08-07 2013-02-19 Qualcomm Incorporated Apparatus and method of processing images based on an adjusted value of an image processing parameter
US8775472B2 (en) 2009-08-14 2014-07-08 Apple Inc. Dynamic presentation framework
JP5402409B2 (ja) 2009-08-31 2014-01-29 ソニー株式会社 撮影条件設定装置、撮影条件設定方法及び撮影条件設定プログラム
US8228413B2 (en) 2009-09-01 2012-07-24 Geovector Corp. Photographer's guidance systems
US8090351B2 (en) 2009-09-01 2012-01-03 Elliot Klein Geographical location authentication method
KR101395367B1 (ko) 2009-09-07 2014-05-14 노키아 코포레이션 장치
US8510383B2 (en) 2009-09-14 2013-08-13 Clixtr, Inc. Method for providing event based media streams
US8660793B2 (en) 2009-09-18 2014-02-25 Blackberry Limited Expediting reverse geocoding with a bounding region
US8306922B1 (en) 2009-10-01 2012-11-06 Google Inc. Detecting content on a social network using links
US9119027B2 (en) 2009-10-06 2015-08-25 Facebook, Inc. Sharing of location-based content item in social networking service
US9183544B2 (en) 2009-10-14 2015-11-10 Yahoo! Inc. Generating a relationship history
US20110102630A1 (en) 2009-10-30 2011-05-05 Jason Rukes Image capturing devices using device location information to adjust image data during image signal processing
US8161417B1 (en) 2009-11-04 2012-04-17 Sprint Communications Company L.P. Enhancing usability of a moving touch screen
US8396888B2 (en) 2009-12-04 2013-03-12 Google Inc. Location-based searching using a search area that corresponds to a geographical location of a computing device
US8503984B2 (en) 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
CN102118419B (zh) 2009-12-30 2014-07-16 华为技术有限公司 一种图片信息的传输方法、装置和通信系统
US8400548B2 (en) 2010-01-05 2013-03-19 Apple Inc. Synchronized, interactive augmented reality displays for multifunction devices
US8856349B2 (en) 2010-02-05 2014-10-07 Sling Media Inc. Connection priority services for data communication between two devices
US9443227B2 (en) 2010-02-16 2016-09-13 Tigertext, Inc. Messaging system apparatuses circuits and methods of operation thereof
US9672332B2 (en) 2010-02-18 2017-06-06 Nokia Technologies Oy Method and apparatus for preventing unauthorized use of media items
US20110208822A1 (en) 2010-02-22 2011-08-25 Yogesh Chunilal Rathod Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine
US20110213845A1 (en) 2010-02-26 2011-09-01 Research In Motion Limited Automatic deletion of electronic messages
US20110238763A1 (en) 2010-02-26 2011-09-29 Momo Networks, Inc. Social Help Network
US8310394B2 (en) 2010-03-08 2012-11-13 Deutsche Telekom Ag Apparatus, method, manufacture, and system for sensing substitution for location-based applications
US10074094B2 (en) 2010-03-09 2018-09-11 Excalibur Ip, Llc Generating a user profile based on self disclosed public status information
US20110238476A1 (en) 2010-03-23 2011-09-29 Michael Carr Location-based Coupons and Mobile Devices
WO2011130614A1 (en) 2010-04-15 2011-10-20 Pongr, Inc. Networked image recognition methods and systems
KR101643869B1 (ko) 2010-05-06 2016-07-29 엘지전자 주식회사 휴대 단말기 및 그 동작 방법
US8359361B2 (en) 2010-05-06 2013-01-22 Microsoft Corporation Techniques to share media files through messaging
US8990732B2 (en) 2010-05-14 2015-03-24 Sap Se Value interval selection on multi-touch devices
US8620935B2 (en) 2011-06-24 2013-12-31 Yahoo! Inc. Personalizing an online service based on data collected for a user of a computing device
US20110314419A1 (en) 2010-06-22 2011-12-22 Microsoft Corporation Customizing a search experience using images
US8438226B2 (en) 2010-06-22 2013-05-07 International Business Machines Corporation Dynamic adjustment of user-received communications for a real-time multimedia communications event
US20110320373A1 (en) 2010-06-25 2011-12-29 Microsoft Corporation Product conversations among social groups
CA2745536A1 (en) 2010-07-06 2012-01-06 Omar M. Sheikh Improving the relevancy of advertising material through user-defined preference filters, location and permission information
US8233887B2 (en) 2010-07-28 2012-07-31 Sprint Communications Company L.P. Covert message redaction and recovery in a wireless communication device
US8744523B2 (en) 2010-08-02 2014-06-03 At&T Intellectual Property I, L.P. Method and system for interactive home monitoring
US8301196B2 (en) 2010-08-03 2012-10-30 Honeywell International Inc. Reconfigurable wireless modem adapter including diversity/MIMO modems
US8326327B2 (en) 2010-08-27 2012-12-04 Research In Motion Limited System and method for determining action spot locations relative to the location of a mobile device
US8381246B2 (en) 2010-08-27 2013-02-19 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for providing electronic program guides
US8588739B2 (en) 2010-08-27 2013-11-19 Kyocera Corporation Mobile terminal, lock state control program for mobile terminal, and a method for controlling lock state of mobile terminal
US8423409B2 (en) 2010-09-02 2013-04-16 Yahoo! Inc. System and method for monetizing user-generated web content
US9588992B2 (en) 2010-09-30 2017-03-07 Microsoft Technology Licensing, Llc Displaying images interesting to a user
US8732855B2 (en) 2010-09-30 2014-05-20 Google Inc. Launching a cached web application based on authentication status
US20140047016A1 (en) 2010-10-21 2014-02-13 Bindu Rama Rao Server infrastructure, mobile client device and app for mobile blogging and sharing
US8660369B2 (en) 2010-10-25 2014-02-25 Disney Enterprises, Inc. Systems and methods using mobile devices for augmented reality
US10102208B2 (en) 2010-10-29 2018-10-16 Microsoft Technology Licensing, Llc Automatic multimedia slideshows for social media-enabled mobile devices
US9338197B2 (en) 2010-11-01 2016-05-10 Google Inc. Social circles in social networks
US8195194B1 (en) 2010-11-02 2012-06-05 Google Inc. Alarm for mobile communication device
JP5733952B2 (ja) 2010-11-04 2015-06-10 キヤノン株式会社 撮像装置、撮像システム、及び撮像装置の制御方法
US9280849B2 (en) 2010-11-08 2016-03-08 Sony Corporation Augmented reality interface for video tagging and sharing
US8543460B2 (en) 2010-11-11 2013-09-24 Teaneck Enterprises, Llc Serving ad requests using user generated photo ads
US9886727B2 (en) 2010-11-11 2018-02-06 Ikorongo Technology, LLC Automatic check-ins and status updates
JP5212448B2 (ja) 2010-11-15 2013-06-19 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム、画像処理装置の制御方法、携帯端末、および制御プログラム
US20120124126A1 (en) 2010-11-17 2012-05-17 Microsoft Corporation Contextual and task focused computing
US20120124458A1 (en) 2010-11-17 2012-05-17 Nazareno Brier Cruzada Social networking website & web-based system for collecting & presenting real-time user generated information on parties & events.
JP5706137B2 (ja) 2010-11-22 2015-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数の投稿(データのグループ)を複数の軸に沿ってリアルタイムにコンピュータ画面に表示する方法およびコンピュータ・プログラム
US20120131507A1 (en) 2010-11-24 2012-05-24 General Electric Company Patient information timeline viewer
US20120166971A1 (en) 2010-12-28 2012-06-28 Thomas Sachson Social Networking Timeline System And Method
US20120169855A1 (en) 2010-12-30 2012-07-05 Electronics And Telecommunications Research Institute System and method for real-sense acquisition
US8683349B2 (en) 2010-12-31 2014-03-25 Verizon Patent And Licensing Inc. Media content user interface systems and methods
US8717381B2 (en) 2011-01-11 2014-05-06 Apple Inc. Gesture mapping for image filter input parameters
US8457668B2 (en) 2011-01-18 2013-06-04 Claremont Speede Mobile sender initiated SMS message deletion method and system
US20120197724A1 (en) 2011-02-01 2012-08-02 Timothy Kendall Ad-Based Location Ranking for Geo-Social Networking System
US8488011B2 (en) 2011-02-08 2013-07-16 Longsand Limited System to augment a visual data stream based on a combination of geographical and visual information
US20120210244A1 (en) 2011-02-10 2012-08-16 Alcatel-Lucent Usa Inc. Cross-Domain Privacy Management Service For Social Networking Sites
US8594680B2 (en) 2011-02-16 2013-11-26 Nokia Corporation Methods, apparatuses and computer program products for providing a private and efficient geolocation system
US8660358B1 (en) 2011-02-18 2014-02-25 Google Inc. Rank-based image piling
US9432450B2 (en) 2011-02-22 2016-08-30 Fedex Corporate Services, Inc. Systems and methods for geo-staging of sensor data through distributed global (cloud) architecture
US8954503B2 (en) 2011-03-03 2015-02-10 Facebook, Inc. Identify experts and influencers in a social network
CN104765801A (zh) 2011-03-07 2015-07-08 科宝2股份有限公司 用于从事件或地理位置处的图像提供者进行分析数据采集的系统及方法
US8849931B2 (en) 2011-03-15 2014-09-30 Idt Messaging, Llc Linking context-based information to text messages
JP5136669B2 (ja) 2011-03-18 2013-02-06 カシオ計算機株式会社 画像処理装置、画像処理方法及びプログラム
US9331972B2 (en) 2011-03-31 2016-05-03 Loment, Inc. Automatic expiration of messages communicated to an end user communication device
US9131343B2 (en) 2011-03-31 2015-09-08 Teaneck Enterprises, Llc System and method for automated proximity-based social check-ins
US8744143B2 (en) 2011-04-01 2014-06-03 Yahoo! Inc. Adding privacy protection to photo uploading/ tagging in social networks
US8918463B2 (en) 2011-04-29 2014-12-23 Facebook, Inc. Automated event tagging
US20120290637A1 (en) 2011-05-12 2012-11-15 Microsoft Corporation Personalized news feed based on peer and personal activity
US9383959B2 (en) 2011-05-27 2016-07-05 Kyocera Corporation Rotatable mobile electronic device and soft key input method
US20120304052A1 (en) 2011-05-27 2012-11-29 Wesley Tanaka Systems And Methods For Displaying An Image In A Plurality Of Designs
JP5806512B2 (ja) 2011-05-31 2015-11-10 オリンパス株式会社 撮像装置、撮像方法および撮像プログラム
US8854491B2 (en) 2011-06-05 2014-10-07 Apple Inc. Metadata-assisted image filters
US20120324018A1 (en) 2011-06-16 2012-12-20 Yahoo! Inc. Systems and methods for location based social network
KR101217469B1 (ko) 2011-06-16 2013-01-02 주식회사 네오펄스 다중대역 특성을 갖는 mimo 안테나
US20120323933A1 (en) 2011-06-20 2012-12-20 Microsoft Corporation Displaying notifications based on importance to the user
US9411506B1 (en) 2011-06-28 2016-08-09 Google Inc. Providing additional functionality for a group messaging application
US20130006759A1 (en) 2011-07-01 2013-01-03 Yahoo! Inc. Monetizing user generated content with embedded advertisements
US9459778B2 (en) 2011-07-12 2016-10-04 Mobli Technologies 2010 Ltd. Methods and systems of providing visual content editing functions
US20130185131A1 (en) 2011-07-18 2013-07-18 Pradeep Sinha System and method for integrating social and loyalty platforms
US9396167B2 (en) 2011-07-21 2016-07-19 Flipboard, Inc. Template-based page layout for hosted social magazines
US8849819B2 (en) 2011-08-05 2014-09-30 Deacon Johnson System and method for controlling and organizing metadata associated with on-line content
WO2013028388A1 (en) 2011-08-19 2013-02-28 30 Second Software Geo-fence entry and exit notification system
US8965974B2 (en) 2011-08-19 2015-02-24 Board Of Regents, The University Of Texas System Systems and methods for determining user attribute values by mining user network data and information
WO2013032955A1 (en) 2011-08-26 2013-03-07 Reincloud Corporation Equipment, systems and methods for navigating through multiple reality models
US20130055082A1 (en) 2011-08-26 2013-02-28 Jorge Fino Device, Method, and Graphical User Interface for Navigating and Previewing Content Items
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US8515870B2 (en) 2011-09-06 2013-08-20 Rawllin International Inc. Electronic payment systems and supporting methods and devices
KR20130028598A (ko) 2011-09-09 2013-03-19 삼성전자주식회사 장치 및 장치의 이미지 파일의 sns 업로드방법
US20130063369A1 (en) 2011-09-14 2013-03-14 Verizon Patent And Licensing Inc. Method and apparatus for media rendering services using gesture and/or voice control
US9710821B2 (en) 2011-09-15 2017-07-18 Stephan HEATH Systems and methods for mobile and online payment systems for purchases related to mobile and online promotions or offers provided using impressions tracking and analysis, location information, 2D and 3D mapping, mobile mapping, social media, and user behavior and
US20130071093A1 (en) 2011-09-16 2013-03-21 William Turner Hanks Maintaining viewer activity information of a recorded program for program deletion decisions
US20130111514A1 (en) 2011-09-16 2013-05-02 Umami Co. Second screen interactive platform
US20130080254A1 (en) 2011-09-21 2013-03-28 Jeff Thramann Electric Vehicle Charging Station with Connectivity to Mobile Devices to Provide Local Information
US8797415B2 (en) 2011-09-26 2014-08-05 Google Inc. Device, system and method for image capture device using weather information
WO2013045753A1 (en) 2011-09-28 2013-04-04 Nokia Corporation Method and apparatus for enabling experience based route selection
US20130085790A1 (en) 2011-09-29 2013-04-04 Ebay Inc. Organization of Group Attended Ticketed Event
US20130086072A1 (en) 2011-10-03 2013-04-04 Xerox Corporation Method and system for extracting and classifying geolocation information utilizing electronic social media
US20130090171A1 (en) 2011-10-07 2013-04-11 Gregory W. HOLTON Initiating and conducting a competitive social game using a server connected to a plurality of user terminals via a computer network
US8725168B2 (en) 2011-10-17 2014-05-13 Facebook, Inc. Content surfacing based on geo-social factors
US20130110885A1 (en) 2011-10-31 2013-05-02 Vox Media, Inc. Story-based data structures
WO2013067368A1 (en) 2011-11-02 2013-05-10 Photopon, Inc. System and method for experience-sharing within a computer network
JP2015505384A (ja) 2011-11-08 2015-02-19 ヴィディノティ エスアーVidinoti Sa 画像アノテーション方法およびシステム
US9098720B2 (en) 2011-11-21 2015-08-04 Facebook, Inc. Location aware shared spaces
US20130128059A1 (en) 2011-11-22 2013-05-23 Sony Mobile Communications Ab Method for supporting a user taking a photo with a mobile device
TWI557630B (zh) 2011-12-06 2016-11-11 宏碁股份有限公司 電子裝置、社群互動磚資料顯示方法及動態圖示磚連結方法
US8352546B1 (en) 2011-12-08 2013-01-08 Google Inc. Contextual and location awareness for device interaction
US20130159110A1 (en) 2011-12-14 2013-06-20 Giridhar Rajaram Targeting users of a social networking system based on interest intensity
US8234350B1 (en) 2011-12-19 2012-07-31 Seachange International, Inc. Systems and methods for generating targeted manifest files
US20130159919A1 (en) 2011-12-19 2013-06-20 Gabriel Leydon Systems and Methods for Identifying and Suggesting Emoticons
US10354750B2 (en) 2011-12-23 2019-07-16 Iconic Data Inc. System, client device, server and method for providing a cross-facility patient data management and reporting platform
US9286678B2 (en) 2011-12-28 2016-03-15 Pelco, Inc. Camera calibration using feature identification
US9253134B2 (en) 2011-12-30 2016-02-02 Google Inc. Creating real-time conversations
US20130267253A1 (en) 2012-01-12 2013-10-10 Environmental Systems Research Institute, Inc. Trigger zones and dwell time analytics
JP5890692B2 (ja) 2012-01-13 2016-03-22 キヤノン株式会社 撮像装置、制御方法及びプログラム
US20130191198A1 (en) 2012-01-20 2013-07-25 Visa International Service Association Systems and methods to redeem offers based on a predetermined geographic region
US9258459B2 (en) 2012-01-24 2016-02-09 Radical Switchcam Llc System and method for compiling and playing a multi-channel video
KR101303166B1 (ko) 2012-01-26 2013-09-09 엘지전자 주식회사 이동 단말기 및 그의 사진 검색방법
US8788680B1 (en) 2012-01-30 2014-07-22 Google Inc. Virtual collaboration session access
US20130194301A1 (en) 2012-01-30 2013-08-01 Burn Note, Inc. System and method for securely transmiting sensitive information
US8768876B2 (en) 2012-02-24 2014-07-01 Placed, Inc. Inference pipeline system and method
US9778706B2 (en) 2012-02-24 2017-10-03 Blackberry Limited Peekable user interface on a portable electronic device
US20130227476A1 (en) 2012-02-24 2013-08-29 Nokia Corporation Method, apparatus and computer program product for management of information on a graphic user interface
US8972357B2 (en) 2012-02-24 2015-03-03 Placed, Inc. System and method for data collection to validate location data
US20130232194A1 (en) 2012-03-05 2013-09-05 Myspace Llc Event application
US9407860B2 (en) 2012-04-06 2016-08-02 Melvin Lee Barnes, JR. System, method and computer program product for processing image data
US20150088622A1 (en) 2012-04-06 2015-03-26 LiveOne, Inc. Social media application for a media content providing platform
US20140019264A1 (en) 2012-05-07 2014-01-16 Ditto Labs, Inc. Framework for product promotion and advertising using social networking services
US20130304646A1 (en) 2012-05-14 2013-11-14 Izettle Hardware Ab Method and system for identity and know your customer verification through credit card transactions in combination with internet based social data
US20130311255A1 (en) 2012-05-17 2013-11-21 Mastercard International Incorporated Method and system for displaying and updating limited redemption coupons on a mobile device
JP6261848B2 (ja) 2012-05-17 2018-01-17 任天堂株式会社 プログラム、サーバ装置、携帯端末、情報処理方法、通信システム及び通信方法
JP6455147B2 (ja) 2012-05-22 2019-01-23 株式会社ニコン 電子カメラ、画像表示装置および画像表示プログラム
US9319470B2 (en) 2012-05-30 2016-04-19 Henry Berberat Location-based social networking system
US9374396B2 (en) 2012-06-24 2016-06-21 Google Inc. Recommended content for an endorsement user interface
US8954092B2 (en) 2012-06-25 2015-02-10 Google Inc. Pre-caching data related to a travel destination
JP6246805B2 (ja) 2012-06-26 2017-12-13 グーグル エルエルシー スライドショーを作成するためのシステムおよび方法
US9439041B2 (en) 2012-06-29 2016-09-06 Lighthouse Signal Systems, Llc Systems and methods for calibration based indoor geolocation
TW201415027A (zh) 2012-07-05 2014-04-16 Brita Professional Gmbh & Co Kg 利用流體處理裝置決定可由流體移除之成分濃度量測値
US9442181B2 (en) 2012-07-18 2016-09-13 Microsoft Technology Licensing, Llc Prediction for power conservation in a mobile device
US9560006B2 (en) 2012-07-26 2017-01-31 Google Inc. Method and apparatus for expiring messages in electronic communications
US8856924B2 (en) 2012-08-07 2014-10-07 Cloudflare, Inc. Mitigating a denial-of-service attack in a cloud-based proxy service
US9165288B2 (en) 2012-08-09 2015-10-20 Polaris Wirelesss, Inc. Inferring relationships based on geo-temporal data other than telecommunications
US9083414B2 (en) 2012-08-09 2015-07-14 GM Global Technology Operations LLC LTE MIMO-capable multi-functional vehicle antenna
US10198152B2 (en) 2012-08-10 2019-02-05 Oath Inc. Systems and methods for providing and updating live-streaming online content in an interactive web platform
US9047382B2 (en) 2012-08-13 2015-06-02 Facebook, Inc. Customized presentation of event guest lists in a social networking system
US20140052485A1 (en) 2012-08-13 2014-02-20 Rundavoo, Inc. System and method for on-line event promotion and group planning
US20140052633A1 (en) 2012-08-15 2014-02-20 Ebay Inc. Payment in a chat session
KR101977703B1 (ko) 2012-08-17 2019-05-13 삼성전자 주식회사 단말의 촬영 제어 방법 및 그 단말
US8787888B2 (en) 2012-08-29 2014-07-22 Facebook, Inc. Sharing location information during a communication session
US9767850B2 (en) 2012-09-08 2017-09-19 Michael Brough Method for editing multiple video files and matching them to audio files
US9661361B2 (en) 2012-09-19 2017-05-23 Google Inc. Systems and methods for live media content matching
US9746990B2 (en) 2012-09-28 2017-08-29 Intel Corporation Selectively augmenting communications transmitted by a communication device
US20140096018A1 (en) 2012-09-28 2014-04-03 Interactive Memories, Inc. Methods for Recognizing Digital Images of Persons known to a Customer Creating an Image-Based Project through an Electronic Interface
CN103777852B (zh) 2012-10-18 2018-10-02 腾讯科技(深圳)有限公司 一种获取图像的方法、装置
US20140114565A1 (en) 2012-10-22 2014-04-24 Adnan Aziz Navigation of a vehicle along a path
WO2014068573A1 (en) 2012-10-31 2014-05-08 Aniways Advertising Solutions Ltd. Custom emoticon generation
US9032050B2 (en) 2012-10-31 2015-05-12 Vmware, Inc. Systems and methods for accelerating remote data retrieval via peer nodes
US8775972B2 (en) 2012-11-08 2014-07-08 Snapchat, Inc. Apparatus and method for single action control of social network profile access
US20140143143A1 (en) 2012-11-16 2014-05-22 Jonathan David Fasoli Using card image to extract bank account information
US20140149519A1 (en) 2012-11-28 2014-05-29 Linkedln Corporation Meeting room status based on attendee position information
US9088625B1 (en) 2012-12-12 2015-07-21 Google Inc. Obtaining an image for a place of interest
US9459752B2 (en) 2012-12-14 2016-10-04 Microsoft Technology Licensing, Llc Browsing electronic messages displayed as tiles
US9098802B2 (en) 2012-12-20 2015-08-04 Facebook, Inc. Inferring contextual user status and duration
US20140178029A1 (en) 2012-12-26 2014-06-26 Ali Fazal Raheman Novel Augmented Reality Kiosks
US9658742B2 (en) 2012-12-28 2017-05-23 Intel Corporation Generating and displaying supplemental information and user interactions on interface tiles of a user interface
KR20140094801A (ko) 2013-01-23 2014-07-31 주식회사 케이티 인스턴트 메신저가 탑재된 이동단말 및 이를 이용한 마일리지 거래 방법
WO2014115136A1 (en) 2013-01-28 2014-07-31 Sanderling Management Limited Dynamic promotional layout management and distribution rules
US8989773B2 (en) 2013-01-29 2015-03-24 Apple Inc. Sharing location information among devices
US20140214471A1 (en) 2013-01-31 2014-07-31 Donald Raymond Schreiner, III System for Tracking Preparation Time and Attendance at a Meeting
US20140222564A1 (en) 2013-02-07 2014-08-07 KBR IP Holdings, LLC Geo-located social connectivity relating to events and commerce
US20150378502A1 (en) 2013-02-08 2015-12-31 Motorola Solutions, Inc. Method and apparatus for managing user interface elements on a touch-screen device
US20140258405A1 (en) 2013-03-05 2014-09-11 Sean Perkin Interactive Digital Content Sharing Among Users
US9450907B2 (en) 2013-03-14 2016-09-20 Facebook, Inc. Bundled event memories
US9322194B2 (en) 2013-03-15 2016-04-26 August Home, Inc. Intelligent door lock system
US20140279540A1 (en) 2013-03-15 2014-09-18 Fulcrum Ip Corporation Systems and methods for a private sector monetary authority
US20140279061A1 (en) 2013-03-15 2014-09-18 Rapp Worldwide Inc. Social Media Branding
US9824387B2 (en) 2013-03-15 2017-11-21 Proximity Concepts, LLC Systems and methods involving proximity, mapping, indexing, mobile, advertising and/or other features
US9536232B2 (en) 2013-03-15 2017-01-03 Square, Inc. Transferring money using email
US9024753B2 (en) 2013-03-15 2015-05-05 Codex Corporation Automating offender documentation with RFID
US20170185715A9 (en) 2013-03-15 2017-06-29 Douglas K. Smith Federated Collaborative Medical Records System Utilizing Cloud Computing Network and Methods
US9264463B2 (en) 2013-03-15 2016-02-16 Facebook, Inc. Method and system of managing ephemeral post in a social networking system
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US20140287779A1 (en) 2013-03-22 2014-09-25 aDesignedPath for UsabilitySolutions, LLC System, method and device for providing personalized mobile experiences at multiple locations
US9462115B2 (en) 2013-04-04 2016-10-04 James S. Rand Unified communications system and method
US10296933B2 (en) 2013-04-12 2019-05-21 Facebook, Inc. Identifying content in electronic images
US9736218B2 (en) 2013-04-24 2017-08-15 Blackberry Limited Device, system and method for processing character data
US9369833B2 (en) 2013-05-06 2016-06-14 Verizon Patent And Licensing Inc. Text message location tracking using comet trail representing speed and direction
US9742713B2 (en) 2013-05-30 2017-08-22 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9152477B1 (en) 2013-06-05 2015-10-06 Jpmorgan Chase Bank, N.A. System and method for communication among mobile applications
US8755824B1 (en) 2013-06-28 2014-06-17 Google Inc. Clustering geofence-based alerts for mobile devices
US20150020086A1 (en) 2013-07-11 2015-01-15 Samsung Electronics Co., Ltd. Systems and methods for obtaining user feedback to media content
US10445840B2 (en) 2013-08-07 2019-10-15 Microsoft Technology Licensing, Llc System and method for positioning sponsored content in a social network interface
US8825881B2 (en) 2013-09-12 2014-09-02 Bandwidth.Com, Inc. Predictive caching of IP data
US20150087263A1 (en) 2013-09-24 2015-03-26 Bennett Hill Branscomb Methods and Apparatus for Promotions and Large Scale Games in Geo-Fenced Venues
US20150096042A1 (en) 2013-10-02 2015-04-02 Innovative Venture, S.A. a Panama Corporation Method and apparatus for improved private messaging
US20150116529A1 (en) 2013-10-28 2015-04-30 Htc Corporation Automatic effect method for photography and electronic apparatus
US9432810B2 (en) 2013-10-29 2016-08-30 Whooley, Inc. Opt-in and time limited bi-directional real-time location sharing
US20150178260A1 (en) 2013-12-20 2015-06-25 Avaya, Inc. Multi-layered presentation and mechanisms for collaborating with the same
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9628950B1 (en) 2014-01-12 2017-04-18 Investment Asset Holdings Llc Location-based messaging
CN104807466B (zh) 2014-01-24 2017-10-10 腾讯科技(深圳)有限公司 地图信息显示方法及装置
US8909725B1 (en) 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
US9823724B2 (en) 2014-04-16 2017-11-21 Facebook, Inc. Power management of mobile clients using location-based services
US10845982B2 (en) 2014-04-28 2020-11-24 Facebook, Inc. Providing intelligent transcriptions of sound messages in a messaging application
US10558338B2 (en) 2014-05-28 2020-02-11 Facebook, Inc. Systems and methods for providing responses to and drawings for media content
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US10382378B2 (en) 2014-05-31 2019-08-13 Apple Inc. Live location sharing
KR20200033999A (ko) 2014-10-24 2020-03-30 스냅 인코포레이티드 메시지의 우선 순위 지정
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US20160134740A1 (en) 2014-07-11 2016-05-12 Steven Samuel Gal Mobile device application execution
US10630625B2 (en) 2014-07-13 2020-04-21 Snap Inc. Media object distribution
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US20160092532A1 (en) * 2014-09-29 2016-03-31 Facebook, Inc. Load-balancing inbound real-time data updates for a social networking system
US9015285B1 (en) 2014-11-12 2015-04-21 Snapchat, Inc. User interface for accessing media at a geographic location
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9854219B2 (en) 2014-12-19 2017-12-26 Snap Inc. Gallery of videos set to an audio time line
KR102035405B1 (ko) 2015-03-18 2019-10-22 스냅 인코포레이티드 지오-펜스 인가 프로비저닝
US9881094B2 (en) 2015-05-05 2018-01-30 Snap Inc. Systems and methods for automated local story generation and curation
US20160380955A1 (en) * 2015-06-23 2016-12-29 Alec Kremins Web-based social network
US20160381501A1 (en) 2015-06-29 2016-12-29 Louis Ballezzi System and Method for Locationally Aware Communication
US9954945B2 (en) 2015-06-30 2018-04-24 International Business Machines Corporation Associating contextual information with electronic communications
US10318884B2 (en) 2015-08-25 2019-06-11 Fuji Xerox Co., Ltd. Venue link detection for social media messages
US10021605B2 (en) 2016-01-13 2018-07-10 Uber Technologies, Inc. Non-interrupted handoff of real-time network-distributed services
US11900418B2 (en) 2016-04-04 2024-02-13 Snap Inc. Mutable geo-fencing system
US10445321B2 (en) 2017-02-21 2019-10-15 Microsoft Technology Licensing, Llc Multi-tenant distribution of graph database caches
EP3639159A1 (en) * 2017-06-16 2020-04-22 Amadeus S.A.S. Geographically distributed database
EP3662620B1 (en) 2017-08-03 2023-06-07 AON Global Operations PLC, Singapore Branch Data sharing between participants using disparate message formats
WO2019108702A1 (en) 2017-11-29 2019-06-06 Snap Inc. Graphic rendering for electronic messaging applications
DE112018006630T5 (de) 2017-12-28 2020-09-24 Intel Corporation Visual fog
US10874947B2 (en) 2018-03-23 2020-12-29 Sony Interactive Entertainment LLC Connecting a player to expert help in real-time during game play of a gaming application
US10219111B1 (en) 2018-04-18 2019-02-26 Snap Inc. Visitation tracking system
US11010436B1 (en) 2018-04-20 2021-05-18 Facebook, Inc. Engaging users by personalized composing-content recommendation
US10909148B2 (en) 2018-04-23 2021-02-02 Laserlike, Inc. Web crawling intake processing enhancements
US20200044939A1 (en) 2018-08-01 2020-02-06 Futurewei Technologies, Inc. Interactive system for visualizing and maintaining large networks
US11582579B2 (en) 2018-09-28 2023-02-14 Apple Inc. Secure streaming of real-time location data between electronic devices
US11023506B2 (en) 2018-10-31 2021-06-01 Laserlike, Inc. Query pattern matching
TR201818876A2 (tr) 2018-12-07 2019-01-21 Turkcell Teknoloji Arastirma Ve Gelistirme Anonim Sirketi Aninda mesajlaşma uygulamalari üzeri̇nden konum ve/veya zaman tabanli hatirlatma yapilmasini sağlayan bi̇r si̇stem
US10939246B1 (en) 2019-01-16 2021-03-02 Snap Inc. Location-based context information sharing in a messaging system
CN111612558A (zh) 2019-02-25 2020-09-01 福特全球技术公司 行程邀约的方法和系统
US11386791B2 (en) * 2019-03-29 2022-07-12 GM Cruise Holdings, LLC Autonomous vehicle fleet management system
US10911310B2 (en) * 2019-05-20 2021-02-02 Citrix Systems, Inc. Network traffic steering with programmatically generated proxy auto-configuration files
US11861674B1 (en) 2019-10-18 2024-01-02 Meta Platforms Technologies, Llc Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems
US11361027B2 (en) 2019-11-05 2022-06-14 At&T Intellectual Property I, L.P. Historical state management in databases
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11314776B2 (en) * 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions

Also Published As

Publication number Publication date
US11503432B2 (en) 2022-11-15
US20210392459A1 (en) 2021-12-16
KR20230025870A (ko) 2023-02-23
EP4165518A4 (en) 2023-12-27
EP4165518A1 (en) 2023-04-19
WO2021257450A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
US11314776B2 (en) Location sharing using friend list versions
US11483267B2 (en) Location sharing using different rate-limited links
US11503432B2 (en) Scalable real-time location sharing framework
US11290851B2 (en) Location sharing using offline and online objects
CN115552403B (zh) 用于媒体内容项的私人集合的邀请媒体覆盖物
CN115777113B (zh) 用于重新展示内容项的消息系统
CN115668887A (zh) 用于媒体内容项的共享集合的邀请媒体覆盖
CN115668119A (zh) 用于消息收发系统的具有标贴的回复界面
CN116783575A (zh) 媒体内容检测和管理
CN116438788A (zh) 媒体内容回放和评论管理
CN116724314A (zh) 生成式对抗网络操纵的图像效果
CN115885247A (zh) 用于启动应用的视觉搜索
CN116076063A (zh) 增强现实信使系统
CN116349215A (zh) 利用微声音剪辑来聊天
CN116235194A (zh) 媒体内容传输和管理
CN116194184A (zh) 用于同步用户的图形标记生成系统
CN117501675A (zh) 呈现由消息应用从第三方资源接收的内容
CN115516834A (zh) 具有相关实体的轮播的消息收发系统
CN116235500A (zh) 生成用于分享到外部应用的媒体内容项
CN116322914A (zh) 用于增强现实连续性的qr生成系统
CN116210226A (zh) 基于轮次的协作播放列表
KR102720447B1 (ko) 콘텐츠 아이템들의 재표출을 위한 메시징 시스템
CN117795931A (zh) 组合的读取和反应消息

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination