throbber
Case 1:20-cv-03452-MEH Document 1-1 Filed 11/22/20 USDC Colorado Page 1 of 14
`
`
`
`
`
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket