`
`
`
`
`
`Exhibit A
`
`
`
`USOO7016942B1
`
`(12) United States Patent
`Odom
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,016,942 B1
`Mar. 21, 2006
`
`(54) DYNAMIC HOSTING
`(76) Inventor: Gary Odom, 123 N.W. 12th Ave.,
`#1332, Portland, OR (US) 97209
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 621 days.
`(21) Appl. No.: 10/212,891
`
`(*) Notice:
`
`(22) Filed:
`
`Aug. 5, 2002
`
`(51) Int. Cl.
`(2006.01)
`G06F 15/16
`(52) U.S. Cl. ......................................... 709/212; 710/22
`(58) Field of Classification Search ................ 709/212,
`709/213, 217, 232; 710/22
`See application file for complete Search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,072,374. A * 12/1991 Sexton et al................ 709/208
`5,155.857 A * 10/1992 Kunisaki et al. ............ 709/223
`5,901.291. A *
`5/1999 Feeney et al. .............. 709/253
`6,003,097 A * 12/1999 Richman et al. ............... 710/8
`6,775,693 B1* 8/2004 Adams ...........
`... 709/213
`6,865,622 B1* 3/2005 Sethi et al. ................... 710/22
`* cited by examiner
`
`Primary Examiner-David Y. Eng
`(57)
`ABSTRACT
`
`For client/server network connectivity, clients connect to a
`Server at a predesignated address. With client/server con
`nectivity, if client-to-client communication is required, even
`for extended duration, the Server acts as an intermediary or
`host-clients communicate with each other through the
`Server. Herein described are processes for altering commu
`nications patterns after an initial client-server communica
`tions Session has been established, Specifically data trans
`mission paths, from the nominal client-to-client
`communication through Server intermediary known in the
`prior art and described foregoing, to a communication
`pattern of direct client-to-client communication, possibly
`with one or more clients dynamically assuming a hosting
`role analogous to that of a Server, thus directly communi
`cating with other clients, rather than continuing to use the
`Server in an intervening manner. Further, once direct client
`to-client communication commences, continued connectiv
`itv to the Server used as the original connection point mav be
`y
`prig
`point may
`Superflous. In Short, once client-Server connectivity is estab
`lished, clients may communicate directly client-to-client, or
`dynamically act as hosts for other clients.
`
`28 Claims, 7 Drawing Sheets
`
`6S1 PRIMARY
`STATIC SERVER
`CONNECTION /
`
`9 WAN
`
`TATIC SERVER
`
`37A CLIENT/DYNAMIC HOST 1
`
`6DH1 PRIMARY
`(DYNAMIC) HOST
`conce
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 2 of 14
`
`i.......r.
`6s3
`
`:
`
`:
`
`37B CLIENT/DYNAMIC HOST2
`
`6DH2PRIMARY
`(DYNAMIC) HOST
`systers
`
`
`
`
`
`3ACLIENT CLUSTER
`
`AACLIENT3
`
`3B CLIENT CLUSTER
`
`3C CLIENT CLUSTER
`
`4g CLIENT 9
`
`4H CLIENT 10
`4J CLIENT ll
`
`
`
`U.S. Patent
`
`Mar. 21, 2006
`
`Sheet 1 of 7
`
`US 7,016,942 B1
`
`4 CLIENT COMPUTER
`
`41 CPU
`
`
`
`42 STORAGE
`
`44 RETENTION
`DEVICE(s)
`
`
`
`45 DISPLAY DEVICE
`
`46 INPUT DEVICE(s)
`47 PONTING DEVICE
`(E.G. MOUSE)
`
`11 SERVER COMPUTER
`
`5 CPU
`
`52 STORAGE
`
`
`
`
`
`
`
`
`
`
`
`18 NETWORK
`(CONNECTION)
`
`54 RETENTION
`DEVICE(s)
`
`
`
`
`
`49 NETWORK
`CONNECTION DEVICE
`
`59 NETWORK
`CONNECTION DEVICE
`
`
`
`
`
`
`
`
`
`
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 3 of 14
`
`FIGURE 1 : NETWORKED COMPUTERS
`
`
`
`U.S. Patent
`
`Mar. 21, 2006
`
`Sheet 2 of 7
`
`US 7,016,942 B1
`
`1 B
`SECONDARY
`SERVER
`
`
`
`8 LAN
`
`
`
`
`
`
`
`
`
`
`
`12 SERVER ADDRESS
`
`18 NETWORK
`
`a a gar a da a a
`
`w
`
`-
`
`-
`
`P -
`
`P
`
`p
`
`7 STATIC
`SERVER / HOST
`
`FIGURE 2: CLIENT-SERVER (PRIOR ART)
`
`10 CLIENT/PEER HOST
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 4 of 14
`
`to is us up
`
`a
`
`in a
`
`ui o ar a a a a male a ah a a
`
`-
`
`FIGURE 3: PEER-To-PEER SERVER (PRIOR ART)
`
`
`
`U.S. Patent
`
`Mar. 21, 2006
`
`Sheet 3 of 7
`
`US 7,016,942 B1
`
`20 CLIENTS CONNECT TO STATIC HOST
`
`21 CREATE CLIENT CLUSTER
`
`22 OFFLOAD: ASSIGN DYNAMIC HOST
`
`23 ASSIGN CLIENT CLUSTER TODYNAMIC HOST
`
`24 ASSIGN BACKUPHOST(s)
`
`25 CLUSTER CLIENTS SWITCH TO DYNAMIC HOST
`ASPRIMARY HOST
`
`26 DYNAMIC HOST IS PRIMARY HOST TO CLUSTER
`
`FIGURE 4: DYNAMIC HoSTING - OFFLOAD METHOD (19)
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 5 of 14
`
`
`
`U.S. Patent
`
`Mar. 21, 2006
`
`Sheet 4 of 7
`
`US 7,016,942 B1
`
`131
`DYNAMIC
`HOST
`BACKUP LIST
`
`T6
`HOST
`LIST
`
`
`
`
`
`
`
`BACKUP(S)
`CONNECTED
`
`
`
`
`
`
`
`32 CLUSTER SWITCH TO BACKUPD HOST
`
`34 CLUSTER SWITCH TO STATIC HOST
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 6 of 14
`
`
`
`33 HOST ASSIGNS BACKUPHOST(s)
`
`FIGURE 6: DYNAMIC HOSTING CONNECTIVITY CHECK (35)
`
`
`
`U.S. Patent
`
`Mar. 21, 2006
`
`Sheet 5 of 7
`
`US 7,016,942 B1
`
`6S PRIMARY
`STATIC SERVER
`&R2 a
`
`9 WAN
`2
`it a
`A a
`
`a w w
`
`37A CLIENT/DYNAMIC HOST 1
`
`6DH1 PRIMARY
`(DYNAMIC) HOST
`contre:
`
`
`
`6s2
`:
`ha? i....
`6s3
`SJ
`
`37B CLIENT/DYNAMIC HOST 2
`
`:
`
`6DH2PRIMARY
`(DYNAMIC)Host
`Sens
`
`3ACLIENT CLUSTER
`
`3B CLIENT CLUSTER
`
`3C CLIENT CLUSTER
`
`4B CLIENT 4
`
`4F CLIENT 8
`
`4H CLIENT 10
`4J CLIENT 11
`
`FIGURE 7 : DYNAMIC HOSTING EXAMPLE
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 7 of 14
`
`
`
`U.S. Patent
`
`Mar. 21, 2006
`
`Sheet 6 of 7
`
`US 7,016,942 B1
`
`20 CLIENTS CONNECT TO STATIC HOST
`
`60 EVENT OCCURS
`
`61 CLIENT CLUSTER FORMS
`
`62 DYNAMIC HOSTDECLARED
`
`65 CLUSTER CLIENTS SWITCH TO DYNAMIC
`HOST ASPRIMARY HOST
`
`24 HOST ASSIGNS BACKUPHOST(s)
`
`26 DYNAMICHOST IS PRIMARY HOST TO
`CLUSTER
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 8 of 14
`
`67
`EVENT
`ONGOING
`
`69 NO
`
`34 CLUSTER SWITCHES HOST
`
`FIGURE 8: DYNAMIC HoSTING - EVENT METHOD (39)
`
`
`
`U.S. Patent
`
`Mar. 21, 2006
`
`Sheet 7 of 7
`
`US 7,016,942 B1
`
`4C CLIENT (O)
`A
`6s 1
`pummim.
`;6s3
`A.
`V
`6DH6
`37A
`DYNAMIC ''> a client
`HOST
`L
`
`4D CLIENT
`A
`6s2
`mium:
`N6DH7
`6S5
`N
`V
`6DH2
`37B
`6S4 --- DYNAMIC
`i"
`HOST
`
`V
`6DH4
`74A
`------ > 4F CLIENT (O)
`GAME 1 ) is
`V
`
`N
`
`:
`
`: V V
`
`74B
`GAME 2 ) 6DH5
`V
`4B CLIENT
`
`6DH3
`
`'---T-> 4G CLIENT
`
`FIGURE 9: DYNAMIC HOSTING - GAMING EXAMPLE
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 9 of 14
`
`
`
`US 7,016,942 B1
`
`1
`DYNAMIC HOSTING
`
`TECHNICAL FIELD
`
`The relevant technical field is computer Software, Specifi
`cally, dynamically assigning computer hosts in a client
`Server networked environment.
`
`BACKGROUND
`
`Personal computers today are typically at least as pow
`erful as Servers five years prior, yet in a client-server
`environment, a client's performance potential remains
`largely untapped.
`With the increasing use of broadband-based connectivity,
`clients Sustain network connectivity indefinitely, as con
`trasted to short-lived dial-up connections common only a
`few years ago.
`Applications related to group computing have progressed
`in recent years, but wide-area network implementations of
`group computing have lacked optimal networking configu
`ration given the aforementioned circumstances relating to
`performance and network connectivity.
`
`15
`
`SUMMARY
`
`Dynamic hosting distributes Server responsibilities of a
`cluster of clients to a specific client computer which has
`been at least temporarily connected to a Server. The intent or
`effect may be to effectively distribute processing resources,
`facilitate or partition group computing, or Simply provide
`transactional privacy.
`One aspect described is temporarily offloading Server
`tasks to Specific clients. Another aspect is creating Self
`Sustaining dynamic client-Server configurations independent
`of the Server to which clients originally connected.
`
`DRAWINGS
`
`25
`
`35
`
`FIG. 1 is a block diagram of suitable computers for
`deployment of the described technology.
`FIG. 2 is a block diagram of a prior art client-server
`environment.
`FIG. 3 is a block diagram of a prior art peer-to-peer
`environment.
`FIG. 4 depicts an embodiment of an offload method for
`dynamic hosting.
`FIG. 5 depicts a host list.
`FIG. 6 depicts a dynamic hosting connectivity check.
`FIG. 7 is an block diagram of an example of dynamic
`hosting.
`FIG. 8 depicts an embodiment of an event-driven method
`of dynamic hosting.
`FIG. 9 is a block diagram of an exemplary dynamic
`hosting in an online gaming environment.
`
`40
`
`45
`
`50
`
`55
`
`DESCRIPTION
`
`FIG. 1 is a block diagram of a client computer 4 connected
`to a server computer 11 through a network 18. A client
`computer 4, more simply called a client or computer 4,
`comprises at least a CPU 41; Storage 42, which comprises
`memory 43 and optionally one or more devices with reten
`tion medium(s) 44 Such as hard disks, diskettes, compact
`disks, or tape; an optional display device 45; and optionally
`one or more input devices 46, examples of which include but
`are not exclusive to, a keyboard 48, and/or one or more
`
`60
`
`65
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 10 of 14
`
`2
`pointing devices 47, Such as a mouse. As a client 4 in a
`network 18, a client 4 has one or more devices 49 for
`connection to a network.
`A Server computer 11, more simply called a Server 11,
`comprises at least a CPU 51; storage 52, which comprises
`memory 53 and optionally one or more devices with reten
`tion medium(s) 54 Such as hard disks, diskettes, compact
`disks, or tape; and one or devices 59 for connection to a
`network.
`A network 18 may be any means by which one or more
`computerS 4 are connected to one or more other computers
`4 or one or more Servers 11 for data transfer. Examples
`include a local-area network (LAN) 8, or wide-area network
`(WAN) 9, such as the Internet. Each computer on a network
`18 has a designated address. IP addressing has become the
`norm, though other addressing Schemes are known. AS
`known in the prior art, IP addresses may be static or
`dynamic, depending on how network connectivity is
`achieved and maintained. Servers 7 almost always have a
`Static address 12. At the least, a Server has a pre-designated
`name address that can be translated to an actual IP (or other
`protocol) numeric address. Client dial-up connections often
`involve dynamically allocated addresses, whereas broad
`band DSL and cable connection commonly, though not
`always, provide a stable address to clients 4.
`AS depicted in FIG. 2, a client-Server environment is a
`Setup where one or more clients 4 connect to one or more
`servers 11 through a network 18. A client 4 in a client-server
`environment primarily receives data from a server 11, or
`uses the server 11 as a conduit for data transfer with other
`clients 4. A Server 11 primarily transmits data to one or more
`clients 4, or serves as a hub conduit between clients 4. A
`Server 11 acts as a Static Server 7 to connecting clients 4.
`A server 11 may have a backup 11b. A transition from
`main Server 11 to backup 11b may be transparent to a
`network-connected client 4, as the client 4 relies upon
`whatever computer 7 transacts at the given address 12. In the
`prior art, the Server 11 always acts as host 7; a backup Server
`11b may kick in replace the primary server 11 or to handle
`additional load at the same address 12, but at no time does
`a client 4 dynamically usurp the role of the server 11 as host
`37 to other clients 4.
`AS depicted in FIG. 3, a peer-to-peer environment is a
`Setup wherein one or more computerS4 are connected to one
`another through a network 18 for sharing data without a
`hosting Server 11. Local area networkS 8 of personal com
`puterS4 are often peer-to-peer networks nowadays. Without
`a designated Server 11 Serving as a conduit hub, a peer may
`assume the role of acting host 10 from time to time,
`becoming in effect a Server. A Scenario of peer-host 10 is
`common in peer-to-peer games on a local area network 8:
`typically, a peer host 10 is the computer that initiates game
`play, in effect becoming a Server, whereupon other partici
`pating clients 4 join. In the prior art, the initially designated
`peer host 10 acting as Server is Static, remaining in that role
`for the duration of the designated game. In essence, a
`peer-to-peer configuration temporarily transforms to a prior
`art client-Server configuration.
`Dynamic hosting 37 is a method where a computer
`connects through a network 18 as a client 4 to a Static Server
`7, where there are also other clients 4 connected (to the
`Server 7), and, after Some duration, for whatever reason, that
`client computer 4 begins acting as a host 37 to one or
`multiple client computers 3 that previously had relied upon
`the static server 7.
`Two exemplary applications for employing the described
`revelatory technology are described. The first Scenario is
`
`
`
`4
`shows exemplary backup hosts 16 by indicating the first
`dynamic host backup 13a and static server 7.
`FIG. 6 depicts an exemplary method of dynamic hosting
`connectivity check 35 using a host list 76. Clustered clients
`3 being hosted dynamically check connectivity 27 by any
`method known; a lack-of-response time-out (perhaps with
`repeated checks) is typical. If connectivity with the primary
`dynamic host is lost 29, clients check connectivity to the
`next possible dynamic host 131 in the host list 30, repeating
`this step down the list of possible dynamic hosts 131 until
`connectivity is established 32, in which case clients switch
`to the backup dynamic host 32, making it their new primary
`host 40 (and revising the dynamic backup list 33 accord
`ingly); failing that, a Switch is made back to a static Server
`34.
`A client cluster 3 may be dynamic, as may the list of
`dynamic backup hosts 131; in fact, both likely So, depending
`upon embodiment.
`FIG. 7 depicts an example of dynamic hosting. Two
`dynamic hosts (37a, 37b) are depicted as operating. A static
`Server 7 continues hosting a client cluster 3b through a
`primary Server connection 6S3, and continues with direct
`network transactions with dynamic hosts (37a,37b) through
`primary Server connections (6S1, 6s2 respectively). Two
`client clusters (3a, 3c) formerly hosted by the static server
`7 are currently hosted by dynamic hosts (37a, 37b) through
`dynamic primary server connections (6dh1, 6dh2). Backup
`hosts 16 are not depicted in FIG. 7, but may be employed as
`previously described.
`Depending upon circumstance and embodiment, informa
`tion that needs to flow from the static server 7 to one or more
`clients 4 served by a dynamic host 37 may now flow through
`that dynamic host 37 rather than directly from static server
`7 to client 4. Dynamic hosting does not necessarily obviate
`peer-to-peer transactions, but Server functions to a desig
`nated client cluster 3 are provided by the appropriate host,
`dynamic 37 or static 7.
`FIG. 8 depicts an exemplary process of an event precipi
`tating dynamic hosting. After one or more clients connect to
`a Static Server 20, an event occurs triggering dynamic
`hosting 60. A client cluster forms 61 and a dynamic host
`declared by the current host 62. Cluster clients Switch to the
`dynamic host 65. The dynamic host acts as primary host 26,
`at least for data eXchange relevant to the event precipitating
`the dynamic hosting. Once the event concludes, the cluster
`Switches host 34 appropriately.
`For example, event hosting 39 may be employed with
`online (network) gaming, where clients 4 meet via a desig
`nated server 7 address 12 to chat (text or voice or video
`messages), play games, and observe games being played or
`broadcast by a host. A Static Server 7 provides a meeting
`place for participants. Once playerS match up for a game,
`event-driven dynamic hosting 35 transpires. One of the
`playerS is designated dynamic host 62. For a two-player
`game, game move transactions are pretty much equivalent to
`peer-to-peer data eXchanges, but dynamic hosting 37 Still
`applies to game observers, as well as whatever information
`that normally emanates from the host. For multiple-player
`games, a player may transmit a move to the dynamic host 37,
`who broadcasts the move to other playerS 3, thus maintain
`ing Synchronization. Likewise, observers of the game,
`including the static server 7 (who may broadcast that the
`game is being played), may served by the dynamic host 37
`with moves of the game. The dynamic host 37 may also act
`as Server for chat. Dynamic hosting 35 continues as long as
`the game continues. If, in a multiple player game, the player
`hosting 37 drops out of the game while the game is still
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 11 of 14
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,016,942 B1
`
`15
`
`25
`
`35
`
`40
`
`3
`herewith referred to as offloading 19, where a static server
`7 createS client clusterS3 and assigns them to a dynamic host
`37. The second scenario is herewith referred to as event
`hosting 35, where an event transpires that initiates dynamic
`hosting 37.
`The two exemplary Scenarios are distinguished for
`explanatory purposes. Different aspects or elements of the
`described exemplary embodiments may be altered or com
`bined to fit requirements. Such permutations and combina
`tions are anticipated.
`The cluster of clients 3 served by a dynamic host 37 may
`be, at least initially, selected by the static server 7. Particu
`larly with event hosting 35, however, the client cluster 3
`served by the dynamic host 37 may be self-selecting rather
`than assigned by the Static Server 7. A client cluster 3 is a list
`of clients served at some time by a dynamic host 37.
`FIG. 4 depicts an exemplary process of dynamic hosting,
`that of a static server 7 temporarily offloading 35 server
`duties to a client 4, the client thus becoming a dynamic host
`37.
`Begin with multiple clients connecting to a Static Server
`20. One or more sets of connected clients are determined 21.
`One or more dynamic hosts are assigned by the current host
`22. Clustering 21 (or 61) or assigning dynamic host(s) 22 (or
`62) may precede one another, depending upon embodiment.
`Clustering 21 and dynamic host assignment 22 may be
`determined in various ways, depending upon the application.
`Exemplary methods include random assignment, basing
`upon computer configuration or performance characteristics,
`type or duration of connection to the Static Server 7, or level
`of interactivity with the host. Data necessary to determine
`dynamic host suitability may be passed from client 4 to host,
`or derived by transaction between client 4 and host. For
`example, network connection Speed may be determined by
`timing data eXchange between host and client 4. Techniques
`for gauging aforementioned performance characteristics are
`well known in the prior art.
`One or more client clusters are Switched to having the
`dynamic host as their primary Server connection 25. The
`dynamic host acts as primary Server to a set of clients 26.
`A client may be switched to a dynamic host 25 by any
`method, even including the Static Server 7 passing through
`messages (addressed to the static server 7) from clients in a
`cluster 3 to a dynamic host 37 without processing them, but
`the preferred embodiment is using a host list 76 in client
`Software so that the primary host 40 is the dynamic host 37.
`Cluster clients Switch to the dynamic host as primary host
`25, and the dynamic host begins operating as Server to its
`assigned client cluster 26.
`One or more backup hosts 16 may be assigned for a
`dynamic host 24 using a host list 76. As a dynamic host 37
`may drop connection at any time, there should be a way for
`a dynamic host's client cluster 3 to maintain connection
`continuity in absence of the primary host 40. The original
`static server 7 may be the only backup host 16, or there may
`be a list of backup hosts 76 comprising clients in the cluster
`131.
`FIG. 5 depicts an exemplary embodiment of a prioritized
`host list 76. The primary host 40 may be the static server 7,
`but hosting is done by a dynamic host 37 during dynamic
`hosting 35. In the nominal embodiment, the primary host 40
`is the current host, Static or dynamic. In an embodiment
`using a host list 76, a client 3 may know it has a dynamic
`host 37 by comparing the address of the static server 7 to the
`primary host 40. There may be a backup dynamic host list
`131 in a host list 76, with the static server 7 and possibly a
`backup static server 11b in the host list 76 as well. FIG. 5
`
`
`
`S
`ongoing, becoming (at best) an observer, perhaps thus
`increasing the risk of disconnection by that dynamic host 37
`(losers don't always hang around), dynamic hosting contin
`ues with another player hosting. In Such an instance, if
`Software can determine the leader in a game (usually by
`having the lead in accumulation of whatever is important in
`the game), it may be sensible to use that player as dynamic
`host 37 (other criteria being non-determinative), as that
`player may be considered least likely to drop out.
`FIG. 9 depicts an exemplary embodiment of dynamic
`hosting in an online gaming environment. In the example
`depicted in FIG. 9, the game is a two-player game, Such as
`go, chess, or backgammon. A Static Server 7 provides a
`meeting point for client 4 participants using an online
`gaming application.
`AS depicted in FIG. 9, the client application lets a par
`ticipant (user) set whether S/he is open to game match offers
`or not. In FIG. 9, (o) designates being open to game offers.
`So, as depicted, users of clients 4C and 4fare open to game
`matches, while users of client application 4e and 4g are not
`open to game match offers. Two games (74a, 74b) are in
`progreSS. AS depicted in FIG. 9, the client application does
`not allow game players (37a, 4a,37b, 4b) to observe games
`while playing. A non-playing participant may observe mul
`tiple games, as depicted by one client 4g. A non-playing
`participant may also observe a game and as well be open to
`game match offers, as with one depicted client 4f.
`Continuing with the example depicted in FIG. 9, when a
`game match is made, the player taking first move becomes
`a dynamic host 37. The dynamic host 37 acts as server for
`receiving game moves from the other player and transmit
`ting all game moves to game observers. For example,
`dynamic host 37 exchanges moves with client 4a, and Serves
`observers 4e, 4f 4g, and the static server 7.
`The static server 7 in the example depicted in FIG. 9 is a
`client 4 to the dynamic host 37 for a game being played,
`keeping track of game Status for broadcast to non-observers
`of the game; non-observers who may choose to observe
`games in progreSS, and thus be served by the dynamic host
`37 of a game. The static server 7 in the example depicted in
`FIG. 9 receives game moves comprising move number and
`move location, but only broadcasts to non-observers of a
`game the move number (as well as the game players), So as
`to convey Status.
`As in the example depicted in FIG. 9, a client 4f observing
`a game 74a and open to game offerS is Served by the
`appropriate dynamic host 37a for the game being observed,
`and the Static server 7 for other information (Such as game
`offers). Likewise, a client 4g watching two games is served
`by two dynamic hosts (37a, 37b) for game moves, and the
`static server 7 for other information.
`One advantage of the example embodiment depicted in
`FIG. 9 is that game playing and observation may proceed if
`connection to the static server 7 is interrupted or lost. In the
`prior art, with a single Static Server 7, the entire online
`gaming environment is disrupted if the Static Server 7 loses
`connectivity to the network 18.
`In an advanced embodiment, a dynamic host 37 may
`create other dynamic hosts 37. Consider the example
`depicted in FIG. 9. If a game 74a had a lot of observers, the
`other player 4a may become a dynamic host 37 for broad
`casting moves to a Subset of observers, in which case
`observers would be hosted either by the original dynamic
`host 37a, or the newly designated dynamic host 4a. There
`would be a rule-based trigger to enlist (an) additional
`dynamic host(s). As an example of a load-shifting rule, the
`first dynamic host 37a may serve up to 20 observers, after
`
`5
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,016,942 B1
`
`6
`which the other player acts as dynamic host to the next
`twenty observers, alternately, perhaps up to a limit (say, 100
`players), after which the Static server 7 may act as host for
`all other newcomer observers. Alternately, one or more
`observers 4 may be assigned as a dynamic host 37 to other
`game observers based upon Some load-shifting rule. Obvi
`ously, in the example described, the Software necessary for
`dynamic hosting is resident in every copy of client Software.
`Other exemplary applications readily envisioned include
`file sharing, conferencing, and other group activities that
`may be facilitated through networked computer interaction.
`In these Scenarios, a pre-designated Static Server 7 Serves as
`an initial hub. Participants form a cluster 3 from which one
`participant hosts 37 for all or part of the event's duration.
`For example, a Static Server 7 provides an initial meeting
`address for a scheduled conference (video, audio, graphic
`and/or text data transmissions). The list of participants may
`be pre-arranged, Such as for a business conference. The first
`of the Scheduled participants connects to the Server 7 and
`becomes dynamic host 37. Alternately, a dynamic host 37
`may be prearranged, with dynamic hosting beginning only
`after the dynamic host 37 has connected. Participants are
`routed by the static server 7 to the dynamic host 37; this may
`be as simple as setting the primary host 40 in the host list 76
`of participants to the appropriate dynamic host 37. A func
`tioning host list 76, perhaps using the list of participants as
`the backup dynamic host list 131, is recommended. For
`example, in a conference, the dynamic host 37 (current
`primary host 40) may have to leave, necessitating transfer to
`another host 40; another dynamic host 37 can be found in the
`backup dynamic host list 131, thus becoming primary host
`40. FIG. 7 might depict an example of two conferences
`ongoing with dynamic hosts 37 (37a, 37b), where one
`cluster 3b is waiting for their conference to begin.
`Security may be an issue for Some applications, Such as
`conferencing. Participants may be knowingly limited to a
`list kept by either the static server 7 or dynamic host 37. The
`backup dynamic host list 131 may comprise the list of
`participants. Encryption may be applied to transmissions
`between a dynamic host 37 and participants. Encryption
`technology is well known in the art, and techniques as to its
`derivation and application continue to evolve. Once
`dynamic hosting begins, conference participants may
`eXchange data only between themselves using the dynamic
`host 37 as server without that data being transmitted to the
`static server 7.
`Optionally, upon the instigation of dynamic hosting, con
`nection with the static server 7 may be terminated by
`dynamic host 37 and dynamically hosted clients 3. In this
`embodiment, the original Static Server 7 works as an initial
`meeting point from which independent dynamically-hosted
`configurations arise.
`The following is claimed:
`1. A computer-implemented method for channeling data
`through a network from an initial client/server-based con
`nectivity to direct client-to-client communication compris
`ing the following Steps:
`a first client computer and at least a Second client com
`puter connecting through a network to a Static Server at
`a pre-designated address,
`wherein Said first client computer and Said Second client
`computer are not communicating with each other prior
`to connecting to Said Static Server,
`Said first and Second client computerS respectively estab
`lishing a communications Session with Said Static Server
`by exchanging a first data with Said Server,
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 12 of 14
`
`
`
`8
`wherein Said first client computer and Said Second client
`computer not communicating with each other prior to
`respectively establishing Said communications Session
`with Said Static Server;
`Said first computer transmitting a first data to Said Second
`computer via Said Static Server;
`while Said first computer maintaining network connectiv
`ity to Said Static Server,
`Said first computer directly transmitting a Second data to
`Said Second computer without Said Static Server inter
`Vening.
`14. The method according to claim 13, with the following
`additional Steps:
`a third client computer connecting to Said Static Server
`after Said first and Second computers,
`wherein Said third client computer and Said first client
`computer not communicating with each other prior to
`Said third computer connecting to Said Static Server;
`Said first client directly transmitting at least a portion of
`Said Second data to Said third client computer without
`Said Static Server receiving Said transmission.
`15. The method according to claim 13, wherein a condi
`tional event precipitates transmitting Said Second data.
`16. The method according to claim 13, with the additional
`Step of Said Second computer maintaining connectivity to
`Said first computer while losing connectivity with Said Static
`SCWC.
`17. The method according to claim 16, with the following
`additional Steps:
`Said Second computer transmitting a third data to Said first
`computer after losing connectivity with Said Static
`server,
`Said first computer transmitting at least a portion of Said
`third data to Said Static Server.
`18. A computer-implemented method for channeling data
`through a network from an initial client/server-based con
`nectivity to direct client-to-client communication compris
`ing the following Steps:
`at least a first and Second client computers connecting
`through a network to a Static Server at a pre-designated
`address,
`thereby respectively establishing a communications Ses
`Sion with Said Static Server,
`wherein Said first and Said Second client computers not
`communicating with each other prior to respectively
`establishing Said communications Session with Said
`Static Server;
`Said Static Server transmitting to Said first computer a list
`comprising, at least in part, a plurality of computers,
`Said Second computer transmitting a first data directly to
`Said first computer without transmitting Said first data
`to Said Static Server;
`Said first computer transmitting at least a portion of Said
`first data to at least one computer on Said list other than
`Said Second computer.
`19. The method according to claim 18, with the additional
`Step of Said first computer not transmitting Said first data to
`Said Static Server.
`20. The method according to claim 18, with the additional
`Step of encrypting Said first data.
`21. The method according to claim 18 with the following
`additional Steps:
`Said Second computer losing network connectivity with
`Said Static Server while maintaining connectivity with
`Said first computer;
`Said Second computer transmitting a Second data to Said
`first computer.
`
`Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 13 of 14
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,016,942 B1
`
`5
`
`15
`
`35
`
`25
`
`7
`designating in a list a plurality of client computers as a
`client cluster,
`wherein providing information in Said client cluster list
`allowing establishing a communications Session of
`direct communication between at least two computers
`on Said client cluster list,
`while Said first client computer maintaining Said commu
`nications Session with Said Static Server,
`Said first client computer directly transmitting a Second
`data to at least Said Second client computer without Said
`Static Server intervening.
`2. The method according to claim 1, wherein Said Static
`Server not receiving Said Second data.
`3. The method according to claim 2, with the additional
`Step of encrypting Said Second data.
`4. The method according to claim 1, wherein a conditional
`event precipitates Said first computer directly transmitting
`Said Second data.
`5. The method according to claim 1, whereby said first
`computer transmitting a third data to Said Second computer
`after Said Second computer loses network connectivity to
`Said Static Server while maintaining connectivity with Said
`first computer.
`6. The method according to claim 1, wherein Said client
`cluster list comprises at least in part at least one network
`address.
`7. The method acco