Low latency interactive media distribution using shared user hardware

文档序号:892724 发布日期:2021-02-26 浏览:22次 中文

阅读说明:本技术 使用共享用户硬件的低延迟交互式媒体分发 (Low latency interactive media distribution using shared user hardware ) 是由 俞星辰 于 2020-08-21 设计创作,主要内容包括:本申请涉及使用共享用户硬件的低延迟交互式媒体分发。根据示例,用于使用共享用户硬件提供低延迟交互式媒体分发的系统可以包括处理器和存储指令的存储器。当执行指令时,处理器可以使系统将主机系统注册为代表客户端设备托管交互式媒体的候选主机系统。该系统还可以接收客户端设备的客户端设备注册数据。系统可以从候选主机系统中选择一个主机系统来代表客户端设备托管交互式媒体。该系统由此可以促进通过网络在客户端设备和所选择的主机系统之间建立连接。在一些示例中,该连接可以允许所选择的主机系统代表客户端设备托管交互式媒体,并且允许客户端设备与在所选择的主机系统上托管的交互式媒体进行交互。(The application relates to low latency interactive media distribution using shared user hardware. According to an example, a system for providing low-latency interactive media distribution using shared user hardware may include a processor and a memory storing instructions. When executing the instructions, the processor may cause the system to register the host system as a candidate host system for hosting interactive media on behalf of the client device. The system may also receive client device registration data for the client device. The system may select one of the candidate host systems to host interactive media on behalf of the client device. The system may thereby facilitate establishing a connection between the client device and the selected host system over the network. In some examples, the connection may allow the selected host system to host interactive media on behalf of the client device and allow the client device to interact with the interactive media hosted on the selected host system.)

1. A system, comprising:

a processor;

a memory storing instructions that, when executed by the processor, cause the processor to:

registering a host system as a candidate host system that hosts interactive media on behalf of a client device;

receiving client device registration data of a client device;

selecting a host system from the candidate host systems to host interactive media on behalf of the client device; and

facilitating establishment of a connection between the client device and the selected host system over a network to cause the selected host system to host the interactive media on behalf of the client device and to cause the client device to interact with the interactive media hosted on the selected host system.

2. The system of claim 1, wherein to register a host system as a candidate host system, the instructions cause the processor to:

receiving host registry data from the candidate host system, wherein the host registry data comprises at least one of host hardware specification data, geographic location data, host system availability data, or host system owner profile data.

3. The system of claim 2, wherein to register a host system as a candidate host system, the instructions cause the processor to:

determining that host hardware specification data from the host registration data meets a predetermined minimum host hardware specification standard; and

registering the host system across a distributed geographic area.

4. The system of claim 3, wherein the predetermined minimum host hardware specification standard is based on the interactive media.

5. The system of claim 2, wherein to select a host system from the candidate host systems to host the interactive media on behalf of the client device, the instructions cause the processor to:

selecting the host system based on at least one of the client device registration data and the host registration data.

6. The system of claim 5, wherein the client device registration data comprises at least one of client device hardware specification data, client device performance data, geographic location data, or client device user profile data.

7. The system of claim 6, wherein to select a host system from the candidate host systems to host the interactive media on behalf of the client device, the instructions cause the processor to:

selecting the host system based on the geographic location data of the client device and the geographic location data of the candidate host system.

8. The system of claim 2, wherein the instructions cause the processor to receive updates and changes to the host registration data from the registered host system.

9. The system of claim 1, wherein the interactive media is third party interactive media.

10. The system of claim 1, wherein to facilitate establishing a connection between the client device and at least one registered host system, the instructions cause the processor to:

receiving a host connection request from the client device to establish a connection with the selected host system; and

receiving a host connection acceptance from the selected host system.

11. The system of claim 10, wherein to facilitate establishing a connection between the client device and at least one registered host system, the instructions cause the processor to:

in response to the host connection request, providing at least one alternative host system recommendation to the client device if the selected host system is unavailable for at least a duration of time specified in the host connection request from the client device.

12. A method, comprising:

receiving, by a processor, host registration data for a host system, wherein the host system is a third party host system located across a distributed geographic area;

registering, by the processor, the host system as a candidate host system for hosting third-party interactive media on behalf of a client device, wherein the registered host system meets predetermined minimum third-party host system criteria;

receiving, by the processor, client device registration data for a client device;

receiving, by the processor, a third party host connection request from the client device to establish a connection with at least one of the registered host systems;

providing, by the processor, at least one third-party host system recommendation to the client device in response to the third-party host connection request;

receiving, by the processor, from the client device, a third-party host system selection recommended based on the at least one third-party host system;

receiving, by the processor, a third party host connection acceptance from the selected third party host system; and

facilitating, by the processor, establishing a connection between the client device and the selected third-party host system over a network to cause the selected third-party host system to host the third-party interactive media on behalf of the client device and to cause the client device to interact with the third-party interactive media hosted on the selected third-party host system.

13. The method of claim 12, wherein receiving host registration data further comprises receiving host registration data comprising at least one of: host hardware specification data, geographic location data, host system availability data, or host system owner profile data.

14. The method of claim 12, further comprising:

determining, by the processor, which of the host systems meets the predetermined minimum third party host system criteria; and

registering, by the processor, a host system that satisfies the predetermined minimum third party host system criteria as the candidate host system, wherein the predetermined minimum third party host system criteria is based on third party interactive media requirements.

15. The method of claim 12, wherein receiving the client device registration data comprises receiving client device registration data comprising at least one of: client device hardware specification data, client device performance data, geographic location data, or client device user profile data.

16. The method of claim 12, wherein receiving the third-party host system selection further comprises receiving the at least one third-party host system recommendation in accordance with an Artificial Intelligence (AI) -based machine learning technique that uses at least one of the host registration data, the client device registration data, or the third-party interactive media.

17. A non-transitory computer-readable storage medium having stored thereon an executable file that, when executed, instructs a processor to:

receiving host registration data for a host system, wherein the host system is a third party host system located across a distributed geographic area;

registering the host system as a candidate host system that hosts third party interactive media on behalf of a client device, wherein the registered host system meets predetermined minimum third party host system criteria;

receiving client device registration data of a client device;

receiving a third party host connection request from the client device;

providing at least one third party host system recommendation to the client device in response to the third party host connection request;

receiving, from the client device, a recommended third-party host system selection based on the at least one third-party host system;

receiving a third party host connection acceptance from the selected third party host system; and

facilitating establishment of a connection between the client device and the selected third party host system over a network to cause the selected third party host system to host the third party interactive media on behalf of the client device and to cause the client device to interact with the third party interactive media hosted on the selected third party host system.

18. The non-transitory computer-readable storage medium of claim 17, wherein:

the host registration data includes at least one of host hardware specification data, geographic location data, host system availability data, or host system owner profile data; and

the client device registration data includes at least one of client device hardware specification data, client device performance data, geographic location data, or client device user profile data.

19. The non-transitory computer-readable storage medium of claim 17, wherein the predetermined minimum third party host system criteria is based on third party interactive media requirements.

20. The non-transitory computer-readable storage medium of claim 17, wherein the at least one third-party host system recommendation is based on at least one of the host registration data, the client device registration data, or the third-party interactive media.

Technical Field

The present patent application relates generally to interactive entertainment and digital media distribution, and more particularly, to systems and methods for providing low latency interactive media distribution using shared user hardware.

Background

Advances in mobile telecommunications are changing the interactive entertainment situation (landscapes) and gaming experience. For example, a user of a mobile device (such as a smartphone or tablet computer) may play various video games and/or may interact with interactive media through a streaming (streaming) service over a telecommunications network. As mobile device users increase over an ever-expanding geographic coverage area (football), it is a challenge to provide and ensure low-latency, high-performance streaming media services.

Brief Description of Drawings

Features of the present disclosure are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements. One skilled in the art will readily recognize from the following that alternative examples of the structures and methods illustrated in the accompanying drawings may be employed without departing from the principles described herein.

Fig. 1A illustrates a block diagram of a system for providing low-latency interactive media distribution using shared user hardware, according to one example.

FIG. 1B illustrates a block diagram of a system environment for a system for providing low-latency interactive media distribution using shared user hardware, according to one example.

Fig. 2A-2D illustrate a geographic diagram of a system for providing low-latency interactive media distribution using shared user hardware, according to one example.

Fig. 3 illustrates a block diagram of a system for providing low-latency interactive media distribution using shared user hardware, according to an example.

4A-4B illustrate screens recommended by a host system at a client device in an interactive video game environment, according to an example.

Fig. 5 illustrates a block diagram of a computer system for providing low-latency interactive media distribution using shared user hardware, according to an example.

Fig. 6 illustrates a method for providing low-latency interactive media distribution using shared user hardware, according to an example.

Detailed Description

For simplicity and illustrative purposes, the present application is described by referring mainly to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present application. It will be apparent, however, that the present application may be practiced without limitation to these specific details. In other instances, methods and structures that would be readily understood by one of ordinary skill in the art have not been described in detail so as not to unnecessarily obscure the present application. As used herein, the terms "a" and "an" are intended to mean at least one of a particular element, the term "including" means including, but not limited to, and the term "based on" means at least partially based on.

Users of various types of client devices may stream interactive entertainment and online digital media (e.g., video games). However, video games involving advanced video graphics and/or multi-user game play may be limited to high-performance or high-power computing hardware, such as those found in dedicated gaming Personal Computers (PCs) or game consoles. To play such video games, high performance computing hardware may establish a connection with a host system located within a data center, which may or may not be physically and geographically proximate to a client device. A data center may include any number of host systems and servers, all of which may be aggregated within or substantially near the data center.

Users of low-power client devices (e.g., smartphones) may stream interactive video games (or other media content) over a telecommunications network from a host system of a data center operating on behalf of the client devices to play various interactive video games. The low-capability client devices may include smartphones, tablets, laptops, or other mobile computing devices with limited processing or computing capabilities. However, one challenge facing streaming the services provided by these data centers is that users of low-powered client devices may experience a significant amount of delay. The delay may increase as the physical distance between the client device and the data center increases. Thus, not only may game play and performance be adversely affected, but such delays may further limit the types or amounts of game products available to users of these low-power client devices, especially when compared to users possessing more powerful computing hardware.

The methods described herein may overcome these and other problems. For example, the systems and methods described herein may enable a low-capability client device to establish communication with high-capability computing hardware that may function as and act as a third-party host system to enable the third-party host system to host interactive entertainment or other digital media content on behalf of the client device. In other words, the third party host system may share its high-capability computing hardware or capabilities with the low-capability client devices. In this manner, low-power client devices (which may not have the computing power required to fully interact with the interactive entertainment or digital media content themselves) can now fully interact with the interactive entertainment or digital media content through high-power computing hardware shared as a third-party host system. Such a distributed approach using shared hardware and/or computing power may reduce or avoid latency issues associated with communications between low-power client devices and host systems that typically reside in a data center that may be physically and/or geographically further away from the client devices than high-power computing hardware running as a third-party host system. By streaming from a physically and geographically closer third party host system, a user of a low-powered client device may play a video game hosted by the third party host system on behalf of the client device (or interact with any other interactive digital media hosted by the third party host system on behalf of the client device). In this manner, the client device may experience an increase in performance (e.g., a decrease in latency) due to a decrease in geographic distance. It should be appreciated that using a third party host system and/or reducing the geographic distance between the low-capability client device and the host system may also reduce latency in an indirect manner. For example, using a third party host system may increase the total number of host systems available to the client device, which in turn may create a wider distribution area for load balancing network traffic.

To establish a connection to a third party host system, for example, a client device may access a search feature operable by a server associated with the data center. The search feature may assist a user of the client device in locating nearby third party host systems that have registered with the server. The server may also register the client device. In this manner, the server may facilitate establishing, for example, a peer-to-peer (P2P) connection or another type of network connection between the client device and a nearby third party host system, so that the desired interactive entertainment or digital media content may be streamed with low latency.

Not only can the methods disclosed herein enable low-latency interactive media distribution using shared user hardware, but they can also provide an efficient way to load balance various types of digital media content across a larger pool of resources (e.g., third-party host systems) within a wider geographic area (geography). The systems and methods described herein may also disperse data center dependencies of digital media content and enable a more distributed shared user hardware network. This may provide additional efficiency in terms of processing time and energy consumption. Furthermore, such an approach may enable low-power client devices to stream denser interactive digital media that is typically limited to high-power computing devices.

It should also be understood that the systems and methods described herein may be particularly applicable to video games and other intensive interactive entertainment, such as high-resolution multimedia content, but may also be applicable to improving network communications for applications other than video games or interactive entertainment. For example, examples of interactive entertainment and digital media content described herein may include, but are not limited to, videos, photographs, social media posts, and video games, some or all of which may be associated with any number of online actions, advertisements, and/or financial transactions. These and other benefits will be apparent from the description provided herein.

Reference is now made to fig. 1A and 1B. Fig. 1A illustrates a block diagram of a system 100 for providing low-latency interactive media distribution using shared user hardware, according to one example. Fig. 1B illustrates a block diagram of a system environment 150 in which the system 100 may be implemented to provide low-latency interactive media distribution using shared user hardware, according to one example. It should be understood that the system 100 depicted in FIGS. 1A-1B and/or the system environment 150 depicted in FIG. 1B may be examples. Accordingly, system 100 and/or system environment 150 may or may not include additional features, and some features described herein may be removed and/or modified without departing from the scope of system 100 and/or system environment 150 as outlined herein.

As shown in FIG. 1B, system environment 150 may include any number of client devices 110, shown as client devices 110A, 110B, and 110X, where variable "X" may represent an integer greater than 1. System environment 150 may also include network 120, external systems 130, and any number of host systems 140, host systems 140 shown as host systems 140A, 140B, and 140N, where the variable "N" may represent an integer greater than 1. In some examples, host system 140 may be a third party host system. It should be understood that the term "third party host system" may refer to a host system owned or controlled by a user other than the user or owner of system 100, and may sometimes be used interchangeably to refer to host system 140 in system environment 150.

In operation, system 100 may communicate with client devices 110, external systems 130, host systems 140, or other network elements via network 120. In some examples, system 100 may register client devices 110, external systems 130, host systems 140, and/or other network elements to coordinate the delivery and distribution of interactive digital media content. In some examples, system 100 may be a social networking system, a content sharing network, an advertising system, an online system, and/or any other system that facilitates any kind of data processing in a personal, social, business, financial, and/or enterprise environment.

In some examples, as shown in fig. 1A, system 100 may include a processor 101 and a memory 102. The memory 102 may store instructions that, when executed by the processor 101, may cause the processor to register 103 the host system 140 as a candidate host system that hosts interactive media on behalf of the client device 110, receive 104 client device registration data for the client device 110A, select 105 the host system 140A from the candidate host systems to host interactive media on behalf of the client device 110A, and facilitate 106 establishing a connection between the client device 110A and the selected host system 140A over the network 120, to cause the selected host system 140A to host interactive media on behalf of the client device 110A, and to cause the client device 110A to interact with the interactive media hosted on the selected host system 140A. In some examples, the established connection may allow the selected host system 140A to host interactive media on behalf of the client device 110A and allow the client device 110A to interact with the interactive media hosted on the selected host system 140A.

As described in more detail below, to register host system 140 as a candidate host system (e.g., host system 140A), processor 101 may receive host registration data from the candidate host system as indicated by machine-readable instructions stored in memory 102. In some examples, the host registration data may include host hardware specification data, geographic location data, host system availability data, and the like. The processor 101 of the system 100 can use this information to determine that the host hardware specification data meets a predetermined minimum host hardware specification standard, thereby facilitating registration of one or more host systems 140 over a distributed geographic area. These registered host systems 140 may be available to any client device 110. As described herein, it should be understood that the host systems 140A available to the client device 110A may be candidate host systems that are available, have the necessary computing power, and are geographically closest to the client device 110A.

As also described in more detail below, to facilitate establishing a connection between one of the client devices 110 (e.g., client device 110A) and at least one selected host system (e.g., host system 140A) over network 120, processor 101 may receive a host connection request from client device 110A, as indicated by memory 102 storing instructions, to establish a connection with selected host system 140A. The processor 101 may then receive a host connection acceptance from the selected host system 140A. It should be appreciated that in the event that the selected host system 140A is not available for at least a duration of time specified in the host connection request from the client device 110A, the processor 101 may provide at least one alternative host system recommendation to the client device 110A, which may be based on the host registration data, the client registration data, and/or other information available to the processor 101 in some examples. The processor 101 may then receive an alternative host system selection from the client device 110A. In some examples, a user of client device 110A may make a host system selection. In some examples, processor 101 may automatically provide host system selection based on host registration data, client registration data, and/or other information available to processor 101. For example, the processor 101 may make the host system selection based on computing hardware of the host system and/or preferences of the user of the client device 110A, all of which may be found in the host registration data, the client registration data, and/or other information available to the processor 101.

Thus, the system 100 may enable any number of client devices 110 registered with the system 100 to interact with interactive entertainment or other digital media content (e.g., video games) hosted by any host system 140 registered with the system 100. In this manner, the client devices 110 may or may not be connected to a host system located within a data center that may be physically and/or geographically remote from any client device 110, thereby reducing or avoiding the latency issues described above. Details of system 100 and its operation in system environment 150 are described in more detail below.

It should be understood that processor 101 may be a semiconductor-based microprocessor, Central Processing Unit (CPU), Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA), and/or other suitable hardware device. In some examples, the memory 102 may have stored thereon machine readable instructions 103 (which may also be referred to as computer readable instructions) 106 that the processor 101 may execute. The memory 102 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. The memory 102 may be, for example, Random Access Memory (RAM), Electrically Erasable Programmable Read Only Memory (EEPROM), a memory device, an optical disk, and so forth. The memory 102, which may also be referred to as a computer-readable storage medium, may be a non-transitory machine-readable storage medium, where the term "non-transitory" does not include transitory propagating signals.

Each client device 110 may be a computing device that may transmit and/or receive data via network 120. In this regard, each client device 110 may be any device having computer functionality, such as a smartphone, tablet, laptop, watch, desktop, server, or other computing device. In some examples, client device 110 may be a mobile device communicatively coupled to network 120 and capable of streaming interactive entertainment via network 120. Because many mobile devices are low-powered devices, it should be understood that the client device 110 may experience reduced latency in streaming or interacting with interactive entertainment or other digital media content (e.g., video games) from the host system 140 that is geographically closer to the client device 110.

In some examples, client device 110 may execute an application that allows a user of client device 110 to interact with various elements on network 120. For example, client device 110 may receive data from user input, a database, a file, a web service, and/or via an Application Programming Interface (API). Further, client device 110 may execute a browser or application to enable interaction between client device 110 and system 100 via network 120. For example, a user may interact with a mobile application or web application executed through a browser to play a video game or interact with other interactive entertainment or digital media content over network 120. In one example, client device 110 may interact with system 100 through an Application Programming Interface (API) running on a local or remote operating system of client device 110. Various other examples may also be provided.

According to an example, the client device 110 may include software for facilitating streaming video games or other interactive entertainment. For example, the client device 110 may access or include data associated with streaming video games or other interactive entertainment typically hosted on other network elements (such as the system 100, the external system 130, and/or the third-party host system 140). Although as shown, one or more portions of the system 100, the external system 130, and/or the third party host system 140 may reside at a network-centric location, it should be understood that any data or functionality associated with the system 100, the external system 130, the third party host system 140, and/or other network elements may also reside, in whole or in part, locally at the client device 110 or some other computing device communicatively coupled to the client device 110.

Network 120 may be a Local Area Network (LAN), Wide Area Network (WAN), the internet, a cellular network, a cable network, a satellite network, or other network that facilitates communication between client device 110, external system 130, system 100, and/or any other system, component, or device connected to network 120. Network 120 may also include one or any number of the above-described exemplary types of networks operating as stand-alone networks or in cooperation with one another. For example, network 120 may utilize one or more protocols of one or more clients or servers to which they are communicatively coupled. Network 120 may facilitate data transmission according to a transmission protocol of any device and/or system in network 120. Although network 120 is depicted in fig. 1B as a single network, it should be understood that in some examples, network 120 may also include multiple (a complexity of) interconnected networks.

An external system 130 may be communicatively coupled to the network 120. In some examples, external system 130 may be a third-party website or any content or data source that provides content or data to client device 110, host system 140, and/or system 100. In some examples, external system 130 may be a data center with servers and/or host systems for providing interactive entertainment or digital media content, such as video games or other interactive entertainment, to client devices 110, host systems 140, system 100, and/or other network elements (not shown) in system environment 150. In some examples, external system 130 may include one or more application servers that host various applications for client device 110, host system 140, system 100, and/or other network elements.

Each host system 140 may be a computing device that may transmit and/or receive data over network 120. In this regard, each host system 140 may be any device having computer functionality, such as a smartphone, tablet, laptop, watch, desktop, server, or other computing device. In some examples, host system 140 may include any number of high-performance computing hardware that, when communicatively coupled to network 120 and registered with system 100 as a candidate host system, may enable interactive entertainment or digital media content, such as video games, to be hosted via network 120 for remote gaming at one or more client devices 110. Because many client devices 110 may be low-powered mobile devices, establishing a connection with the host system 140 may cause the client devices 110 to experience reduced latency when the host system 140 hosts interactive entertainment or other digital media content (e.g., a video game) on behalf of the client devices 110.

In some examples, the host system 140 may be computing hardware owned by the user, the user selecting their computing hardware to be used as a third party host system. Thus, host system 140 may include and execute applications that allow a user of host system 140 to interact with various elements on network 120. For example, host system 140 may receive data from user input, databases, files, web services, and/or through an Application Programming Interface (API). Additionally, host system 140 may execute a browser or application to enable interaction between or with client device 110 and/or system 100 via network 120. For example, users may interact with applications on host system 140 to register their respective computing hardware and make their computing hardware available as a host for one or more client devices 110 (e.g., to play video games or other interactive entertainment or digital media content hosted by the computing hardware over network 120). In one example, host system 140 may interact with system 100 through an Application Programming Interface (API) running on a local or remote operating system of host system 140. Various other examples may also be provided.

Fig. 2A-2D illustrate geographic maps 200A-200D for providing low-latency interactive media distribution using shared user hardware, according to one example. As shown in each of these geographic maps 200A-200D, there may be a limited number of data centers 210 distributed over a particular geographic area 220 (e.g., the United states). As described above, each depicted data center 210 may include any number of host systems and/or servers. For illustrative purposes, each data center 210 depicted in fig. 2A-2D is shown with only servers, and no host systems co-located with the servers, in order to demonstrate the methods described herein. For example, even though the number of data centers 210 may be limited, there may be a large number of client devices 110 and host systems 140 distributed throughout the geographic area 220. As described with reference to fig. 1A-1B, these host systems 140 may be high-performance computing hardware owned by various users who elect to register their high-performance computing hardware with the system 100 as a candidate host system to act as and serve as a third-party host system.

Fig. 2A illustrates a geographic map 200A for providing low-latency interactive media distribution using shared user hardware, according to one example. As shown in the geographic map 200A, the client device 110A may be a low-capability mobile device, such as a smartphone. A user of client device 110A may intend to stream and interact with interactive entertainment or other digital media content (such as a video game) on client device 110A. However, the client device 110A may be geographically remote from the nearest data center 210A (or other data centers 210), e.g., over about 100 miles or more. Thus, where data center 210A is selected to serve and host a video game on behalf of client device 110A, a user of client device 110A may experience latency issues, particularly if the selected video game requires a high level of processing power or speed. In this case, the user of client device 110A may experience limited game play.

1A-1B, the system 100 may allow, for example, the client device 110A of FIG. 2A to search for and/or establish a connection with a geographically closer host system 140A, which host system 140A may include high-performance computing hardware owned by another user (e.g., the owner of the high-performance computing hardware). In this case, the owner may wish to provide for sharing his or her high-performance computing hardware and have the high-performance computing hardware registered with system 100 to act as and act as a third-party host system that is dispersed from data center 210A. Because host system 140A may be physically and geographically closer to client device 110A, streaming and interacting with a video game (or other interactive media) hosted by the closer host system 140A may reduce latency and improve performance relative to streaming and interacting with similar content from data center 210A.

In some examples, the host system 140A may be provided for use by the client device 110A in return for a financial payment. As described herein, the system 100 may set up pricing structures (e.g., tiers) that may be based on various pricing factors, such as hardware specifications, host system ratings, user ratings, host system scheduling and availability, and so forth. Various other scenarios may also be provided.

To provide low-latency interactive media distribution using shared user hardware, the owner of host system 140A may first register host system 140A with data center 210A, as shown in geographic map 200B of fig. 2B. It should be understood that for purposes of this example, data center 210A may include system 100 of FIGS. 1A-1B. Thus, as indicated by the arrow, all of the host systems 140 depicted in FIG. 2B may register with the system 100 at the data center 210 as candidate host systems. The registration process may include system 100 receiving host registration data for host system 140 (e.g., from host system 140 or other source). In some examples, the registration process may be a continuous process in which system 100 and host system 140 may exchange updated host registration data and/or other relevant data for providing low-latency interactive media distribution.

In some examples, the host registration data may include host hardware specification data. This may include computing hardware specifications such as processing power and/or speed, memory capacity, hard disk size, manufacturing or assembly date, and/or other performance capabilities. In this manner, the system 100 may determine whether any host system 140 satisfies the minimum hardware or network speed capability. The hardware specification data may also include a device identifier, such as a serial number, MAC address, or other identifier. It should be understood that the hardware specification data may also be benchmarked (benchmarked) or measured. This may be accomplished over a network by various hardware or software components residing at host system 140 or other systems/components (e.g., system 100). In some examples, the host registration data may include geographic location data, such as Global Positioning System (GPS) coordinates, IP addresses, or other location identifiers.

In some examples, the host registration data may include host system availability data. This may include a schedule of availability or unavailability provided by the user or owner of each host system 140. In some examples, the schedule may be determined based on user history, time zone, behavioral patterns, and the like. The schedule may also be automatically determined based on these and/or other factors. In some examples, the host registration data may also include host system owner profile data. The host system owner profile data may include personal information, financial information, preferences, peer reviews, and/or other information about the owner of the shared computing hardware. It should be understood that this data may be subject to one or more privacy policies set forth below.

Some criterion may need to be met for the system 100 to register any host system 140 as a candidate host system. For example, the system 100 may register only those host systems 140 that may have a particular level of hardware performance capability. In other words, the host hardware specification data may need to meet some predetermined minimum host hardware specification standard in order to register the associated host system 140. In some examples, the predetermined minimum host hardware specification criteria may be based on the interactive entertainment or digital media content itself. For example, in the event that interactive entertainment or digital media content that is expected to be accessed by a user of client device 110A may require some minimum amount of processing power, system 100 may establish a threshold that allows those host systems 140 that meet the requisite performance requirements to be presented for use as candidate host systems for client device 110A. In some examples, these required performance requirements may include hardware computing power, minimum network speed, availability duration of shared use, owner profiles or preferences, and other requirements such as user ratings, recommendations, pricing factors, and the like. Various other factors may also affect or adjust the threshold or registration criteria. It should be understood that once any host system 140 is registered, it may receive and/or install a software application that may enable the host system 140 to communicate with other network elements in the network 120. For example, the software application may facilitate communication associated with updated host registration data, interactive entertainment or digital media content, and/or establish a connection with a registered client device 110.

Although not shown, the data center 210 may also include a registered host system, which may also be accessed by the client devices 110. However, for purposes of illustration, i.e., to show the distributed nature of the methods described herein, in these examples, data center 210 may not include such a host system.

Assuming all of the host systems 140 depicted in fig. 2A-2D are registered as candidate host systems, the client device 110 may also register with the system 100, as shown in the geographic map 200C of fig. 2C. Similar to the registration process of host system 140 in fig. 2B, users of client devices 110 may also register their client devices 110 using a similar registration process. For example, all of the client devices 110 depicted in fig. 2C may register with the system 100 at the data center 210, as indicated by the arrows. The registration process may include the system 100 receiving client device registration data from a plurality of client devices 110. In some examples, the registration process may be a continuous process in which system 100 and client device 110 may exchange updated client device registration data and/or other relevant data for providing low-latency interactive media distribution.

In some examples, the client device registration data may include client device hardware specification data, client device performance data, geographic location data, client device user profile data, or other information. In some examples, the client device hardware specification data may include, for example, computing hardware specifications, such as processing power and/or speed, memory capacity, hard disk size, manufacturing or assembly date, and/or other performance capabilities. The client device hardware specification data may also include a device identifier, such as a serial number, MAC address, or other identifier.

Similar to the host system, the geographic location data of the client device may include geographic location data such as Global Positioning System (GPS) coordinates, IP addresses, or other location identifiers.

In some examples, the client device performance data may also include information associated with current or historical network connection strength or latency data. It should be appreciated that the network connection strength or latency may depend on various factors, such as hardware specifications, location, available local or wide area networks, and so forth. Applications resident at client device 110 and/or system 100 may enable, monitor, and/or report client device performance data. In some examples, client device performance data may be continuously monitored in real-time or near real-time. In this manner, the system 100 can determine what capabilities can be expected at the client device 110 and/or what host system recommendations to provide. Further, these applications may assist the registered client device 110 in communicating with the registered host system 140, the publisher of interactive entertainment or digital media content (e.g., external system 130), system 100, or any other network component in network 120.

The client device user profile data may include user information, financial information, user preferences, peer reviews, and/or other information about the user of any client device 110. Similar to the host system owner profile data, it should be understood that the client device user profile data may also be subject to one or more privacy policies set forth below.

When host system 140 and client device 110 register with system 100, client device 110 can then connect with host system 140 to access, stream, or interact with interactive entertainment or digital media content hosted by shared hardware provided by host 140. As shown in the geographic diagram 200D of fig. 2D, the system 100 may facilitate establishment of a connection (e.g., P2P) between the client device 110A and the host system 140A, as indicated by the arrow. It should be understood that while a P2P connection is depicted and described, various other connections or communicative couplings may be provided.

As described above, to establish the connection between the client device 110A and the host system 140A, the system 100 may also receive a host connection request from the client device 110A to establish a connection with the selected host system 140A. In some examples, this may include the system 100 providing search functionality for a user of the client device 110A. The search function may allow a user to select or pick various interactive entertainment or digital media content and/or define desired processing requirements. In some examples, system 100 may also receive a host connection acceptance from selected host system 140A to facilitate establishing a connection between client device 110A and selected host system 140A over network 120, thereby causing selected host system 140A to host interactive media on behalf of client device 110A and causing client device 110A to interact with the interactive media hosted on selected host system 140A.

In some examples, the system 100 may provide host system recommendations from the registered host system 140 to the client device 110A. For example, the system 100 may recommend the host system 140A to the client device 110A as the third party host system to which it should connect because the host system 140A is physically and geographically proximate and may have computing hardware that meets or exceeds any predetermined criteria desired by the user of the client device 110A. System 100 may recommend host system 140A or any other host system from among registered host systems 140 based on host registration data, client registration data, and/or other information accessible to system 100.

In some examples, the owner of the third party host system 140A may submit a payment (financial payment, reward points, or other remittance) as his or her computing hardware is recommended by the system 100. For example, a third party host may have a hierarchical membership status. In some examples, the recommendations of the host system 140 may be based on user preferences, historical performance, pricing, feedback-based comments of previous users, or other information.

Fig. 3 illustrates a block diagram of a system 300 for providing low-latency interactive media distribution using shared user hardware, according to one example. It should be understood that system 300 may be similar to system 100 described with reference to fig. 1A-2D, but that system 300 may be described in more detail and/or with examples of additional capabilities and features that may or may not be part of system 100. In some examples, the system 300 may be an online system with a recommendation subsystem 340 to help facilitate various client device and host system registrations, as well as provide third party host system recommendations for any number of client devices 110. As shown, system 300 may include a content data store (store)305, a user data store 310, a media server 315, an action recorder 320, an action log 325, and a web server 330.

The content data store 305 may store various content associated with providing interactive entertainment or digital media content as described herein. This may include content associated with analyzing and evaluating the registration of the client device and/or host system, identifying performance requirements associated with interactive entertainment or digital media content, and so forth. For example, performance information associated with interactive entertainment or digital media content may include data associated with processing speed, such as performance capabilities that may be affected by hardware, software, or a network or other element. In some examples, pricing information associated with sharing user hardware may also be stored in the content data store 305.

The user data store 310 may also store data associated with a user, and the like. This data may include user profile information provided directly by the user or inferred by the system 300. Examples of such information may include biographies, demographics, pictures, and/or other types of descriptive information, such as employment, education, gender, hobbies, preferences, location, and the like. It should be understood that any personal information that is obtained may be subject to various privacy settings or regulations, as described below.

The media server 315 may be used to, among other things, collect, distribute, deliver, and/or provide various media content, such as media content stored in the content data store 305 or elsewhere. The system 300 may use the media server 315 to coordinate with, for example, the external system 130 of FIG. 1B, and the external system 130 may be a data center or publisher of various interactive entertainment or digital media content.

The system 300 may also include an action recorder 320, an action log 325, and a web server 330. In some examples, the action logger 320 may receive communications regarding user actions performed on the system 100 or outside of the system 100 and may populate the action log 325 with information regarding various user actions. Such user actions may include, for example, adding a connection (connection) with another user or entity, sending a message from another user or entity, viewing content associated with another user or entity (e.g., another user or advertisement), initiating a payment transaction, etc. In some examples, the action recorder 320 may receive content interaction activities associated with another user or entity according to one or more privacy settings or rules. Further, many of the actions described in conjunction with other objects may be specific to a particular user, and thus, the actions may also be associated with those users. Any or all of these user actions may be stored in action log 325.

The system 100 may use the action log 325 to track user actions on the system 100 or other external systems. The action log 325 may also include context information associated with the context of the user action. For example, such content information may include a date/time at which the action was performed, other actions recorded around a similar date/time period, or other associated actions. Other contextual information may include user action patterns, other similar user-presented patterns, or even various interactions that the user may have with any particular or similar object. These and other similar actions or other similar information may be stored in the action log 325 and may be used to provide third party host system recommendations during the provision of low latency interactive entertainment or digital media content (e.g., video games) as described herein.

web server 330 may link system 300 to one or more client devices (e.g., client device 110 of fig. 1B) via a network (e.g., network 120 of fig. 1B). web server 330 may provide web pages and other web related content such as Java, Flash, XML, or other similar content. web server 330 may communicate with various internal elements of system 300 or external network components to provide various functions, such as receiving, transmitting, and/or routing content between system 300, client devices, and other network components.

As described herein, the system 300 may also include a recommendation subsystem 340. Recommendation subsystem 340 may employ one or more techniques to help define, modify, track, schedule, execute, compare, analyze, evaluate, and/or deploy one or more applications for a registration service of system 300. In some examples, recommendation subsystem 340 may also employ any of a variety of techniques to provide third party host system recommendations, e.g., using information provided during registration of client device 110 and host system 140. In some examples, recommendation subsystem 340 may include recommendation server 342, client device data store 344, host system data store 346, and recommendation data store 348.

In particular, the recommendation server 342 of the recommendation subsystem 340 may enable the system 300 to provide any number of third party host system recommendations to registered client devices 110, as discussed herein. In particular, in some examples, recommendation server 342 may analyze, evaluate, examine, and/or update client device registration data, host system registration data, and/or interactive entertainment or digital media content. Based on these evaluations, recommendation server 342 may identify and/or recommend various third-party host systems for client device 110 to establish a connection for streaming or interacting with the interactive entertainment or digital media content.

The recommendation subsystem 340 may use the client device data store 344 to store content associated with registered client devices 110, the host system data store 346 to store content associated with registered host systems 140, and the recommendation data store 348 to store content associated with registration data and/or any information derived from such registration data (e.g., recommendation data, historical data, etc.).

Although not shown, it should be understood that the system 300 may also include various Artificial Intelligence (AI) -based machine learning tools to help provide third-party host system recommendations. For example, these AI-based machine learning tools may be based on optimization of different types of content analysis models, including but not limited to algorithms that analyze transactions and host system capabilities and provide other details about third-party host system recommendations. For example, these AI-based machine learning tools may be used to generate models and/or classifiers that may include neural networks, tree-based models, bayesian networks, support vectors, clusters, kernel methods, splines, knowledge maps, or an integration of one or more of these and other techniques. These AI-based machine learning tools can further generate classifiers that can use these techniques. Recommendation subsystem 340 may periodically update the model and/or classifier based on additional training or update data associated with system 300. It should be appreciated that the recommendation subsystem 340 may vary depending on the type of input and output requirements and/or the type of task or problem desired to be solved. As described herein, recommendation subsystem 340 may use supervised learning, semi-supervised learning, and/or unsupervised learning to build models using data in the training data store. Supervised learning may include classification and/or regression, while semi-supervised learning may require iterative optimization using an objective function to fill in gaps when at least some of the output is missing. It should also be appreciated that recommendation subsystem 340 may provide other types of machine learning methods, such as reinforcement learning, feature learning, anomaly detection, and the like.

In some examples, the system 300 may provide a manual mode of operation in which the user may narrow the selection with limited or no use of the recommendation subsystem 340. For example, a user may search for third party host systems 140 via the ranking feature as follows: content type > category > sort by name > sort by delay for available hosts within a 100 mile radius > sort by host layer. In some examples, system 300 may provide a search feature that may use Natural Language Processing (NLP) or other similar search functionality to accept user search input. In this way, the user may be presented with a list of recommendations, but the user may use the search features to refine his or her search. For example, the recommendation list may be continuously and/or automatically refined based on the user's input as the user types in his or her desired interactive entertainment content and/or host system, etc. For example, if the user enters "S" into the search feature, the recommendation subsystem 340 may narrow down the list of recommendations to those media content or host systems 140 that begin with the letter "S". If the user continues to type in the user search input and enter "Super" in the search feature, the recommendation subsystem 340 may narrow the recommendation list to those media content or host systems 140 that begin with the word "Super" or have the word "Super". Various other similar or different features may also be provided.

It should be appreciated that the classification algorithm may provide for the assignment of instances to predefined classes to decide whether a match or correlation exists. Alternatively, a clustering scheme or technique may use groupings of related data points that are not tagged. The use of knowledge graphs can also provide an organized graph that associates nodes and edges, where nodes can be related to semantic concepts, such as people, objects, entities, events, etc., and edges can be defined by relationships between semantic-based nodes. It should be understood that the term "node" may be used interchangeably with "entity" and "edge" may be used interchangeably with "relationship" as described herein. Further, as described herein, techniques involving simulation models and/or decision trees may provide detailed and flexible approaches to providing third party host system recommendations associated with providing low-latency interactive media distribution using shared user hardware.

It should be understood that the systems and subsystems shown herein may include one or more servers or computing devices, as described herein. Each of these servers or computing devices may also include a platform and at least one application. The application may include software (e.g., machine-readable instructions) stored on a non-transitory computer-readable medium and executable by a processor. A platform may be an environment on which an application is designed to run. For example, a platform may include hardware to execute applications, an Operating System (OS), and a runtime library (runtime library). The application may be compiled to run on the platform. The runtime library may include low-level routines or subroutines that are called by the application to cause some behavior of the platform at runtime (e.g., exception handling, memory management, etc.). The subsystems may be similar to the platform and may include software and hardware running various software or applications.

While the processors, systems, subsystems, and/or other computing devices may be shown as a single component or element (e.g., a server), one of ordinary skill in the art will recognize that such a single component or element may represent multiple components or elements, and that such components or elements may be connected via one or more networks. Furthermore, middleware (not shown) may be included with any element or component described herein. Middleware may include software hosted by one or more servers. Further, it is to be understood that some middleware or servers may or may not be required to implement the functionality. Other types of servers, middleware, systems, platforms, and applications not shown may also be provided at the front end or the back end to facilitate the features and functionality of systems 100 and/or 300.

4A-4B illustrate screens 400A-400B of host system recommendations at a client device in an interactive video game environment, according to an example. For example, in an interactive video game environment, as shown in FIG. 3, the recommendation subsystem 340 of the system 300 may employ any of a variety of techniques to provide third party host system recommendations to a user at the client device 110A. For example, the recommendation subsystem 340 may collect, analyze, and/or process registered information from the client devices 110 and the host system 140, as well as various video game requirements, user preferences, historical data, user ratings, and the like. In this manner, recommendation subsystem 340 may generate one or more third party host system recommendations for a user of client device 110A seeking to play an interactive video game hosted by an available host system.

As shown in screen 400A of fig. 4A, a recommendation list may be provided at client device 110A. For example, as shown in screen 400A, there may be four (4) registered third party host system recommendations. These recommendations may include, among other recommendations, the following third party host system owners: (A) "jj _ cool _ games", (B) "super _ 5", (C) "User _ 85647", and (D) "frankie _ jones". Each of these recommendations (a) - (D) may include a user (or owner/host) name or other identifier, a profile picture, a user/customer rating, any number of hardware specifications, status indicators (e.g., availability and/or availability duration), a price or cost of using shared hardware, and any other information about the recommended host system and/or the owner of the recommended host system. In some examples, there may also be a distance indicator, as shown in screen 400A. The distance indicator may inform the user of the client device 110A, for example, how far (geographically) the recommended third party host system is from the client device 110A. As described herein, the host system closest to the client device 110A may generally provide the least amount of delay. However, it should be understood that geographic scope may not be the only metric for providing recommendations.

For example, recommendation lists (A) - (D) displayed in screen 400A may list only those recommendations with a 4-star user/customer rating or higher. In some examples, this may be based on preferences from client device registration data, a user profile associated with client device 110A, or other sources. As shown, for example, recommendation (B) (0.4 miles) may be closer to client device 110A than recommendation (a) (0.5 miles). However, the recommendation subsystem 340 may consider various factors, such as hardware specifications based on video game hardware requirements (slightly lower processing power), user rating (half a star high), price (cheaper), and availability (longer), and in this particular scenario, infer and rank that recommendation (a) is higher than recommendation (B). In some examples, recommendation subsystem 340 may employ any of the recommendation techniques described above, and may vary according to specifications, preferences, and/or requirements associated with client device 110, external system 130, host system 140, video games or other media, and the like.

In some examples, the user of client device 110A may also select a map view to view the recommendation list, as shown in screen 400B of fig. 4B. In the map view, the client device 110A may present a map of the local area with the client device's label or identifier (star), recommendation lists (a) - (D), and other recommendations (E) - (L) for third party host systems that may be feasible for the client device 110A. In some examples, the user of the client device 110A may navigate the recommendations in a map view to explore (cause) these and other third party host recommendations in detail.

Once the user decides to select a third party host system, the user of client device 110A may make his or her selection (e.g., select recommendation (A)) from screen 400A or 400B or other methods. Once the selection is made, system 300 may help facilitate establishing a connection (e.g., P2P) between client device 110A and the selected host system (e.g., host system 140A) over network 120. In this manner, the selected host system 140A may now host (e.g., originally selected by the user) the video game so that the user may play the video game on the client device 110A via the shared hardware of the recommendation (a) "jj _ cool _ games".

Fig. 5 illustrates a block diagram of a computer system 500 for providing low-latency interactive media distribution using shared user hardware, according to an example. Computer system 500 may be a part of or any of client device 110, external system 130, host system 140, and/or systems 100 and/or 300 to perform the functions and features described herein. The computer system 500 may include, inter alia, an interconnect (interconnect)510, a processor 512, a multimedia adapter 514, a network interface 516, a system memory 518, and a storage adapter 520.

Interconnect 510 may interconnect various subsystems, elements, and/or components of computer system 500. As shown, the interconnect 510 may be an abstraction that may represent any one or more separate physical buses, point-to-point connections, or both, connected by appropriate bridges, adapters, or controllers. In some examples, interconnect 510 may include a system bus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, a HyperTransport or Industry Standard Architecture (ISA) bus, a Small Computer System Interface (SCSI) bus, a Universal Serial Bus (USB), an IIC (I2C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) standard 1394 bus or "firewire" or other similar interconnect element.

In some examples, interconnect 510 may allow data communication between processor 512 and system memory 518, which system memory 518 may include Read Only Memory (ROM) or flash memory (neither shown) and Random Access Memory (RAM) (not shown). It should be appreciated that the RAM may be the main memory into which the operating system and various application programs may be loaded. The ROM or flash memory may contain code such as a Basic Input Output System (BIOS) that controls basic hardware operations such as interaction with one or more peripheral components.

Processor 512 may be a Central Processing Unit (CPU) of the computing device and may control the overall operation of the computing device. In some examples, processor 512 may accomplish this by executing software or firmware or other data stored in system memory 518 via storage adapter 520. The processor 512 may be or include one or more programmable general or special purpose microprocessors, Digital Signal Processors (DSPs), programmable controllers, Application Specific Integrated Circuits (ASICs), Programmable Logic Devices (PLDs), Trusted Platform Modules (TPMs), Field Programmable Gate Arrays (FPGAs), other processing circuitry, or a combination of these and other devices.

The multimedia adapter 514 may connect to various multimedia components or peripherals. These may include devices associated with visual (e.g., video card or display), audio (e.g., sound card or speaker), and/or various input/output interfaces (e.g., mouse, keyboard, touch screen).

Network interface 516 may provide the computing device with the ability to communicate with various remote devices over a network (e.g., network 120 of FIG. 1B), and may include, for example, an Ethernet adapter, a fibre channel adapter, and/or other supporting wired or wireless adapters. Network interface 516 may provide a direct or indirect connection from one network element to another and facilitate communication between the various network elements.

The storage adapter 520 may be connected to a standard computer readable medium, such as a fixed disk drive (internal or external), for storing and/or retrieving information.

Many other devices, components, elements, or subsystems (not shown) may be connected to interconnect 510 or via a network (e.g., network 120 of fig. 1B) in a similar manner. In contrast, all of the devices shown in FIG. 5 need not be present to practice the present disclosure. The devices and subsystems may be interconnected in different ways from that shown in fig. 5. Code implementing the dynamic methods of payment gateway selection and payment transaction processing of the present disclosure may be stored in a computer-readable storage medium, such as one or more system memories 518 or other storage devices. Code implementing the dynamic methods of payment gateway selection and payment transaction processing of the present disclosure may also be received over one or more interfaces and stored in memory. The operating system provided on computer system 500 may be Or another operating system.

Fig. 6 illustrates a method 600 for providing low-latency interactive media distribution using shared user hardware, according to an example. The method 600 is provided as an example, as there are a variety of ways to perform the methods described herein. Although the method 600 is primarily described as being performed by the system 100, 300 of fig. 1A-1B, 2A-2D, and 3, or the computer system 500 of fig. 5, the method 600 may be performed by other systems or combinations of systems or in other ways. Each block shown in fig. 6 may also represent one or more processes, methods, or subroutines, and one or more blocks may comprise machine-readable instructions stored on a non-transitory computer-readable medium and executed by a processor or other type of processing circuitry to perform one or more operations described herein.

As described herein, at 610, the system 100 may receive host registration data for a host system. In some examples, the host system is a third party host system located across a distributed geographic area. In some examples, host registration data may include host hardware specification data, geographic location data, host system availability data, host system owner profile data, and/or other data, as described herein.

At 620, the system 100 may register the host system as a candidate host system for hosting third party interactive media on behalf of the client device. As described herein, to register a host system as a candidate host system, the processor 101 may determine a candidate host system that satisfies predetermined minimum third party host system criteria. In some examples, the predetermined minimum host hardware specification criteria may be based on interactive media or other criteria.

At 630, the system 100 may receive client device registration data for the client device. In some examples, client device registration data may include client device hardware specification data, client device performance data, geographic location data, client device user profile data, and/or other data, as described herein. In some examples, the client device user profile data may include client device user preferences and historical data. In some examples, the client device performance data may include data associated with network connection strength and latency data.

At 640, the system 100 may receive a third party host connection request from a registered client device. In some examples, the third party host connection request may be to establish a connection with at least one registered host system. In some examples, the third party host connection request may be based on a search feature provided by the system 100 to the client device 110.

At 650, the system 100 may provide at least one third party host system recommendation to the client device in response to the third party host connection request. In some examples, the third party host system recommendations may be based on host registration data, client registration data, and/or other data, such as third party interactive media requirements. In some examples, AI-based machine learning techniques may be used to help provide one or more third party host system recommendations. In some examples, the third party host system recommendations may be based primarily on the host system's proximity (geographic location data) and hardware performance capabilities. It should be appreciated that other factors may be considered, such as those described herein, which may also be used to help provide third party host system recommendations.

At 660, the system 100 may receive a third party host system selection from the client device. In some examples, the third party host system selection may be based on at least one third party host system recommendation. In some examples, third party host system selections may be made independently by a user of client device 110 and/or automatically determined by system 100, client device 110, and/or host system 140 based on various data (e.g., user preferences, hardware capabilities, location data, and/or other factors), as described herein.

At 670, the system 100 may receive a third party host connection acceptance from the selected third party host system. In some examples, third party host connection acceptance may be made independently by a user of the third party hardware (e.g., any of host systems 140). In some examples, third party host connection acceptance may be automated by system 100 based on host system registration data, which may include user preferences, hardware capabilities, other available host systems, schedules or availability, location data, and/or other factors, as described herein.

At 680, the system 100 can facilitate establishing a connection between the client device and the selected third party host system over the network. In this manner, the selected third-party host system may host third-party interactive media on behalf of the client device, and the client device may interact with the third-party interactive media hosted on the selected third-party host system. In some examples, the established connection may allow the client device to access, stream, and interact with interactive entertainment or digital media content (e.g., a video game) from the selected third party host system.

By providing low-latency interactive media distribution using shared user hardware as described herein, the systems and methods described herein may also provide improved load balancing of network components, maximize resource utilization, increase processing speed, and minimize energy consumption. It should be appreciated that the examples described herein may have a flexible structure and provide many advantages over other solutions.

Although the methods and systems as described herein may be primarily directed to interactive entertainment or digital media content, such as video games, it should be understood that the system 100 may be used with other types of content or scenarios. Moreover, the system 100 may also use the techniques disclosed herein in various other environments, such as in a load balancing system, a distributed architecture scheme, or for various digital content processing or transactions, such as advertisement transactions, payment transactions, online transactions, mobile transactions, user-to-user transactions, charge-based (toll-based) transactions, and/or digital transactions. Other applications or uses of the system 100 may also include social networking, competition, marketing, performance analysis, risk analysis, data management, content-based recommendation engines, and/or other types of knowledge or data driven systems.

It should be noted that the functionality described herein may be constrained by one or more privacy policies implemented by the system 100 that may prohibit the use of images for concept detection, recommendation, generation, and analysis.

In particular examples, one or more objects (e.g., content or other types of objects) of a computing system may be associated with one or more privacy settings. The one or more objects may be stored on or otherwise associated with any suitable computing system or application, such as, for example, system 100, client device 110, host system 140, external system 130, social networking application, messaging application, photo sharing application, or any other suitable computing system or application. Although the examples discussed herein are in the context of an online social network, these privacy settings may apply to any other suitable computing system. The privacy settings (or "access settings") of the object may be stored in any suitable manner, such as, for example, in association with the object, in an index on an authorization server, in another suitable manner, or any suitable combination thereof. The privacy settings of an object may specify how the object (or particular information associated with the object) may be accessed, stored, or otherwise used (e.g., viewed, shared, modified, copied, executed, surfaced, or identified) in an online social network. An object may be described as "visible" with respect to a particular user or other entity when the privacy settings of the object allow the user or other entity to access the object. By way of example and not by way of limitation, a user of an online social network may specify a privacy setting for a user profile page that identifies a group of users that may access work experience information on the user profile page, thus excluding other users from accessing the information.

In a particular example, the privacy settings of an object may specify a "blocked list" of users or other entities that should not be allowed to access certain information associated with the object. In a particular example, the blocklist may include third party entities. The blocklist may specify one or more users or entities to which the object is not visible. By way of example and not by way of limitation, a user may specify a group of users who may not have access to an album associated with the user, thus excluding those users from accessing the album (while certain users who are not within the specified group of users may also be permitted access to the album). In a particular example, the privacy settings may be associated with particular social graph elements. Privacy settings of a social graph element (e.g., a node or an edge) may specify how the social graph element, information associated with the social graph element, or objects associated with the social graph element may be accessed using an online social network. By way of example and not limitation, a particular concept node corresponding to a particular photo may have a privacy setting that specifies that the photo is only accessible to the user tagged in the photo and friends of the user tagged in the photo. In particular examples, privacy settings may allow users to opt-in or opt-out to have their content, information, or actions stored/recorded by system 100 or shared with other systems (e.g., external system 130). Although this disclosure describes using particular privacy settings in a particular manner, this disclosure contemplates using any suitable privacy settings in any suitable manner.

In a particular example, the system 100 may present a "privacy wizard" to the first user (e.g., within a web page, module, one or more dialog boxes, or any other suitable interface) to help the first user specify one or more privacy settings. The privacy wizard may display instructions, suitable privacy-related information, current privacy settings, one or more input fields for accepting one or more inputs from the first user specifying a change or confirmation of the privacy settings, or any suitable combination thereof. In a particular example, the system 100 may provide a "dashboard" functionality to the first user that may display the first user's current privacy settings to the first user. The dashboard function may be displayed to the first user at any suitable time (e.g., after an input from the first user invoking the dashboard function, after a particular event or trigger action occurs). The dashboard functionality may allow the first user to modify one or more current privacy settings of the first user at any time in any suitable manner (e.g., redirect the first user to a privacy wizard).

The privacy settings associated with the object may specify any suitable granularity (granularity) at which access is allowed or denied. As an example and not by way of limitation, access or denial of access may be specified for particular users (e.g., only me, my roommates, and my boss), users within a particular degree of separation (e.g., friends of friends), user groups (e.g., gaming clubs, my family), user networks (e.g., employees of a particular employer, students or alumni of a particular university), all users ("the public"), no users ("private"), users of third party systems, particular applications (e.g., third party applications, external websites), other appropriate entities, or any combination thereof. Although this disclosure describes a particular granularity of allowing or denying access, this disclosure contemplates any suitable granularity of allowing or denying access.

In certain examples, different objects of the same type associated with a user may have different privacy settings. Different types of objects associated with a user may have different types of privacy settings. By way of example and not limitation, the first user may specify that the status update of the first user is public, but that any images shared by the first user are only visible to friends of the first user on the online social network. As another example and not by way of limitation, a user may specify different privacy settings for different types of entities (e.g., a personal user, a friend of a friend, a follower, a user group, or a corporate entity). As another example and not by way of limitation, the first user may specify a group of users that may view a video published by the first user while preventing the video from being visible to an employer of the first user. In particular examples, different privacy settings may be provided for different groups of users or user demographics. By way of example and not limitation, the first user may specify that other users of the same university as the first user may view photos of the first user, but that other users who are family members of the first user may not view those same photos.

In a particular example, the system 100 can provide one or more default privacy settings for each object of a particular object type. The privacy settings of an object set as a default may be changed by the user associated with the object. By way of example and not limitation, all images posted by the first user may have a default privacy setting that is visible only to friends of the first user, and for a particular image, the first user may change the privacy setting of the image to be visible to friends and friends of friends.

In a particular example, the privacy settings may allow the first user (e.g., by opt-out, by opt-in) to specify whether the system 100 may receive, collect, record, or store particular objects or information associated with the user for any purpose. In particular examples, the privacy settings may allow the first user to specify whether a particular application or process may access, store, or use a particular object or information associated with the user. The privacy settings may allow the first user to opt-in or opt-out of having objects or information accessed, stored, or used by a particular application or process. The system 100 may access such information to provide a particular function or service to the first user, while the system 100 may not access the information for any other purpose. Prior to accessing, storing, or using such objects or information, the system 100 may prompt the user to provide privacy settings that specify which applications or processes (if any) may access, store, or use the objects or information before allowing any such actions. By way of example and not limitation, a first user may transmit a message to a second user via an application (e.g., messaging app) related to an online social network, and may specify privacy settings at which such message should not be stored by system 100.

In a particular example, the user may specify whether the system 100 may access, store, or use a particular type of object or information associated with the first user. By way of example and not limitation, the first user may specify that images transmitted by the first user through the system 100 may not be stored by the system 100. As another example and not by way of limitation, a first user may specify that messages sent from the first user to a particular second user may not be stored by the system 100. As yet another example and not by way of limitation, the first user may specify that all objects sent through a particular application may be saved by the system 100.

In particular examples, the privacy settings may allow the first user to specify whether particular objects or information associated with the first user may be accessed from the client device 110 or the external system 130. The privacy settings may allow the first user to opt-in or opt-out of accessing objects or information from a particular device (e.g., a phone book on the user's smartphone), from a particular application (e.g., a messaging app), or from a particular system (e.g., an email server). The system 100 may provide default privacy settings for each device, system, or application, and/or may prompt the first user to specify particular privacy settings for each context. By way of example and not limitation, a first user may utilize the location service features of system 100 to provide recommendations regarding restaurants or other places near the user. The first user's default privacy settings may specify that the system 100 may use location information provided from one of the first user's client devices 110 to provide location-based services, but that the system 100 may not store or provide the first user's location information to any external system 130. The first user may then update the privacy settings to allow the third-party image sharing application to use the location information to geotag the photograph.

In particular examples, privacy settings may allow a user to specify whether current, past, or anticipated emotion, or sentiment information associated with the user may be determined, and whether a particular application or process may access, store, or use such information. Privacy settings may allow a user to opt-in or opt-out of having mood, emotion, or emotional information accessed, stored, or used by a particular application or process. The system 100 may predict or determine emotions, or emotions associated with a user based on, for example, user-provided input and interactions with particular objects (e.g., pages or content viewed by the user, posts uploaded by the user, or other content), as well as interactions with other content of the online social network. In a particular example, the system 100 can use the user's previous activities and the calculated emotion, or emotion to determine the current emotion, or emotion. A user wishing to enable this function may indicate in their privacy settings that they choose to join an input necessary for system 100 to receive a determination of emotion, or emotion. By way of example and not limitation, system 100 may determine that the default privacy setting is not to receive any information needed to determine emotion, or emotion until there is an explicit indication from the user that system 100 may do so. Conversely, if the user does not opt-in to have the system 100 receive these inputs (or affirmatively opt-out to have the system 100 receive these inputs), the system 100 may be prevented from receiving, collecting, recording, or storing these inputs or any information associated with these inputs. In a particular example, the system 100 can use predicted emotions, or emotions to provide recommendations or advertisements to a user. In a particular example, if the user wishes to use the functionality for a particular purpose or application, the user may specify additional privacy settings to opt-in to having emotional, or emotional information for that particular purpose or application. By way of example and not limitation, the system 100 may use the mood, emotion, or emotion of the user to provide a dynamic message (news feed) item, page, friend, or advertisement to the user. The user may specify in his privacy settings that system 100 may determine the user's mood, emotion, or emotion. The user may then be asked to provide additional privacy settings to indicate the purpose for which the user's mood, emotion or emotion may be used. The user may indicate that system 100 may use his or her mood, emotion, or emotion to provide dynamic message content and a recommendation page, but not for recommending friends or advertisements. The system 100 may then provide only dynamic message content or pages based on the user's mood, emotion, or emotion, and may not use this information for any other purpose, even if the privacy settings are not explicitly prohibited.

In a particular example, the privacy settings may allow a user to participate in time-limited sharing (ephemeral sharing) of objects on an online social network. Time-limited sharing refers to sharing objects (e.g., posts, photos) or information for a limited period of time. Access or denial of access to objects or information may be specified by time or date. By way of example and not limitation, a user may specify that a particular image uploaded by the user is visible to the user's friends in the next week, after which time the image may no longer be accessible to other users. As another example and not by way of limitation, a company may publish content related to the release of a product prior to formal release and specify that the content is not visible to other users until after the release of the product.

In certain examples, for certain objects or information having privacy settings that specify that they are time-limited, the system 100 may restrict its access, storage, or use of those objects or information. The system 100 may temporarily access, store, or use these particular objects or information to facilitate particular actions by users associated with these objects or information, and may subsequently delete the objects or information, as specified by the corresponding privacy settings. By way of example and not limitation, a first user may transmit a message to a second user, and the system 100 may temporarily store the message in the content data store until the second user has viewed or downloaded the message, at which point the system 100 may delete the message from the data store. As another example and not by way of limitation, continuing with the previous example, a message may be stored for a specified period of time (e.g., 2 weeks), after which the system 100 may delete the message from the content data store.

In particular examples, the privacy settings may allow a user to specify one or more geographic locations from which an object may be accessed. Access or denial of access to the object may depend on the geographic location of the user attempting to access the object. By way of example and not limitation, users may share an object and specify that only users in the same city may access or view the object. As another example and not by way of limitation, a first user may share an object and specify that the object is visible to a second user only when the first user is at a particular location. If the first user leaves the particular location, the object may no longer be visible to the second user. As another example and not by way of limitation, a first user may specify that an object is only visible to a second user within a threshold distance from the first user. If the first user subsequently changes location, a second user who originally had access to the object may lose access, and a new group of second users may gain access when they reach within a threshold distance of the first user.

In a particular example, the system 100 may have the following functionality: personal or biometric information of the user may be used as input for user authentication or experience personalization purposes. Users may choose to utilize these functions to enhance their experience on the online social network. By way of example and not limitation, a user may provide personal or biometric information to the system 100. The user's privacy settings may specify that such information may be used only for certain processes, such as authentication, and further specify that such information may not be shared with any external systems 130 or used for other processes or applications associated with the system 100. As another example and not by way of limitation, system 100 may provide functionality for a user to provide voiceprint recordings to an online social network. By way of example and not limitation, if a user wishes to take advantage of this functionality of an online social network, the user may provide a voice recording of his or her own voice for providing status updates on the online social network. The recording of the voice input may be compared to the user's voice print to determine what the user said. The user's privacy settings may specify that such voice recordings may be used only for voice input purposes (e.g., authenticating the user, sending voice messages, improving voice recognition to use voice-operated features of the online social network), and further specify that such voice recordings may not be shared with any external system 130 or used by other processes or applications associated with the system 100. As another example and not by way of limitation, system 100 may provide functionality for a user to provide a reference image (e.g., facial contour, retinal scan) to an online social network. The online social network may compare the reference image to later received image input (e.g., to authenticate the user, mark the user in a photo). The user's privacy settings may specify that such reference images may be used for only limited purposes (e.g., authenticating, tagging the user in a photo), and further specify that such reference images may not be shared with any external system 130 or used by other processes or applications associated with the system 100.

In certain examples, changes to the privacy settings may take effect retroactively (retroactively), which affects the visibility of objects and content shared before the change. By way of example and not limitation, a first user may share a first image and specify that the first image is to be made public to all other users. Later, the first user may specify that any images shared by the first user should only be visible to the first group of users. The system 100 may determine that the privacy settings also apply to the first image and make the first image visible only to the first group of users. In certain examples, changes to the privacy settings may only take effect in the future. Continuing with the example above, if the first user changes the privacy setting and then shares the second image, the second image may only be visible to the first group of users, but the first image may remain visible to all users. In a particular example, in response to a user action to change the privacy settings, the system 100 can further prompt the user to indicate whether the user wants to apply the change in privacy settings retrospectively. In a particular example, the user's changes to the privacy settings may be a one-time change specific to one object. In a particular example, the user's changes to privacy may be global changes to all objects associated with the user.

In a particular example, the system 100 may determine that the first user may want to change one or more privacy settings in response to a trigger action associated with the first user. The trigger action may be any suitable action on the online social network. By way of example and not limitation, the trigger action may be a change in a relationship between a first user and a second user of the online social network (e.g., to "cancel friend relationship" with the user, change a relationship state between the users). In a particular example, upon determining that the trigger action has occurred, the system 100 can prompt the first user to change a privacy setting regarding visibility of an object associated with the first user. The prompt may redirect the first user to a workflow process for editing privacy settings for one or more entities associated with the trigger action. The privacy settings associated with the first user may only be changed in response to explicit input from the first user and must not be changed without approval by the first user. By way of example and not limitation, the workflow process may include providing a current privacy setting for a second user or group of users to a first user (e.g., unmarking the first user or second user from a particular object, changing the visibility of the particular object with respect to the second user or group of users), and receiving an indication from the first user to change the privacy setting based on any of the methods described herein, or to maintain an existing privacy setting.

In certain examples, a user may need to provide verification of privacy settings before allowing the user to perform a particular action on an online social network, or to provide verification before changing a particular privacy setting. When a particular action is performed or a particular privacy setting is changed, a prompt may be presented to the user to remind the user of his or her current privacy setting and ask the user to verify the privacy setting for the particular action. Further, the user may need to provide confirmation, double confirmation, authentication, or other suitable type of verification before performing a particular action, and the action may not be completed until such verification is provided. By way of example and not limitation, a user's default privacy settings may indicate that a person's relationship state is visible (i.e., "public") to all users. However, if the user changes his or her relationship state, the system 100 may determine that such action may be sensitive and may prompt the user to confirm whether his or her relationship state should remain public before proceeding. As another example and not by way of limitation, a user's privacy settings may specify that the user's posts are visible only to the user's friends. However, if the user changes the privacy setting of his or her post to public, the system 100 may prompt the user for both: the user's current privacy setting for the posts is a reminder that is only visible to friends, and the change will make all of the user's past posts visible to the public. The user may then need to provide a second verification, enter authentication credentials, or provide other types of verification before proceeding with the change in privacy settings. In certain examples, the user may need to provide verification of the privacy settings on a regular basis. Prompts or reminders may be sent to the user periodically based on elapsed time or the number of user actions. By way of example and not limitation, the system 100 may send a reminder to the user to confirm his or her privacy settings every six months or every ten photo postings. In certain examples, the privacy settings may also allow the user to control access to objects or information on a per-request basis. By way of example and not limitation, the system 100 may notify the user whenever the external system 130 attempts to access information associated with the user and require the user to provide verification that access should be allowed before proceeding.

What has been described and illustrated herein are examples and some variations of the present disclosure. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the scope of the disclosure, which is intended to be defined by the following claims and their equivalents, in which all terms are meant in their broadest reasonable sense unless otherwise indicated.

33页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:虚拟场景中的位置获取方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类