CN116097240A - 可扩展实时位置共享框架 - Google Patents
可扩展实时位置共享框架 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 88
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 14
- 241001522296 Erithacus rubecula Species 0.000 claims description 2
- 230000006870 function Effects 0.000 description 36
- 230000004048 modification Effects 0.000 description 36
- 238000012986 modification Methods 0.000 description 36
- 230000015654 memory Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 20
- 230000009466 transformation Effects 0.000 description 19
- 230000003190 augmentative effect Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 9
- 210000000887 face Anatomy 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006855 networking Effects 0.000 description 5
- 238000000844 transformation Methods 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001815 facial effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010079 rubber tapping Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 201000005569 Gout Diseases 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000356 contaminant Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000008261 resistance mechanism Effects 0.000 description 1
- 230000004266 retinal recognition Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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)部件、部件(例如,低功耗)、部件以及经由其他形式提供通信的其他通信部件。设备1122可以是其他机器或各种外围设备中的任何外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件1136可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1136可以包括射频识别(RFID)标签阅读器部件、NFC智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速反应(QR)码、Aztec码、数据矩阵、数据符号(Dataglyph)、最大码(MaxiCode)、PDF417、超码(UltraCode)、UCC RSS-2D条形码的多维条形码和其他光学码的光学传感器)或声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件1136得出各种信息,例如经由因特网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的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可以包括显示驱动器、摄像装置驱动器、或低功耗驱动器、闪存驱动器、串行通信驱动器(例如,USB驱动器)、驱动器、音频驱动器、电源管理驱动器等。
库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、Phone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用1240可以调用由操作系统1212提供的API调用1250以有助于本文中描述的功能。
术语表
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以便于这些指令的通信。可以使用传输介质经由网络接口设备来通过网络发送或接收指令。
“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、其他类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(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实例发送包括所述状态更新的第一消息以更新所述第一设备对象。
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)
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)
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 |
-
2020
- 2020-06-15 US US16/946,284 patent/US11503432B2/en active Active
-
2021
- 2021-06-14 WO PCT/US2021/037220 patent/WO2021257450A1/en unknown
- 2021-06-14 CN CN202180055813.9A patent/CN116097240A/zh active Pending
- 2021-06-14 EP EP21826935.5A patent/EP4165518A4/en active Pending
- 2021-06-14 KR KR1020237001539A patent/KR20230025870A/ko not_active Application Discontinuation
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 |