`
`
`
`
`
`
`
`
`
`
`US 6,766,373 B1
`(10) Patent No.:
`a2) United States Patent
`
`
`
`
`
`
`
`
`
` Beadleet al. (45) Date of Patent: Jul. 20, 2004
`
`
`US006766373B1
`
`
`
`
`
`(54) DYNAMIC, SEAMLESS SWITCHING OF A
`
`
`
`NETWORK SESSION FROM ONE
`
`
`CONNECTION ROUTE TO ANOTHER
`
`
`
`
`
`
`
`
`
`Primary Examiner—Moustafa M. Meky
`
`
`
`
`
`
`
`(74) Altorney, Agent, or Firm—Marilyn Smith Dawkins;
`
`
`
`Dillon & Yudell LLP
`
`
`
`(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:
`
`
`
`
`
`
`
`
`ABSTRACT
`(57)
`
`.
`.
`
`
`
`
`
`
`
`Asystem for providing continuous connection 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 and/or condition. The
`
`
`
`
`
`system is particularly advantageous in scenarios where a
`
`
`
`
`
`
`
`
`
`
`session’s connection is lost and the session has to be
`International Business Machines
`
`
`
`
`
`
`
`
`
`
`
`reconnected to the network. The system also finds applica-
`Corporation, Armonk, NY (US)
`
`
`
`
`
`
`
`
`.
`.
`bility with several other types of events/conditions, includ-
`oo.
`.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(*) Notice:—Subject to any disclaimer, the term ofthis ing a connection break, a slow or congested connection or a
`
`
`
`
`
`
`
`
`
`
`
`
`patent is extended or adjusted under 35
`changein the type of data being transmitted. When any one
`
`
`
`
`
`
`
`
`
`
`
`US.C, 154(b) by 629 days.
`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
`
`
`
`
`
`
`
`
`
`Filed:
`May 31, 2000
`sessions, session information is cached on the client and the
`(22)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(51) Unt, CL.ccecccccccececcccsseesssteeseeesneeses GO06F 13/00_server. The session data is tagged with the original session
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(52) US. CMe
`ceecssecccccssssssssseesesssssssseneeees 709/227; 709/203
`ID. Onthe server, a special Client Key is storedfor later
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(58) Field of Search o......c00cccccccccseecen 709/200, 201,
`‘tetrieval, and onthe client a special Server Keyis stored.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`709/203, 217, 218, 219, 227, 228, 229
`During the reconnect, the server uses its previously stored
`
`
`
`
`
`
`
`
`
`session data associated with the client key and previous
`
`
`
`
`
`
`
`
`
`
`session ID to regain a new session connection. The client
`References Cited
`
`
`
`
`
`
`
`
`uses its previously stored session data to regain its side of the
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. PATENT DOCUMENTS
`connection and to pass the proper request over the wire to
`
`
`
`
`
`
`
`
`5,347,539 A *
`9/1994 Sridhar et al. wees 375/3
`the server. This special “handshake” occurs at session recon-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,835,724 A * 11/1998 Smith ceecccecceceeeeee 707/501
`nect time and allows the special session re-connection to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,859,959 A *
`1/1999 Kimball et al... 370/216
`occur. The re-routing of the session is completed with no
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,145,089 A * 11/2000 Le et al. veces 714/4
`noticeable loss in connection or session information. Thus,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,286,058 B1 *
`9/2001 Hrastar et al... 709/239
`a substantially seamless switching of the session from the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,324,161 BL * 11/2001 Kirch oe eee 370/217
`first connection route to the second connection route is
`
`
`
`
`
`
`
`
`
`6,490,610 Bl * 12/2002 Rizvietal. we. 709/101
`implemented.
`
`
`
`
`
`
`
`6,519,224 B2 *
`2/2003 Hrastar et al... 370/227
`
`
`* cited by examiner
`
`
`
`(56)
`
`
`
`
`
`
`27 Claims, 10 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Connection
`
`
`
`
`
`
`
`change
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`condition ?
`
` to optimal route
`
`Switch connection
`
`
`
`
`
`
`
`
`
`Page | of 19
`
`SAMSUNG EXHIBIT 1008
`
`SAMSUNG EXHIBIT 1008
`
`Page 1 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`
`Sheet 1 of 10
`
`
`
`US 6,766,373 B1
`
`
`
`
`
`NETWORK
`
`
`
`
`
`
`
`
`ADAPTER
`
`
`
`SSSSSPESSo
`
`
`
`oeoeEZ
`
`aS
` 3
`SY
`SI
`
`<>we:Se
`
`
`
`A
`
`
`Tat
`tan]iovont
`tN
`sf we
`Gi
`SAR?
`&,
`NY
`@\N
`PPL.
`RY
`Y
`
`Sav
`
`
`
`wn
`Ws
`fez
`H—
`=<
`re
`On
`na
`<
`
`
`
`<
`~
`
`=
`Lu
`Q
`©
`=
`
`~N
`o>
`
`Page 2 of 19
`
`=
`OQ]
`min
`a
`oO
`
`oO
`~~
`
`Page 2 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 2 of 10
`
`
`
`US 6,766,373 B1
`
`
`G2M1Uel|D
`
`|
`
`
`
`LANVYLNI XAxOld
`
`00
`
`SLe
`
`
`
`yO,MAN
`
`yIOAMON|AXxOld
`
`JOAMONZAXOld
`
`XAXxOldg
`
`|Bulyudyo]
`
`CPup
`
`a3[a1eS
`
`JaSMO1g
`
`
`
`yausayiy
`
`obeo1y)
`
`|AxOld
`
`obeoy)
`
`Z@AXOlq
`
`obea1yy)
`
`XAXOld
`
`BIUIOFIED
`
`BIUIOJED|Axold
`
`
`
`
`
`BIWOH|EDZAXOJd
`
`GL?
`
`Page 3 of 19
`
`Page 3 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 3 of 10
`
`
`
`US 6,766,373 B1
`
`
`303A
`
`
`
`: pC
`
`215
`
`
`
`
`
`
`
`
`
`
`3014
`
`Web “|
`
`
`Browser
`
`
`
`Wireless
`
`
`
`
`307
`
`311
`
`
`Phone
`
`
`Satellite
`
`
`
`
`303B
`
`303C
`
`
`
`Server
`
`
`
`Server
`
`
`
`
`
`
`
`
`Cable Modem
`
`
`
`
`303D
`
`309
`
`
`
`Server
`
`
`
`
`Fig. 3
`
`Page 4 of 19
`
`Page 4 of 19
`
`
`
`U.S. Patent
`
`Jul. 20, 2004
`
`Sheet 4 of 10
`
`US 6,766,373 B1
`
`JJOSOIDIPY-MMM[e
`
`V y
`
`p
`
`00”
`
`<<
`
`S
`
`quf}09.2[fa]
`
`suol}99uU7)(suoy0auU09} Alo\SIHSa]UOAe4YyoIeas&Ww®&||(suonseuuo9)
`
`
`
`
`ysaljey=—s-pJeMJo4@“¢&dos
`
`SjOO]SOJOAR4MaIApy
`
`4910|dxyJOUL9}U]
`WO00'J8AJ8S*MMM\\:d)1y
`
`WOH
`
`djeH
`
`V7?
`
`Page 5 of 19
`
`Page 5 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 5 of 10
`
`
`
`US 6,766,373 B1
`
`
`
`
`
`
`
`
`
`
`Select Default
`
`Connection
`
`505A
`
`
`
`
`Server Selections
`
`
`
`507
`
`
`
`
`
`
`
`Server 1
`: California
`
`
`Server 2 : Texas
`
`
`Server 3 : New York
`
`
`Server 4 : Chicago
`
`
`
`
`
`
`
`
`
`
`
`Server
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`515
`
`
`
`
`
`
`
`Update Settings
`
`
`
`511
`
`
`513
`
`
`517
`
`
`
`
`
`
`CONDITION MESSAGE
`
`
`
`
`
`CLICK BELOW TO
`
`
`SWITCH TO MORE
`
`
`
`OPTIMAL ROUTE
`
`
`
`
`
`Page 6 of 19
`
`Page 6 of 19
`
`
`
`
`U.S. Patent
`
`
`
`Jul
`
`
`
`. 20, 2004
`
`
`
`
`Sheet 6 of 10
`
`
`
`766,373 BI
`US 6
`9
`
`
`
`
`
`ulewopwoo'awebuqigUOl}99UUOD
`
`JaAJaS
`
`ulewopwoo'awebwa!
`
`YWUOI]D9UUODJ38AJ8S
`
`S91}
`
`Souja
`
`
`
`
`
`
`
`BAIJE[9Y
`
`Burney
`
`BLO)
`
`
`J9AJAS|YUOI}DUUODJBAJaS|}WooawebUi|404IINeEJaqsojaabesaaesoujawabelaneulewopSUIRWOP||eGUOIJOBULOD
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 7 of 19
`
`Page 7 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 7 of 10
`
`
`
`US 6,766,373 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Is there
`
`
`
`
`historical
`
`
`data ?
`
`
`
`
`
`Does
`
`
`
`
`user wish to
`
`
`
`utilize historical
`
`
`
`
`
`data ?
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Wait for attributes
`
`
`of server/connection
`
`
`
`or user preferences
`
`
`to change
`Terminator
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 8 of 19
`
`Page 8 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 8 of 10
`
`
`
`US 6,766,373 B1
`
`
`
`703
`
`
`User request
`
`Internet connection
`
`
`
`
`705
` Set
`
`
`connection
`
`
`
`
`defaults ?
`
`
`No
`
`
`
`
`
`
`
`
`
`
`711
`
`
`
`
`
`_cefaultwi ,
`
`
`
`
`99
`‘
`
`
`No
`
`
`§721
`
`
`
`Check connections
`
`
`
`table for most
`
`
`optimal route
`723
`
`
`
`
`
`
`
`
`
`Connect via most
`
`
`optimal route
`725
`
`
`
`
`Update table
`
`
`
`
`
`
`709
`
`
`settings
`
`
`(Set optimal route
`
`
`as default)
`
`
`
`
`Fig. 7
`
`Page 9 of 19
`
`707
`
`
`
`wes
`
`
`
`Connect via defaults
`
`
`
`
`
`
`709
`
`End
`
`
`
`
`713
`
`Yes
`
`
`
`
`
`Makeinitial
`connectionvia
`
`
`default
`
`
`
`
`715
`
`
`Check alternate
`routes
`
`
`
`
`
`717
`
`
`
`
`
`
`
`
`More
`
`optimal routes
`
`found ?
`
`
`
`No
`
`
`
`709
`
`
`
`End
`
`
`
`
`
`Page 9 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 9 of 10
`
`
`
`US 6,766,373 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Connection
`
`change
`
`condition ?
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Switch connection
`
`
`
`to optimal route
`
`
`
`
`
`
`
`ADDR
`
`
`DEST (NIC)}
`
`ADDR
`
`
`
`
`SRC IP
`
`ADDR
`
`
`DEST IP
`
`
`|PROTOCOL
`
`
`
`
`
`
`
`
`
`
`Fig. 9
`
`Page 10 of 19
`
`Page 10 of 19
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jul. 20, 2004
`
`
`
`
`Sheet 10 of 10
`
`
`
`US 6,766,373 B1
`
`
`
`Internet
`
`
`
`
`
`
`
`
`
`
`Satellite
`transmission
`
`
`
`
`
`
`Modem
`transmission
`
`
`
`
`
`
`
`1011
`1009
` 1007
`
`
`1003S bmn1
`
`
`
`1005
`
`
`
`
`Client Browser
`
`
`
`Fig. 10
`
`1107
`
`
`
`
`1105
`
`
`
`Cell Phone and
`Modem
`
`
`
`Wireless LAN
`(Bluetooth)
`
`
`
`
`1109
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`1101 Network
`
`
`Application
`
`
`(Client Browser)
`
`
`Fig. 11
`
`
`
`Page 11 of 19
`
`Page 11 of 19
`
`
`
`
`
`US 6,766,373 B1
`
`1
`
`
`
`
`
`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
`
`
`
`
`2
`
`
`
`
`
`
`
`configuration until the user manually changesthe 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 browserin an intranet to access the World
`
`
`
`
`
`
`
`
`
`Wide Webor Internet. In most intranet cases, the client is
`
`
`
`
`
`
`
`
`required to use a sock server or a proxy server before a
`1. Technical Field:
`
`
`
`
`
`
`
`
`
`connection can be madeto the Internet. In a typical intranet,
`15
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to computer
`invention relates in general
`The present
`there are several sock or proxy severs that may be geo-
`
`
`
`
`
`
`
`
`
`
`
`
`
`networks and in particular to communications within com-
`graphically dispersed within the network. The performance
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`puter networks. Still more particularly, the present invention
`of the servers varies throughout the day due to factors such
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`relates to a method, system, and program for improving a
`as location,
`time of day,
`loading, etc. Thus,
`in most
`
`
`
`
`
`
`
`
`
`
`
`
`
`client’s communication performance within a network by
`networks, auto-proxy servers, whichfilter the local intranet
`20
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`traffic from the external Internet
`traffic, are utilized to
`dynamically switching a session connection fromafirst
`
`
`
`
`
`
`
`
`
`
`connection route to another route in response to an occur-
`improve performance of sock servers.
`
`
`
`
`
`
`
`
`
`
`
`rence of specific pre-defined events.
`To address such performance concerns, special tools or
`
`
`
`
`
`
`
`
`
`
`
`2. Description of the Related Art:
`components have been developed to improve communica-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tion to servers connected to the Internet. For example,
`Computer networks, such as the Internet, are typically
`
`
`
`
`
`
`
`
`
`
`
`
`
`based on Client/Server software architectures. These archi-
`various load balancing solutions have been implemented,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`such as Local Director of Cisco Systems. Local Director
`tectures provide a versatile infrastructure that supports
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`performs load balancing and interfaces with the Internet-
`shared access to server resources. A client is typically a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`based client attempting to access the content servers. All
`requester of services, and a serveris the providerof services.
`traffic across the Internet to content servers is thus shielded
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Asingle machine can be both a client and a server depending
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`by Local Director. U.S. Pat. No. 5,774,660 discloses a load
`on the software configuration. A client machine is loaded
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`balancer having a virtual address connected to a multi-node
`with client software, while a server machine is loaded with
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`server. The load balancer receives all incoming Internet
`server software. Clients can be either stand-alone computer
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`requests for server access, and modifies the destination
`systems (like personal computers) or “dumber” systems
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`address to reflect the correct server node that ultimately
`adapted for limited use with a network.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`services the request. These solutionsare all server-based and
`A generalized client-server computing network has sev-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`implemented on the back end of the network,i.e., the server
`eral nodes or servers which are interconnected, either
`connection to the Internetitself.
`
`
`
`
`
`
`
`
`
`
`
`
`directly to each other or indirectly through one of the other
`
`
`
`
`
`
`
`
`
`
`
`
`The present invention recognizes that it would therefore
`servers. Based on network configuration, the connection by
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`be desirable to have a method, system, and program product
`the client to the network may be via an ethernet connection
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`for dynamically improving a client-to-network session con-
`or token ring, etc. Other direct and/or indirect connection
`
`
`
`
`
`
`
`
`
`
`
`
`
`nection and performance. A method, system, and program
`methods (e.g.
`telephone connection via remote access
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`product, which allows a client browser to switch from one
`protocol) are also possible whena client is connected from
`
`
`
`
`
`
`
`
`
`
`
`
`
`connection route to another route during a network session
`the user’s home, for example. In traditional networks, only
`
`
`
`
`
`
`
`
`
`
`
`
`
`without losing session information would be a welcomed
`a single connecting medium to the network is possible for
`
`
`
`
`
`
`
`each client.
`
`
`improvement. These and other benefits are provided in the
`
`
`
`
`
`
`
`
`present invention.
`The network can be a localized network or geographically
`
`
`
`
`
`
`
`dispersed network and can be further connected to other
`SUMMARYOF THE INVENTION
`
`
`
`
`
`
`
`
`networks. Each server is essentially a stand-alone data
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`processing (computer) system, having one or more
`A system is disclosed for providing continuous connec-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`processors, memory devices, and communications devices,
`tion between a client and a network during a session. The
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`that has been adapted (programmed) for providing informa-
`system comprises of a connection utility, which monitors a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tion and/or services to individual users at another set of
`network session for an occurrence of a pre-defined event
`nodes or client workstations.
`
`
`
`
`
`
`
`
`
`such as a connection break, a slow or congested connection,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`In a Local Area Network (LAN), for example, clients are
`or a changein the type of data being transmitted. The system
`
`
`
`
`
`
`
`
`
`
`
`
`usually configured to communicate via a particular server.
`is particularly advantageous in scenarios where a session’s
`
`
`
`
`
`
`connection is lost and the session has to be reconnected to
`
`
`
`
`
`
`
`For geographically dispersed networks, as in an intranet or
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Internet, a client’s network communication may occur via a
`the network. When any one of the pre-defined conditions
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`localized server or a server in another geographic location.
`occur, the session is automatically routed from the present
`
`
`
`
`
`
`
`
`connection route to another connection route. The session is
`
`
`
`
`
`
`
`The use of auto-proxy servers in a LAN system helps to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`improve network performance. However, only one connec-
`then completed on the other connection route. In order to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tion route may be configured within the client at a particular
`complete the re-routing of the sessions, session information
`
`
`
`
`
`
`
`
`
`is cached on the client and the server. The session data is
`
`
`
`
`
`
`
`
`
`
`time and these servers can become congested during heavy
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`usageor traffic. Also, current client browsers (i.e., software
`tagged with the original session ID. On the server, a special
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`applications for accessing and communication with the
`Client Key is stored for later retrieval, and on the client a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Internet) are typically configured to transmit network traffic
`special Server Key is stored. During the reconnect,
`the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`via a specific server and once configured, remain set in that
`server uses its previously stored session data associated with
`
`
`
`
`
`
`
`
`
`10
`
`
`
`25
`
`
`
`30
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`
`
`Page 12 of 19
`
`
`
`
`
`
`
`
`
`
`
`
`Page 12 of 19
`
`
`
`
`
`US 6,766,373 B1
`
`
`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 allowsthe
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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 apparentin
`
`
`
`
`
`the following detailed written description.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`The novelfeatures 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 advantagesthereof, 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 componentfor 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
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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
`
`
`
`
`
`
`
`knownoravailable 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 browseris 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
`
`
`
`
`
`
`
`
`browserto haveflexibility 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 memoryand 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 whoutilizes 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 CPUare 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 housedinside
`
`
`
`
`of system unit 22.
`
`
`
`
`
`
`
`
`
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`
`30
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`
`
`Page 13 of 19
`
`Page 13 of 19
`
`
`
`
`5
`Modem 92 is a communication device that enables com-
`
`
`
`
`
`
`
`
`
`
`
`
`
`puter system 20 to transmit information over standardtele-
`
`
`
`
`
`
`
`phonelines 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,SCSIdisk 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 includesat 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.
`
`
`
`10
`
`15
`
`20
`
`25
`
`30
`
`
`
`
`
`
`
`US 6,766,373 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`6
`
`
`
`
`
`
`
`environment, but may also apply to basic LANs or other
`
`
`
`types of multiple-server networks.
`
`
`
`
`
`
`For the purposesof the invention,use of the term network
`is understood to refer to both Wide Area Netwroks such as
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the Internet and to Local Area Networks (LAN)such as an
`
`
`
`
`
`
`
`
`intranet. The network types may provide different access
`
`
`
`
`
`
`
`methodsbut are essentially similar in their functionality, as
`
`
`
`
`
`
`
`
`
`those skilled in the art are aware. A network preferably
`
`
`
`
`
`
`
`consist of a numberof servers and provides network clients
`
`
`
`
`
`
`
`with a commonprotocol for communicating andtransferring
`
`
`
`
`
`
`
`software and information electronically within the network
`environment.
`
`
`
`
`
`
`
`
`Turning now to FIG. 3, there is illustrated another net-
`
`
`
`
`
`
`work configuration including a client browser coupled to
`
`
`
`
`
`
`
`multiple servers. The illustrated network may represent an
`
`
`
`
`
`
`
`intranet configuration as in FIG. 2 or a stand alone client
`
`
`
`
`
`
`configuration. The intranet configuration shows a client,
`connects to a server of the intranet. The intranet server is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`then utilized to provide access to Internet servers. In the
`
`
`
`
`
`
`
`stand alone client configuration, a client connects directly to
`
`
`
`
`
`
`
`
`
`a serverof the Internet (i.e., without the intranet server). As
`
`
`
`
`
`
`
`
`an Intranet configuration, the elements of FIG. 3 are similar
`
`
`
`
`
`
`
`
`
`to the elements of FIG. 2, but client may be connected
`
`
`
`
`
`
`
`
`utilizing remote access (e.g., access from a user’s home).
`
`
`
`
`
`
`However, in a standaloneclient configuration, browser 301
`
`
`
`
`
`
`
`
`
`is not coupled to an Intranet. Servers 303A-303D may be
`
`
`
`
`
`
`
`servers of different Internet Service Providers (ISPs), which
`are connected to browser 301 via different connection
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`media. Thus, browser 301 is connected to server 303A via a
`
`
`
`
`
`
`
`DSL connection 305, to server 303B via a wireless phone
`
`
`
`
`
`
`
`connection 307, to server 303Cvia a satellite connection 311
`and to server 303D via a cable modem connection 309. ISP
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`servers 303A—303D connect to the Internet (not shown) via
`ISP-Internet connectors 215.
`
`
`
`
`
`
`
`
`
`The implementation of multiple connection media for a
`
`
`
`
`
`
`
`single client is further enhanced by permitting a user to
`
`
`
`
`
`
`
`optionally select to utilize a particular routing medium based
`
`
`
`
`
`
`
`on the desired speed of connection. Thusa satellite connec-
`
`
`
`
`
`
`
`
`
`tion maybe selected for huge data transfer, while a DSL or
`
`
`
`
`
`
`
`phone modem connection is utilized for email correspon-
`
`
`
`
`
`
`
`dence. The selection of a particular medium becomes even
`
`
`
`
`
`
`
`more important when each medium hasa corresponding cost
`
`
`
`
`
`
`
`
`factor, which directly affects the user’s determination of use.
`
`
`
`
`
`
`
`In another embodiment, a single server may be accessible to
`
`
`
`
`
`
`
`
`the client browser using one of multiple connecting media.
`
`
`
`
`
`
`
`Thus for example, servers 303A-3