throbber
(12) United States Patent
`Goldszmidt et al.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US006195680Bl
`US 6,195,680 Bl
`Feb.27,2001
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) CLIENT-BASED DYNAMIC SWITCHING OF
`STREAMING SERVERS FOR
`FAULT-TOLERANCE AND LOAD
`BALANCING
`
`(75)
`
`Inventors: German Sergio Goldszmidt, Dobbs
`Ferry; Marc Hubert
`Willebeek-LeMair, Yorktown Heights,
`both of NY (US); Kenneth Sau-yee
`Hon, Mid-Levels (HK)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/121,379
`
`(22) Filed:
`
`Jul. 23, 1998
`
`Int. Cl? ...................................................... G06F 13/00
`(51)
`(52) U.S. Cl. .............................................................. 709/203
`(58) Field of Search ........................ 364/DIG. 1, DIG. 2;
`709/200, 202, 203, 105, 208, 209, 210,
`217, 218, 219, 231; 714/4, 2, 22, 3, 6
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`................... 395/200
`12/1994 Attanasio et a!.
`5,371,852
`5,815,663 * 9/1998 Vomini ................................. 709/219
`
`OTHER PUBLICATIONS
`
`"Overview: Bamba" http://www.alphaworks.ibm.com, Aug.
`26, 1996, 4 pages.
`IBM eNetwork Dispatcher, http://www.software.ibm.com,
`May 1998, 17 pages.
`"RTP Payload Format for H.263 Video Streams" ftp://
`ds.internic.net/rfc/ Request for Comments:2190, C. Zhu,
`Intel Corp, Sep. 1997, 13 pages.
`The "Internet Television", Understanding the Browser
`Basics,
`http://w3.ag.uiuc.edu/AIM/Discovery/Net/www/
`television/television.html, Jun. 2, 1998, 2 pages.
`
`1.8 .
`
`K. Bannan, "Philips Magnavox:Philips Magnavox Web TV",
`http://www.zdnet.com/products/content/pcmg/1604/
`pcmg0123.html, PC Magazine, Feb. 18, 1997, 2 pages.
`K. Bannan, "Sony Electronics Inc.:Sony WebTV Internet
`Terminal", http://www.zdnet, com/products/content/pcmg/
`1604/pcmg0125.html, PC Magazine, Feb. 18, 1997,2 pages.
`
`(List continued on next page.)
`
`Primary Examiner-Robert B. Harrell
`(74) Attorney, Agent, or Firm-Wayne L. Ellenbogen
`
`(57)
`
`ABSTRACT
`
`A client-based system for the fault tolerant delivery of
`real-time or continuous data streams, such as real-time
`multimedia streams, e.g., live audio and video clips. Mul(cid:173)
`timedia servers are grouped into two or more sets, for
`example wherein a first set includes one or more primary
`servers using odd-numbered ports and a second set includes
`one or more secondary servers using even-numbered ports.
`The client requests a multimedia stream through a control
`server or gateway which routes requests to the multimedia
`servers; and the client receives the stream directly from a
`selected (primary) server. The client automatically detects
`load imbalances and/or failures (complete or partial) and
`dynamically switches to a secondary server in order to
`continue receiving the real-time multimedia stream with
`minimal disruption and while maintaining a balanced load
`across multiple servers in a distributed network environ(cid:173)
`ment. The determination can be made based on: the received
`bit or frame rate (for video); a bit rate or sample rate (for
`audio); monitoring a delivery rate or for packets arriving out
`of order: for example using packet numbering mechanisms
`available in TCP; sequence numbering or time stamp capa(cid:173)
`bilities of RTP (in combination with the User Datagram
`Protocol (UDP)). In any case, the determination could be
`based on the rate measurement or monitoring mechanism
`falling below (or exceeding) some threshold. Alternately, the
`primary server or the control server could send an explicit
`distress or switch signal to the client. An explicit signal can
`be used for example to switch clients in phases with minimal
`disruption.
`
`46 Claims, 9 Drawing Sheets
`
`Samsung-LG-HTC Ex. 1109 p. 1
`
`

`

`US 6,195,680 Bl
`Page 2
`
`01HER PUBLICATIONS
`
`"desktop conferencing & collaboration", http://www.wpi(cid:173)
`ne.com/, May 26, 1998 White Pine Software, Inc., 17 pages.
`"CU-SeeMe Reflector", http://www.e92plus.co.uk/refiec(cid:173)
`tor.htm, Enhanced CU-SeeMe, Feb. 3, 1998, 2 pages.
`Michael Sattler, "Internet TV With Cu-Seeme", Published
`by Sams Sep. 1995, Abstract from: http://www.amazon(cid:173)
`.com/exec/obidos/ISBN=1575210061/
`6156-9453266-197205, Feb. 3, 1998, 2 pages.
`Vivo Software, Inc-Home Page, http://www.vivo.com/,
`1997 Vivo Software, Inc, May 27, 1998, 4 pages.
`Download RealPlayer Plus, http://www.real.com/products/
`playerplus/index.html?src=download, Copyright (c) Real(cid:173)
`Networks,Inc. and/or its licensors, 1995-1998, 4 pages.
`InterVu:Home, http://www.intervu.com/, May 26,1998,
`InterVu, Inc, 3 pages.
`Video and Audio: Organization and Retrieval in the WWW,
`http://www.vosaic.com/corp/papers/wwwS.html, Z. Chen et
`al., 17 pages, Jul. 12, 1997.
`VOSAIC Corp.Home Page, http://www.vosaic.com/, Copy(cid:173)
`right (c) 1997-98 Vosaic LLC, 11 pages.
`StorNet Texas Home Page, http://storl.stornet.com/Wel(cid:173)
`come.html, Mar. 24, 1998, 5 pages.
`Marathon Products, http://www.marathontechnologies.com/
`products.htm, "Continuous Uptime for Windows NT Appli(cid:173)
`cations", Mar. 24, 1998, 2 pages.
`Software Fault Tolerance, http://www.marathontechnologi(cid:173)
`es.com/software.htm, Marathon's Endurance™ Technology
`& Software Fault Tolerance, Mar. 24, 1998, 5 pages.
`
`Stardust IP Multicast Initiative-Release, http://www.ip(cid:173)
`multicast.com/press/pr980407.hmtl, Television and Internet
`Multicasting Differences Clarified, Apr. 7, 1998, 3 pages.
`MBone(or IP Multicast Information Web, http://www.m(cid:173)
`bone.com/®1994, 1995, 1996, 1997 Vinay Kumar, 26 pages.
`D. M. Dias et al., "A Scalable and Highly Available Web
`Server", COMPCON '96, 8 pages.
`T. Brisco, "DNS Support for Load Balancing", Rutgers
`University Apr. 1995, Network Working Group Request for
`Comments: 1794, Category: Informational, 6 pages.
`P. Mockapetris, Domain Names-Implementation and
`Specification, lSI, Nov. 1987, Network Working Group
`Request for Comments: 1035, 52 pages.
`C. R. Attanasio et al., "A Virtual Multiprocessor Imple(cid:173)
`mented by an Encapsulated Cluster of Loosly Coupled
`Computers", IBM Research Report, Oct. 26, 1992, 2 cover
`pages and pp. 1-13.
`VDOStore-VDOLive Player.Free video streaming client,
`http://www.clubvdo.net/store/Products/VDOnetNDOL(cid:173)
`ive_player.asp, May 26, 1998, 5 pages.
`H. Schulzrinne et al., "Real Time Streaming Protocol
`(RTSP)", Network Working Group, Request for Comments:
`2326, Category: Standards Track, Apr. 1998, pp. 1-92.
`SG15 Plenary May 28, 1966, "Draft Recommendation
`H.323: Visual Telephone Systems and Equipment for Local
`Area Networks which Provide a Non-Guaranteed Quality of
`Service", International Telecommunication Union, 69 pages.
`
`* cited by examiner
`
`Samsung-LG-HTC Ex. 1109 p. 2
`
`

`

`U.S. Patent
`
`Feb.27,2001
`
`Sheet 1 of 9
`
`US 6,195,680 Bl
`
`1.8~
`
`Client
`Agent
`
`1 .1
`
`-------------------1
`I
`I
`'I
`I
`I
`I
`I
`
`Control Server
`
`1. 7
`
`Server Architecture
`
`1.4~=++--
`
`1.92~~~
`
`1.5
`
`1.9~
`
`Cluster
`
`Fig.1a
`
`1 91 r·
`
`1 94
`
`r·
`
`1.6
`
`1 96 r·
`
`Client ID
`
`Primary ID
`
`Secondary I D
`
`Fig. 1 b
`
`Samsung-LG-HTC Ex. 1109 p. 3
`
`

`

`U.S. Patent
`
`Feb.27,2001
`
`Sheet 2 of 9
`
`US 6,195,680 Bl
`
`2.8
`
`Fig. 2(a)
`
`Fig. 2(b)
`
`Fig. 2(c)
`
`Samsung-LG-HTC Ex. 1109 p. 4
`
`

`

`U.S. Patent
`
`Feb.27,2001
`
`Sheet 3 of 9
`
`US 6,195,680 Bl
`
`3.8
`
`Fig. 3(a)
`
`Fig. 3(b)
`
`Fig. 3(c)
`
`Samsung-LG-HTC Ex. 1109 p. 5
`
`

`

`350'
`
`Client
`
`r--354
`
`Browser
`
`353 -"
`NSP Interface
`--- ---------------------1
`ks-355
`
`V Decode
`
`Video
`
`Video
`Render
`
`Server
`
`320'
`
`r321
`HTTP
`Server
`
`~
`,It
`
`~
`11t
`
`File
`Server
`
`j
`
`...l
`
`,...
`"""
`
`.......
`
`.........
`...,...,
`
`........
`
`Network
`Interface
`
`Network
`Interface
`
`Split~
`
`322
`
`HTTP
`
`j
`
`Audio
`Decode
`
`-~
`
`Audio
`Render
`
`Plug-in
`352~----------------------
`
`Fig. 3d
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`"'!"j
`~
`?'
`N
`~-..J
`
`N c c
`'"""'
`
`'JJ. =(cid:173)~
`~ .....
`
`~
`0 ......,
`'0
`
`e
`rJ'l
`-..a-..
`1--"
`\0
`(It
`0..,
`00
`Q
`~
`1--"
`
`Samsung-LG-HTC Ex. 1109 p. 6
`
`

`

`U.S. Patent
`
`Feb.27,2001
`
`Sheet 5 of 9
`
`US 6,195,680 Bl
`
`Client agent sends a request
`message to the control server for
`the multimedia stream.
`
`The control server determines which
`set of streaming servers the client
`agent should connect to.
`
`4.1
`
`4.2
`
`NO
`
`4.5
`
`The control server
`selects a streaming server
`among all that are using
`even-numbered ports based
`on some load-balancing
`heuristics.
`
`The control server
`selects a streaming server
`among all that are using
`odd-numbered ports based
`on some load-balancing
`heuristics.
`
`The selected streaming server starts
`to deliver the real-time multimedia
`data to the client agent.
`
`4.6
`
`Fig. 4
`
`Samsung-LG-HTC Ex. 1109 p. 7
`
`

`

`U.S. Patent
`
`Feb.27,2001
`
`Sheet 6 of 9
`
`US 6,195,680 Bl
`
`The client agent detects that the
`streaming server fails.
`
`The client agent request the control
`server to switch it to an alternate server
`
`The control server uses the primary
`and alternate entries from the client
`agent to determine its alternate set
`of streaming server.
`
`5.1
`
`5.2
`
`5.3
`
`NO
`
`5.5
`
`5.6
`
`The control server selects a
`streaming server among all that are
`using even-numbered ports based
`on some load-balancing heuristics.
`
`The control server selects a
`streaming server among all
`that are using odd-numbered
`ports based on some
`load-balancing heuristics.
`
`The selected streaming server starts to
`deliver the real-time multimedia data to the
`client agent, it now becomes the primary
`streaming server.
`
`5.7
`
`Fig. 5
`
`Samsung-LG-HTC Ex. 1109 p. 8
`
`

`

`U.S. Patent
`
`Feb.27,2001
`
`Sheet 7 of 9
`
`US 6,195,680 Bl
`
`640
`
`641
`
`642
`
`Controller
`
`Dispatcher
`
`656
`Primary
`
`@
`•
`•
`•
`@
`Clients
`L-~-
`620
`
`•
`•
`•
`@'
`Sources :
`L-----
`\__ 630
`
`I
`
`•
`•
`•
`
`Reflectors
`
`L_ __ \ __ _
`
`""---- 610
`
`Fig. 6
`
`Samsung-LG-HTC Ex. 1109 p. 9
`
`

`

`730
`
`735
`
`Buffers
`~
`0 0 ... o---s-112
`DO···
`•
`•
`•
`
`>-712
`
`)/
`
`Reflector
`
`__., / ~ 14~
`
`720
`
`Client Station
`~~o~ .--I U-n-pa_c___,k II D ecom press I ~----.
`
`/
`
`I Unpack II Decompress!
`
`Fig. 7
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`"'!"j
`~
`?'
`N
`~-..J
`
`N c c
`'"""'
`
`'JJ. =-~
`~ .....
`00
`0 ......,
`'0
`
`e
`rJ'l
`-..a-..
`1--"
`\0
`(It
`0..,
`00
`Q
`~
`1--"
`
`Samsung-LG-HTC Ex. 1109 p. 10
`
`

`

`U.S. Patent
`
`Feb.27,2001
`
`Sheet 9 of 9
`
`US 6,195,680 Bl
`
`u -Q)
`~ -s::::
`
`s::::
`C'O
`
`' -
`0 __.
`(..)
`Q)
`'+=
`Q)
`0::::
`
`Q)
`(.)
`' -
`::J
`0
`(f)
`
`__.
`c
`Q)
`
`()
`
`0
`C'0 co
`
`-Q)
`Q) -s::::
`
`s::::
`
`~
`
`CJ)
`
`co
`~
`Q)
`'-
`u..
`
`co .
`C)
`u.
`
`-Q)
`~ -s::::
`
`s::::
`C'O
`
`0 ...--
`co
`
`0
`N co
`
`Samsung-LG-HTC Ex. 1109 p. 11
`
`

`

`US 6,195,680 Bl
`
`1
`CLIENT-BASED DYNAMIC SWITCHING OF
`STREAMING SERVERS FOR
`FAULT-TOLERANCE AND LOAD
`BALANCING
`
`FIELD OF THE INVENTION
`This invention relates generally to providing fault toler(cid:173)
`ance and load balancing for real-time data streaming. More
`particularly, it relates to a client-based dynamic server
`switching method for use in a distributed system including
`multiple servers that are simultaneously transmitting one or
`more real-time multimedia streams.
`
`BACKGROUND
`The demand for real-time multimedia streaming is
`steadily increasing. In order to increase the scale of network
`broadcast using real-time multimedia streaming, multiple
`servers can be used to provide the same multimedia stream
`to a large number of clients. Clients are directed to one of a
`multiplicity of servers to obtain the multimedia stream in 20
`real-time.
`One method known in the art that seeks to increase the
`processing capacity at hot sites on the Internet is to create a
`cluster of computing nodes (also called a multi-node cluster)
`to handle the load. The Internet refers to the collection of 25
`networks and gateways that use the Transmission Control
`Protocol/Internet Protocol (TCP liP) suite of protocols. TCP I
`IP is a well known protocol that was developed by the
`Department of Defense for communications between com(cid:173)
`puters (see e.g., D. E. Comer, "Internetworking with TCP/IP,
`Principals, Protocols and Architecture,"Prentice Hall, which
`is hereby incorporated by reference herein in its entirety).
`The multi-node cluster is (encapsulated) made to appear as
`one entity to clients, so that the added capacity provided by
`the multi-node cluster is transparent to clients. Client
`requests are distributed among nodes in the multi-node
`cluster. Many load balancing techniques are known in the
`art; see for example, Dias et al., "A Scalable and Highly
`Available Web Server", Proc. 41st IEEE Computer Society
`Intl. Conf. (COMPCON) 1996, Technologies for the Infor(cid:173)
`mation Superhighway, pp. 85-92, February 1996; see also
`U.S. Pat. No. 5,371,852, issued Dec. 6, 1994 to Attanasio et
`al., entitled "Method and Apparatus for Making a Cluster of
`Computers Appear as a Single Host."
`Research and development has also been increasing in 45
`both the areas of audio/video streaming and video confer(cid:173)
`encing. Video conferencing differs from audio and video
`streaming in that the communication is bi-directional and
`end-to-end delays must be very low ( <200 ms) for interac(cid:173)
`tive communication. In fact, video conferencing standards 50
`are quite mature and have emerged from both the Interna(cid:173)
`tional Telecommunication Union (ITU), in the form of the
`H.3xx standards; and the Internet Engineering Task Force
`(IETF) in conjunction with the multicast backbone
`(MBONE). In general, the two camps use the same audio 55
`and video compression standards (defined by the ITU), but
`differ in their networking protocol specifications.
`Audio/video streaming differs technically from its video
`conferencing counterpart in that it can afford greater flex(cid:173)
`ibility in end-to-end delays when being transmitted across a 60
`network, and in the fact that stored content may be manipu(cid:173)
`lated off-line with additional processing. These begin to
`merge when one considers live audio and video streaming
`applications (e.g., Internet, radio, and TV). The most rel(cid:173)
`evant of the ITU standards is H.323, which defines audio/ 65
`visual services over LANs for which quality of service
`cannot be guaranteed (see e.g., "Draft Recommendation
`
`2
`H.323: Visual Telephone Systems and Equipment for Local
`Area Networks Which Provide A Non-Guaranteed Quality
`of Service," (May 28, 1996), which is hereby incorporated
`herein by reference in its entirety). This standard specifies a
`5 variety of audio and video coders and decoders (CODECs)
`as well as signaling protocols to negotiate capabilities and
`setup and manage connections. The underlying transport
`specified is the Real-time Transport Protocol (RTP). This
`protocol, defined by the IETF, is intended to provide a means
`10 of transporting real-time streams over Internet Protocol (IP)
`networks. A new protocol, Real Time Streaming Protocol
`(RTSP), more directly addresses the issues of delivering and
`managing multimedia streams, (see e.g., "Real Time Stream(cid:173)
`ing Protocol (RTSP)" IETF Request for Comments: 2326
`15 (April 1998), which is hereby incorporated herein by refer(cid:173)
`ence in its entirety). Clearly, this area is still evolving as new
`protocols are being defined and refined to satisfy a wide
`range of emerging networked multimedia applications.
`Streaming technology can be used to deliver live audio
`and video data, where the clips arrive in streams so that users
`can begin to view or hear the clip before the download is
`complete. Conventional Internet traffic is short-lived, with a
`duration ranging from milliseconds to seconds, and bursty.
`In contrast, real-time multimedia streaming is lengthy, with
`a duration ranging from minutes to even hours, with low
`continuous bandwidth requirements. Server and/or network
`failures will terminate the real-time streaming process, and
`the stream from a given server will be interrupted for a
`particular session. This interruption may, in many cases,
`30 only be detected at the client. Thus, a need exists for a
`client-based means to automatically switch to an alternate
`server in order to continue receiving a multimedia stream in
`an uninterrupted fashion in the event of a service
`degradation, load imbalance, or failure. The present inven-
`35 tion addresses such a need.
`One known method in the art for increasing scalability for
`real-time multimedia streaming is through the use of
`so-called "reflector" technology. The reflector technology is
`used in applications-such as IBM's BAMBA™, Vosaic's
`40 MEDlASERVERTM and White Pine Software's
`CU-SeeMe™-to provide real-time audio and video stream(cid:173)
`ing over the Internet. Reflectors are servers that manage the
`distribution of audio and video streams to their receivers.
`They can be cascaded and scaled to handle increased
`demand for a broadcast. Multimedia streams are replicated
`at each reflector and delivered to multiple receivers. By
`simply adding more reflectors, a broadcast is capable of
`supporting large numbers of clients.
`A key problem with the basic reflector technology is that
`the resulting workload across reflectors is poorly balanced
`and network bandwidth can be wasted. For example, some
`reflectors can have a large number of clients simultaneously
`connecting to it while others are serving only a few clients.
`This causes the workload across reflectors to be highly
`unbalanced and can cause performance degradation due to
`server and/or network overloads. Another problem with the
`basic reflector approach, is that in the event that a reflector
`(server) fails or is overloaded, there is no automatic mecha(cid:173)
`nism for redirecting a client to another server where they
`will continue receiving the multimedia stream. The present
`invention addresses these problems.
`
`SUMMARY
`
`Accordingly, it is an object of this invention to provide an
`improved client-based system for the fault-tolerant delivery
`of real-time or continuous data streams. In one embodiment,
`
`Samsung-LG-HTC Ex. 1109 p. 12
`
`

`

`US 6,195,680 Bl
`
`4
`FIGS. 2(a), 2(b), and 2(c) depict an example in block
`diagram form of a client agent requesting a multimedia
`stream from the streaming servers;
`FIGS. 3(a), 3(b), and 3(c) depict an example in block
`5 diagram form of the dynamic server switching process for
`the client agent when the primary server for the client agent
`fails;
`FIG. 3d depicts a more detailed example of the client(cid:173)
`server architecture of FIGS. 3(a)-(c), adaptable to the
`10 present invention;
`FIG. 4 depicts an example of a method having features of
`the present invention for streaming continuous real-time
`MM data to a client;
`FIG. 5 depicts an example of a method having features of
`the present invention for switching clients among multiple
`servers if a streaming server becomes overloaded or fails;
`FIG. 6 depicts another example of an architecture having
`features of the present invention;
`FIG. 7 depicts a more detailed example of the source,
`client and reflector depicted in FIG. 6; and
`FIG. 8 depicts an example of a hierarchical reflector
`configuration.
`
`DETAILED DESCRIPTION
`
`3
`real-time multimedia streams, e.g., live audio and video
`clips, are delivered in streams so that users can begin to view
`or hear the clip before the download is complete. The
`real-time multimedia streams can be lengthy, with durations
`ranging from minutes to even hours, with low continuous
`bandwidth requirements. According to the present invention,
`a receiver (also called a client) automatically detects load
`imbalances and/or failures (complete or partial) and dynami(cid:173)
`cally switches to an alternate server in order to continue
`receiving the real-time multimedia stream with minimal
`disruption.
`The present invention includes features for automatically
`and gracefully switching clients among multiple servers in
`the event that a server becomes overloaded or fails. A
`preferred embodiment addresses the case where clients are 15
`receiving a continuous multimedia stream and the switching
`must be transparent to the client and maintain uninterrupted
`playback of the multimedia streams. When a server fails, its
`respective client agents detect the failure and automatically
`switch to alternate servers that continue to provide the client 20
`agents with the real-time multimedia streams.
`The present invention also includes features for gracefully
`switching client agents to alternate servers in the case of a
`server failure or overload while maintaining a balanced load
`across multiple servers in a distributed network environ- 25
`ment.
`An example of a system having features of the present
`invention includes: a control server; two or more streaming
`servers, and a plurality of client agents. The control server
`is preferably a scalable server that is capable of handling a
`requests from a large number of incoming client agents and
`redirecting them to the streaming servers that are providing
`the multimedia data. The control server assigns different
`identifiers to the streaming servers for delivering the mul-
`timedia data, and uses these identifiers to group these
`streaming servers into two or more different sets. The
`streaming servers are used to deliver the real-time multime(cid:173)
`dia streams to the client agents. To receive a multimedia
`stream, client agents are given an identifier to connect to a
`server in one of the sets.
`Each client agent receives the multimedia stream from a
`streaming server, performs the appropriate processing (e.g.,
`decompression, scaling) on the stream and renders the
`multimedia output. Each client agent can be provided with 45
`a primary server identifier as well as a secondary server set
`identifier. The primary entry characterizes the primary
`streaming server in the set of servers the client agent is
`connecting to. The secondary entry characterizes the set
`containing an alternate server for the client agent. When a 50
`client detects a failure or overload, the client sends a switch
`request to the control server which then selects a server in
`the secondary set and redirects the client agents of the
`primary server to the selected alternate server. Thus, the
`client agents can continue to receive the multimedia streams 55
`with minimal or no interruption.
`
`30
`
`35
`
`40
`
`FIG. 1a illustrates an example of an environment includ-
`ing a server architecture 1. 7 and a client agent 1.8 having
`features of the present invention. The server architecture 1.8
`includes a control server 1.1 and at least two sets (1.5, 1.6
`) (also called clusters) of streaming servers (1.2, 1.3). Each
`set of streaming servers includes at least one streaming
`server (1.2, 1.3), each having a number of ports (1.92, 1.93).
`In one embodiment, the streaming servers (1.2, 1.3) are
`assigned to one of the sets (1.5, 1.6) based on a simple
`arithmetic test. For instance, the assignments may be based
`on connection port numbers, e.g., all streaming servers using
`even-numbered ports 1.92 are assigned to one set, and all
`streaming servers (1.2, 1.3) using odd-numbered ports 1.93
`are assigned to another set. The server set assignments could
`further include considerations including one or more of:
`size; capacity; location (locality/affinity); and network
`connectivity, so that a good balance of server availability can
`be maintained in the two sets. One method to achieve this is
`for the control server 1.1 to assign any new streaming server
`to the currently smaller set. Servers in the system are
`preferably divided into two disjoint non-empty sets-a set
`which is serving stream data through the odd-numbered port
`and another set which is serving stream data through the
`even-numbered port. Both of these sets (1.5, 1.6) contain at
`least one server (1.2, 1.3). The two sets of servers are
`preferably mutually exclusive, meaning that no servers in
`the system can be in these two groups at the same time.
`Those skilled in the art will appreciate that many alter(cid:173)
`natives are available. The control server 1.1 could be a
`gateway through which client requests must pass and which
`includes a routing function to distribute client requests
`among servers in the cluster. For example, a system adapt(cid:173)
`able to the present invention that provides load balancing in
`60 an encapsulated cluster of nodes is described in U.S. Pat. No.
`5,371,852, issued Dec. 6, 1994, entitled "Method and Appa(cid:173)
`ratus for Making a Cluster of Computers Appear as a Single
`Host", by Attanasio et al ('852 patent). The present invention
`has a common assignee with this U.S. patent, which is
`65 hereby incorporated by reference in its entirety. Here, only
`the address of a Transmission Control Protocol (TCP) router
`(control server 1.1) is given out to clients 1.8; the TCP router
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`These, and further characteristics and features of the
`invention, will be more apparent from the following detailed
`description of a preferred embodiment and the appended
`drawings in which:
`FIG. 1a depicts an example in block diagram form of an
`environment having features of the present invention;
`FIG. 1b depicts an example of a data structure which can
`be used to record the relationship between a client and the
`streaming servers depicted in FIG. 1a;
`
`Samsung-LG-HTC Ex. 1109 p. 13
`
`

`

`US 6,195,680 Bl
`
`5
`distributes incoming requests among the nodes (streaming
`servers 1.2, 1.3) in the cluster, either in a round-robin
`manner, or based on the load on the nodes. In the '852
`patent, a Virtual Encapsulated Cluster routes TCP informa(cid:173)
`tion that crosses the boundary of a computer cluster. The 5
`information is in the form of port type messages. Incoming
`messages are routed and the servers respond so that each
`cluster appears as a single computer image to the external
`host. A cluster of servers with a single TCP-router node is
`divided into a number of virtual clusters (virtual encapsu- 10
`lated clusters). Each virtual encapsulated cluster appears as
`a single host to hosts on the network which are outside the
`cluster. The messages are routed to members of each virtual
`encapsulated cluster in a way that keeps the load balanced
`among the set of cluster nodes. The TCP router can also act 15
`as a proxy, where the requests are sent to a selected node,
`and the responses go back to the TCP router and then to the
`client. In a preferred mode of operation, called forwarding
`mode, client requests are sent to a selected node, and the
`responses are sent back to the client directly from the 20
`selected node, bypassing the router.
`Referring again to FIG. 1a, as is conventional, the client
`1.8 can be directly connected to the control server 1.1 or
`over a network (not shown) such as a cable network,
`telephone network, local area network (LAN), an intranet, or
`the Internet (or some combination of these). The client agent
`1.8 (also called simply client), can be any conventional
`computer or processor-based machine with a processor,
`memory and operating system and application software and
`networking (hardware and software) to communicate
`requests and receive data streams from a streaming server.
`The control server 1.1 redirects incoming client agent 1.8
`requests to the streaming servers (1.2, 1.3), preferably while
`monitoring the workload of the streaming server. The con(cid:173)
`trol server is preferably a scalable server that is capable of
`handling a large number of incoming client agent requests
`and redirecting them to the streaming servers that are
`providing the multimedia data. The control server assigns
`different identifiers to the streaming servers for delivering
`the multimedia data, and uses these identifiers to group the
`streaming servers into two or more different sets (1.5, 1.6).
`By way of example only, one set 1.5 of streaming servers 1.2
`is delivering multimedia streams through even-numbered
`ports 1.92 and another set 1.6 of streaming servers 1.3 is
`delivering the multimedia streams through odd-numbered
`ports 1.93. Port-based routing of TCP connections is well
`known in the art (see for example the aforementioned '852
`patent).
`As is also conventional, communication channels 1.4
`exist between the control server 1.1 and the streaming
`servers (1.2, 1.3), allowing the control server to preferably
`monitor the workload of the streaming servers while redi(cid:173)
`recting incoming client agent 1.8 requests to them.
`Each instance of the streaming process begins with a 55
`client agent 1.8 connecting to the control server 1.1 request(cid:173)
`ing the multimedia stream. The control server then assigns
`and redirects the client to one of the streaming servers in
`either of the two groups (1.5, 1.6). The assignment can be
`based on a conventional round-robin approach or based on 60
`some load-balancing heuristics. For example, the server 1.1
`can redirect the client 1.8 to a streaming server based on a
`weighted round-robin approach, or to a streaming server
`having a lowest utilization rate.
`An example of a system for weighted TCP routing is 65
`described in co-pending U.S. patent application Ser. No.
`08/701,939, filed Aug. 23, 1996, now U.S. Pat. No. 5,918,
`
`6
`017, entitled "Weighted TCP Routing to Service Nodes in a
`Virtual Encapsulated Cluster" by C. Attanasio, G. Hunt, G.
`Goldszmidt, and S. Smith (IBM Docket No. Y0996167),
`now U.S. Pat. No. 5,918,017. The present invention has a
`common assignee with this co-pending patent application,
`which is hereby incorporated herein by reference in its
`entirety.
`An example of a Fault Tolerant Recoverable TCP/IP
`Connection Router (FTR-CR) and methods of connecting at
`least two FTR-CRs to multiple systems, where the FTR-CRs
`have synchronized internal tables and are capable of switch-
`ing between active and standby states is described in
`co-pending U.S. patent application Ser. No. 08/929,409,
`entitled "FAULT TOLERANT RECOVERABLE TCP/IP
`CONNECTION ROUTER," by Baskey et al., filed Sept. 15,
`1997, (IBM Docket No. Y0997232). The present invention
`has a common assignee with this co-pending patent
`application, which is hereby incorporated herein by refer(cid:173)
`ence in its entirety. A recoverable TCP liP Connection Router
`is a virtual encapsulated cluster which has two TCP-router
`nodes, a primary and a backup. The server cluster is aug(cid:173)
`mented with a recovery manager which causes the backup
`TCP-router to become active if the primary fails. The
`connection state at the time of failure can be reconstructed
`by (or alternatively known at) the backup router so that zero
`25 or a minimum number of client connections will be lost due
`to failure of the TCP-router node. The configuration/
`management information of the virtual encapsulated cluster
`is also replicated (or constructed) at the backup. Finally, the
`start up protocol of the TCP-router node is changed so that
`30 recovery of the primary router will not cause a failure in a
`backup that has taken over for it.
`An example of an affinity-based router and method for
`routing and load balancing in an encapsulated cluster of
`server nodes is described in co-pending U.S. patent appli-
`35 cation Ser. No. 08/947,361, filed Oct. 8, 1997, entitled
`"Affinity-based Router and Routing Method," by Dias et al.,
`(IBM Docket No. Y0996265). The present invention has a
`common assignee with this co-pending patent application,
`which is hereby incorporated herein by reference in its
`40 entirety. The affinity-based system includes a multi-node
`server, wherein any of the server nodes can handle a client
`request, but wherein clients have affinity to one or more of
`the server nodes that are preferred to handle a client request.
`Such affinity is due to state at the servers either due to
`45 previous routing requests, or data affinity at the server. At the
`multi-node server, a node may be designated as a TCP
`router. The address of the TCP router is given out to clients,
`and client requests are sent thereto. The TCP router selects
`one of the nodes in the multi-node server to process the
`50 client request and routes the request to this server; in
`addition, the TCP router maintains affinity tables, containing
`affinity records, indicating which node a client was routed to.
`In processing the client request, the server nodes may
`determine that another node is better suited to handle the
`client request, and may reset a corresponding TCP router
`affinity table entry. The server nod

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