throbber

`
`
`
`
`
`
`
`US 6,766,373 B1
`(10) Patent N0.:
`(12) United States Patent
`
`
`
`
`
`
`
`
`Beadle et al.
`(45) Date of Patent:
`Jul. 20, 2004
`
`
`
`U5006766373B1
`
`
`
`
`
`
`
`
`
`
`(54) DYNAMIC, SEAMLESS SWITCHING OF A
`
`
`
`NETWORK SESSION FROM ONE
`CONNECTION ROUTE TO ANOTHER
`
`
`
`
`
`
`
`
`
`
`
`Primary Examiner—Moustafa M. Meky
`
`
`
`
`
`
`
`(74) Attorney, Agent, or Firm—Marilyn Smith Dawkins;
`Dillon & Yudell LLP
`
`
`
`
`
`
`(57)
`
`
`
`(75)
`
`
`
`
`
`
`
`
`Inventors: Bruce A. Beadle, Round Rock, TX
`(US); Michael Wayne Brown,
`
`
`
`
`
`
`
`Georgetown, TX (US); Randolph
`
`
`
`
`Michael Forlenza, Austin, TX (US);
`
`
`
`
`Douglas Scott Rothert, Austin, TX
`
`
`
`
`
`(us); Miguel Sang, Austin, TX (us)
`
`(73) Assignee:
`
`
`
`
`
`( * ) Notice:
`
`
`
`
`
`International Business Machines
`
`
`
`
`
`Corporation, Armonk, NY (US)
`
`
`
`
`
`
`
`Subject to any disclaimer, the term Of this
`
`
`
`
`patent is extended or adjusted under 35
`
`
`
`
`U~S~C~ 154(b) by 629 days.
`
`
`ABSTRACT
`.
`.
`.
`.
`
`
`
`
`
`
`
`
`A’system for prov1d1ng. continuous connection between a
`
`
`
`
`
`
`
`
`chent and a network dur1ng a sess1on. The system comprlses
`
`
`
`
`
`
`
`
`of a connection utility, which monitors a network session for
`
`
`
`
`
`
`
`an occurrence of a pre-defined event and/or condition. The
`
`
`
`
`
`system is particularly advantageous in scenarios where a
`session’s connection is lost and the session has to be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`reconnected to the network. The system also finds applica-
`bility with several other types of events/conditions, includ-
`
`
`
`
`
`
`
`
`
`
`
`
`
`ing a connection break, a slow or congested connection or a
`
`
`
`
`
`
`
`
`change in the type of data being transmitted. When any one
`
`
`
`
`
`
`
`of the pre-defined events/conditions occur, the session is
`
`
`
`
`
`
`
`automatically routed from the present connection route to
`
`
`
`
`
`
`
`
`
`
`
`
`another connection route, and is completed on the other
`(21) Appl. No.: 09/584,068
`connection route. In order to complete the re-routing of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(22)
`sessions, session information is cached on the client and the
`Filed:
`May 31’ 2000
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(51)
`server. The session data is tagged with the original session
`Int. Cl.7 ................................................ G06F 13/00
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(52) us. Cl.
`........................................ 709/227, 709/203 D .On the server, a special Client Key is storedior later
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(58) Field of Search ................................. 709/200, 201,
`retrleVal, and 0n the Chem a SPeclal Sewer Key 15 stored-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`709/203, 217’ 218, 219’ 227’ 228, 229
`During the reconnect, the server uses its previously stored
`
`
`
`
`
`
`
`
`
`sess1on data assoc1ated w1th the chent key and prev1ous
`
`
`
`
`
`
`
`
`session ID to regain a new session connection. The client
`
`
`
`
`
`
`
`
`uses its previously stored session data to regain its side of the
`
`
`
`
`
`
`
`
`
`connection and to pass the proper request over the wire to
`
`
`
`
`
`
`
`
`the 56W“ This SPeCial“handSh‘i‘ke” OC‘WS at 565510“ FCCOH'
`
`
`
`
`
`
`
`
`nect t1me and allows the spec1al sess1on re-connectlon to
`
`
`
`
`
`
`
`
`occur. The re-routing of the session is completed with no
`noticeable loss in connection or session information. Thus,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a substantially seamless switching of the session from the
`first connection route to the second connection route is
`
`
`
`
`
`
`
`
`
`
`implemented.
`
`(56)
`
`
`
`
`
`References Cited
`
`
`
`
`US PATENT DOCUMENTS
`................. 375/8
`5,347,539 A *
`9/1994 Sridhar et a1.
`
`
`
`
`
`
`
`5,835,724 A 4 11/1998 Smith ............... 707/501
`
`
`
`
`
`5,859,959 A *
`1/1999 Kimball et a1.
`..... 370/216
`.
`
`
`
`
`
`
`
`6,145,089 A * 11/2000 Le et a1. ................. 714/4
`
`
`
`
`
`
`
`6,286,058 B1 *
`9/2001 Hrastar et a1.
`..... 709/239
`..
`
`
`
`
`
`
`
`
`6,324,161 El * 11/2001 Kirch .................. 370/217
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,490,610 B1 * 12/2002 Rizvi et a1. .......... 709/101
`6,519,224 B2 *
`2/2003 Hrastar et a1.
`.............. 370/227
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`
`
`
`
`
`27 Claims, 10 Drawing Sheets
`
`
`
`
`
`
`
`801
`
`
`
`Establish connection
`
`
`
`805
`
`
`
`
`807
`
`
`
`
`
`Complete session
`
`
`
`
`
`
`
`Connection
`No
`change
`
`condition ?
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Yes 809
`
`
`
`
`Select optimal route
`
`
`
`
`8 1 1
`
`Switch connection
`
`to optimal route
`
`
`
`
`
`
`
`
`Page 1 of 19
`
`SAMSUNG EXHIBIT 1008
`
`SAMSUNG EXHIBIT 1008
`
`Page 1 of 19
`
`

`

`
`US. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`
`Sheet 1 0f 10
`
`
`
`US 6,766,373 B1
`
`
`
`)4
`
`GEE
`
`OE
`E<mo
`
`
`
`
`z< (n
`
`
`
`32%
`<F
`g<
`*‘2
`é—I
`D-
`(00.
`<
`
`E
`LL!
`Q
`0
`E
`
`v
`N
`
`2
`0
`n:
`Q
`o
`
`N
`c»
`
`Cb
`l\
`
`
`
`Page 2 of 19
`
`Page 2 of 19
`
`

`

`
`US. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`SheetZ 0f10
`
`
`
`US 6,766,373 B1
`
`com
`
`m;
`
`
`
`m.3
`
`fo>262
`
`fo>262F585
`
`fo>262N385
`
`xESE
`
`_mcE5on
`
`3___3mm
`
`ommoEo
`
`Pom
`
`
`
`nm>>E25
`
`$2505
`
`mom
`
`
`
`6525
`
`F>xoi
`
`09250
`
`N>xoi
`
`0925
`
`x>xoi
`
`252:8
`
`_‘>xo_n_
`
`
`
`EEoEmo
`
`25025N>xoi
`
`
`x385
`
`._.mz<m._.z_
`
`mmom
`
`<mom
`
`m;
`
`Page 3 of 19
`
`Page 3 of 19
`
`

`

`
`US. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 3 0f 10
`
`
`
`US 6,766,373 B1
`
`
`3 0 3A
`
`
`305
`
`Wireless
`
`
`
`
`3038
`
`
`3 O 7
`
`Server
`
`
`
`215
`
`
`
`215
`
`
`
`Phone
`
`31
`
`
`
`
`1
`
`3o30
`
`
`
`_
`Satellite
`
`
`
`Server
`
`
`
`2 1 5
`
`
`
`
`Cable Modem
`
`
`
`
`3 0 3 D
`
`309
`
`
`
`Server
`
`
`
`215
`
`
`
`
`fig. 3
`
`
`3 0 1
`
`We'” _l
`
`
`Browser
`
`
`
`
`
`
`
`Page 4 of 19
`
`Page 4 of 19
`
`

`

`US. Patent
`
`Jul. 20, 2004
`
`Sheet 4 0f 10
`
`US 6,766,373 B1
`
`oov
`
`mm:q
`
`Egg
`
`
`_>55:8:55“.558
`®E@
`
`2:01
`
`$8235.-is?Q
`
`NEE
`
`@-
`
`now
`
`2mm
`
`28H66:5532»am2m
`
`
`
`3.2.3558:.
`
`Page 5 of 19
`
`fl4%
`
`
`
`zmmcmmQonEmzcou.xomm®’A”b
`
`
`
`Ecoéamméaajazc$06?
`
`Page 5 of 19
`
`

`

`
`US. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 5 0f 10
`
`
`
`US 6,766,373 B1
`
`500
`
`
`L‘
`
`
`
`501
`
`
`
`503
`
`
`
`
`
`
`Select Default
`
`Connection
`
`5 0 5 A
`
`
`Server Selections
`
`
`
`5 0 7
`
`
`
`
`
`
`
`Server 4 : Chicago _______________________
`
`Server
`
`
`
`Satellite
`
`
`
`
`:.
`
`
`Cable Modem
`
`
`
`
`Override Defaults
`
`
`
`
`S erver 1
`
`: California
`
`
`Server 2 : Texas
`
`
`Server 3 : New York
`
`
`
`
`5 0 5 D
`
`
`.
`
`
`Automatic Routing
`
`
`
`5 1 3
`
`
`
`51 5
`
`
`51 7
`
`
`Update Settings
`
`
`
`
`fly. 5%
`
`
`
`
`
`
`CONDITION MESSAGE
`
`
`
`5 5 5
`
`
`
`
`
`CLICK BELOW TO
`
`
`SWITCH TO MORE
`
`
`OPTIMAL ROUTE
`
`W 5Q”
`
`
`
`
`
`Page 6 of 19
`
`Page 6 of 19
`
`

`

`
`US. Patent
`
`
`
`Jul
`
`
`
`. 20, 2004
`
`
`
`
`Sheet 6 0f 10
`
`
`
`’US6
`766,373 B1
`
`
`
`
`
`new
`
`EmEouEoodemmeemcozomccoo
`
`atom
`EggEoo.mEmmE£<8:85852%
`
`8:58
`
`832:
`
`
`
`
`
`
`
`
`
`
`
`.2H3969
`Q2Q2.QmNQmm
`
`
`
`
`atom<8:35882mmEoodsmmee8:65mmmazw8:ngmmsozw£283£38__mm8:828
`
`c2500:—
`
`>823
`
`EEBccmm
`
`moo
`
`025%
`
`mczmm
`
`25:6
`
`Page 7 of 19
`
`
`
`3.mg
`
`
`
`
`llllllll
`
`IIIIIIIII
`
`IIIIIIII
`Iillllll'
`38wmEmE03
`m5:526”;
`I
`
`Page 7 of 19
`
`
`
`
`
`

`

`
`US. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 7 0f 10
`
`
`
`US 6,766,373 B1
`
`651
`
`
`
`
`
`
`
`Yes
`
`
`
`
`
`
`Is there
`
`historical
`
`
`data ?
`
`
`655
`
`
`
`
`Does
`
`
`user wish to
`
`
`
`
`utilize historical
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Create metrics on
`
`
`current connections
`
`661
`
`
`
`Retrieve best guess
`
`
`
`results from database
`
`
`
`
`Weigh user's
`
`
`
`
`
`that matches user
`
`
`preference against
`
`
`
`
`
`preferences for
`
`reported metrics and
`
`
`
`this domain and
`
`
`determine optimal
`
`
`historical data
`
`connection
`
`
`
`
`
`
`Switch to optimal
`
`connection
`
`
`
`
`
`
`
`
`of server/connection
`
`
`or user preferences
`
`
`to change
`
`
`
`
`665 Wait for attributes
`
`
`
`667 Terminator
`
`
`
`
`T1g.
`
`
`
`6%)
`
`
`
`Page 8 of 19
`
`Page 8 of 19
`
`

`

`US.
`
`
`Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 8 0f 10
`
`
`
`US 6,766,373 B1
`
`7 0 3
`
`
`
`
`
`User request
`
`Internet connection
`
`
`
`705
`
`
`
`
`
`
`
`
` Set
`
`
`connection
`
`
`defaults .7
`
`
`
`No
`
`
`707
`
`
`
`Yes
`
`
`
`Connect via defaults
`
`
`
`
`
`
`709
`
`End
`
`
`
`
`7 1 3
`
`Yes
`
`
`
`
`
`Make initial
`connection via
`
`
`default
`
`
`
`
`7 1 5
`
`Check alternate
`
`routes
`
`
`
`
`
`7 1 7
`
`
`
`
`
`
`
`
`7 1 1
`
`
`
`
`
`suDef::‘clito‘r’1Vs/ 7
`
`
`
`
`99
`'
`
`
`N0
`
`
`7 21
`
`
`
`Check connections
`table for most
`
`
`
`
`
`optimal route
`7 2 3
`
`
`
`Connect via most
`
`
`optimal route
`7 2 5
`
`
`
`
`U date table
`
`
`
`
`
`
`
`7 0 9
`
`
`
`End
`
`
`
`
`
`
`
`
`More
`
`
`optimal routes
`found ?
`
`
`
`
`No
`
`
`
`
`
`
`settings
`
`
`(Set optimal route
`as default)
`
`
`
`
`
`
`fig. 7
`
`End
`
`
`7 0 9
`
`
`Page 9 of 19
`
`Page 9 of 19
`
`

`

`
`US. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 9 of 10
`
`
`
`US 6,766,373 B1
`
`801
`
`
`
`
`
`03
`
`
`
`
`
`Establish connection
`
`
`
`8 0 5
`
`
`
`
`
`
`
`8 0 7
`
`
`
`
`
`
`N0
`
`Connection
`
`change
`
`condition ?
`
`
`
`
`
`
`Complete session
`
`
`
`
`
`
`
`
`
`fig. 8
`
`
`
`
`
`Yes 809
`
`
`
`
`
`Select optimal route
`
`
`
`
`
`
`81 1
`
`
`
`
`Switch connection
`
`
`
`to optimal route
`
`
`
`
`
`
`
`PROTOCOL
`
`
`
`III-III
`
`
`BEST (NIC)
`
`ADDR
`
`
`
`
`SRC lP
`
`ADDR
`
`
`DEST lP
`
`ADDR
`
`
`TCP/IP HEADER
`
`
`
`
`903
`
`
`fly. 9
`
`
`
`
`
`
`
`Page 10 of 19
`
`Page 10 of 19
`
`

`

`
`US. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 10 0f 10
`
`
`
`US 6,766,373 B1
`
`
`
`Internet
`
`
`
`
`
`
`
`
`
`Satellite
`
`
`transmission
`
`
`
`
`1011
`
`Modem
`
`
`transmission
`
`
`
`
`
`
`
`
` 1007
`1009
`
`
`
`1003fi---------------1,
`
`
`
`1005
`
`
`
`
`Client Browser
`
`
`
`1107
`
`
`
`
`1105
`
`
`
`
`1109
`
`
`
`
`
`
`
` _______________ .l
`
`
`
`l
`
`
`
`
`Extension to
`
`
`TCP/lP stack
`
`Network
`
`
`
`Application
`
`(Client Browser)
`
`
`
`
`1101
`
`
`Try. 1]
`
`
`
`Page 11 of19
`
`Page 11 of 19
`
`

`

`
`DYNAMIC, SEAMLESS SWITCHING OF A
`
`
`
`NETWORK SESSION FROM ONE
`
`
`
`CONNECTION ROUTE TO ANOTHER
`
`
`RELATED APPLICATIONS
`
`
`
`
`
`
`
`
`The present invention is related to the subject matter of
`
`
`
`
`
`
`
`the following commonly assigned, co-pending US. patent
`
`
`
`
`
`
`application Ser. No. 09/584,808 entitled “Dynamically
`
`
`
`
`Affecting Browser Network Communications
`
`
`
`
`
`
`Performance”, still pending filed concurrently herewith.
`BACKGROUND OF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`
`1. Technical Field:
`
`
`
`
`
`
`
`
`
`
`
`to computer
`invention relates in general
`The present
`
`
`
`
`
`
`networks and in particular to communications within com-
`
`
`
`
`
`
`
`
`puter networks. Still more particularly, the present invention
`
`
`
`
`
`
`
`relates to a method, system, and program for improving a
`
`
`
`
`
`client’s communication performance within a network by
`
`
`
`
`
`
`dynamically switching a session connection from a first
`
`
`
`
`
`
`connection route to another route in response to an occur-
`
`
`
`
`rence of specific pre-defined events.
`
`
`
`
`
`2. Description of the Related Art:
`
`
`
`
`
`
`
`Computer networks, such as the Internet, are typically
`based on Client/Server software architectures. These archi-
`
`
`
`
`
`
`
`
`
`
`
`
`tectures provide a versatile infrastructure that supports
`
`
`
`
`
`
`shared access to server resources. A client is typically a
`
`
`
`
`
`
`
`requester of services, and a server is the provider of services.
`
`
`
`
`
`
`
`
`
`Asingle machine can be both a client and a server depending
`
`
`
`
`
`
`
`on the software configuration. A client machine is loaded
`with client software, while a server machine is loaded with
`
`
`
`
`
`
`
`
`server software. Clients can be either stand-alone computer
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`systems (like personal computers) or “dumber” systems
`adapted for limited use with a network.
`
`
`
`
`
`
`
`
`
`
`
`
`
`A generalized client-server computing network has sev-
`eral nodes or servers which are interconnected, either
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`directly to each other or indirectly through one of the other
`
`
`
`
`
`
`servers. Based on network configuration, the connection by
`the client to the network may be via an ethernet connection
`
`
`
`
`
`
`
`
`or token ring, etc. Other direct and/or indirect connection
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`methods (e.g.
`telephone connection via remote access
`
`
`
`
`
`
`
`
`protocol) are also possible when a client is connected from
`
`
`
`
`
`
`
`the user’s home, for example. In traditional networks, only
`
`
`
`
`
`
`
`
`a single connecting medium to the network is possible for
`each client.
`
`
`
`
`
`
`
`
`The network can be a localized network or geographically
`dispersed network and can be further connected to other
`
`
`
`
`
`
`
`networks. Each server is essentially a stand-alone data
`
`
`
`
`
`
`
`
`
`
`
`
`
`processing (computer) system, having one or more
`
`
`
`
`
`
`processors, memory devices, and communications devices,
`
`
`
`
`
`
`
`
`that has been adapted (programmed) for providing informa-
`tion and/or services to individual users at another set of
`
`
`
`
`
`
`
`
`nodes or client workstations.
`
`
`
`
`
`
`
`
`
`
`
`In a Local Area Network (LAN), for example, clients are
`
`
`
`
`
`
`usually configured to communicate via a particular server.
`
`
`
`
`
`
`For geographically dispersed networks, as in an intranet or
`Internet, a client’s network communication may occur via a
`
`
`
`
`
`
`
`localized server or a server in another geographic location.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The use of auto-proxy servers in a LAN system helps to
`
`
`
`
`
`
`
`improve network performance. However, only one connec-
`
`
`
`
`
`
`
`
`tion route may be configured within the client at a particular
`
`
`
`
`
`
`
`
`
`time and these servers can become congested during heavy
`
`
`
`
`
`
`
`
`usage or traffic. Also, current client browsers (i.e., software
`
`
`
`
`
`
`
`applications for accessing and communication with the
`
`
`
`
`
`
`
`Internet) are typically configured to transmit network traffic
`
`
`
`
`
`
`
`
`
`via a specific server and once configured, remain set in that
`
`1
`
`
`
`US 6,766,373 B1
`
`
`2
`
`
`
`
`
`
`
`configuration until the user manually changes the settings to
`utilize another server. Thus,
`if the server connection is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`congested, the user may either remain on the connection or
`
`
`
`
`
`
`
`
`terminate the session and attempt to secure a faster connec-
`
`
`
`
`
`
`
`
`
`tion by re-connecting to the same server. Also,
`if the
`
`
`
`
`
`
`
`connection is lost during a session, and/or another connec-
`
`
`
`
`
`
`
`
`tion is made to complete the session, the session information
`
`
`
`
`
`
`
`
`
`is usually lost
`(or unrecoverable) and the user has to
`re-connect via the same server and start the session over.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Network input/output (I/O) performance is often a prob-
`lem when using a browser in an intranet to access the World
`
`
`
`
`
`
`
`
`Wide Web or Internet. In most intranet cases, the client is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`required to use a sock server or a proxy server before a
`
`
`
`
`
`
`
`connection can be made to the Internet. In a typical intranet,
`
`
`
`
`
`
`
`
`
`there are several sock or proxy severs that may be geo-
`
`
`
`
`
`
`
`graphically dispersed within the network. The performance
`
`
`
`
`
`
`
`
`
`of the servers varies throughout the day due to factors such
`
`
`
`
`
`
`
`
`
`
`as location,
`time of day,
`loading, etc. Thus,
`in most
`
`
`
`
`
`
`
`
`networks, auto-proxy servers, which filter the local intranet
`traffic from the external Internet
`traffic, are utilized to
`
`
`
`
`
`
`
`
`
`
`
`
`
`improve performance of sock servers.
`
`
`
`
`
`
`
`To address such performance concerns, special tools or
`
`
`
`
`
`
`components have been developed to improve communica-
`
`
`
`
`
`
`
`
`tion to servers connected to the Internet. For example,
`
`
`
`
`
`
`
`various load balancing solutions have been implemented,
`
`
`
`
`
`
`
`
`such as Local Director of Cisco Systems. Local Director
`
`
`
`
`
`
`
`
`performs load balancing and interfaces with the Internet-
`
`
`
`
`
`
`
`
`based client attempting to access the content servers. All
`traffic across the Internet to content servers is thus shielded
`
`
`
`
`
`
`
`
`by Local Director. US. Pat. No. 5,774,660 discloses a load
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`balancer having a virtual address connected to a multi-node
`server. The load balancer receives all incoming Internet
`
`
`
`
`
`
`
`
`requests for server access, and modifies the destination
`
`
`
`
`
`
`
`
`address to reflect the correct server node that ultimately
`
`
`
`
`
`
`
`
`services the request. These solutions are all server-based and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`implemented on the back end of the network, i.e., the server
`connection to the Internet itself.
`
`
`
`
`
`
`
`
`
`
`The present invention recognizes that it would therefore
`
`
`
`
`
`
`
`be desirable to have a method, system, and program product
`
`
`
`
`
`for dynamically improving a client-to-network session con-
`
`
`
`
`
`
`nection and performance. A method, system, and program
`product, which allows a client browser to switch from one
`
`
`
`
`
`
`
`connection route to another route during a network session
`
`
`
`
`
`
`without losing session information would be a welcomed
`
`
`
`
`
`
`
`
`
`
`
`
`improvement. These and other benefits are provided in the
`
`
`present invention.
`SUMMARY OF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`A system is disclosed for providing continuous connec-
`tion between a client and a network during a session. The
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`system comprises of a connection utility, which monitors a
`network session for an occurrence of a pre-defined event
`
`
`
`
`
`
`
`
`such as a connection break, a slow or congested connection,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`or a change in the type of data being transmitted. The system
`
`
`
`
`
`
`is particularly advantageous in scenarios where a session’s
`connection is lost and the session has to be reconnected to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the network. When any one of the pre-defined conditions
`
`
`
`
`
`
`
`
`occur, the session is automatically routed from the present
`connection route to another connection route. The session is
`
`
`
`
`
`
`
`then completed on the other connection route. In order to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`complete the re-routing of the sessions, session information
`is cached on the client and the server. The session data is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tagged with the original session ID. On the server, a special
`Client Key is stored for later retrieval, and on the client a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`special Server Key is stored. During the reconnect,
`the
`server uses its previously stored session data associated with
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 12 of 19
`
`Page 12 of 19
`
`

`

`
`3
`
`
`
`
`
`
`
`
`
`the client key and previous session ID to regain a new
`
`
`
`
`
`
`
`
`session connection. The client uses its previously stored
`
`
`
`
`
`
`
`
`
`session data to regain its side of the connection and to pass
`
`
`
`
`
`
`
`
`
`
`the proper request over the wire to the server. This special
`“handshake” occurs at session reconnect time and allows the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`special session re-connection to occur. The re-routing of the
`
`
`
`
`
`
`session is completed with no noticeable loss in connection or
`
`
`
`
`
`
`session information. Thus, a substantially seamless switch-
`ing of the session from the first connection route to the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`second connection route is implemented.
`
`
`
`
`
`
`
`The above as well as additional objectives, features, and
`
`
`
`
`
`
`advantages of the present invention will become apparent in
`
`
`
`
`
`the following detailed written description.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`The novel features believed characteristic of the invention
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`are set forth in the appended claims. The invention itself,
`
`
`
`
`
`
`
`
`however, as well as a preferred mode of use,
`further
`
`
`
`
`
`
`
`objectives, and advantages thereof, will best be understood
`
`
`
`
`
`
`
`
`
`by reference to the following detailed description of an
`
`
`
`
`
`
`
`illustrative embodiment when read in conjunction with the
`
`
`
`accompanying drawings, wherein:
`
`
`
`
`
`
`FIG. 1 depicts a data processing system,
`in which a
`
`
`
`
`
`
`preferred embodiment of the present
`invention may be
`
`implemented;
`
`
`
`
`
`
`FIG. 2 is a high-level block diagram of a client browser
`
`
`
`
`
`
`
`
`within an intranet configuration in accordance with one
`
`
`
`
`embodiment of the present invention;
`
`
`
`
`
`FIG. 3 illustrates a browser-network configuration with
`
`
`
`
`
`
`multiple selectable server-connecting media and/or routes in
`
`
`
`
`
`
`accordance with a preferred embodiment of the present
`invention;
`
`
`
`
`
`
`
`FIG. 4 is a block diagram of a modified browser appli-
`cation with a selectable connection button for opening a
`
`
`
`
`
`
`
`
`
`
`
`
`
`connection settings window in accordance with a preferred
`embodiment of the present invention;
`
`
`
`
`FIG. 5A is a block diagram of a server-connections GUI
`
`
`
`
`utilized in accordance with a preferred embodiment of the
`
`
`
`
`
`
`
`present invention;
`FIG. 5B is a block diagram of an in-session connection
`
`
`
`
`modification window utilized in accordance with a preferred
`
`
`
`
`
`embodiment of the present invention;
`
`
`
`
`FIG. 6A is a block diagram of a table of connection
`
`
`
`
`
`
`
`
`attributes utilized in accordance with a preferred embodi-
`
`
`
`
`
`
`
`
`
`
`ment of the present invention;
`
`
`
`
`
`
`
`FIG. 6B is a flow chart of the process of determining a
`best connection route in accordance with a preferred
`
`
`
`
`
`
`
`embodiment of the present invention;
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 7 is a flow chart of the process of completing a
`network connection in accordance with a preferred embodi-
`
`
`
`
`
`
`
`
`
`
`ment of the present invention;
`
`
`
`
`
`FIG. 8 is a flow chart of the process of switching a session
`from one connection route to another in accordance with
`
`
`
`
`
`
`
`
`
`
`
`
`
`another preferred embodiment of the present invention;
`FIG. 9 is a block diagram of the TCP/IP header with an
`
`
`
`
`
`
`
`
`
`
`
`
`
`encoded call-back component for directing client call-backs
`
`
`
`
`
`
`
`in accordance with a preferred embodiment of the present
`invention; and
`
`
`
`
`
`
`
`
`
`FIGS. 10 and 11 are block diagrams of specific examples
`of a client connected to a network via two possible routes to
`
`
`
`
`
`
`
`
`enable the switching of a session from one connection route
`
`
`
`
`
`
`
`
`to another in accordance with another preferred embodiment
`
`
`
`
`
`
`
`
`
`
`
`of the present invention.
`DESCRIPTION OF AN ILLUSTRATIVE
`
`EMBODIMENT
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The present invention is directed to a method, system, and
`
`
`
`
`
`
`program product implemented within a client system, which
`
`
`
`
`
`
`Page 13 of 19
`
`
`
`US 6,766,373 B1
`
`
`4
`
`
`
`
`
`
`
`allows a browser application to automatically select an
`
`
`
`
`
`
`
`
`effective network route from the client system to a network
`
`
`
`
`
`
`
`during network communication. As utilized within the
`
`
`
`
`
`
`
`invention, the term “effective” refers to a better performing
`
`
`
`
`
`
`
`
`
`
`the best performing or optimal) route, based on
`(if not
`
`
`
`
`
`
`
`known or available criteria and present network conditions.
`
`
`
`
`
`
`
`The preferred embodiment is described with reference to
`
`
`
`
`
`
`
`
`optimal routes, but is done so merely for illustrative pur-
`
`
`
`
`
`poses. In particular, a software implemented application of
`
`
`
`
`
`
`
`
`the present invention expands the functionality of a tradi-
`
`
`
`
`
`
`tional browser to permit a multiple-route connection setting
`
`
`
`
`
`
`
`(or configuration), by which the browser is not restricted to
`
`
`
`
`
`
`
`
`a connection via a single specific server and connection
`
`
`
`
`
`
`
`medium, but is permitted to select from among multiple
`
`
`
`
`
`
`
`
`servers and multiple connection media. The software imple-
`
`
`
`
`
`
`
`mented application is referred to herein as a connection
`
`
`
`
`
`
`
`utility. In a preferred embodiment, the invention reduces the
`
`
`
`
`
`
`need to manually change a network communication con-
`
`
`
`
`
`
`
`
`figuration from a particular server to another and enables the
`
`
`
`
`
`
`
`
`browser to have flexibility to ensure the best or most efficient
`
`
`
`
`
`
`
`connection routes possible under current loading conditions.
`
`
`
`
`
`
`The invention is implemented in the data processing
`
`
`
`
`
`
`
`system and network environment as illustrated in FIGS. 1
`
`
`
`
`
`
`
`and 2 and 3, respectively. The invention may, however, be
`
`
`
`
`
`
`
`implemented in other types of data processing systems and
`
`
`
`
`
`
`
`
`networks, so, while the present invention may be described
`
`
`
`
`
`
`
`
`with references to these figures, these references should not
`
`
`
`
`be construed in a limiting sense.
`
`
`
`
`
`
`
`
`
`
`the term client is
`For the purposes of this invention,
`
`
`
`
`
`
`
`
`utilized to refer to both the hardware component which is
`
`
`
`
`
`
`
`connected to a network server and the software applications
`
`
`
`
`
`
`
`stored in memory and being run on the hardware component.
`the term client is utilized to mean both a directly
`Also,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`connected network computer system and a stand-alone com-
`
`
`
`
`
`
`
`puter system, such as a user’s home-based computer system.
`
`
`
`
`
`
`
`
`In the preferred embodiment, a client
`is provided with
`
`
`
`
`
`
`
`
`browser application and connection utility for accessing the
`Internet via several possible connection routes. User refers
`
`
`
`
`
`
`
`
`primarily to an individual who utilizes the client. Further, the
`
`
`
`
`
`
`
`
`invention applies to connections to servers of both an
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`intranet and Internet via the browser application running on
`the client.
`
`
`
`
`
`
`
`
`
`
`The servers of the network are typically data processing
`
`
`
`
`
`
`
`systems having a database, operating system (OS), and
`server software. The server software operates within a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`network server and provides the support for Internet access
`
`
`by clients.
`
`
`
`
`
`
`
`
`With reference now to the figures and in particular with
`
`
`
`
`
`
`
`reference to FIG. 1, a computer system that may be utilized
`
`
`
`
`
`
`
`
`as a standalone computer system or one of the client or
`
`
`
`
`
`
`
`servers on a network is presented. Computer system 20
`
`
`
`
`
`
`comprises a Central Processing Unit (CPU) housed in a
`
`
`
`
`
`
`
`
`
`system unit 22. System unit 22 also provides connections for
`
`
`
`
`
`
`
`various hardware components including disk drives 40 and
`
`
`
`
`
`
`
`memory devices (not shown). Several Peripheral
`input/
`
`
`
`
`
`
`
`
`output devices are connected to the CPU. These input/output
`
`
`
`
`
`
`
`
`
`devices include keyboard 82, mouse 84, printer 94, CD
`ROM 78, and display monitor 30.
`
`
`
`
`
`Also coupled to CPU are various external devices, includ-
`
`
`
`
`
`
`ing modem 92, and network adapter 90, utilized for con-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`necting data processing system 20 to other systems and/or
`networks, as is illustrated in FIGS. 2 and 3. CD rom 78,
`
`
`
`
`
`
`
`
`
`
`
`modem 92, and network adapter 90 are depicted as external
`components; however those skilled in the arts are familiar
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`with the various architectures of data processing systems
`
`
`
`
`
`
`
`and understand that these components may be housed inside
`
`
`
`
`of system unit 22.
`
`
`
`
`
`
`
`
`
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`
`30
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`Page 13 of 19
`
`

`

`5
`
`Modem 92 is a communication device that enables com-
`
`
`
`
`
`
`
`
`
`
`
`
`
`puter system 20 to transmit information over standard tele-
`phone lines or wireless connections such as cellular. Modem
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`92 converts digital computer signals to interlock signals
`
`
`
`
`
`
`
`suitable for communications over these telephone media.
`
`
`
`
`
`
`
`Modem 92 can be utilized to connect data processing system
`
`
`
`
`
`
`
`
`20 to a server via remote access protocols. Modem 92 may
`
`
`
`
`
`
`
`also provide a connection to other sources, such as an
`
`
`
`
`
`
`
`
`electronic bulletin board (BBS) or the World Wide Web
`
`
`
`
`
`
`
`(Internet). Network adapter 90 may be used to connect data
`
`
`
`
`
`
`processing system 20 to a network such as an intranet as
`
`
`depicted in FIG. 2.
`
`
`
`
`
`
`Computer system 20 also preferably includes an interface
`
`
`
`
`
`
`
`
`such as a graphical user interface (GUI) provided by an
`
`
`
`
`
`
`
`
`operating system (OS) 24 that resides within machine read-
`
`
`
`
`
`
`
`
`able media to direct the operation of computer system 20.
`
`
`
`
`
`
`
`
`Any suitable machine-readable media may retain the OS,
`such as RAM, ROM, SCSI disk drive, and other disk and/or
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tape drive(e.g. magnetic diskette, magnetic tape, CD-ROM,
`
`
`
`
`
`
`
`
`
`optical disk, or other suitable storage media). Also, any
`
`
`
`
`
`
`
`
`suitable OS 24 may direct the CPU of the data processing
`
`
`system 20.
`
`
`
`
`
`
`Further, computer system 20 preferably includes at least
`
`
`
`
`
`
`
`one software application (program product) 26 that resides
`
`
`
`
`
`
`
`within machine readable media. The software application
`
`
`
`
`
`may be accessible by OS 24, or may be incorporated into an
`
`
`
`
`
`
`
`OS control program. Preferably, software application 26
`contains instructions that when executed on the CPU carry
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`out the particular operations of the present invention as
`described herein.
`
`
`SELECTING BROWSER-NETWORK
`
`CONNECTION
`
`10
`
`15
`
`20
`
`25
`
`30
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Referring now to FIG. 2, a high-level block diagram of an
`
`
`
`
`
`
`
`
`intranet with multiple server connections for a single client
`is illustrated in accordance with a preferred embodiment of
`
`
`
`
`
`
`
`
`
`
`
`
`
`the present invention. Intranet 200 comprises a plurality of
`
`
`
`
`
`
`
`
`servers that are at different geographical locations. These
`servers include Chicago servers 203A, New York servers
`
`
`
`
`
`
`
`
`203B, California servers 203C, and Texas servers 203D.
`
`
`
`
`
`
`
`
`Client browser 201 connects to each server via a different
`
`
`
`
`
`
`
`
`connection medium. Thus, client browser 201 is connected
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`via ethernet 205 to Chicago servers 203A, via Token Ring
`209 to New York servers 203B, via an internet Service
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Provider (ISP) to California servers 203C, and via Satellite
`211 to Texas servers 203D. In a preferred embodiment, the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ability of a client
`to connect
`to different servers using
`
`
`
`
`
`
`different connecting medium is a major consideration uti-
`
`
`
`
`
`
`
`lized in selecting optimal routes as will be described below.
`The invention, however also finds applicability in a network
`
`
`
`
`
`
`
`in which each server is connected to the client via the same
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`connecting medium. Intranet 200 connects to Internet (not
`
`
`
`
`
`
`
`shown) via network Internet connectors 215. Client browser
`access to the Internet is routed through the Intranet servers
`
`
`
`
`
`
`
`
`203A—203D, which in effect serve as proxy servers.
`
`
`
`
`
`
`
`
`
`
`
`
`
`The preferred embodiment of the present invention places
`
`
`
`
`
`
`
`
`the capability to choose the best performing network route
`
`
`
`
`
`
`
`
`
`
`in the client (i.e., away from the server) and specifically
`within the browser or other network access application
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`running on the client. The invention assists in solving the
`
`
`
`
`
`
`
`congestion problems within an Intranet and/or the Internet.
`The invention also involves the encoding of software call-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`backs into the protocol stack and executing of a software
`
`
`
`
`
`
`
`
`
`application that utilizes the call-back utility to assist
`in
`
`
`
`
`
`
`
`choosing a better performing network route. The invention
`
`
`
`
`
`
`
`
`has greatest applicability in an intranet and/or Internet
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`Page 14 of 19
`
`
`
`US 6,766,373 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`6
`
`
`
`
`
`
`
`environment, but may also apply to basic LANs or other
`
`
`
`types of multiple-server networks.
`
`
`
`
`
`
`For the purposes of the invention, use of the term network
`is understood to refer to both Wide Ar

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