US20020091833A1 - Network match maker - Google Patents

Network match maker Download PDF

Info

Publication number
US20020091833A1
US20020091833A1 US09/997,194 US99719401A US2002091833A1 US 20020091833 A1 US20020091833 A1 US 20020091833A1 US 99719401 A US99719401 A US 99719401A US 2002091833 A1 US2002091833 A1 US 2002091833A1
Authority
US
United States
Prior art keywords
match
offer
peer
client
attributes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US09/997,194
Inventor
Steven Grimm
Jeffery Rothschild
Daniel Samuel
Michael Wolf
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Leap Wireless International Inc
Original Assignee
Leap Wireless International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Leap Wireless International Inc filed Critical Leap Wireless International Inc
Priority to US09/997,194 priority Critical patent/US20020091833A1/en
Publication of US20020091833A1 publication Critical patent/US20020091833A1/en
Assigned to WELLS FARGO BANK, N.A., AS COLLATERAL AGENT reassignment WELLS FARGO BANK, N.A., AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: LEAP WIRELESS INTERNATIONAL, INC.
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CRICKET COMMUNICATIONS, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/51Server architecture
    • A63F2300/513Server architecture server hierarchy, e.g. local, regional, national or dedicated for different tasks, e.g. authenticating, billing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5566Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by matching opponents or finding partners to build a team, e.g. by skill level, geographical area, background, play style
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Definitions

  • Computer networks are widely used to connect multiple computer systems together for communicating and sharing information.
  • Computer networks can also be used to implement multi-user applications that allow multiple users to share in the operation of a computer program.
  • Common examples are video and teleconferencing applications, online multiplayer games which allow multiple users to play a game with one another and online chat environments.
  • a problem common to all such multi-user network applications is providing an efficient way to bring together groups of users to join in the running of a multi-user application.
  • Today, the known solutions deal only with the users requirements such as which other people they wish to be matched with. These solutions provide little more than manual methods for the users to select the other users that they wish to be matched with. This is workable only when there are reasonable numbers of users in the pool of all users. It becomes unworkable when there are large numbers of users and when the application has special requirements for network performance or capabilities of the client and/or server computer systems used to implement the application.
  • Peer-to-peer applications are executed by multiple client computers with no server or servers required. All communication traffic during the execution of the application is directed between the clients.
  • Other multiple client networked applications use a single server system.
  • the server may execute some portion of the application that is to be shared by all of the clients while the remainder of the application is executed on the clients.
  • the server can also act as a communications collection point. Some or all of the communication traffic is between each of the clients and the server.
  • the clients may additionally communicate with one another as needed.
  • multiple servers may be used in a multiple client application. Similar to the case of a single server, a portion of the application may be executed on the servers.
  • the multiple servers can also provide communications collection points for the clients.
  • a method for establishing a peer to peer match of clients for at least one application including: receiving at least one offer being indicative of at least one application for which an offer for matching is proposed from an offering peer client, and recording at least one attribute associated with the offer using at least one offer record; receiving a measurement of at least one communication link property between the offering peer client and an inquiring client; and comparing the offer record with the measured at least one link property to determine if a peer to peer match between the offering and the inquiring peer clients is to be permitted.
  • FIG. 1 is a flow chart showing the interaction between a first client and a match maker in accordance with the present invention.
  • FIG. 2 is a flow chart showing the interaction between a second client and a match maker in accordance with the present invention.
  • FIG. 3 is a flow chart showing the interaction between clients and the match maker of FIGS. 1 and 2 in accordance with the present invention.
  • FIG. 4 is a flow chart showing measurement of communication attributes in accordance with the present invention.
  • FIG. 5 is a flow chart showing the steps in matching in accordance with the present invention.
  • FIGS. 6 and 7 are flow charts showing termination methods in accordance with the present invention.
  • FIG. 8 is a flow chart showing the interaction of clients, servers and a match maker in accordance with the present invention.
  • FIGS. 9 - 10 are flow charts showing the use of communication attributes in accordance with the present invention.
  • FIG. 11 is a flow chart showing the matching operation of the match maker in FIG. 8.
  • a network match making system may be used to create matched sets of users of a multi-user networked application.
  • Each user may be associated with a client computer connected to a network.
  • a server computer on the network may execute a software process that is the network match maker.
  • Clients may be selected into matched sets based on attributes of their users, the clients, application class and instance, the attributes of the servers and the properties of the client-to-client and client-to-server communications links.
  • the network match maker may work with three forms of network application implementation: peer-to-peer, multiple clients to a single server and multiple clients to multiple servers.
  • a network match making system that solves the above described problems in the prior art and provides an automated means for users to be matched with one another for a networked application may be provided.
  • the network match maker may not only take into account user preferences and attributes, but attributes of the client computer, the application, any optional servers needed by the application and the properties of the communications links between the clients and the clients and any optional servers.
  • a network match making process runs on a server system on a network that is used by clients to be matched into matched sets of clients for a multi-user application.
  • the network match maker also matches a server to the matched set of clients.
  • clients and the server are matched not only on the basis of user attributes, but also on the basis of client, server and application attributes and on network performance characteristics including bandwidth, latency and packet loss.
  • the network match maker matches clients and a server into matched sets by comparing the attributes of the user, the client, the server and the properties of the network links between them to the requirements of the application.
  • the user attributes include the obvious characteristics of the user that are relevant to the networked application. Some examples include things such as skill level, age, people the user doesn't want to be matched with. For the sake of a clearer discussion, the user and client attributes will be lumped into one group, and is referred to as “client attributes”. Client attributes describe the capabilities of the client computer system. The performance of the client computer, the type and performance of its network link and the types and versions of the networked applications that are installed on it are all reasonable examples of client attributes.
  • the application attributes are the requirements of the networked application. Examples of these requirements include the type and performance of the client, the type and performance or any necessary server and the required properties of network links between the clients and between the clients and the server.
  • Application attributes come in two forms, class and instance.
  • the class attributes of an application apply to any instance of the application.
  • the networked match maker operates in an environment where there will be multiple instances of each application. When an instance of an application is created, it inherits the class attributes while additional instance attributes may also be applied. These instance attributes may simply override some of the class attributes inherited by the instance, while others may be specific only to application instances.
  • Example of static server attributes include the type and performance of the server system, types and versions of any networked application software that is installed on the server.
  • Dynamic attributes include the current load on the server. Considering the current load on the server when assigning application instances to a server is a way to effect dynamic load balancing on the servers in a multiple server system.
  • Communications attributes are the properties of the network link between two computer systems. These will include the links between clients and links between clients and a server. The properties of network links will include the available bandwidth, the latency and the packet loss rate. Many networked applications will have certain minimum requirements for bandwidth and maximum requirements for latency. There are other metrics of communication performance that may be valuable measures of the properties of a communications link between two computer systems that also can be used.
  • the network match maker forms matched sets of users by either automatically matching users into matched sets or allowing users to create match offers that other users may browse and then choose to join until full matched sets are completed. In both of these cases, the match maker will choose a server for the matched set if multiple servers are available and the networked application requires it. Automatic matching is a simple variant of user created match offers, so the user created match offer case is discussed first.
  • the moderator is the agent that chooses the instance attributes of a match offer.
  • the match offer When the match offer is created, it inherits the class attributes of the application. The moderator may then modify the attributes to create the match offer instance attributes.
  • the application When the application is launched for a match offer, it does so using the instance attributes of the match offer.
  • the match maker In user created match offers, the most simple case is that the user that created the offer is the moderator.
  • the match maker itself is the moderator. Other possibilities exist. It is possible for some or all of the users in a match offer to share powers of the moderator.
  • match offers Users may create their own specific offers to other users to match with. These are called match offers.
  • To create a match offer the user will choose one application for which to create a match offer. The offer will inherit the class attributes of the application, but the user may add additional instance attributes for their specific match offer. The user that created the original match offer will be considered the moderator of that offer and will be the only one that is able to select the instance attributes of the match offer.
  • Other users will browse these match offers, examine their attributes, select an offer that they find acceptable and attempt to join that offer.
  • the match maker will compare the client attributes and the communications attributes of any relevant communication links to the required instance attributes. If they do not match the required attributes of the match offer, the match maker will prevent the user from joining the match offer.
  • the new client will join the offer and will be added to the matched set of clients associated with the offer.
  • the match maker will also compare their attributes with those of the other clients to make sure that the user attributes are compatible before a client is allowed to join the match offer. Once enough clients have joined the match offer, the moderator can select to launch the application.
  • the network match maker will ask the new client to measure the properties of the communications links between the new client and all of the existing clients that already are members of the match offer.
  • the properties of the communications links between the new client and the existing clients that are members of the match offer will be returned to the match maker in a vector of network properties. These properties will be compared to the requirements of the instance attributes for the match offer.
  • the application will have its own class attributes for communications properties of the network links between the peers needed to run the application. The creator of the match offer may override these attributes to create instance attributes for the properties of the communications links between the peers. If the client attributes and the attributes of the communication links match the requirements of the application instance, the new client will be joined into the match offer.
  • the server is assumed to have all of the necessary properties to host the necessary portions of the application.
  • the network match maker will ask the new client to measure the properties of the communications links between the new client and all of the existing clients that already are members of the match offer. These properties will be returned to the match maker as a vector of communications properties which will be compared to the requirements of the application instance attributes for communications properties of client-to-client links.
  • the network match maker will also ask the new client to measure the properties of the communications link between the new client and the single server. The properties of this link are also matched to the instance attributes for communications properties of the client-to-server link.
  • the network match maker When a client asks to join a match offer for a particular application, the network match maker asks the client to measure the properties of the communications links between itself, all of the other clients that are members of the matched set associated with the match offer and all of the server systems that are available for that application.
  • the servers available for that application are a subset of all of the servers based on the attributes of the servers and the attributes for server requirements for the match offer instance.
  • a client creates a match offer they may specify instance attributes for the application that override or add to the application class attributes. This may further limit the subset of server systems that can support the application.
  • the network match maker When a new client requests to join the match offer, the network match maker will compare the client attributes to the required attributes of the match offer. If they match, the network match maker will then compare the properties of the relevant communications links to the requirements of the specific match offer.
  • the network match maker chooses the server from the qualified subset of servers using only the properties of the communications links between the creator of the match offer and the qualified servers. If multiple servers have communications links to the creator of the match offer that meet the requirements of the match offer, the network match maker will choose one based on some defined criteria. A reasonable criterion would be the best performance, but other criteria would be possible.
  • the match maker compares the client attributes, the properties of the communications links between the new client and the existing members of the match offer and from the new client to the selected server. If all of these attributes and communications properties meet the requirements of the match offer, the client is allowed to join.
  • Server late binding eliminates this issue, but is more complex.
  • the network match maker maintains a pruned list of qualified servers for a match offer.
  • the clients join the match offer in the usual way.
  • the attributes of the new client are first compared to those of the match offer. If they match, the properties of the network links are compared.
  • the match maker compares the properties of the network links between the new client and the member clients of the match offer to the instance attributes of the match offer. If they match, the properties of the network links between the client and the pruned list of servers is compared to the instance attributes of the match offer. If one or more of the communications links between the new client and the pruned list of servers meet the requirements of the match offer the client is allowed to join it.
  • the network match maker then prunes the list of servers associated with the match offer to eliminate any for which the properties of the communications link from the new client to the server did not meet the instance attributes of the match offer. This will guarantee that the existing clients that are members of the match offer will continue to meet the requirements of the match offer.
  • the network match maker will select a final server using a selection criteria that it chooses. Typically this selection criteria will choose the server with the best overall communications properties to all of the client that are members of the match offer.
  • Automatic matches are very similar to user created match offers except that the users ask the match maker to create automatic match offers to match them with.
  • a user specifies an application to run and requests an automatic match.
  • the network match maker looks at the users requesting an automatic match of the same application and attempts to organize them into matched sets.
  • the match maker creates automatic match offers to which it matches the clients.
  • the user may be given the ability to specify modifications to the attributes of the automatic match offer instance of an application. As an example a user might ask for an automatic match for a game with only expert players.
  • match maker When a client requests an automatic match, match maker will compare the client attributes and communications properties of the requester as applicable to the attributes of the existing automatic match offers. If the client attributes and applicable communications properties of the client match an automatic match offer, the client will be entered into the matched set of clients associated with the match offer. If the attributes of a client and applicable communication properties do not match the instance attributes of the automatic match offer, the match maker will move on to the next automatic match offer. This continues until the client has been matched to an automatic match offer, or there are no more automatic match offers. If the new client has failed to match any of the automatic match offers, the network match maker creates a new automatic match offer and joins the new client with it. When a particular automatic match offer contains enough clients as required by the attributes, the match maker causes an instance of the application to be launched. The network match maker will also support a reasonable time-out period for the launching of automatic match offers.
  • the most important communications attributes are bandwidth, latency and packet loss rate. Other attributes of communications networks may be important in some applications, but these are the most broadly important attributes. Below are examples of how these attributes would be used by the match maker for matching clients and servers to a match offer. For the purposes of these examples, the discussion here relates only to how the communications attributes are used in the match making process. The other client and server attributes will be ignored.
  • Bandwidth is the data rate that can be supported by a particular network link.
  • Networked applications will have requirements for the data rates that they need to send between clients or between clients and a server.
  • an application that be operated with or without speech communications between the clients. When used with digital speech, the speech data consumes a significant amount of data bandwidth.
  • the application is a peer-to-peer application with no need for a server.
  • a user creates a match offer for this application and sets an instance attribute for this match offer to enable speech communications.
  • the match maker will ask the new client to measure the bandwidth between the new client and all of the clients that are already members of the match offer.
  • the match maker will see that the client attributes for communications bandwidth to one of the existing clients does not match the instance attributes of the match offer for client-to-client communication bandwidth. The new client will therefore be prevented from joining the match offer.
  • the same client may be allowed to join a match offer for the same application when the match offer instance specifies that client-to-client speech is not enabled. This will be true if the match offer instance attributes for client-to-client bandwidth are equal to or lower to the bandwidth from the new client to each of the existing client members of the match offer.
  • Latency is another important communications attribute. Latency is the time for a communications data to travel over a network link from one system to another. Many interactive applications will have strict requirements for communications latency that if not met will prevent the application from operating properly. Total latency on a communications link will be the sum of many factors including the propagation time of signals over long distances. The other factors can generally be minimized or reduced, but propagation delays are set by physical laws. Imagine a highly interactive game that is played between multiple clients through a server. Each client in a game instance sends and receives its communications data to the other clients through the server. In this example, also consider that the pool of potential clients to play the game are spread over a wide geographic area and that there are multiple servers also spread through the same area.
  • the example game has strict latency requirements for the communications delay between the clients and a server used for a game instance. If the latency between a client and the server exceed this, the quality of the game play for the client or all of the clients in the game instance may be unacceptable.
  • the match maker must not only match clients together into matched sets, but it also must match each matched set of clients to a specific server. As described earlier there are two methods of matching the server to a group of clients: early server binding and later server binding. With early server binding, the match maker will choose the server that has the lowest measured latency to the first client in the match offer. As each new client attempts to join the match offer, the match maker will ask the client to measure its latency to the server that has been selected for the match offer.
  • the new client will be allowed to join.
  • the end result is that all of the clients that join the match offer will meet the requirements for latency of the match offer instance.
  • server late binding when the match offer is initially created, the match maker will create a list of all of the servers that match all of the instance attributes of the match offer. As clients join the match offer, the match maker will ask the clients to measure their latency to each of the servers in the list. The new client will provide this vector of measured latencies to the match maker. Each latency in the vector will be compared to the latency attribute requirements of the match offer. If one or more the latency vector elements meet the latency requirements of the match offer, the new client will be allowed to join it.
  • the match maker will then prune from the server list associated with the match offer any servers whose corresponding latency vector elements for the new client did not meet the requirements of the match offer. Once all of the desired clients have joined the match offer, there may be more than one server that are in the pruned list. The match maker will then use some criteria to select a single server. One criteria would be to choose the server that minimized the average latency between that server and all of the clients. Another criteria would be to minimize the latency differences between each of the clients and the server.
  • Packet loss rate is the rate at which data is lost during transmission in a network.
  • Most networks transmit data in discrete units called packets or frames.
  • Some networking protocols such as UDP do not provide guaranteed data delivery so it is up to the application to either be tolerant of transmission loss or provide a means to retransmit the data.
  • Other networking protocols such as TCP/IP do provide guaranteed delivery.
  • TCP/IP do provide guaranteed delivery.
  • the application will require two servers, each with unique attributes. Since the game data and speech data will have different bandwidth, latency and packet loss requirements, the application will have separate requirements for each of the two data streams. This will mean that there will be two sets of application attributes for properties of the network links between the clients and the servers.
  • the match maker will ask a client requesting to join a match offer to measure the properties of the network links from the client to each of the two servers. For the client to be allowed to join the match offer, both sets of network properties must match the instance attributes of the match offer for the application requirements for each of the network links from a client to the two servers.
  • the attributes of the client are compared to the required attributes of the application.
  • the properties of the appropriate network links are measured and matched to the required network attributes of the application. If all matches, the new client is allowed to join the running application. At a later time the client may leave the application. This situation is the same as clients joining a match offer with early server binding.
  • the present embodiment relates to matchmaking for Peer to Peer games that is to say games that play without the use of any Servers even though the matchmaker is itself implemented as at least one Server.
  • the network that this particular embodiment uses is the well known Internet which uses the also well known Internet Protocols (such as TCP/IP and UDP/IP).
  • IP Internet Protocol
  • the present embodiment is described only by way of illustration of the above described invention, only a relatively few of the possible alternatives are incorporated into this particular embodiment.
  • the term computer program is commonly abbreviated to program.
  • a matchmaker server program is used, an executing instance of this program (abbreviated to MM) resides on a server computer.
  • the concepts of server computers and executing instances of programs are well known in the computing arts.
  • Each computer user (abbreviated to user in this embodiment) launches an instance of a client computer program on his computer which computer is then a client computer for the time being.
  • an instance of a client program (CL 1 ) sends a request to the MM
  • the use of message exchanges by means of Internet communications to send requests is well known in the data communications and computing arts.
  • the request asks the MM to create a game offer and the request includes attributes of the various game and match preferences chosen by the user together with intrinsic attributes of the requested type of game and attributes of the hardware and software installed on the user's computer.
  • the intrinsic attributes of the game include limiting values for communications attributes of links between users' computers.
  • the MM receives this request.
  • IP Internet Protocol
  • step 13 the MM creates a record to represent game offer (GOR 1 ) which contains the attributes from the request and the return unique network address of CL 1 . Records, sets of records and techniques for creating and maintaining them are well known in the computer programming art.
  • step 14 the MM sends a reply back to CL 1 notifying CL 1 that the match is not yet complete (step 14 ′).
  • step 15 CL 1 waits for a request from MM.
  • CL 1 thus becomes the first member of a game match yet to be completed.
  • step 16 the MM makes the contents of the game offer record available to other potential users.
  • step 17 MM waits for further requests from other clients.
  • step 21 another instance of a client program (CL 2 ) which is executing on a different user's computer from CL 1 and also a different computer from MM, sends a request for a list of game offers to the MM.
  • the MM receives this request.
  • the MM responds with information extracted from GOR 1 that was created in step 13 .
  • CL 1 receives the response from MM which contains the game offer information from GOR 1 .
  • step 31 CL 2 sends to MM a request to be matched into the offer represented by GOR 1 .
  • the MM receives this request.
  • step 33 the MM compares the attributes in the latest request sent by CL 2 with those in GOR 1 and if they do not match by whatever criteria the MM is programmed to use then CL 2 is sent a message from MM that informs CL 2 that it cannot join the offer represented by GOR 1 , at least not at this time (step 34 ).
  • the use of programmed criteria to match requirements and sets of requirements is well known in the computer programming art.
  • the MM sends to CL 2 a request to measure the communications attributes between CL 1 and CL 2 .
  • step 41 CL 2 receives the latest described request from CL 2 .
  • step 42 a determination is made by MM as to whether the request is a request to measure communications (comms.) attributes or is a rejection.
  • step 43 CL 2 measures the communications attributes of the data communications link between CL 2 and CL 1 .
  • Methods of measuring communications attributes are well known in the arts. Not all communications attributes are mutually orthogonal, though the especially important ones of latency, bandwidth and packet loss rate are indeed substantially orthogonal.
  • CL 2 could measure a data throughput rate attribute directly or CL 2 could measure latency, bandwidth and packet loss rate separately and then calculate data throughput rate to a reasonable degree of accuracy (limited inter-alia by mensuration precision) from those three attributes by methods well known in the data communications arts.
  • Another communications attribute is best case round trip time for a kilobyte sized message, this attribute is a function of latency, bandwidth and as a second order effect computer speed but is entirely independent of packet loss rate. Round trip times and methods of measuring them are also well known in the arts.
  • step 44 reports the results of measuring the attributes of the data communications link between CL 2 and CL 1 back to MM.
  • MM receives the message reporting the results of the comms. attribute measurement.
  • step 51 the MM compares the communications attributes with the limiting values for communications attributes for the game recorded in GOR 1 (or some predetermined default values for any limiting values for communications attributes absent from GOR 1 ) and if (step 52 ) the communications attributes exceed any limiting values for communications attributes specified in GOR 1 (or, in their absence predetermined defaults) according to programmed criteria then in step 53 MM notifies CL 2 that it is allowed to join the game offer and a further game offer record (GOR 2 ) is created to record all the known attributes associated with CL 2 . Otherwise (step 54 ) CL 2 is sent a message from MM that informs CL 2 that it cannot join the offer represented by GOR 1 (step 55 ). If not allowed to join, CL 2 finishes. If allowed to join, CL 2 waits for completion of a game match (step 56 ).
  • the MM must next determine whether or not the game match is complete.
  • One vital criterion is whether sufficient players are joined into the game offer (step 61 ).
  • This embodiment uses the automatic match approach, so if a sufficient number of instances of client programs are joined then a time-out timer is started (step 62 ) for a predetermined interval such as 30 seconds during which time further clients may join the game provided the maximum allowed number is players is not reached (step 63 ).
  • Time-out timers are well known in the computer programming art. If a sufficient number of players is not yet joined then the time-out timer is not started yet and MM waits for more client (step 64 ).
  • step 71 when and if the time-out timer expires MM deems the game matched and sends messages to each of the clients (CL 1 through CLn) to inform them of the successful completion of the game match. Otherwise MM takes no particular action in connection with the time-out timer (step 72 ).
  • each player's computer Upon receipt of the message informing them of the successful completion of the game match, each player's computer starts executing the game program instructions and each makes game data message exchanges between each user computer upon a Peer to Peer basis. At this point communication between the clients and the MM (which is a server) is no longer essential and gameplay proceeds.
  • the present embodiment is an example subset of the general description of the present invention, the subset being directed to matchmaking for a game that uses multiple clients to a single server with early server binding.
  • the network that this particular embodiment uses is again the well known Internet.
  • the above general description of the present invention is entirely enabling of the invention generally and of this embodiment in particular to a practitioner ordinarily skilled in the arts.
  • a matchmaker server program is used, an executing instance of this program (abbreviated to MM) resides on a server computer.
  • Each computer user (abbreviated to user in this embodiment) launches an instance of a client computer program on his computer which computer is then a client computer.
  • an instance of a client program sends a request to the MM.
  • the request asks the MM to create a game offer and the request includes attributes of the various game and match preferences chosen by the user together with intrinsic attributes of the requested type of game and attributes of the hardware and software installed on the user's computer.
  • the intrinsic attributes of the game include limiting values for communications attributes of links between clients and game servers (GSs).
  • the MM receives this request.
  • the 103 creates a game offer record (GOR 10 ) which contains the attributes from the request and the return unique network address of CL 10 .
  • step 104 MM matches the attributes recorded in GOR 10 with the attributes (if any) that game servers (GSs) have, at their own initiative, previously reported to MM and which MM retained in records created for this purpose.
  • this matching of game server (GS) attributes to the attributes recorded in GOR 10 fails to identify a GS for which the attributes match GOR 10 adequately according to programmed criteria (step 105 ) then CL 10 is sent a message from MM that informs CL 10 that CL 10 cannot join the offer represented by GOR 10 (step 106 ).
  • step 111 the MM sends to CL 10 a request to measure the communications attributes between CL 10 and each of a shortlist of computers identified by the unique network addresses of all of the potentially compatible GSs identified by MM in step 104 above.
  • step 121 CL 10 receives one of the latest described requests from MM.
  • step 122 a determination is made by CL 10 as to whether the requst is a request to measure communications attributes or is a rejection. If a rejection, then CL 10 finishes. Otherwise, in step 123 CL 10 measures the communications attributes of each of the data communications links between CL 10 and the shortlisted GSs. In step 124 CL 10 reports the results of measuring the various communications attributes back to MM. In step 125 the MM receives this report.
  • step 131 the MM compares the communications attributes (for each path between CL 10 and each of the GSs reported on) with the limiting values in GOR 10 (or some predetermined default values for communications attributes absent from GOR 10 ) and if the communications attributes exceed the limiting values according to programmed criteria specified in GOR 10 or, in their absence predetermined defaults (step 132 ) then in step 133 CL 10 is allowed to create a valid game offer by recording the unique network address of one of the qualifying servers in GOR 10 . This is termed early server binding. The server so selected (in step 133 ) is termed the early bound game server (EBGS). If no qualifying server is found then CL 10 is sent a message from MM that informs CL 10 that MM cannot create a game offer (step 135 ) and GOR 10 is destroyed (step 136 ). Methods for destroying records are well known in the arts.
  • This embodiment does not use the automatic match approach, so MM informs CL 10 of the progress of the match as each client joins.
  • the user of CL 10 can stimulate CL 10 to send a message commanding MM to treat the match as completed.
  • User stimulation of programs through means such as (for example) keyboards or computer mice is well known in the computer programming arts.
  • the MM then sends each client a message informing the client of the completion of the match.
  • the each player's computer Upon receipt of the message informing them of the successful completion of the game match, the each player's computer starts executing the game program instructions and makes game data message exchanges between the each users computer and EBGS. At this point communication between the clients and the MM is no longer essential and gameplay proceeds.
  • the present embodiment is an example still further subset of the general description of the invention, this subset being directed to matchmaking for a game that uses multiple clients to multiple servers with late server binding.
  • the network that this particular embodiment uses is again the well known Internet.
  • the general description above is entirely enabling of the invention generally and of this embodiment in particular to a practitioner ordinarily skilled in the arts.
  • MM Matchmaker server program
  • an executing instance of this program resides on a server computer.
  • Each computer user launches an instance of a client computer program on his computer which computer is then a client computer.
  • An instance of a client program sends a request to the MM.
  • the request asks the MM to create a game offer and the request includes attributes of the various game and match preferences chosen by the user together with intrinsic attributes of the requested type of game and attributes of the hardware and software installed on the user's computer.
  • the intrinsic attributes of the game include limiting values for communications attributes of links between clients and game servers (GSs).
  • GSs game servers
  • the MM receives this request.
  • the MM creates a game offer record (GOR 20 ) which contains the attributes from the request and the return unique network address of CL 20 .
  • MM matches the attributes recorded in GOR 20 with the attributes (if any) that game servers (GSs) have, at their own initiative, previously reported to MM and which MM retained in records created for this purpose.
  • this matching of game server (GS) attributes to the attributes recorded in GOR 20 fails to identify a sufficient number of GSs (the number required is one of the attributes passed by CL 20 to MM) for which the attributes match GOR 20 adequately according to programmed criteria then CL 20 is sent a message from MM that informs CL 20 that it cannot join the offer represented by GOR 20 .
  • the MM sends to CL 20 a request to measure the communications attributes between CL 20 and each of a shortlist of computers identified by the unique network addresses of all of the potentially compatible GSs previously identified by MM.
  • CL 20 receives the latest described request from MM.
  • CL 20 measures the communications attributes of each of the data communications links between CL 20 and the shortlisted GSs.
  • CL 20 reports the results of measuring the various communications attributes back to MM.
  • the MM compares the communications attributes (for each path between CL 20 and each of the GSs reported on) with the limiting values in GOR 20 (or some predetermined default values for communications attributes absent from GOR 20 ) and if the communications attributes exceed the limiting values according to programmed criteria specified in GOR 20 (or, in their absence predetermined defaults) then MM creates for CL 20 a valid game offer by recording all the unique network addresses of all of the qualifying servers in GOR 20 .
  • the network addresses in this list of unique network addresses is necessarily a subset of the shortlist referred to above.
  • CL 20 is sent a message from MM that informs CL 20 that MM cannot create a game offer and GOR 20 is destroyed.
  • This embodiment does not use the automatic match approach, so MM informs CL 20 of the progress of the match as each client joins.
  • the user of CL 20 can stimulate CL 20 to send a message commanding MM to treat the match as completed.
  • the MM selects the GSs to be bound into the match.
  • the servers most likely to result in good gameplay are chosen according to programmed criteria and other factors including all the reported communications attributes. This is known as late server binding.
  • the MM sends to each server a notification that the match is complete together with a list of the addresses of the servers selected.
  • the each player's computer Upon receipt of the message informing them of the successful completion of the game match, the each player's computer starts executing the game program instructions and makes game data message exchanges between the each user's computer and each bound server. At this point communication between the clients and the MM is no longer essential and gameplay proceeds.

Abstract

A method for establishing a peer to peer match of clients for at least one application, the method including: receiving at least one offer being indicative of at least one application for which an offer for matching is proposed from an offering peer client, and recording at least one attribute associated with the offer using at least one offer record; receiving a measurement of at least one communication link property between the offering peer client and an inquiring client; and comparing the offer record with the measured at least one link property to determine if a peer to peer match between the offering and the inquiring peer clients is to be permitted.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • The present application is a continuation of U.S. patent application Ser. No. 09/758,683, filed on May 26, 2000, which is a continuation of U.S. patent application Ser. No. 08/821,279 filed Mar. 20, 1997, which claims priority of U.S. patent application Serial No. 60/013,812 filed Mar. 21, 1996.[0001]
  • BACKGROUND OF THE INVENTION
  • Computer networks are widely used to connect multiple computer systems together for communicating and sharing information. Computer networks can also be used to implement multi-user applications that allow multiple users to share in the operation of a computer program. Common examples are video and teleconferencing applications, online multiplayer games which allow multiple users to play a game with one another and online chat environments. A problem common to all such multi-user network applications is providing an efficient way to bring together groups of users to join in the running of a multi-user application. Today, the known solutions deal only with the users requirements such as which other people they wish to be matched with. These solutions provide little more than manual methods for the users to select the other users that they wish to be matched with. This is workable only when there are reasonable numbers of users in the pool of all users. It becomes unworkable when there are large numbers of users and when the application has special requirements for network performance or capabilities of the client and/or server computer systems used to implement the application. [0002]
  • Networked applications for multiple clients exist in three forms. Peer-to-peer applications are executed by multiple client computers with no server or servers required. All communication traffic during the execution of the application is directed between the clients. Other multiple client networked applications use a single server system. The server may execute some portion of the application that is to be shared by all of the clients while the remainder of the application is executed on the clients. The server can also act as a communications collection point. Some or all of the communication traffic is between each of the clients and the server. The clients may additionally communicate with one another as needed. Finally, multiple servers may be used in a multiple client application. Similar to the case of a single server, a portion of the application may be executed on the servers. The multiple servers can also provide communications collection points for the clients. [0003]
  • BRIEF SUMMARY OF THE INVENTION
  • A method for establishing a peer to peer match of clients for at least one application, the method including: receiving at least one offer being indicative of at least one application for which an offer for matching is proposed from an offering peer client, and recording at least one attribute associated with the offer using at least one offer record; receiving a measurement of at least one communication link property between the offering peer client and an inquiring client; and comparing the offer record with the measured at least one link property to determine if a peer to peer match between the offering and the inquiring peer clients is to be permitted.[0004]
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • FIG. 1 is a flow chart showing the interaction between a first client and a match maker in accordance with the present invention. [0005]
  • FIG. 2 is a flow chart showing the interaction between a second client and a match maker in accordance with the present invention. [0006]
  • FIG. 3 is a flow chart showing the interaction between clients and the match maker of FIGS. 1 and 2 in accordance with the present invention. [0007]
  • FIG. 4 is a flow chart showing measurement of communication attributes in accordance with the present invention. [0008]
  • FIG. 5 is a flow chart showing the steps in matching in accordance with the present invention. [0009]
  • FIGS. 6 and 7 are flow charts showing termination methods in accordance with the present invention. [0010]
  • FIG. 8 is a flow chart showing the interaction of clients, servers and a match maker in accordance with the present invention. [0011]
  • FIGS. [0012] 9-10 are flow charts showing the use of communication attributes in accordance with the present invention.
  • FIG. 11 is a flow chart showing the matching operation of the match maker in FIG. 8.[0013]
  • DETAILED DESCRIPTION OF THE INVENTION
  • According to an aspect of the present invention, a network match making system may be used to create matched sets of users of a multi-user networked application. Each user may be associated with a client computer connected to a network. A server computer on the network may execute a software process that is the network match maker. In some implementations there may be one or more additional servers that are also used for supporting the networked application. Clients may be selected into matched sets based on attributes of their users, the clients, application class and instance, the attributes of the servers and the properties of the client-to-client and client-to-server communications links. The network match maker may work with three forms of network application implementation: peer-to-peer, multiple clients to a single server and multiple clients to multiple servers. [0014]
  • According to an aspect of the present invention, a network match making system that solves the above described problems in the prior art and provides an automated means for users to be matched with one another for a networked application may be provided. The network match maker may not only take into account user preferences and attributes, but attributes of the client computer, the application, any optional servers needed by the application and the properties of the communications links between the clients and the clients and any optional servers. [0015]
  • According to an aspect of the present invention, a network match making process runs on a server system on a network that is used by clients to be matched into matched sets of clients for a multi-user application. When the networked application operates in a networked system with multiple servers that may be used by the application, the network match maker also matches a server to the matched set of clients. A key idea behind the present invention is that clients and the server are matched not only on the basis of user attributes, but also on the basis of client, server and application attributes and on network performance characteristics including bandwidth, latency and packet loss. [0016]
  • Attributes [0017]
  • The network match maker matches clients and a server into matched sets by comparing the attributes of the user, the client, the server and the properties of the network links between them to the requirements of the application. [0018]
  • Client and User Attributes [0019]
  • The user attributes include the obvious characteristics of the user that are relevant to the networked application. Some examples include things such as skill level, age, people the user doesn't want to be matched with. For the sake of a clearer discussion, the user and client attributes will be lumped into one group, and is referred to as “client attributes”. Client attributes describe the capabilities of the client computer system. The performance of the client computer, the type and performance of its network link and the types and versions of the networked applications that are installed on it are all reasonable examples of client attributes. [0020]
  • Application Attributes [0021]
  • The application attributes are the requirements of the networked application. Examples of these requirements include the type and performance of the client, the type and performance or any necessary server and the required properties of network links between the clients and between the clients and the server. Application attributes come in two forms, class and instance. The class attributes of an application apply to any instance of the application. The networked match maker operates in an environment where there will be multiple instances of each application. When an instance of an application is created, it inherits the class attributes while additional instance attributes may also be applied. These instance attributes may simply override some of the class attributes inherited by the instance, while others may be specific only to application instances. [0022]
  • Server Attributes [0023]
  • Example of static server attributes include the type and performance of the server system, types and versions of any networked application software that is installed on the server. Dynamic attributes include the current load on the server. Considering the current load on the server when assigning application instances to a server is a way to effect dynamic load balancing on the servers in a multiple server system. [0024]
  • Communications Attributes [0025]
  • Communications attributes are the properties of the network link between two computer systems. These will include the links between clients and links between clients and a server. The properties of network links will include the available bandwidth, the latency and the packet loss rate. Many networked applications will have certain minimum requirements for bandwidth and maximum requirements for latency. There are other metrics of communication performance that may be valuable measures of the properties of a communications link between two computer systems that also can be used. [0026]
  • Types of Matches [0027]
  • The network match maker forms matched sets of users by either automatically matching users into matched sets or allowing users to create match offers that other users may browse and then choose to join until full matched sets are completed. In both of these cases, the match maker will choose a server for the matched set if multiple servers are available and the networked application requires it. Automatic matching is a simple variant of user created match offers, so the user created match offer case is discussed first. [0028]
  • In both of these types of matches, there is the concept of a moderator. The moderator is the agent that chooses the instance attributes of a match offer. When the match offer is created, it inherits the class attributes of the application. The moderator may then modify the attributes to create the match offer instance attributes. When the application is launched for a match offer, it does so using the instance attributes of the match offer. In user created match offers, the most simple case is that the user that created the offer is the moderator. In automatic matches, the match maker itself is the moderator. Other possibilities exist. It is possible for some or all of the users in a match offer to share powers of the moderator. They may be able to override each others attribute choices so that the last setting of the attributes wins, or there may be a voting scheme between the users sharing moderator powers. It is also possible to imagine a mixture of match maker and user moderator powers. Some of the instance attributes might be set by the match maker and others by one or more users that join the match offer. [0029]
  • User Created Match Offers [0030]
  • Users may create their own specific offers to other users to match with. These are called match offers. To create a match offer, the user will choose one application for which to create a match offer. The offer will inherit the class attributes of the application, but the user may add additional instance attributes for their specific match offer. The user that created the original match offer will be considered the moderator of that offer and will be the only one that is able to select the instance attributes of the match offer. Other users will browse these match offers, examine their attributes, select an offer that they find acceptable and attempt to join that offer. The match maker will compare the client attributes and the communications attributes of any relevant communication links to the required instance attributes. If they do not match the required attributes of the match offer, the match maker will prevent the user from joining the match offer. If they do match, the new client will join the offer and will be added to the matched set of clients associated with the offer. As clients attempt to join the match offer, the match maker will also compare their attributes with those of the other clients to make sure that the user attributes are compatible before a client is allowed to join the match offer. Once enough clients have joined the match offer, the moderator can select to launch the application. [0031]
  • How the network match maker determines how the properties of any relevant communications links affect which clients can join a match offer depends on the architecture of the networked application and is described in the following sections. [0032]
  • Peer-to-Peer [0033]
  • When the client requests to join a match offer, the network match maker will ask the new client to measure the properties of the communications links between the new client and all of the existing clients that already are members of the match offer. The properties of the communications links between the new client and the existing clients that are members of the match offer will be returned to the match maker in a vector of network properties. These properties will be compared to the requirements of the instance attributes for the match offer. The application will have its own class attributes for communications properties of the network links between the peers needed to run the application. The creator of the match offer may override these attributes to create instance attributes for the properties of the communications links between the peers. If the client attributes and the attributes of the communication links match the requirements of the application instance, the new client will be joined into the match offer. [0034]
  • Multiple Clients to a Single Server [0035]
  • In this case, the server is assumed to have all of the necessary properties to host the necessary portions of the application. As with the peer-to-peer case when a client requests to join a match offer the network match maker will ask the new client to measure the properties of the communications links between the new client and all of the existing clients that already are members of the match offer. These properties will be returned to the match maker as a vector of communications properties which will be compared to the requirements of the application instance attributes for communications properties of client-to-client links. In this case the network match maker will also ask the new client to measure the properties of the communications link between the new client and the single server. The properties of this link are also matched to the instance attributes for communications properties of the client-to-server link. If all matches properly, the new client is allowed to join the match offer. In many multi-user networked applications that use a single server all client-to-client communications will be through the server, so there will be no direct client-to-client communications. In these cases, only the properties of the communications links from the clients to the server will be relevant. [0036]
  • Multiple Clients to Multiple Servers [0037]
  • With multiple server systems, the situation becomes more complex. Not only must the system consider the properties of the communications links between the clients and the multiple servers, but additionally the attributes of the server systems. Not only must the network match maker match the clients into matched sets, it also must determine which of multiple server systems is to be associated with each matched set of clients. In the discussion here, it is assumed that the match maker will ultimately choose a single server to be matched with each matched set of clients associated with a match offer. The approach outlined here can be easily generalized to support applications that required multiple servers to be used when running a multi-user application. However, there are two server selection policies that the network match maker can use to select a specific server for a match offer called early server binding and late server binding. [0038]
  • When a client asks to join a match offer for a particular application, the network match maker asks the client to measure the properties of the communications links between itself, all of the other clients that are members of the matched set associated with the match offer and all of the server systems that are available for that application. The servers available for that application are a subset of all of the servers based on the attributes of the servers and the attributes for server requirements for the match offer instance. When a client creates a match offer they may specify instance attributes for the application that override or add to the application class attributes. This may further limit the subset of server systems that can support the application. When a new client requests to join the match offer, the network match maker will compare the client attributes to the required attributes of the match offer. If they match, the network match maker will then compare the properties of the relevant communications links to the requirements of the specific match offer. [0039]
  • With early server binding, the network match maker chooses the server from the qualified subset of servers using only the properties of the communications links between the creator of the match offer and the qualified servers. If multiple servers have communications links to the creator of the match offer that meet the requirements of the match offer, the network match maker will choose one based on some defined criteria. A reasonable criterion would be the best performance, but other criteria would be possible. As a new client attempts to join the match offer, the match maker compares the client attributes, the properties of the communications links between the new client and the existing members of the match offer and from the new client to the selected server. If all of these attributes and communications properties meet the requirements of the match offer, the client is allowed to join. While early server binding is the simplest server selection policy, it may not always result in the best server selection for all of the clients and it may prevent some clients from joining a match offer that they could have joined if a different server had been selected. This is clearly the case if network latency is one of the important properties of a network link. With early binding, a qualified server with the lowest communications latency to the client creating the match offer will be chosen. This latency may be far lower than the latency required by the match offer. The latency requirement of the match offer creates a virtual “sphere” around the chosen server. Clients that match the attributes of the match offer that are within the latency sphere centered around the chosen server will be able to join the match offer. Depending on the location in latency “space” of other qualified servers and other clients, another server may be a better choice that will not only allow the creator of the match offer, but more clients than the original server choice. [0040]
  • Server late binding eliminates this issue, but is more complex. With server late binding the network match maker maintains a pruned list of qualified servers for a match offer. The clients join the match offer in the usual way. The attributes of the new client are first compared to those of the match offer. If they match, the properties of the network links are compared. The match maker compares the properties of the network links between the new client and the member clients of the match offer to the instance attributes of the match offer. If they match, the properties of the network links between the client and the pruned list of servers is compared to the instance attributes of the match offer. If one or more of the communications links between the new client and the pruned list of servers meet the requirements of the match offer the client is allowed to join it. The network match maker then prunes the list of servers associated with the match offer to eliminate any for which the properties of the communications link from the new client to the server did not meet the instance attributes of the match offer. This will guarantee that the existing clients that are members of the match offer will continue to meet the requirements of the match offer. When the moderator finally chooses to launch the game, there may be more than one server in the pruned server list. The network match maker will select a final server using a selection criteria that it chooses. Typically this selection criteria will choose the server with the best overall communications properties to all of the client that are members of the match offer. In many network applications, there will be no direct communications between the clients. There will only be communications between the clients and a server. In this case there will be no need to measure properties of the communications links between the clients and so this will not be part of the match making process. [0041]
  • Automatic Matches [0042]
  • Automatic matches are very similar to user created match offers except that the users ask the match maker to create automatic match offers to match them with. A user specifies an application to run and requests an automatic match. The network match maker looks at the users requesting an automatic match of the same application and attempts to organize them into matched sets. The match maker creates automatic match offers to which it matches the clients. As part of creating an automatic match, the user may be given the ability to specify modifications to the attributes of the automatic match offer instance of an application. As an example a user might ask for an automatic match for a game with only expert players. [0043]
  • When a client requests an automatic match, match maker will compare the client attributes and communications properties of the requester as applicable to the attributes of the existing automatic match offers. If the client attributes and applicable communications properties of the client match an automatic match offer, the client will be entered into the matched set of clients associated with the match offer. If the attributes of a client and applicable communication properties do not match the instance attributes of the automatic match offer, the match maker will move on to the next automatic match offer. This continues until the client has been matched to an automatic match offer, or there are no more automatic match offers. If the new client has failed to match any of the automatic match offers, the network match maker creates a new automatic match offer and joins the new client with it. When a particular automatic match offer contains enough clients as required by the attributes, the match maker causes an instance of the application to be launched. The network match maker will also support a reasonable time-out period for the launching of automatic match offers. [0044]
  • The particular cases of peer-to-peer, multiple clients to single server and multiple clients to multiple servers are all handled in this frame work as they would with user created match offers. A final detail of automatic match offers is that users that are manually browsing match offers will also see and be able to join the automatic match offers. [0045]
  • Examples of Communications Attributes [0046]
  • The most important communications attributes are bandwidth, latency and packet loss rate. Other attributes of communications networks may be important in some applications, but these are the most broadly important attributes. Below are examples of how these attributes would be used by the match maker for matching clients and servers to a match offer. For the purposes of these examples, the discussion here relates only to how the communications attributes are used in the match making process. The other client and server attributes will be ignored. [0047]
  • Bandwidth is the data rate that can be supported by a particular network link. Networked applications will have requirements for the data rates that they need to send between clients or between clients and a server. Consider as an example an application that be operated with or without speech communications between the clients. When used with digital speech, the speech data consumes a significant amount of data bandwidth. Further consider that the application is a peer-to-peer application with no need for a server. In this example a user creates a match offer for this application and sets an instance attribute for this match offer to enable speech communications. When a new client requests to join the match offer, the match maker will ask the new client to measure the bandwidth between the new client and all of the clients that are already members of the match offer. If the bandwidth between the new client and any one of the existing members of the match offer is too low to support the bandwidth requirements of the application when speech is enabled, the match maker will see that the client attributes for communications bandwidth to one of the existing clients does not match the instance attributes of the match offer for client-to-client communication bandwidth. The new client will therefore be prevented from joining the match offer. The same client may be allowed to join a match offer for the same application when the match offer instance specifies that client-to-client speech is not enabled. This will be true if the match offer instance attributes for client-to-client bandwidth are equal to or lower to the bandwidth from the new client to each of the existing client members of the match offer. [0048]
  • Latency is another important communications attribute. Latency is the time for a communications data to travel over a network link from one system to another. Many interactive applications will have strict requirements for communications latency that if not met will prevent the application from operating properly. Total latency on a communications link will be the sum of many factors including the propagation time of signals over long distances. The other factors can generally be minimized or reduced, but propagation delays are set by physical laws. Imagine a highly interactive game that is played between multiple clients through a server. Each client in a game instance sends and receives its communications data to the other clients through the server. In this example, also consider that the pool of potential clients to play the game are spread over a wide geographic area and that there are multiple servers also spread through the same area. The example game has strict latency requirements for the communications delay between the clients and a server used for a game instance. If the latency between a client and the server exceed this, the quality of the game play for the client or all of the clients in the game instance may be unacceptable. In this example, the match maker must not only match clients together into matched sets, but it also must match each matched set of clients to a specific server. As described earlier there are two methods of matching the server to a group of clients: early server binding and later server binding. With early server binding, the match maker will choose the server that has the lowest measured latency to the first client in the match offer. As each new client attempts to join the match offer, the match maker will ask the client to measure its latency to the server that has been selected for the match offer. If the measured latency meets the requirement of the match offer instance for latency, the new client will be allowed to join. The end result is that all of the clients that join the match offer will meet the requirements for latency of the match offer instance. With server late binding, when the match offer is initially created, the match maker will create a list of all of the servers that match all of the instance attributes of the match offer. As clients join the match offer, the match maker will ask the clients to measure their latency to each of the servers in the list. The new client will provide this vector of measured latencies to the match maker. Each latency in the vector will be compared to the latency attribute requirements of the match offer. If one or more the latency vector elements meet the latency requirements of the match offer, the new client will be allowed to join it. The match maker will then prune from the server list associated with the match offer any servers whose corresponding latency vector elements for the new client did not meet the requirements of the match offer. Once all of the desired clients have joined the match offer, there may be more than one server that are in the pruned list. The match maker will then use some criteria to select a single server. One criteria would be to choose the server that minimized the average latency between that server and all of the clients. Another criteria would be to minimize the latency differences between each of the clients and the server. [0049]
  • In a well managed network, most of the latency between two points in the network will come from the network propagation time. In both the early and late server binding cases, this will mean that the clients will tend to be matched to servers that are located near to them in the network. If the network tends to minimize the lengths of the network connections, this will result in clients being matched to servers in their geographical vicinity. [0050]
  • Packet loss rate is the rate at which data is lost during transmission in a network. Most networks transmit data in discrete units called packets or frames. Some networking protocols such as UDP do not provide guaranteed data delivery so it is up to the application to either be tolerant of transmission loss or provide a means to retransmit the data. Other networking protocols such as TCP/IP do provide guaranteed delivery. However, when a packet is lost this must be signaled to the sender and the transmission retried. Unfortunately, this takes time and introduces a large delay before the lost packet can be recovered. In some applications, this delay causes more problems than the loss of the data. Therefore, many interactive applications will have requirements for maximum tolerated packet loss rates. This then becomes an important attribute of a network link that an application may want the match maker to consider as part of matching clients to a match offer and a server to matched set of clients. This attribute will be used in a similar fashion to the other network attributes. [0051]
  • Generalizations to the Invention [0052]
  • The previous discussion of client-server applications only considers the cases where this is only a single server or the match maker chooses a single server from multiple servers to match to a match offer. It is also possible in the case where there are multiple servers that the application may require multiple servers. Consider an application that has two forms of data that it transmits through the network. As an example consider an interactive game that supports speech communications between players. It will transmit game information and user speech data that it separates into two separate data streams that flow between the clients and two different servers. One server will handle the game data while the other the speech data. This allows the server that handles the speech data to be equipped with special capabilities specific to processing the speech data prior to routing it to the clients that are to receive it. [0053]
  • With this arrangement, the application will require two servers, each with unique attributes. Since the game data and speech data will have different bandwidth, latency and packet loss requirements, the application will have separate requirements for each of the two data streams. This will mean that there will be two sets of application attributes for properties of the network links between the clients and the servers. During the match making process in this example, the match maker will ask a client requesting to join a match offer to measure the properties of the network links from the client to each of the two servers. For the client to be allowed to join the match offer, both sets of network properties must match the instance attributes of the match offer for the application requirements for each of the network links from a client to the two servers. [0054]
  • In the prior discussions it has been assumed that once a sufficient number of clients have joined a match offer for an application that the application is launched with all of the clients that have successfully joined the match offer. The launch may be triggered by a moderator in a user created match offer or may be triggered by the match maker when enough clients have been matched to an automatic match offer. There is another important case of a persistent application. This is an application that allows clients to join and leave it during its operations. In this case, the game may be launched by a single client or automatically by the match maker. In this case, the running application also embodies a match offer. If the application requires a server or servers, they are chosen at the time that the application is launched. The server is chosen based on its attributes and the required attributes of the application. When a client requests to join the running application, the attributes of the client are compared to the required attributes of the application. The properties of the appropriate network links are measured and matched to the required network attributes of the application. If all matches, the new client is allowed to join the running application. At a later time the client may leave the application. This situation is the same as clients joining a match offer with early server binding. [0055]
  • DESCRIPTION OF PARTICULAR EMBODIMENTS OF THE INVENTION
  • Although the above description of the present invention is entirely enabling of the invention generally and of this embodiment in particular to a practitioner ordinarily skilled in the arts, as an aid to more quickly understanding the invention it is useful to consider in some detail an embodiment that contains only a relatively small subset of the invention and which is therefore relatively simple to describe and also is relatively quick and easy to understand. [0056]
  • The present embodiment relates to matchmaking for Peer to Peer games that is to say games that play without the use of any Servers even though the matchmaker is itself implemented as at least one Server. The network that this particular embodiment uses is the well known Internet which uses the also well known Internet Protocols (such as TCP/IP and UDP/IP). Moreover, for simplicity since the present embodiment is described only by way of illustration of the above described invention, only a relatively few of the possible alternatives are incorporated into this particular embodiment. [0057]
  • The term computer program is commonly abbreviated to program. A matchmaker server program is used, an executing instance of this program (abbreviated to MM) resides on a server computer. The concepts of server computers and executing instances of programs are well known in the computing arts. Each computer user (abbreviated to user in this embodiment) launches an instance of a client computer program on his computer which computer is then a client computer for the time being. [0058]
  • Referring to FIG. 1, in [0059] step 11, an instance of a client program (CL1) sends a request to the MM, the use of message exchanges by means of Internet communications to send requests is well known in the data communications and computing arts. The request asks the MM to create a game offer and the request includes attributes of the various game and match preferences chosen by the user together with intrinsic attributes of the requested type of game and attributes of the hardware and software installed on the user's computer. The intrinsic attributes of the game include limiting values for communications attributes of links between users' computers. In step 12, the MM receives this request. A well known intrinsic feature of the Internet Protocol (IP) used by CL1 to send a request to the MM, is that all messages carry a return unique network address in the form of an Internet Protocol address (IPaddr.) exploiting which the MM can subsequently send a reply data message to the CL1, this eliminates any need for the CL1 to embed an address within the request as might be needed on other types of network or link. In step 13 the MM creates a record to represent game offer (GOR1) which contains the attributes from the request and the return unique network address of CL1. Records, sets of records and techniques for creating and maintaining them are well known in the computer programming art. In step 14 the MM sends a reply back to CL1 notifying CL1 that the match is not yet complete (step 14′). In step 15 CL1 waits for a request from MM. CL1 thus becomes the first member of a game match yet to be completed. In step 16 the MM makes the contents of the game offer record available to other potential users. In step 17 MM waits for further requests from other clients.
  • Referring to FIG. 2, in [0060] step 21, another instance of a client program (CL2) which is executing on a different user's computer from CL1 and also a different computer from MM, sends a request for a list of game offers to the MM. In step 22 the MM receives this request. In step 23 the MM responds with information extracted from GOR1 that was created in step 13. In step 24 CL1 receives the response from MM which contains the game offer information from GOR1.
  • Referring to FIG. 3, in [0061] step 31, CL2 sends to MM a request to be matched into the offer represented by GOR1. In step 32 the MM receives this request. In step 33 the MM compares the attributes in the latest request sent by CL2 with those in GOR1 and if they do not match by whatever criteria the MM is programmed to use then CL2 is sent a message from MM that informs CL2 that it cannot join the offer represented by GOR1, at least not at this time (step 34). The use of programmed criteria to match requirements and sets of requirements is well known in the computer programming art. Assuming the attributes match in step 35 the MM sends to CL2 a request to measure the communications attributes between CL1 and CL2.
  • Referring to FIG. 4, in [0062] step 41, CL2 receives the latest described request from CL2. In step 42 a determination is made by MM as to whether the request is a request to measure communications (comms.) attributes or is a rejection. In step 43 CL2 measures the communications attributes of the data communications link between CL2 and CL1. Methods of measuring communications attributes are well known in the arts. Not all communications attributes are mutually orthogonal, though the especially important ones of latency, bandwidth and packet loss rate are indeed substantially orthogonal. For example, CL2 could measure a data throughput rate attribute directly or CL2 could measure latency, bandwidth and packet loss rate separately and then calculate data throughput rate to a reasonable degree of accuracy (limited inter-alia by mensuration precision) from those three attributes by methods well known in the data communications arts. Another communications attribute is best case round trip time for a kilobyte sized message, this attribute is a function of latency, bandwidth and as a second order effect computer speed but is entirely independent of packet loss rate. Round trip times and methods of measuring them are also well known in the arts. In step 44 CL2 reports the results of measuring the attributes of the data communications link between CL2 and CL1 back to MM. In step 45 MM receives the message reporting the results of the comms. attribute measurement.
  • Referring to FIG. 5, in [0063] step 51, the MM compares the communications attributes with the limiting values for communications attributes for the game recorded in GOR1 (or some predetermined default values for any limiting values for communications attributes absent from GOR1) and if (step 52) the communications attributes exceed any limiting values for communications attributes specified in GOR1 (or, in their absence predetermined defaults) according to programmed criteria then in step 53 MM notifies CL2 that it is allowed to join the game offer and a further game offer record (GOR2) is created to record all the known attributes associated with CL2. Otherwise (step 54) CL2 is sent a message from MM that informs CL2 that it cannot join the offer represented by GOR1 (step 55). If not allowed to join, CL2 finishes. If allowed to join, CL2 waits for completion of a game match (step 56).
  • Referring to FIG. 6, the MM must next determine whether or not the game match is complete. One vital criterion is whether sufficient players are joined into the game offer (step [0064] 61). This embodiment uses the automatic match approach, so if a sufficient number of instances of client programs are joined then a time-out timer is started (step 62) for a predetermined interval such as 30 seconds during which time further clients may join the game provided the maximum allowed number is players is not reached (step 63). Time-out timers are well known in the computer programming art. If a sufficient number of players is not yet joined then the time-out timer is not started yet and MM waits for more client (step 64).
  • Until and unless the time-out timer expires further instances of client programs (CL[0065] 3, CL4 etc) may join the game offer upon the same basis of negotiation as CL2 used, with the exception that the third and later clients (CLn) will be requested and required by the MM to measure and report back the communications attributes between the candidate instance of client program and all of the clients already joined (CL1 through CL(n−1)).
  • Referring to FIG. 7, in [0066] step 71, when and if the time-out timer expires MM deems the game matched and sends messages to each of the clients (CL1 through CLn) to inform them of the successful completion of the game match. Otherwise MM takes no particular action in connection with the time-out timer (step 72). Upon receipt of the message informing them of the successful completion of the game match, each player's computer starts executing the game program instructions and each makes game data message exchanges between each user computer upon a Peer to Peer basis. At this point communication between the clients and the MM (which is a server) is no longer essential and gameplay proceeds.
  • By way of further illustration the present embodiment is an example subset of the general description of the present invention, the subset being directed to matchmaking for a game that uses multiple clients to a single server with early server binding. The network that this particular embodiment uses is again the well known Internet. The above general description of the present invention is entirely enabling of the invention generally and of this embodiment in particular to a practitioner ordinarily skilled in the arts. [0067]
  • A matchmaker server program is used, an executing instance of this program (abbreviated to MM) resides on a server computer. Each computer user (abbreviated to user in this embodiment) launches an instance of a client computer program on his computer which computer is then a client computer. [0068]
  • Referring to FIG. 8, in [0069] step 101, an instance of a client program (CL10) sends a request to the MM. The request asks the MM to create a game offer and the request includes attributes of the various game and match preferences chosen by the user together with intrinsic attributes of the requested type of game and attributes of the hardware and software installed on the user's computer. The intrinsic attributes of the game include limiting values for communications attributes of links between clients and game servers (GSs). In step 102, the MM receives this request. In step 103 the MM creates a game offer record (GOR10) which contains the attributes from the request and the return unique network address of CL10. In step 104 MM matches the attributes recorded in GOR10 with the attributes (if any) that game servers (GSs) have, at their own initiative, previously reported to MM and which MM retained in records created for this purpose. In the case that this matching of game server (GS) attributes to the attributes recorded in GOR10 fails to identify a GS for which the attributes match GOR10 adequately according to programmed criteria (step 105) then CL10 is sent a message from MM that informs CL10 that CL10 cannot join the offer represented by GOR10 (step 106).
  • Referring to FIG. 9, in [0070] step 111 the MM sends to CL10 a request to measure the communications attributes between CL10 and each of a shortlist of computers identified by the unique network addresses of all of the potentially compatible GSs identified by MM in step 104 above.
  • Referring to FIG. 10, in [0071] step 121, CL10 receives one of the latest described requests from MM. In step 122, a determination is made by CL10 as to whether the requst is a request to measure communications attributes or is a rejection. If a rejection, then CL10 finishes. Otherwise, in step 123 CL10 measures the communications attributes of each of the data communications links between CL10 and the shortlisted GSs. In step 124 CL10 reports the results of measuring the various communications attributes back to MM. In step 125 the MM receives this report.
  • Referring to FIG. 11, in [0072] step 131, the MM compares the communications attributes (for each path between CL10 and each of the GSs reported on) with the limiting values in GOR10 (or some predetermined default values for communications attributes absent from GOR10) and if the communications attributes exceed the limiting values according to programmed criteria specified in GOR10 or, in their absence predetermined defaults (step 132) then in step 133 CL10 is allowed to create a valid game offer by recording the unique network address of one of the qualifying servers in GOR10. This is termed early server binding. The server so selected (in step 133) is termed the early bound game server (EBGS). If no qualifying server is found then CL10 is sent a message from MM that informs CL10 that MM cannot create a game offer (step 135) and GOR10 is destroyed (step 136). Methods for destroying records are well known in the arts.
  • At CL[0073] 10, a determination is made as to whether MM has allowed CL10 to join game offer (step 137). If CL10 is allowed, then CL10 waits for completion of game match (step 138). Otherwise, if not allowed to join, CL10 finishes.
  • When further clients attempt to join the game offer represented by GOR[0074] 10, they are requested by the MM to measure the communications attributes only between themselves and the EBGS. On reporting these communications attributes back to MM a determination is made as to whether those attributes exceed the limiting values according to programmed criteria established above so that the client may be allowed to join the game offer.
  • This embodiment does not use the automatic match approach, so MM informs CL[0075] 10 of the progress of the match as each client joins. When the user of CL10 is satisfied that a sufficient number of players have joined the match then the user of CL10 can stimulate CL10 to send a message commanding MM to treat the match as completed. User stimulation of programs through means such as (for example) keyboards or computer mice is well known in the computer programming arts. The MM then sends each client a message informing the client of the completion of the match.
  • Upon receipt of the message informing them of the successful completion of the game match, the each player's computer starts executing the game program instructions and makes game data message exchanges between the each users computer and EBGS. At this point communication between the clients and the MM is no longer essential and gameplay proceeds. [0076]
  • By way of further illustration the present embodiment is an example still further subset of the general description of the invention, this subset being directed to matchmaking for a game that uses multiple clients to multiple servers with late server binding. The network that this particular embodiment uses is again the well known Internet. The general description above is entirely enabling of the invention generally and of this embodiment in particular to a practitioner ordinarily skilled in the arts. [0077]
  • When a matchmaker server program is used, an executing instance of this program (MM) resides on a server computer. Each computer user (user) launches an instance of a client computer program on his computer which computer is then a client computer. [0078]
  • An instance of a client program (CL[0079] 20) sends a request to the MM. The request asks the MM to create a game offer and the request includes attributes of the various game and match preferences chosen by the user together with intrinsic attributes of the requested type of game and attributes of the hardware and software installed on the user's computer. The intrinsic attributes of the game include limiting values for communications attributes of links between clients and game servers (GSs). Next the MM receives this request. The MM creates a game offer record (GOR20) which contains the attributes from the request and the return unique network address of CL20. Then MM matches the attributes recorded in GOR20 with the attributes (if any) that game servers (GSs) have, at their own initiative, previously reported to MM and which MM retained in records created for this purpose. In the case that this matching of game server (GS) attributes to the attributes recorded in GOR20 fails to identify a sufficient number of GSs (the number required is one of the attributes passed by CL20 to MM) for which the attributes match GOR20 adequately according to programmed criteria then CL20 is sent a message from MM that informs CL20 that it cannot join the offer represented by GOR20.
  • Next the MM sends to CL[0080] 20 a request to measure the communications attributes between CL20 and each of a shortlist of computers identified by the unique network addresses of all of the potentially compatible GSs previously identified by MM.
  • Then CL[0081] 20 receives the latest described request from MM. CL20 measures the communications attributes of each of the data communications links between CL20 and the shortlisted GSs. CL20 reports the results of measuring the various communications attributes back to MM.
  • The MM compares the communications attributes (for each path between CL[0082] 20 and each of the GSs reported on) with the limiting values in GOR20 (or some predetermined default values for communications attributes absent from GOR20) and if the communications attributes exceed the limiting values according to programmed criteria specified in GOR20 (or, in their absence predetermined defaults) then MM creates for CL20 a valid game offer by recording all the unique network addresses of all of the qualifying servers in GOR20.
  • The network addresses in this list of unique network addresses is necessarily a subset of the shortlist referred to above. [0083]
  • The servers to be bound into the match are not yet selected because this embodiment uses late server binding. [0084]
  • If an insufficient number of qualifying servers are found then CL[0085] 20 is sent a message from MM that informs CL20 that MM cannot create a game offer and GOR20 is destroyed.
  • When further clients attempt to join the game offer represented by GOR[0086] 20, they are requested by the MM to measure the communications attributes between themselves and all of the servers listed in GOR20 as qualifying.
  • On reporting these communications attributes back to MM a determination is made as to whether those attributes exceed the limiting values for a sufficient number of servers according to programmed criteria established above so that the client may be allowed to join the game offer. If the client is allowed to join the game offer then any servers for which the communications attributes of the further client fail to meet criteria are removed from the list of qualifying servers in GOR[0087] 20. Thus the list of qualifying servers may become smaller and smaller as more clients join the game offer.
  • This embodiment does not use the automatic match approach, so MM informs CL[0088] 20 of the progress of the match as each client joins. When the user of CL20 is satisfied that a sufficient number of players have joined the match then the user of CL20 can stimulate CL20 to send a message commanding MM to treat the match as completed. At this stage the MM selects the GSs to be bound into the match. The servers most likely to result in good gameplay are chosen according to programmed criteria and other factors including all the reported communications attributes. This is known as late server binding. The MM sends to each server a notification that the match is complete together with a list of the addresses of the servers selected.
  • Upon receipt of the message informing them of the successful completion of the game match, the each player's computer starts executing the game program instructions and makes game data message exchanges between the each user's computer and each bound server. At this point communication between the clients and the MM is no longer essential and gameplay proceeds. [0089]
  • It is to be understood that even though numerous embodiments and advantages of the present invention have been set forth in the foregoing description, the above disclosure is illustrative only, and changes may be made in detail yet remain within the broad principles of the invention. Therefore, the present invention is to be limited only by the appended claims. [0090]

Claims (20)

What is claimed is:
1. A method for establishing a peer to peer match of clients for at least one application, said method comprising:
receiving at least one offer being indicative of at least one application for which an offer for matching is proposed from an offering peer client, and recording at least one attribute associated with said offer using at least one offer record;
receiving a measurement of at least one communication link property between said offering peer client and an inquiring client; and
comparing said offer record with said measured at least one link property to determine if a peer to peer match between said offering and said inquiring peer clients is to be permitted.
2. The method of claim 1, further comprising the step of launching an application so as to allow direct peer to peer communication between said first and inquiring clients.
3. The method of claim 1, further comprising the step of launching an application allowing direct peer to peer communication for allowable matches after a predetermined number of inquiring peer clients are deemed allowable matches.
4. The method of claim 1, further comprising:
receiving a measurement of at least one communication link property between said first peer client and a second inquiring client; and
comparing said offer record with said measured at least one link property so as to determine if a peer to peer match between said offering and second inquiring peer clients is to be permitted.
5. The method of claim 1, wherein said at least one communication link property comprises one or more selected from the group consisting of bandwidth, latency, and packet loss.
6. A system suitable for establishing a peer to peer match between at least two peer client computers each including at least one instance of an application, said system comprising:
at least one server;
code for recording an offer for match and desired match attributes associated with at least one of said at least two peer client computers;
code for recording link performance information indicative of communications between any two of said at least two peer client computers so as to be associable with said recorded offer and attributes; and,
code for comparing said recorded offer and attributes and said recorded link properties to determine whether a peer to peer match is to be permitted;
wherein, said code for recording said offer, code for recording said link performance information and code for comparing are at least partially stored using said at least one server.
7. The system of claim 6, further comprising code for accepting said offer of match from at least one of said at least two client computers, providing access to said at least two client computers of said offer record allowing an acceptance of said offer of match by one or more of said peer client computers, requiring an offer-accepting peer client computer to provide attributes and measure the link parameters to each one of said at least two client computers whereby said attributes and said link parameters are forwarded to said match maker program, and comparing said record of offer with said attributes and said link parameters in determining the suitability of a match before initiating said peer to peer match.
8. The system of claim 6, wherein said attributes include instance and class attributes.
9. The system of claim 6, wherein said code for measuring includes at least one link measurement application residing in at least one of said peer client computers, wherein the results of said link measurement program are forwarded to said at least one server prior to comparing said offer record.
10. The system of claim 6, wherein said code for recording said offer, code for recording said link performance information and code for comparing are part of an application.
11. A method for establishing a match for at least voice and data, said method comprising:
receiving at least one offer associated with an application supporting voice and data communications for which an offer for matching is proposed from an offering peer client, and recording at least one attribute along with said offer using at least one offer record;
receiving a measurement of at least one communication link property between said first peer client and an inquiring client; and
comparing said at least one offer record with said measured at least one link property so as to determine if a peer to peer match between said offering and inquiring peer clients is allowable.
12. The method of claim 11, further comprising launching said application thereby allowing communication for voice and data for allowable matches.
13. The method of claim 11, further comprising launching said application so as to allow communication for voice and data for allowable matches after a predetermined number of inquiring clients are deemed allowable matches.
14. The method of claim 11, further comprising the steps of;
receiving a measurement of at least one communication link property between said first peer client and a second inquiring client;
comparing said offer record with said measured at least one link property so as to determine if a peer to peer match between said offering and second inquiring peer clients is allowable; and,
launching said application allowing communication for voice and data for allowable matches.
15. The method of claim 11, wherein said communication link properties comprise one or more selected from the group consisting of bandwidth, latency, and packet loss.
16. A method for establishing at least one match of clients for at least one application, said method comprising:
receiving at least one offer being indicative of an application from an offering client, and recording at least one attribute along with said offer using at least one offer record;
selecting at least one game server using said at least one offer record;
receiving a measurement of at least one communication link property between said offering client and said at least one game server; and
comparing said received measurement to at least one condition associated with said at least one application so as to determine if a match between said offering client and said selected at least one game server is allowable.
17. The method of claim 16, further comprising instantiating said at least one application if said match is allowable.
18. The method of claim 17, wherein said selecting comprises selecting a plurality of servers, and said instantiating is based upon said comparing.
19. The method of claim 18, further comprising:
receiving a second measurement of at least one communication link property between a second client and said at least one game server; and
comparing said received second measurement to at least one condition associated with said at least one application so as to determine if a match between said second client and said selected at least one game server is allowable.
20. The method of claim 19, further comprising deselecting at least one of said selected servers if said match between said second client and said selected at least one game server is not allowable.
US09/997,194 1996-03-21 2001-11-29 Network match maker Abandoned US20020091833A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/997,194 US20020091833A1 (en) 1996-03-21 2001-11-29 Network match maker

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US1381296P 1996-03-21 1996-03-21
US08/821,279 US6128660A (en) 1996-03-21 1997-03-20 Network match maker
US09/578,683 US6345297B1 (en) 1996-03-21 2000-05-26 Network match maker
US09/997,194 US20020091833A1 (en) 1996-03-21 2001-11-29 Network match maker

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/578,683 Continuation US6345297B1 (en) 1996-03-21 2000-05-26 Network match maker

Publications (1)

Publication Number Publication Date
US20020091833A1 true US20020091833A1 (en) 2002-07-11

Family

ID=21761892

Family Applications (5)

Application Number Title Priority Date Filing Date
US08/822,289 Expired - Lifetime US5828843A (en) 1996-03-21 1997-03-20 Object-oriented method for matching clients together with servers according to attributes included in join request
US08/821,279 Expired - Lifetime US6128660A (en) 1996-03-21 1997-03-20 Network match maker
US08/822,785 Expired - Lifetime US5894556A (en) 1996-03-21 1997-03-20 Network match maker matching requesters based on communication attribute between the requesters
US09/578,683 Expired - Lifetime US6345297B1 (en) 1996-03-21 2000-05-26 Network match maker
US09/997,194 Abandoned US20020091833A1 (en) 1996-03-21 2001-11-29 Network match maker

Family Applications Before (4)

Application Number Title Priority Date Filing Date
US08/822,289 Expired - Lifetime US5828843A (en) 1996-03-21 1997-03-20 Object-oriented method for matching clients together with servers according to attributes included in join request
US08/821,279 Expired - Lifetime US6128660A (en) 1996-03-21 1997-03-20 Network match maker
US08/822,785 Expired - Lifetime US5894556A (en) 1996-03-21 1997-03-20 Network match maker matching requesters based on communication attribute between the requesters
US09/578,683 Expired - Lifetime US6345297B1 (en) 1996-03-21 2000-05-26 Network match maker

Country Status (5)

Country Link
US (5) US5828843A (en)
EP (1) EP0965084A1 (en)
JP (1) JP2000508097A (en)
AU (1) AU2343097A (en)
WO (1) WO1997035258A1 (en)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040003039A1 (en) * 2002-06-28 2004-01-01 Brett Humphrey Distributed session listing and content discovery
US20040038708A1 (en) * 2002-08-21 2004-02-26 Shih-Kuang Tsai Method for playing game over mobile communication network
US20050257220A1 (en) * 2002-06-20 2005-11-17 Mckee Paul F Distributed computer
US20050267992A1 (en) * 2001-04-02 2005-12-01 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US20060155708A1 (en) * 2005-01-13 2006-07-13 Microsoft Corporation System and method for generating virtual networks
US20060186052A1 (en) * 2003-06-13 2006-08-24 Rudiger Seidel Device for treating water using iron-doped ion exchangers
US20060242291A1 (en) * 2003-06-30 2006-10-26 Mikko Nevalainen Method and device for determining and notifying users having matching preference profiles for accessing a multiple access online application
US20080040499A1 (en) * 2002-01-28 2008-02-14 English Jason R Filtered Peer-to-Peer Business Communication in a Distributed Computer Environment
US20080046517A1 (en) * 2001-03-13 2008-02-21 Tomas Frohm Routing of Peer-To-Peer Messages in a Communications Network
US20080072158A1 (en) * 2006-09-15 2008-03-20 Antonio Samele User collaboration system
US20080147855A1 (en) * 2005-08-09 2008-06-19 Huawei Technologies Co., Ltd. Method and server for detecting condition of network communication
US20080176625A1 (en) * 1996-11-14 2008-07-24 Bally Gaming, Inc. Gaming system utilizing wheels & enhanced input/output systems
US20080209049A1 (en) * 2007-02-23 2008-08-28 Krupp Peter H Systems and Methods for Enabling Communications between Clients and Hosts
US20080227525A1 (en) * 1996-11-14 2008-09-18 Bally Gaming, Inc. Gaming system having game difficulty controller
US20100227678A1 (en) * 2006-02-16 2010-09-09 Kazuma Konishi Game Terminal Device, Game Management System and Game Management Method
US20100306813A1 (en) * 2009-06-01 2010-12-02 David Perry Qualified Video Delivery
US20140128138A1 (en) * 2012-11-06 2014-05-08 Justin Wickett Poker communities
US8740710B2 (en) 1996-11-14 2014-06-03 Bally Gaming, Inc. Progressive controller and TCP/IP in a gaming system
CN104936666A (en) * 2013-01-31 2015-09-23 索尼电脑娱乐公司 Game device, game control method, game control program, matching server, matching control method, and matching control program
CN105377381A (en) * 2013-05-15 2016-03-02 金.Com有限公司 Mobile device game interface
US9413540B2 (en) 2011-07-05 2016-08-09 Genband Us Llc Combining P2P and server-based conferencing
US20170264961A1 (en) * 2006-04-12 2017-09-14 Winview, Inc. Synchronized gaming and programming
US10207185B2 (en) 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience
US10556183B2 (en) 2006-01-10 2020-02-11 Winview, Inc. Method of and system for conducting multiple contest of skill with a single performance
US10556177B2 (en) 2006-04-12 2020-02-11 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US10653955B2 (en) 2005-10-03 2020-05-19 Winview, Inc. Synchronized gaming and programming
US10709987B2 (en) 2004-06-28 2020-07-14 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US10721543B2 (en) 2005-06-20 2020-07-21 Winview, Inc. Method of and system for managing client resources and assets for activities on computing devices
US10744414B2 (en) 2006-01-10 2020-08-18 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US10758809B2 (en) 2006-01-10 2020-09-01 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US10828571B2 (en) 2004-06-28 2020-11-10 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US10933319B2 (en) 2004-07-14 2021-03-02 Winview, Inc. Game of skill played by remote participants utilizing wireless devices in connection with a common game event
US10958985B1 (en) 2008-11-10 2021-03-23 Winview, Inc. Interactive advertising system
US11148050B2 (en) 2005-10-03 2021-10-19 Winview, Inc. Cellular phone games based upon television archives
US11308765B2 (en) 2018-10-08 2022-04-19 Winview, Inc. Method and systems for reducing risk in setting odds for single fixed in-play propositions utilizing real time input
US11551529B2 (en) 2016-07-20 2023-01-10 Winview, Inc. Method of generating separate contests of skill or chance from two independent events

Families Citing this family (377)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448063B2 (en) * 1991-11-25 2008-11-04 Actv, Inc. Digital interactive system for providing full interactivity with live programming events
US20040261127A1 (en) * 1991-11-25 2004-12-23 Actv, Inc. Digital interactive system for providing full interactivity with programming events
US5761606A (en) * 1996-02-08 1998-06-02 Wolzien; Thomas R. Media online services access via address embedded in video or audio program
US20020049832A1 (en) * 1996-03-08 2002-04-25 Craig Ullman Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US6513069B1 (en) * 1996-03-08 2003-01-28 Actv, Inc. Enhanced video programming system and method for providing a distributed community network
WO1997035258A1 (en) 1996-03-21 1997-09-25 Mpath Interactive, Inc. Network match maker for selecting clients based on attributes of servers and communication links
US6343313B1 (en) * 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
US5956491A (en) 1996-04-01 1999-09-21 Marks; Daniel L. Group communications multiplexing system
US6050898A (en) * 1996-05-15 2000-04-18 Vr-1, Inc. Initiating and scaling massive concurrent data transaction
JPH1040197A (en) * 1996-07-19 1998-02-13 Fujitsu Ltd Communication managing device
CA2267953C (en) * 1996-07-25 2011-10-18 Mark Kriegsman Web serving system with primary and secondary servers
JP3683051B2 (en) * 1996-10-18 2005-08-17 三菱電機株式会社 Data transmission method
JP3956161B2 (en) * 1996-12-05 2007-08-08 株式会社セガ COMMUNICATION CONTROL SYSTEM, COMMUNICATION CONTROL DEVICE, GAME DEVICE, AND RECORDING MEDIUM
US6178453B1 (en) * 1997-02-18 2001-01-23 Netspeak Corporation Virtual circuit switching architecture
US6152824A (en) * 1997-03-06 2000-11-28 Mpath Interactive, Inc. Online gaming architecture
US6530840B1 (en) * 1997-04-02 2003-03-11 International Business Machines Corporation Method and system for an object architecture for a multi-user game lobby and game session
US6038599A (en) 1997-04-23 2000-03-14 Mpath Interactive, Inc. Latency server and matchmaker
US6023729A (en) * 1997-05-05 2000-02-08 Mpath Interactive, Inc. Method and apparatus for match making
US6071190A (en) * 1997-05-21 2000-06-06 Casino Data Systems Gaming device security system: apparatus and method
US6571290B2 (en) * 1997-06-19 2003-05-27 Mymail, Inc. Method and apparatus for providing fungible intercourse over a network
US8516132B2 (en) 1997-06-19 2013-08-20 Mymail, Ltd. Method of accessing a selected network
US5963951A (en) * 1997-06-30 1999-10-05 Movo Media, Inc. Computerized on-line dating service for searching and matching people
JPH11110324A (en) * 1997-10-07 1999-04-23 Hitachi Ltd Substitutive server selector and substitutive server
US20010044843A1 (en) * 1997-10-28 2001-11-22 Philip Bates Multi-user computer system
US6016496A (en) * 1997-11-20 2000-01-18 International Business Machines Corporation Method and apparatus for an object-oriented object for retrieving information from local and remote databases
WO1999038590A1 (en) * 1998-01-29 1999-08-05 Sega Enterprises, Ltd. Play system
US7054935B2 (en) * 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US7949779B2 (en) 1998-02-10 2011-05-24 Level 3 Communications, Llc Controlling subscriber information rates in a content delivery network
US6553420B1 (en) * 1998-03-13 2003-04-22 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
US6430618B1 (en) * 1998-03-13 2002-08-06 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
US6633908B1 (en) * 1998-05-20 2003-10-14 International Business Machines Corporation Enabling application response measurement
US6260070B1 (en) 1998-06-30 2001-07-10 Dhaval N. Shah System and method for determining a preferred mirrored service in a network by evaluating a border gateway protocol
US6446121B1 (en) * 1998-05-26 2002-09-03 Cisco Technology, Inc. System and method for measuring round trip times in a network using a TCP packet
US6718470B1 (en) * 1998-06-05 2004-04-06 Entrust Technologies Limited System and method for granting security privilege in a communication system
EP1086560A1 (en) 1998-06-19 2001-03-28 Netsafe, Inc. Method and apparatus for providing connections over a network
US6463078B1 (en) * 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
TW463503B (en) 1998-08-26 2001-11-11 United Video Properties Inc Television chat system
US6327622B1 (en) 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6324580B1 (en) 1998-09-03 2001-11-27 Sun Microsystems, Inc. Load balancing for replicated services
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
US6315668B1 (en) * 1998-09-24 2001-11-13 Midway Games, Inc. System and method for networking video games
US6622157B1 (en) * 1998-09-28 2003-09-16 Certeon, Inc. Extending network services using mobile agents
US6298381B1 (en) 1998-10-20 2001-10-02 Cisco Technology, Inc. System and method for information retrieval regarding services
JP4097240B2 (en) * 1998-10-26 2008-06-11 株式会社バンダイナムコゲームス GAME SYSTEM AND INFORMATION STORAGE MEDIUM
US6961748B2 (en) * 1998-10-27 2005-11-01 Murrell Stephen J Uniform network access
JP2000176168A (en) * 1998-12-18 2000-06-27 Konami Co Ltd Message preparation game machine and message preparation method
DE19900636B8 (en) 1999-01-11 2005-04-07 Gailer, Peter Data access and management system and method for data access and data management for a computer system and their use
US6724724B1 (en) 1999-01-21 2004-04-20 Cisco Technology, Inc. System and method for resolving an electronic address
US6532488B1 (en) * 1999-01-25 2003-03-11 John J. Ciarlante Method and system for hosting applications
CN1204942C (en) * 1999-01-28 2005-06-08 世嘉股份有限公司 Network game system, game device terminal used in it and storage medium
US6339801B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Method for determining appropriate devices for processing of data requests using a queued direct input/output device by issuing a special command specifying the devices can process data
PL203959B1 (en) * 1999-03-03 2009-11-30 Optinose As Nasal delivery device
US6287201B1 (en) 1999-03-12 2001-09-11 Midway Games West Arcade game with keypad input
US6795860B1 (en) 1999-04-05 2004-09-21 Cisco Technology, Inc. System and method for selecting a service with dynamically changing information
AU4036700A (en) * 1999-04-06 2000-10-23 Lipstream Networks, Inc. Facilitating real-time, multi-point communications over the internet
US6763371B1 (en) * 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
US7006616B1 (en) 1999-05-21 2006-02-28 Terayon Communication Systems, Inc. Teleconferencing bridge with EdgePoint mixing
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
JP3307894B2 (en) * 1999-06-22 2002-07-24 三菱電機株式会社 Communication method
US6499053B1 (en) 1999-06-30 2002-12-24 International Business Machines Corporation Master/slave architecture for a distributed chat application in a bandwidth constrained network
US6859821B1 (en) * 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US6289340B1 (en) 1999-08-03 2001-09-11 Ixmatch, Inc. Consultant matching system and method for selecting candidates from a candidate pool by adjusting skill values
US6721410B1 (en) * 1999-08-10 2004-04-13 Nortel Networks Limited Recursive identification of individuals for casual collaborative conferencing
US6758754B1 (en) * 1999-08-13 2004-07-06 Actv, Inc System and method for interactive game-play scheduled based on real-life events
US6381252B1 (en) 1999-08-19 2002-04-30 Armilliare Technologies, Inc. Method and system for managing communication resources
US6378014B1 (en) 1999-08-25 2002-04-23 Apex Inc. Terminal emulator for interfacing between a communications port and a KVM switch
US20040193722A1 (en) * 1999-08-30 2004-09-30 Donovan Kevin Remington Joseph Bartholomew Universal instant messaging system for the internet
US20060167986A1 (en) * 1999-08-30 2006-07-27 Trzyna Peter K Internet telephone system
US6352479B1 (en) * 1999-08-31 2002-03-05 Nvidia U.S. Investment Company Interactive gaming server and online community forum
JP2001198363A (en) * 1999-09-14 2001-07-24 Sega Corp Data processing method
JP3852814B2 (en) * 1999-09-24 2006-12-06 富士通株式会社 Profile creation method and system
US7949722B1 (en) 1999-09-29 2011-05-24 Actv Inc. Enhanced video programming system and method utilizing user-profile information
US6434599B1 (en) * 1999-09-30 2002-08-13 Xoucin, Inc. Method and apparatus for on-line chatting
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6535909B1 (en) * 1999-11-18 2003-03-18 Contigo Software, Inc. System and method for record and playback of collaborative Web browsing session
US7349944B2 (en) * 1999-11-18 2008-03-25 Intercall, Inc. System and method for record and playback of collaborative communications session
US6668273B1 (en) * 1999-11-18 2003-12-23 Raindance Communications, Inc. System and method for application viewing through collaborative web browsing session
US6755743B1 (en) * 1999-12-08 2004-06-29 Kabushiki Kaisha Sega Enterprises Communication game system and processing method thereof
AU2099201A (en) * 1999-12-21 2001-07-03 Tivo, Inc. Intelligent system and methods of recommending media content items based on userpreferences
US8132219B2 (en) * 2002-06-21 2012-03-06 Tivo Inc. Intelligent peer-to-peer system and method for collaborative suggestions and propagation of media
CA2395207A1 (en) * 1999-12-23 2001-06-28 M.H. Segan Limited Partnership System for viewing content over a network and method therefor
US6435164B1 (en) 2000-12-07 2002-08-20 Ford Global Technologies, Inc. Fuel weathering method for vehicle evaporative emission system
US7689696B2 (en) * 2000-01-31 2010-03-30 Telecommunication Systems, Inc. System and method for re-directing requests from browsers for communications over non-IP based networks
US8370435B1 (en) 2000-01-31 2013-02-05 Telecommunication Systems, Inc. System and method for servers to send alerts to connectionless devices
US7003571B1 (en) 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US8090856B1 (en) 2000-01-31 2012-01-03 Telecommunication Systems, Inc. Intelligent messaging network server interconnection
JP2001222498A (en) * 2000-02-07 2001-08-17 Isao:Kk Communication system, its method, server device for the system. and computer readable recording medium recording program
US6651086B1 (en) * 2000-02-22 2003-11-18 Yahoo! Inc. Systems and methods for matching participants to a conversation
US20010039203A1 (en) * 2000-02-23 2001-11-08 Brown Geoffrey Parker Behavior modeling in a gaming environment with contextual accuracy
US6697840B1 (en) * 2000-02-29 2004-02-24 Lucent Technologies Inc. Presence awareness in collaborative systems
US6377975B1 (en) * 2000-03-01 2002-04-23 Interactive Intelligence, Inc. Methods and systems to distribute client software tasks among a number of servers
US7328239B1 (en) 2000-03-01 2008-02-05 Intercall, Inc. Method and apparatus for automatically data streaming a multiparty conference session
JP2001344372A (en) * 2000-03-30 2001-12-14 Sega Corp Online organizing method
EP1266522B1 (en) 2000-03-31 2012-02-15 OpenTV, Inc. System and method for local meta data insertion
GB2356071A (en) * 2000-04-06 2001-05-09 Sporting Exchange Ltd Internet betting matches bets and lays
US20020119821A1 (en) * 2000-05-12 2002-08-29 Sanjoy Sen System and method for joining a broadband multi-user communication session
US20060067500A1 (en) * 2000-05-15 2006-03-30 Christofferson Frank C Teleconferencing bridge with edgepoint mixing
US7951002B1 (en) * 2000-06-16 2011-05-31 Igt Using a gaming machine as a server
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US20020143960A1 (en) * 2000-08-02 2002-10-03 Erez Goren Virtual network generation system and method
US6430602B1 (en) * 2000-08-22 2002-08-06 Active Buddy, Inc. Method and system for interactively responding to instant messaging requests
US7146404B2 (en) * 2000-08-22 2006-12-05 Colloquis, Inc. Method for performing authenticated access to a service on behalf of a user
US20020083213A1 (en) * 2000-09-18 2002-06-27 Oberstein Brien M. Method and system for simulating and certifying complex business applications
US6648760B1 (en) * 2000-09-27 2003-11-18 Midway Amusement Games, Llc Skill mapping method and apparatus
KR20020075394A (en) * 2000-09-28 2002-10-04 에누.티.티. 코무웨아 가부시키가이샤 Computer system, computer system control method, and terminal and recording medium
US8229777B2 (en) * 2000-10-10 2012-07-24 Intragroup, Inc. Automated system and method for managing a process for the shopping and selection of human entities
US7212985B2 (en) * 2000-10-10 2007-05-01 Intragroup, Inc. Automated system and method for managing a process for the shopping and selection of human entities
US6547568B1 (en) * 2000-10-12 2003-04-15 Kiyokazu Yamano Education intermediary system and method
GB2368223B (en) * 2000-10-17 2004-01-07 Hewlett Packard Co Associating parties with communication sessions
JP3439187B2 (en) * 2000-11-09 2003-08-25 株式会社コナミコンピュータエンタテインメント大阪 NET GAME SYSTEM, NET GAME PROCESSING METHOD, AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING NET GAME PROCESSING PROGRAM
US7244181B2 (en) * 2000-11-14 2007-07-17 Netamin Communication Corp. Multi-player game employing dynamic re-sequencing
US6641481B1 (en) * 2000-11-17 2003-11-04 Microsoft Corporation Simplified matchmaking
JP2002157190A (en) * 2000-11-17 2002-05-31 Square Co Ltd Search server for membership information, user terminal, message transmitting terminal, method for searching membership information and method for transmitting message
AU2002226956A1 (en) * 2000-11-22 2002-06-03 Leap Wireless International, Inc. Method and system for providing interactive services over a wireless communications network
US6874029B2 (en) * 2000-11-22 2005-03-29 Leap Wireless International, Inc. Method and system for mediating interactive services over a wireless communications network
US7574493B2 (en) * 2000-11-22 2009-08-11 Cricket Communications, Inc. Method and system for improving the efficiency of state information transfer over a wireless communications network
AU2002219857A1 (en) * 2000-11-27 2002-06-03 Butterfly.Net, Inc. System and method for synthesizing environments to facilitate distributed, context-sensitive, multi-user interactive applications
US7972214B2 (en) 2000-12-07 2011-07-05 Igt Methods and devices for downloading games of chance
US20050153778A1 (en) * 2004-01-14 2005-07-14 Dwayne Nelson Methods and apparatus for gaming data downloading
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
US20020112002A1 (en) * 2001-02-15 2002-08-15 Abato Michael R. System and process for creating a virtual stage and presenting enhanced content via the virtual stage
US20020156909A1 (en) * 2001-02-15 2002-10-24 Harrington Jeffrey M. System and method for server side control of a flash presentation
CA2340562A1 (en) * 2001-02-28 2002-08-28 Midway Amusement Games, Llc Tournament network for linking amusement games
BR0207505A (en) * 2001-03-14 2004-07-27 Nokia Corp Method, system, device, and server for communicating terminal device identification information to the network
US20020142842A1 (en) * 2001-03-29 2002-10-03 Easley Gregory W. Console-based system and method for providing multi-player interactive game functionality for use with interactive games
US20020152117A1 (en) * 2001-04-12 2002-10-17 Mike Cristofalo System and method for targeting object oriented audio and video content to users
KR20020083187A (en) * 2001-04-25 2002-11-02 (주) 그라비티 Instant messenger server and method for supporting on-line game and storage media having program source thereof
FR2824930B1 (en) * 2001-05-15 2005-02-04 Deuxieme Tete METHOD FOR COMMUNICATING AND / OR SHARING MACHINE RESOURCES WITHIN A COMMUNICATION NETWORK BETWEEN A PLURALITY OF MEMBERS OF A COMMUNITY
KR100429059B1 (en) * 2001-05-24 2004-04-28 주식회사 비즈모델라인 System and Method for syncronizing web browser of multi-users by using the direct data communication(P2P) between clients
CA2349083A1 (en) * 2001-05-30 2002-11-30 Ibm Canada Limited-Ibm Canada Limitee Server configuration tool
US20030008712A1 (en) * 2001-06-04 2003-01-09 Playnet, Inc. System and method for distributing a multi-client game/application over a communications network
US7657643B2 (en) * 2001-06-15 2010-02-02 Cisco Technology, Inc. System and method for determining a preferred mirrored service in a network by evaluating a border gateway protocol
US6884166B2 (en) 2001-07-13 2005-04-26 Gameaccount Limited System and method for establishing a wager for a gaming application
US7021623B2 (en) 2001-07-13 2006-04-04 Gameaccount Limited System and method for adding a skill aspect to games of chance
US7416488B2 (en) * 2001-07-18 2008-08-26 Duplicate (2007) Inc. System and method for playing a game of skill
WO2003013675A1 (en) * 2001-08-07 2003-02-20 Rebel Arts Llc Distributed and fault tolerant server system and method
GB0120135D0 (en) * 2001-08-17 2001-10-10 Massey Graham P A system for playing interactive games
JP4160506B2 (en) 2001-09-28 2008-10-01 レヴェル 3 シーディーエヌ インターナショナル インコーポレーテッド. Configurable adaptive wide area traffic control and management
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US7487104B2 (en) * 2001-10-08 2009-02-03 David Sciuk Automated system and method for managing a process for the shopping and selection of human entities
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
JP3764090B2 (en) * 2001-11-08 2006-04-05 株式会社ナムコ Server, server control program, and recording medium recording the program
US20030126213A1 (en) * 2002-01-02 2003-07-03 International Business Machines Corporation Establishing direct instant messaging communication between wireless devices
US20030135552A1 (en) * 2002-01-14 2003-07-17 Blackstock Michael A. Method for discovering and discriminating devices on local collaborative networks to facilitate collaboration among users
US20030145338A1 (en) * 2002-01-31 2003-07-31 Actv, Inc. System and process for incorporating, retrieving and displaying an enhanced flash movie
US20040043806A1 (en) * 2002-02-08 2004-03-04 Keith Kirby Online vehicle collection and play activity
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US8597116B2 (en) 2002-03-12 2013-12-03 Igt Virtual player tracking and related services
US6997803B2 (en) 2002-03-12 2006-02-14 Igt Virtual gaming peripherals for a gaming machine
JP2003308209A (en) * 2002-04-17 2003-10-31 Fujitsu Ltd Network service system
US7711847B2 (en) 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
GB2388045A (en) * 2002-04-29 2003-11-05 Sendo Int Ltd Remote gaming mechanism
US20030217135A1 (en) 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US20030228908A1 (en) * 2002-06-10 2003-12-11 Daniel Caiafa Statistics system for online console-based gaming
US20040030801A1 (en) * 2002-06-14 2004-02-12 Moran Timothy L. Method and system for a client to invoke a named service
US7803052B2 (en) * 2002-06-28 2010-09-28 Microsoft Corporation Discovery and distribution of game session information
US20040014527A1 (en) * 2002-07-19 2004-01-22 Orr Scott Stewart System and method to integrate digital characters across multiple interactive games
US7613772B2 (en) * 2002-07-25 2009-11-03 Colligo Networks, Inc. Method for context based discovery and filtering of portable collaborative networks
US8560707B2 (en) 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US9682319B2 (en) * 2002-07-31 2017-06-20 Sony Interactive Entertainment Inc. Combiner method for altering game gearing
AU2003258131A1 (en) * 2002-08-08 2004-02-25 Versaly Games, Inc. System and method for combining automatic opponent matching for computer gaming with chat room searchers
US6979264B2 (en) * 2002-09-12 2005-12-27 Igt Method and system for verifying entitlement to play a game using biometric identifier
US20040081199A1 (en) * 2002-10-29 2004-04-29 Lopez Ricardo Jorge Multi-channel communication system and method based on class of service requirements
US20040093427A1 (en) * 2002-10-29 2004-05-13 Lopez Ricardo Jorge Service diversity for communication system
US7878908B2 (en) * 2002-11-14 2011-02-01 Nintendo Co., Ltd. Multiplexed secure video game play distribution
US8255407B1 (en) * 2002-11-14 2012-08-28 Hewlett-Packard Development Company, L.P. Matching of data center resource capabilities and resource needs by match-overlapping
US20040097287A1 (en) * 2002-11-14 2004-05-20 Richard Postrel Method and system for gaming over a computer network
US8387099B2 (en) 2002-12-10 2013-02-26 Ol2, Inc. System for acceleration of web page delivery
US20110122063A1 (en) * 2002-12-10 2011-05-26 Onlive, Inc. System and method for remote-hosted video effects
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9032465B2 (en) * 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US20110126255A1 (en) * 2002-12-10 2011-05-26 Onlive, Inc. System and method for remote-hosted video effects
US8840475B2 (en) * 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US8468575B2 (en) 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of streaming interactive video
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8495678B2 (en) 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US8661496B2 (en) * 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8949922B2 (en) * 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
JP4518739B2 (en) * 2002-12-27 2010-08-04 株式会社ユニバーサルエンターテインメント Game system
US7930716B2 (en) 2002-12-31 2011-04-19 Actv Inc. Techniques for reinsertion of local market advertising in digital video from a bypass source
US7701882B2 (en) 2003-02-10 2010-04-20 Intercall, Inc. Systems and methods for collaborative communication
US8533268B1 (en) 2003-02-10 2013-09-10 Intercall, Inc. Methods and apparatus for providing a live history in a multimedia collaboration session
US8775511B2 (en) * 2003-02-10 2014-07-08 Open Invention Network, Llc Methods and apparatus for automatically adding a media component to an established multimedia collaboration session
US7461166B2 (en) * 2003-02-21 2008-12-02 International Business Machines Corporation Autonomic service routing using observed resource requirement for self-optimization
US7529798B2 (en) 2003-03-18 2009-05-05 Intercall, Inc. System and method for record and playback of collaborative web browsing session
US8123616B2 (en) 2003-03-25 2012-02-28 Igt Methods and apparatus for limiting access to games using biometric data
US7867083B2 (en) 2003-03-25 2011-01-11 Igt Methods and apparatus for limiting access to games using biometric data
US20050277472A1 (en) * 2003-03-26 2005-12-15 William Gillan Game server system and method for generating revenue therewith
US7104542B2 (en) * 2003-06-09 2006-09-12 Peterson Randall S E Pull-tab skill tournament poker
US7270605B2 (en) * 2003-07-08 2007-09-18 Gt Peer-to-peer gaming system
JP2005062927A (en) * 2003-08-11 2005-03-10 Hitachi Ltd Load control method and device, and processing program therefor
US7288028B2 (en) * 2003-09-26 2007-10-30 Microsoft Corporation Method and apparatus for quickly joining an online game being played by a friend
US7761514B2 (en) * 2003-11-26 2010-07-20 International Business Machines Corporation Method and apparatus for providing dynamic group management for distributed interactive applications
US7975035B2 (en) * 2003-12-01 2011-07-05 International Business Machines Corporation Method and apparatus to support application and network awareness of collaborative applications using multi-attribute clustering
US20090222537A1 (en) * 2003-12-04 2009-09-03 Colligo Newworks, Inc., A Canadian Corporation System And Method For Interactive Instant Networking
US7426578B2 (en) * 2003-12-12 2008-09-16 Intercall, Inc. Systems and methods for synchronizing data between communication devices in a networked environment
US10152190B2 (en) 2003-12-15 2018-12-11 Open Invention Network, Llc Systems and methods for improved application sharing in a multimedia collaboration session
US20050137014A1 (en) * 2003-12-22 2005-06-23 Asko Vetelainen Electronic gaming device and method of initiating multiplayer game
JP4064355B2 (en) * 2004-01-20 2008-03-19 任天堂株式会社 GAME SYSTEM AND GAME DEVICE
US7828652B2 (en) 2004-02-12 2010-11-09 Igt Player verification method and system for remote gaming terminals
DE602004013272T2 (en) * 2004-02-19 2009-07-16 Alcatel Lucent Method, server and mobile terminal for establishing connections between subscribers of a telecommunications network
US7614955B2 (en) * 2004-03-01 2009-11-10 Microsoft Corporation Method for online game matchmaking using play style information
US20050278642A1 (en) * 2004-06-10 2005-12-15 Chang Nelson L A Method and system for controlling a collaborative computing environment
WO2006025255A1 (en) * 2004-08-30 2006-03-09 Matsushita Electric Industrial Co., Ltd. Client terminal for executing multiplayer application, group forming method, and group forming program
US8793762B2 (en) * 2004-09-20 2014-07-29 Secure Content Storage Association Llc Simple nonautonomous peering network media
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
CN1770168A (en) * 2004-11-05 2006-05-10 株式会社巨摩 Program structure of multiple online action game
US7677970B2 (en) * 2004-12-08 2010-03-16 Microsoft Corporation System and method for social matching of game players on-line
US20060135259A1 (en) * 2004-12-17 2006-06-22 Nokia Corporation System, game server, terminal, and method for game event notification in a multiplayer game
US20060136584A1 (en) * 2004-12-17 2006-06-22 Nokia Corporation System, network entity, client, method and computer program product for managing a contact list
US20060135258A1 (en) * 2004-12-17 2006-06-22 Nokia Corporation System, network entity, client and method for facilitating fairness in a multiplayer game
US20060161469A1 (en) 2005-01-14 2006-07-20 Weatherbank, Inc. Interactive advisory system
US20060161476A1 (en) * 2005-01-19 2006-07-20 Meir Zohar System for acquisition of users
US8832121B2 (en) * 2005-02-02 2014-09-09 Accuweather, Inc. Location-based data communications system and method
US8221238B1 (en) 2005-04-19 2012-07-17 Microsoft Corporation Determination of a reputation of an on-line game player
US8066568B2 (en) * 2005-04-19 2011-11-29 Microsoft Corporation System and method for providing feedback on game players and enhancing social matchmaking
WO2006124811A2 (en) * 2005-05-13 2006-11-23 Professional Interactive Entertainment, Inc. System and method for network interactive game match-up and server selection
US20060258416A1 (en) * 2005-05-13 2006-11-16 Yahoo! Inc. Analyzer for data relating to networked games
US8038535B2 (en) 2005-05-17 2011-10-18 Electronic Arts Inc. Collaborative online gaming system and method
DE102005024635A1 (en) * 2005-05-30 2006-12-07 Siemens Ag Method for content-specific search in data networks
US8046777B2 (en) 2005-06-02 2011-10-25 The Mathworks, Inc. Calling of late bound functions from an external program environment
US8348748B2 (en) 2005-07-20 2013-01-08 The Sporting Exchange, Ltd. Betting on games using a betting exchange system
CN100358283C (en) * 2005-09-02 2007-12-26 华为技术有限公司 Business appearing system and method of issuring and obtaining appeared information
US7887420B2 (en) 2005-09-12 2011-02-15 Igt Method and system for instant-on game download
US8287379B2 (en) 2005-09-12 2012-10-16 Igt Distributed game services
KR100562427B1 (en) * 2005-10-04 2006-03-17 주식회사 솔루션박스 Apparatus for receiving contents and recording medium storing program therefor
JP2009511200A (en) * 2005-10-11 2009-03-19 ティーエイチキュー・ワイヤレス・インコーポレーテッド Method and apparatus for finding a desirable multiplayer game for a player
US8732186B2 (en) 2005-12-01 2014-05-20 Peter Warren Computer-implemented method and system for enabling communication between networked users based on common characteristics
US7818340B1 (en) * 2005-12-01 2010-10-19 Peter Warren Computer-implemented method and system for enabling network communication using sponsored chat links
US8996562B2 (en) 2005-12-01 2015-03-31 Peter Warren Computer-implemented method and system for enabling anonymous communication between networked users based on common search queries
WO2007067217A2 (en) * 2005-12-02 2007-06-14 Cyberscan Technology, Inc. In-room gaming
US7941515B2 (en) * 2006-01-13 2011-05-10 Cisco Technology, Inc. Applying a filter set to information provided to a subscribing client
US8229467B2 (en) 2006-01-19 2012-07-24 Locator IP, L.P. Interactive advisory system
ATE463917T1 (en) * 2006-02-21 2010-04-15 Microsoft Corp TOPOLOGY MANAGEMENT IN PEER-TO-PEER DATA DISTRIBUTION CLOUDS
WO2007120741A2 (en) * 2006-04-12 2007-10-25 Netamin Communication Corp. Team-based networked video gaming and automatic event management
US8376857B1 (en) * 2006-04-28 2013-02-19 Navteq B.V. Multi-player online game player proximity feature
US20070293319A1 (en) * 2006-06-20 2007-12-20 Microsoft Corporation Transfer of Features Between Gaming Devices
US8888592B1 (en) 2009-06-01 2014-11-18 Sony Computer Entertainment America Llc Voice overlay
US8427489B2 (en) 2006-08-10 2013-04-23 Avocent Huntsville Corporation Rack interface pod with intelligent platform control
US8009173B2 (en) 2006-08-10 2011-08-30 Avocent Huntsville Corporation Rack interface pod with intelligent platform control
JP5080048B2 (en) * 2006-09-20 2012-11-21 株式会社バンダイナムコゲームス Program, information storage medium, player terminal, and server system
US9630104B2 (en) * 2006-10-23 2017-04-25 Konrad V. Sherinian Systems, methods, and apparatus for transmitting virtual world content from a server system to a client
US8634814B2 (en) 2007-02-23 2014-01-21 Locator IP, L.P. Interactive advisory system for prioritizing content
GB2447094B (en) * 2007-03-01 2010-03-10 Sony Comp Entertainment Europe Entertainment device and method
US20080248845A1 (en) * 2007-04-06 2008-10-09 Henry Paul Morgan Contextual Gamer Options Menu
US8083591B2 (en) * 2007-05-15 2011-12-27 Microsoft Corporation Game hosting service
US20080318687A1 (en) 2007-06-21 2008-12-25 Microsoft Corporation Live Game Lobby
US20090030980A1 (en) * 2007-07-23 2009-01-29 Kevin Remington Joseph Donovan Universal instant messaging system for the internet
US8266671B2 (en) 2007-08-02 2012-09-11 Alcatel Lucent Policy-enabled aggregation of IM user communities
US8602865B2 (en) 2007-08-06 2013-12-10 Igt Gaming system and method providing a group bonus event for linked gaming devices
US9483405B2 (en) * 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
US8087999B2 (en) * 2007-09-28 2012-01-03 Igt Gaming system and method of operating a gaming system providing wagering control features for wagering games
EP2232380A4 (en) * 2007-12-05 2011-11-09 Onlive Inc System and method for intelligently allocating client requests to server centers
US8968087B1 (en) 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US8147339B1 (en) 2007-12-15 2012-04-03 Gaikai Inc. Systems and methods of serving game video
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US20090210483A1 (en) * 2008-02-15 2009-08-20 Sony Ericsson Mobile Communications Ab Systems Methods and Computer Program Products for Remotely Controlling Actions of a Virtual World Identity
US8055766B2 (en) * 2008-02-15 2011-11-08 Sony Ericsson Mobile Communications Ab Systems methods and user state files for enabling interactions between virtual and real world identities
US9277004B2 (en) * 2008-02-19 2016-03-01 Microsoft Technology Licensing, Llc Prediction of network path quality among peer networking devices
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
EP2274684A4 (en) 2008-04-04 2012-12-05 Level 3 Communications Llc Handling long-tail content in a content delivery network (cdn)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9888092B2 (en) * 2008-04-28 2018-02-06 Oracle International Corporation System and method for executing third party module with web servers
US8480499B2 (en) * 2008-04-30 2013-07-09 Scientific Games Holdings Limited System and method for game brokering
US20100170760A1 (en) 2009-01-07 2010-07-08 John Marking Remotely Operated Bypass for a Suspension Damper
US10047817B2 (en) 2009-01-07 2018-08-14 Fox Factory, Inc. Method and apparatus for an adjustable damper
US11306798B2 (en) 2008-05-09 2022-04-19 Fox Factory, Inc. Position sensitive suspension damping with an active valve
US9033122B2 (en) 2009-01-07 2015-05-19 Fox Factory, Inc. Method and apparatus for an adjustable damper
US20120305350A1 (en) 2011-05-31 2012-12-06 Ericksen Everet O Methods and apparatus for position sensitive suspension damping
US10060499B2 (en) 2009-01-07 2018-08-28 Fox Factory, Inc. Method and apparatus for an adjustable damper
US9452654B2 (en) 2009-01-07 2016-09-27 Fox Factory, Inc. Method and apparatus for an adjustable damper
US8627932B2 (en) 2009-01-07 2014-01-14 Fox Factory, Inc. Bypass for a suspension damper
US20090325709A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Game Clan Matchmaking
US20090325712A1 (en) * 2008-06-28 2009-12-31 Microsoft Corporation Player character matchmaking with distributed peer-to-peer functionality
CN101325559B (en) * 2008-07-28 2010-08-18 腾讯科技(深圳)有限公司 Method for commending game room, system and game server
US8393446B2 (en) 2008-08-25 2013-03-12 David M Haugen Methods and apparatus for suspension lock out and signal generation
US20100057857A1 (en) * 2008-08-27 2010-03-04 Szeto Christopher T Chat matching
WO2010041359A1 (en) * 2008-10-08 2010-04-15 株式会社ソニー・コンピュータエンタテインメント Game control program, game device, game server and method for controlling game
US10235832B2 (en) 2008-10-17 2019-03-19 Igt Post certification metering for diverse game machines
US8342966B2 (en) 2008-10-24 2013-01-01 Cfph, Llc Wager market creation and management
US9005016B2 (en) 2008-10-24 2015-04-14 Lee Amaitis Wagering on event outcomes during the event
US8342946B2 (en) 2008-10-24 2013-01-01 Bgc Partners, Inc. Computer graphics processing and display of selectable items
US10036443B2 (en) 2009-03-19 2018-07-31 Fox Factory, Inc. Methods and apparatus for suspension adjustment
US9140325B2 (en) 2009-03-19 2015-09-22 Fox Factory, Inc. Methods and apparatus for selective spring pre-load adjustment
EP3666347B1 (en) 2008-11-25 2021-10-20 Fox Factory, Inc. Computer usable storage medium for virtual competition
US9422018B2 (en) 2008-11-25 2016-08-23 Fox Factory, Inc. Seat post
US8610673B2 (en) 2008-12-03 2013-12-17 Microsoft Corporation Manipulation of list on a multi-touch display
US8926435B2 (en) 2008-12-15 2015-01-06 Sony Computer Entertainment America Llc Dual-mode program execution
US11299233B2 (en) 2009-01-07 2022-04-12 Fox Factory, Inc. Method and apparatus for an adjustable damper
US9038791B2 (en) 2009-01-07 2015-05-26 Fox Factory, Inc. Compression isolator for a suspension damper
US8019862B2 (en) 2009-03-17 2011-09-13 Microsoft Corporation Collaborative speed determination in distributed systems
US8838335B2 (en) 2011-09-12 2014-09-16 Fox Factory, Inc. Methods and apparatus for suspension set up
US8936139B2 (en) 2009-03-19 2015-01-20 Fox Factory, Inc. Methods and apparatus for suspension adjustment
US20100293072A1 (en) * 2009-05-13 2010-11-18 David Murrant Preserving the Integrity of Segments of Audio Streams
EP2312180B1 (en) 2009-10-13 2019-09-18 Fox Factory, Inc. Apparatus for controlling a fluid damper
US8672106B2 (en) 2009-10-13 2014-03-18 Fox Factory, Inc. Self-regulating suspension
US10697514B2 (en) 2010-01-20 2020-06-30 Fox Factory, Inc. Remotely operated bypass for a suspension damper
GB201005458D0 (en) 2010-03-31 2010-05-19 Skype Ltd Media appliance
JP5557590B2 (en) * 2010-05-06 2014-07-23 株式会社日立製作所 Load balancing apparatus and system
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8676591B1 (en) 2010-08-02 2014-03-18 Sony Computer Entertainment America Llc Audio deceleration
EP2402239B1 (en) 2010-07-02 2020-09-02 Fox Factory, Inc. Adjustable seat post
KR102126910B1 (en) 2010-09-13 2020-06-25 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 Add-on Management
KR20170129296A (en) 2010-09-13 2017-11-24 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 A method and system of providing a computer game at a computer game system including a video server and a game server
US8774010B2 (en) 2010-11-02 2014-07-08 Cisco Technology, Inc. System and method for providing proactive fault monitoring in a network environment
US8559341B2 (en) 2010-11-08 2013-10-15 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
US20120142429A1 (en) 2010-12-03 2012-06-07 Muller Marcus S Collaborative electronic game play employing player classification and aggregation
US20120209982A1 (en) * 2011-02-10 2012-08-16 Microsoft Corporation Network device matching
US8982733B2 (en) 2011-03-04 2015-03-17 Cisco Technology, Inc. System and method for managing topology changes in a network environment
US8670326B1 (en) 2011-03-31 2014-03-11 Cisco Technology, Inc. System and method for probing multiple paths in a network environment
US10449457B2 (en) * 2011-04-20 2019-10-22 Disney Enterprises, Inc. System and method for dynamic matchmaking population herding
US8724517B1 (en) 2011-06-02 2014-05-13 Cisco Technology, Inc. System and method for managing network traffic disruption
US8830875B1 (en) 2011-06-15 2014-09-09 Cisco Technology, Inc. System and method for providing a loop free topology in a network environment
WO2013016687A1 (en) 2011-07-28 2013-01-31 Hall Shane Method and system for matchmaking connections within a gaming social network
US11279199B2 (en) 2012-01-25 2022-03-22 Fox Factory, Inc. Suspension damper with by-pass valves
US10552446B2 (en) * 2012-03-01 2020-02-04 Zynga Inc. Leveraging social graphs with game play auto-neighboring
US10330171B2 (en) 2012-05-10 2019-06-25 Fox Factory, Inc. Method and apparatus for an adjustable damper
JP6162929B2 (en) 2012-06-01 2017-07-12 任天堂株式会社 Posting information sharing system
US9795887B2 (en) 2012-07-17 2017-10-24 Riot Games, Inc. Systems and methods that enable player matching for multi-player online games
EP2693374A1 (en) * 2012-08-02 2014-02-05 Alcatel-Lucent Relationship establishment
US9450846B1 (en) 2012-10-17 2016-09-20 Cisco Technology, Inc. System and method for tracking packets in a network environment
US9120020B2 (en) 2013-03-13 2015-09-01 Microsoft Technology Licensing, Llc Matchmaking in multiplayer gaming
US9223833B2 (en) 2013-12-02 2015-12-29 Qbase, LLC Method for in-loop human validation of disambiguated features
US9355152B2 (en) 2013-12-02 2016-05-31 Qbase, LLC Non-exclusionary search within in-memory databases
US9922032B2 (en) 2013-12-02 2018-03-20 Qbase, LLC Featured co-occurrence knowledge base from a corpus of documents
CN106462575A (en) 2013-12-02 2017-02-22 丘贝斯有限责任公司 Design and implementation of clustered in-memory database
US9659108B2 (en) 2013-12-02 2017-05-23 Qbase, LLC Pluggable architecture for embedding analytics in clustered in-memory databases
US9542477B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Method of automated discovery of topics relatedness
KR20160124742A (en) 2013-12-02 2016-10-28 큐베이스 엘엘씨 Method for disambiguating features in unstructured text
US9317565B2 (en) 2013-12-02 2016-04-19 Qbase, LLC Alerting system based on newly disambiguated features
US9230041B2 (en) 2013-12-02 2016-01-05 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
US9201744B2 (en) 2013-12-02 2015-12-01 Qbase, LLC Fault tolerant architecture for distributed computing systems
US9544361B2 (en) 2013-12-02 2017-01-10 Qbase, LLC Event detection through text analysis using dynamic self evolving/learning module
US9348573B2 (en) 2013-12-02 2016-05-24 Qbase, LLC Installation and fault handling in a distributed system utilizing supervisor and dependency manager nodes
US9208204B2 (en) 2013-12-02 2015-12-08 Qbase, LLC Search suggestions using fuzzy-score matching and entity co-occurrence
US9424524B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Extracting facts from unstructured text
US9025892B1 (en) 2013-12-02 2015-05-05 Qbase, LLC Data record compression with progressive and/or selective decomposition
US9984427B2 (en) 2013-12-02 2018-05-29 Qbase, LLC Data ingestion module for event detection and increased situational awareness
WO2015084726A1 (en) 2013-12-02 2015-06-11 Qbase, LLC Event detection through text analysis template models
US9547701B2 (en) 2013-12-02 2017-01-17 Qbase, LLC Method of discovering and exploring feature knowledge
US9336280B2 (en) 2013-12-02 2016-05-10 Qbase, LLC Method for entity-driven alerts based on disambiguated features
US9177262B2 (en) 2013-12-02 2015-11-03 Qbase, LLC Method of automated discovery of new topics
US9223875B2 (en) * 2013-12-02 2015-12-29 Qbase, LLC Real-time distributed in memory search architecture
US9619571B2 (en) 2013-12-02 2017-04-11 Qbase, LLC Method for searching related entities through entity co-occurrence
US9424294B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Method for facet searching and search suggestions
US9225599B2 (en) * 2013-12-16 2015-12-29 Software Ag Method and system to adapt functionality to capabilities of client and data storage
US9361317B2 (en) 2014-03-04 2016-06-07 Qbase, LLC Method for entity enrichment of digital content to enable advanced search functionality in content management systems
US9776091B1 (en) 2014-05-16 2017-10-03 Electronic Arts Inc. Systems and methods for hardware-based matchmaking
US10043638B2 (en) 2014-08-15 2018-08-07 Applied Materials, Inc. Compact configurable modular radio frequency matching network assembly for plasma processing systems
WO2016061658A1 (en) * 2014-10-20 2016-04-28 Tsx Inc. Database updating with latency tolerance
US10471348B2 (en) 2015-07-24 2019-11-12 Activision Publishing, Inc. System and method for creating and sharing customized video game weapon configurations in multiplayer video games via one or more social networks
US9993735B2 (en) 2016-03-08 2018-06-12 Electronic Arts Inc. Multiplayer video game matchmaking optimization
US10112110B1 (en) * 2016-03-30 2018-10-30 Amazon Technologies, Inc. Initiating a game session with broadcast subscribers
US10729975B1 (en) 2016-03-30 2020-08-04 Electronic Arts Inc. Network connection selection processing system
US10737546B2 (en) 2016-04-08 2020-08-11 Fox Factory, Inc. Electronic compression and rebound control
US10286327B2 (en) 2016-10-21 2019-05-14 Electronic Arts Inc. Multiplayer video game matchmaking system and methods
US10091281B1 (en) 2016-12-01 2018-10-02 Electronics Arts Inc. Multi-user application host-system selection system
US10807006B1 (en) * 2017-12-06 2020-10-20 Amazon Technologies, Inc. Behavior-aware player selection for multiplayer electronic games
US10467069B2 (en) * 2018-04-04 2019-11-05 Microsoft Technology Licensing, Llc Selective application instance activation
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions
US11925871B2 (en) * 2019-03-28 2024-03-12 British Telecommunications Public Limited Company Competitor selection
WO2020247484A1 (en) * 2019-06-03 2020-12-10 Hsiung Ping Kang Selection of virtual server for smart cloud gaming application from multiple cloud providers based on user parameters
CN111617487B (en) * 2020-05-22 2021-03-16 腾讯科技(深圳)有限公司 Account access method and device in game application, storage medium and electronic equipment
US11571619B1 (en) * 2021-08-16 2023-02-07 Amazon Technologies, Inc. Cross-region management of game server fleets
US11571618B1 (en) * 2021-08-16 2023-02-07 Amazon Technologies, Inc. Multi-region game server fleets

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517609A (en) * 1990-08-06 1996-05-14 Texas Instruments Incorporated Graphics display system using tiles of data
US5526025A (en) * 1992-04-07 1996-06-11 Chips And Technolgies, Inc. Method and apparatus for performing run length tagging for increased bandwidth in dynamic data repetitive memory systems
US5852775A (en) * 1996-09-12 1998-12-22 Earthweb, Inc. Cellular telephone advertising system
US6050898A (en) * 1996-05-15 2000-04-18 Vr-1, Inc. Initiating and scaling massive concurrent data transaction
US6055510A (en) * 1997-10-24 2000-04-25 At&T Corp. Method for performing targeted marketing over a large computer network
US6113494A (en) * 1997-06-17 2000-09-05 Intel Corporation Using multiple prioritized statements of abstracted intention to align different views
US6157841A (en) * 1997-09-18 2000-12-05 At&T Corp. Cellular phone network that provides location-based information
US6181927B1 (en) * 1997-02-18 2001-01-30 Nortel Networks Corporation Sponsored call and cell service
US6208866B1 (en) * 1998-12-30 2001-03-27 Ericsson Inc. System and method for location-based marketing to mobile stations within a cellular network
US6223291B1 (en) * 1999-03-26 2001-04-24 Motorola, Inc. Secure wireless electronic-commerce system with digital product certificates and digital license certificates
US20010005839A1 (en) * 1999-12-22 2001-06-28 Jari Maenpaa Electronic commerce system
US20010011248A1 (en) * 1999-01-29 2001-08-02 Maria Azua Himmel Method and apparatus for transmitting and tendering electronic cash using a phone wallet
US20010013037A1 (en) * 2000-02-09 2001-08-09 Nec Corporation Information communication system, information communication method, and information provision business method
US6313844B1 (en) * 1998-02-24 2001-11-06 Sony Corporation Storage device, image processing apparatus and method of the same, and refresh controller and method of the same
US6407740B1 (en) * 1998-09-30 2002-06-18 Sun Microsystems, Inc. Addressable output buffer architecture

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4572509A (en) * 1982-09-30 1986-02-25 Sitrick David H Video game network
US4521014A (en) * 1982-09-30 1985-06-04 Sitrick David H Video game including user visual image
US4570930A (en) * 1983-10-03 1986-02-18 At&T Bell Laboratories System, method, and station interface arrangement for playing video game over telephone lines
CA1245361A (en) * 1984-06-27 1988-11-22 Kerry E. Thacher Tournament data system
US4856787B1 (en) * 1986-02-05 1997-09-23 Fortunet Inc Concurrent game network
US4811199A (en) * 1987-05-08 1989-03-07 Kuechler William L System for storing and manipulating information in an information base
US4998199A (en) * 1987-10-02 1991-03-05 Namco Ltd. Game machine system with machine grouping feature
US5014219A (en) * 1988-05-06 1991-05-07 White James A Mask controled neural networks
CA1337132C (en) * 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
US5021943A (en) * 1988-08-01 1991-06-04 Motorola, Inc. Content independent rule based options negotiations method
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5560008A (en) * 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5083800A (en) * 1989-06-09 1992-01-28 Interactive Network, Inc. Game of skill or chance playable by several participants remote from each other in conjunction with a common event
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
DE69108900D1 (en) * 1990-01-30 1995-05-18 Johnson Service Co NETWORKED RESOURCE MANAGEMENT SYSTEM.
EP0456249B1 (en) * 1990-05-10 1998-12-09 Hewlett-Packard Company System for integrating application programs in a heterogeneous network enviroment
US5114155A (en) * 1990-06-15 1992-05-19 Arachnid, Inc. System for automatic collection and distribution of player statistics for electronic dart games
GB9022650D0 (en) * 1990-10-18 1990-11-28 Code Masters Softwara Verification system
US5359510A (en) * 1990-11-28 1994-10-25 Sabaliauskas Anthony L Automated universal tournament management system
US5426427A (en) * 1991-04-04 1995-06-20 Compuserve Incorporated Data transmission routing system
US5317568A (en) * 1991-04-11 1994-05-31 Galileo International Partnership Method and apparatus for managing and facilitating communications in a distributed hetergeneous network
US5350176A (en) * 1991-05-31 1994-09-27 Peter Hochstein Video game
DE69232164T2 (en) * 1991-08-22 2002-07-18 Sun Microsystems Inc Network video provider device and method
US5367635A (en) * 1991-08-29 1994-11-22 Hewlett-Packard Company Network management agent with user created objects providing additional functionality
US5324035A (en) * 1991-12-02 1994-06-28 Infinational Technologies, Inc. Video gaming system with fixed pool of winning plays and global pool access
AU672770B2 (en) * 1992-02-18 1996-10-17 Ricos Co., Ltd. Computer game device
GB9210363D0 (en) * 1992-05-14 1992-07-01 Codemasters Ltd Computer game systems
US5351970A (en) * 1992-09-16 1994-10-04 Fioretti Philip R Methods and apparatus for playing bingo over a wide geographic area
US5422883A (en) * 1992-10-16 1995-06-06 International Business Machines Corporation Call setup and channel allocation for a multi-media network bus
JPH06266813A (en) * 1992-10-19 1994-09-22 Internatl Business Mach Corp <Ibm> Data collecting device and method for collecting and inputting data and requirement from plurality of user for constructing process-model and data-model
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5491797A (en) * 1992-11-30 1996-02-13 Qwest Communications Schedulable automatically configured video conferencing system
US5497491A (en) * 1993-01-26 1996-03-05 International Business Machines Corporation System and method for importing and exporting data between an object oriented computing environment and an external computing environment
US5459837A (en) * 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
ZA943336B (en) * 1993-05-19 1995-08-11 Menashe Julian Interactive computerised gaming system with remote terminals
US5600833A (en) * 1993-09-17 1997-02-04 Digital Equipment Corp. Attribute portion based document retrieval system with system query language interface
US5513126A (en) * 1993-10-04 1996-04-30 Xerox Corporation Network having selectively accessible recipient prioritized communication channel profiles
US5548726A (en) * 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US5580309A (en) * 1994-02-22 1996-12-03 Sigma Game, Inc. Linked gaming machines having a common feature controller
US5560005A (en) * 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
US5559933A (en) * 1994-04-22 1996-09-24 Unisys Corporation Distributed enterprise print controller
US5586257A (en) * 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
US5593349A (en) * 1994-09-09 1997-01-14 Valley Recreation Products Inc. Automated league and tournament system for electronic games
US5553239A (en) * 1994-11-10 1996-09-03 At&T Corporation Management facility for server entry and application utilization in a multi-node server configuration
US5572582A (en) * 1995-02-24 1996-11-05 Apple Computer, Inc. Method and apparatus for establishing communication between two teleconferencing endpoints
WO1997035258A1 (en) * 1996-03-21 1997-09-25 Mpath Interactive, Inc. Network match maker for selecting clients based on attributes of servers and communication links

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517609A (en) * 1990-08-06 1996-05-14 Texas Instruments Incorporated Graphics display system using tiles of data
US5526025A (en) * 1992-04-07 1996-06-11 Chips And Technolgies, Inc. Method and apparatus for performing run length tagging for increased bandwidth in dynamic data repetitive memory systems
US6050898A (en) * 1996-05-15 2000-04-18 Vr-1, Inc. Initiating and scaling massive concurrent data transaction
US5852775A (en) * 1996-09-12 1998-12-22 Earthweb, Inc. Cellular telephone advertising system
US6181927B1 (en) * 1997-02-18 2001-01-30 Nortel Networks Corporation Sponsored call and cell service
US6113494A (en) * 1997-06-17 2000-09-05 Intel Corporation Using multiple prioritized statements of abstracted intention to align different views
US6157841A (en) * 1997-09-18 2000-12-05 At&T Corp. Cellular phone network that provides location-based information
US6055510A (en) * 1997-10-24 2000-04-25 At&T Corp. Method for performing targeted marketing over a large computer network
US6313844B1 (en) * 1998-02-24 2001-11-06 Sony Corporation Storage device, image processing apparatus and method of the same, and refresh controller and method of the same
US6407740B1 (en) * 1998-09-30 2002-06-18 Sun Microsystems, Inc. Addressable output buffer architecture
US6208866B1 (en) * 1998-12-30 2001-03-27 Ericsson Inc. System and method for location-based marketing to mobile stations within a cellular network
US20010011248A1 (en) * 1999-01-29 2001-08-02 Maria Azua Himmel Method and apparatus for transmitting and tendering electronic cash using a phone wallet
US6223291B1 (en) * 1999-03-26 2001-04-24 Motorola, Inc. Secure wireless electronic-commerce system with digital product certificates and digital license certificates
US20010005839A1 (en) * 1999-12-22 2001-06-28 Jari Maenpaa Electronic commerce system
US20010013037A1 (en) * 2000-02-09 2001-08-09 Nec Corporation Information communication system, information communication method, and information provision business method

Cited By (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8641507B2 (en) 1996-11-14 2014-02-04 Bally Gaming, Inc. Tournament qualification and characteristics in a gaming system
US20080300039A9 (en) * 1996-11-14 2008-12-04 Bally Gaming, Inc. Gaming system utilizing wheels & enhanced input/output systems
US20080227525A1 (en) * 1996-11-14 2008-09-18 Bally Gaming, Inc. Gaming system having game difficulty controller
US8740710B2 (en) 1996-11-14 2014-06-03 Bally Gaming, Inc. Progressive controller and TCP/IP in a gaming system
US20090005170A9 (en) * 1996-11-14 2009-01-01 Bally Gaming Inc. Dynamically reconfigurable real-time gaming system
US20080227551A1 (en) * 1996-11-14 2008-09-18 Bally Gaming Inc. Dynamically reconfigurable real-time gaming system
US8944909B2 (en) * 1996-11-14 2015-02-03 Bally Gaming, Inc. Gaming system having a plurality of players and randomly incremented progressive prize
US20080176625A1 (en) * 1996-11-14 2008-07-24 Bally Gaming, Inc. Gaming system utilizing wheels & enhanced input/output systems
US9070250B2 (en) 1996-11-14 2015-06-30 Bally Gaming, Inc. Wireless real-time gaming system
US20080046517A1 (en) * 2001-03-13 2008-02-21 Tomas Frohm Routing of Peer-To-Peer Messages in a Communications Network
US7962651B2 (en) 2001-04-02 2011-06-14 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US20050267992A1 (en) * 2001-04-02 2005-12-01 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US10318925B2 (en) * 2002-01-28 2019-06-11 Jda Software Group, Inc. Filtered peer-to-peer business communication in a distributed computer environment
US20080040499A1 (en) * 2002-01-28 2008-02-14 English Jason R Filtered Peer-to-Peer Business Communication in a Distributed Computer Environment
US9224109B2 (en) * 2002-01-28 2015-12-29 Jda Software Group, Inc. Filtered peer-to-peer business communication in a distributed computer environment
US20050257220A1 (en) * 2002-06-20 2005-11-17 Mckee Paul F Distributed computer
US7937704B2 (en) * 2002-06-20 2011-05-03 British Telecommunications Public Limited Company Distributed computer
US20040003039A1 (en) * 2002-06-28 2004-01-01 Brett Humphrey Distributed session listing and content discovery
US7277946B2 (en) * 2002-06-28 2007-10-02 Microsoft Corporation Distributed session listing and content discovery
US20040038708A1 (en) * 2002-08-21 2004-02-26 Shih-Kuang Tsai Method for playing game over mobile communication network
US20060186052A1 (en) * 2003-06-13 2006-08-24 Rudiger Seidel Device for treating water using iron-doped ion exchangers
US8892643B2 (en) * 2003-06-30 2014-11-18 Nokia Corporation Method and device for determining and notifying users having matching preference profiles for accessing a multiple access online application
US20060242291A1 (en) * 2003-06-30 2006-10-26 Mikko Nevalainen Method and device for determining and notifying users having matching preference profiles for accessing a multiple access online application
US10709987B2 (en) 2004-06-28 2020-07-14 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US10828571B2 (en) 2004-06-28 2020-11-10 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US11400379B2 (en) 2004-06-28 2022-08-02 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US11654368B2 (en) 2004-06-28 2023-05-23 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US11786813B2 (en) 2004-07-14 2023-10-17 Winview, Inc. Game of skill played by remote participants utilizing wireless devices in connection with a common game event
US10933319B2 (en) 2004-07-14 2021-03-02 Winview, Inc. Game of skill played by remote participants utilizing wireless devices in connection with a common game event
US20060155708A1 (en) * 2005-01-13 2006-07-13 Microsoft Corporation System and method for generating virtual networks
US7730183B2 (en) * 2005-01-13 2010-06-01 Microsoft Corporation System and method for generating virtual networks
US10721543B2 (en) 2005-06-20 2020-07-21 Winview, Inc. Method of and system for managing client resources and assets for activities on computing devices
US11451883B2 (en) 2005-06-20 2022-09-20 Winview, Inc. Method of and system for managing client resources and assets for activities on computing devices
US20080147855A1 (en) * 2005-08-09 2008-06-19 Huawei Technologies Co., Ltd. Method and server for detecting condition of network communication
US11148050B2 (en) 2005-10-03 2021-10-19 Winview, Inc. Cellular phone games based upon television archives
US10653955B2 (en) 2005-10-03 2020-05-19 Winview, Inc. Synchronized gaming and programming
US11154775B2 (en) 2005-10-03 2021-10-26 Winview, Inc. Synchronized gaming and programming
US10556183B2 (en) 2006-01-10 2020-02-11 Winview, Inc. Method of and system for conducting multiple contest of skill with a single performance
US11266896B2 (en) 2006-01-10 2022-03-08 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US11298621B2 (en) 2006-01-10 2022-04-12 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US11358064B2 (en) 2006-01-10 2022-06-14 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US10806988B2 (en) 2006-01-10 2020-10-20 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US11338189B2 (en) 2006-01-10 2022-05-24 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US10758809B2 (en) 2006-01-10 2020-09-01 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US10744414B2 (en) 2006-01-10 2020-08-18 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US11918880B2 (en) 2006-01-10 2024-03-05 Winview Ip Holdings, Llc Method of and system for conducting multiple contests of skill with a single performance
US8287350B2 (en) * 2006-02-16 2012-10-16 Konami Digital Entertainment Co., Ltd. Game terminal device, game management system and game management method
US20100227678A1 (en) * 2006-02-16 2010-09-09 Kazuma Konishi Game Terminal Device, Game Management System and Game Management Method
US10556177B2 (en) 2006-04-12 2020-02-11 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11736771B2 (en) 2006-04-12 2023-08-22 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US10576371B2 (en) 2006-04-12 2020-03-03 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US10695672B2 (en) 2006-04-12 2020-06-30 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11917254B2 (en) 2006-04-12 2024-02-27 Winview Ip Holdings, Llc Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US10874942B2 (en) 2006-04-12 2020-12-29 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US20170264961A1 (en) * 2006-04-12 2017-09-14 Winview, Inc. Synchronized gaming and programming
US11678020B2 (en) 2006-04-12 2023-06-13 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11889157B2 (en) 2006-04-12 2024-01-30 Winview Ip Holdings, Llc Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11007434B2 (en) 2006-04-12 2021-05-18 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11077366B2 (en) 2006-04-12 2021-08-03 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11082746B2 (en) * 2006-04-12 2021-08-03 Winview, Inc. Synchronized gaming and programming
US11083965B2 (en) 2006-04-12 2021-08-10 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11825168B2 (en) 2006-04-12 2023-11-21 Winview Ip Holdings, Llc Eception in connection with games of skill played in connection with live television programming
US11716515B2 (en) 2006-04-12 2023-08-01 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US20210360325A1 (en) * 2006-04-12 2021-11-18 Winview, Inc. Synchronized gaming and programming
US11179632B2 (en) 2006-04-12 2021-11-23 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11185770B2 (en) 2006-04-12 2021-11-30 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11235237B2 (en) 2006-04-12 2022-02-01 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US11722743B2 (en) * 2006-04-12 2023-08-08 Winview, Inc. Synchronized gaming and programming
US20080072158A1 (en) * 2006-09-15 2008-03-20 Antonio Samele User collaboration system
US8875028B2 (en) * 2006-09-15 2014-10-28 Accenture Global Services Limited User collaboration system
US20080209049A1 (en) * 2007-02-23 2008-08-28 Krupp Peter H Systems and Methods for Enabling Communications between Clients and Hosts
US11601727B2 (en) 2008-11-10 2023-03-07 Winview, Inc. Interactive advertising system
US10958985B1 (en) 2008-11-10 2021-03-23 Winview, Inc. Interactive advertising system
US20100306813A1 (en) * 2009-06-01 2010-12-02 David Perry Qualified Video Delivery
US9584575B2 (en) * 2009-06-01 2017-02-28 Sony Interactive Entertainment America Llc Qualified video delivery
US9413540B2 (en) 2011-07-05 2016-08-09 Genband Us Llc Combining P2P and server-based conferencing
US20140128138A1 (en) * 2012-11-06 2014-05-08 Justin Wickett Poker communities
US9155965B2 (en) * 2012-11-06 2015-10-13 Zynga Inc. Poker communities
CN104936666A (en) * 2013-01-31 2015-09-23 索尼电脑娱乐公司 Game device, game control method, game control program, matching server, matching control method, and matching control program
EP2952235A4 (en) * 2013-01-31 2016-09-14 Sony Interactive Entertainment Inc Game device, game control method, game control program, matching server, matching control method, and matching control program
US10350496B2 (en) 2013-01-31 2019-07-16 Sony Interactive Entertainment Inc. Game device, game control method, game control program, matching server, matching control method, and matching control program
CN105377381A (en) * 2013-05-15 2016-03-02 金.Com有限公司 Mobile device game interface
CN112569590A (en) * 2015-03-07 2021-03-30 索尼互动娱乐美国有限责任公司 Optimizing user experience using connection quality history
US10207185B2 (en) 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience
US11551529B2 (en) 2016-07-20 2023-01-10 Winview, Inc. Method of generating separate contests of skill or chance from two independent events
US11308765B2 (en) 2018-10-08 2022-04-19 Winview, Inc. Method and systems for reducing risk in setting odds for single fixed in-play propositions utilizing real time input

Also Published As

Publication number Publication date
US6128660A (en) 2000-10-03
EP0965084A1 (en) 1999-12-22
AU2343097A (en) 1997-10-10
US5894556A (en) 1999-04-13
WO1997035258A1 (en) 1997-09-25
US6345297B1 (en) 2002-02-05
JP2000508097A (en) 2000-06-27
US5828843A (en) 1998-10-27

Similar Documents

Publication Publication Date Title
US6345297B1 (en) Network match maker
US8024467B2 (en) Distributed session listing and content discovery
US10659500B2 (en) Managing participants in an online session
US7177950B2 (en) Synchronization and recovery of peers in a peer to peer environment
JP3990400B2 (en) Dynamic switching of configuration between network communication architectures
US7395335B2 (en) Distributed load balancing for single entry-point systems
KR100638071B1 (en) Multi-user application program interface
US20040260701A1 (en) System and method for weblog and sharing in a peer-to-peer environment
EP1506485B1 (en) Configuration control by automatic communication port selection and switching configuration by switching communication port
US20020061780A1 (en) Information terminal, information providing server, online game method and recording medium
O'Daniel Http 1.2: Distributed HTTP for Load Balancing Server Systems
Han et al. HollyShare
Dalsgaard et al. Peer-to-peer Podcast Distribution

Legal Events

Date Code Title Description
AS Assignment

Owner name: WELLS FARGO BANK, N.A., AS COLLATERAL AGENT, MINNE

Free format text: SECURITY AGREEMENT;ASSIGNOR:LEAP WIRELESS INTERNATIONAL, INC.;REEL/FRAME:015732/0121

Effective date: 20040816

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CRICKET COMMUNICATIONS, INC.;REEL/FRAME:030508/0146

Effective date: 20130502