`
`
`
`
`
`
`
`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