`(10) Patent No.:
`US 8,200,837 B1
`
`Bhatti et a].
`(45) Date of Patent:
`Jun. 12, 2012
`
`USOO8200837B1
`
`(54) METHOD AND SYSTEM FOR MAINTAINING
`A CONTENT SERVER AT SAFE LOAD
`
`(75)
`
`CONDITIONS
`.
`.
`_
`_
`Inventors: Nma T. Bhattl, Mountain View, CA
`(US); Tarek Farouk Abdelzaher, Ann
`Arbor, MI (US)
`
`.
`(73) Assrgnee: Hewlett-Packard Development
`Companys L.P., Houston: TX (US)
`
`( * ) Notice:
`
`Subject. to any disclaimer, the term of this
`patent IS extended or adjusted under 35
`U~S-C~ 1540’) by 0 days
`
`(21) Appl.N0.: 09/299,684
`.
`Flled:
`
`AI"- 262 1999
`
`(22)
`
`(51)
`
`Int. Cl.
`G06F 15/16
`(2006.01)
`(52) US. Cl.
`......................... 709/232; 709/219; 709/247
`(58) Field of Classification Search .................. 709/226,
`709/228, 231, 232, 234, 236, 246; 705/14;
`707/101, 102
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`6/1998 Hunt etal.
`5,764,235 A *
`9/1998 Logan et a1.
`5,802,299 A *
`5,852,673 A * 12/1998 Young
`5,917,822 A *
`6/1999 Lyles et a1.
`............. 709/228
`5,918,013 A *
`6/1999 Mighdollet a1.
`5,995,943 A * 11/1999 Bullet a1.
`....................... 705/14
`6,021,426 A *
`2/2000 Douglis et a1.
`6,028,842 A *
`2/2000 Chapman et a1.
`6,038,598 A *
`3/2000 Danneels ...................... 709/219
`
`6,041,041 A *
`3/2000 Ramanathan et a1.
`..... 370/241
`6,052,718 A *
`4/2000 Gifford ......................... 709/219
`6,061,700 A *
`5/2000 Brobst et a1.
`6,067,557 A *
`5/2000 Hegde
`6,105,042 A *
`8/2000 Aganovic et a1.
`
`............. 715/500
`
`................. 709/246
`
`6,128,668 A * 10/2000 Barber et a1.
`6,148,005 A * 11/2000 Paul et a1.
`6,157,614 A * 12/2000 Pasternak et a1.
`6,161,137 A * 12/2000 Ogdon et a1.
`................. 709/224
`6,167,085 A * 12/2000 Saunders et a1.
`6,182,125 B1 *
`1/2001 Borella et 31,
`6,185,221 B1 *
`2/2001 Aybay
`6,185,625 B1*
`2/2001 Tso et a1.
`6,216,157 B1*
`4/2001 Vishwanath et a1.
`6,243,761 B1 *
`6/2001 M 1
`t
`1.
`.................. 709/246
`6,263,114 B1 *
`7/2001 Saifildefs a
`6,269,078 B1*
`7/2001 Lakshman et a1.
`6,314,463 B1 *
`11/2001 Abbott et a1.
`................. 709/224
`(Continued)
`
`................ 709/226
`
`OTHER PUBLICATIONS
`
`Engelschall, Ralf S. “Apache HTTP Server Version 1.3: Module
`modirewrite”. Archived on Jan. 11, 1998 by the Internet Archive:
`<http://Web.archive.0rg/W%/19980111100041/Www.apache.0rg/
`docs/mod/modirewrite.html>. pp. 1 to 18.*
`.
`(Confirmed)
`,
`,
`Chr'
`h B'
`Imp er
`laglm
`
`.
`E
`P .
`”WW xam’”er*
`
`ABSTRACT
`(57)
`A data service system in a data access network system is
`described. The data service system includes a content server
`that stores content files for access by external access requests.
`Each of the content files is stored in a full content format and
`
`an adapted or degraded content format which is less resource-
`intensive to serve than the full content format. The data ser-
`
`vice system also includes an adaptive load control system
`which is coupled to the content server to pass the access
`requests to the content server. The adaptive load control sys-
`tem modifies an access request to access the corresponding
`content file in the adapted content format when the content
`server is in an overload condition such that the content server
`can be maintained at safe load conditions. A method of main-
`
`taining the content server at safe load conditions is also
`described.
`
`6 Claims, 7 Drawing Sheets
`
`'91 E
`312A};
`
`”I —4\
`
`1
`
`
`
`\ To( F ROM
`[XTEKIJAL
`N r 1 WORK
`
`Petitioner Apple Inc. - Exhibit 1010, p. 1
`
`Petitioner Apple Inc. - Exhibit 1010, p. 1
`
`
`
`US 8,200,837 B1
`
`Page 2
`
`US. PATENT DOCUMENTS
`
`................. 709/246
`
`6,317,795 B1* 11/2001 Malkin et al.
`.
`.
`6,378,053 B1*
`4/2002 Lamaire et al.
`
`63895462 B1 *
`5/2002 COhen et a—L
`~~~~~~~~~~~~~~~~~~ 709/218
`6,441,831 B1*
`8/2002 Abramowitz et al.
`.
`345/716
`6,449,647 B1*
`9/2002 Colby et al.
`709/226
`
`*
`6,484,212 B1* 11/2002 Markowitz etal
`709/246
`2:83:33 31 * ggggi E32552: """""""""" 709/231
`6,505,256 131*
`1/2003 York ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 709/246
`6,535,922 B1*
`3/2003 Kikinis ......................... 709/228
`6,553,410 B2 *
`4/2003 Kikinis
`...... 709/208
`6,564,250
`B1*
`5/2003 Nguyen ..................
`B1*
`6/2003 Fields et al.
`............
`6,581,109
`...... 709/246
`
`6,587,109 B1 *
`*
`6’594’699 B1,,
`2001/0049833 A1
`*
`2002/0049833 A1
`2002/0069296 A1 >x<
`
`7/2003 Rose et al.
`.
`”003 saha‘ et 31' """""""""" 709/232
`12/2001 Greenland et 31.
`-
`-
`-
`4/2002 K1k1n1s
`......................... 709/246
`6/2002 Aua et al
`709/246
`
`' """""""""""
`
`OTHER PUBLICATIONS
`Multimedia-Friendly Server and Comminication Design, K.Shin, et
`31, XP-002157973,Apr. 1999-Jun. 1999.
`Agile Application-Aware Adaption for Mobility, B.D.Noble,et al,
`XP-00771038, Dec. 1997.
`
`* cited by examiner
`
`Petitioner Apple Inc. - Exhibit 1010, p. 2
`
`Petitioner Apple Inc. - Exhibit 1010, p. 2
`
`
`
`U.S. Patent
`
`Jun. 12, 2012
`
`m7w,
`
`.wx
`
`mmLwarimMW?C
`
`MIWLJV%mm,mpg«mmm{kA
`
`ON
`
`N~
`
`Vw2>ouiEZ
`
`“€352
`
`A$33»
`
`Petitioner Apple Inc. - Exhibit 1010, p. 3
`
`Petitioner Apple Inc. - Exhibit 1010, p. 3
`
`
`
`
`U.S. Patent
`
`1
`
`2
`
`S
`
`2
`
`2.,_
`
`m‘
`
`m_
`
`1B73809
`
`m,1”a?hp2Mq<3.meUYouA\Pr
`
`SJ
`N
`
`.3th
`
`_26%m3SNEAUm_\<Shop/mm;
`
`m_Q<Qfl~4#J\rmmvawwA.L
`0%org»:3
`F»
`
`Petitioner Apple Inc. - Exhibit 1010, p. 4
`
`Petitioner Apple Inc. - Exhibit 1010, p. 4
`
`
`
`
`U.S. Patent
`
`SU
`
`m,
`
`m7389
`
`em04“coucooBEBEm1833552.A...m@83551&6»«S\w_@8309mthe_.o‘9‘
`
`I‘llVtill(It
`
`
`nSiam“898,4.3:05:00Q+m,
`
`
`mmmm.at:g
`
`
`
`W5:82838:3558522m4one_
`
`Petitioner Apple Inc. - Exhibit 1010, p. 5
`
`-.
`
`om
`
`Petitioner Apple Inc. - Exhibit 1010, p. 5
`
`
`
`
`
`
`w§bi\L\<mc\<3I3314\F3m\IS
`
`
`
`
`
`do
`
`U.S. Patent
`
`Jun. 12, 2012
`
`Sheet 4 of 7
`
`US 8,200,837 B1
`
`bah.
`
`.WLH.WMJKV\k\
`
`
`
`
`
`.L.wI233nmE<a<\_,o&\ES
`
`.rMdjewfir
`
`Petitioner Apple Inc. - Exhibit 1010, p. 6
`
`Petitioner Apple Inc. - Exhibit 1010, p. 6
`
`
`
`
`U.S. Patent
`
`2,1n.HJ
`
`21
`
`S
`
`7f05te
`
`02.}8
`
`1B7&
`
`
`
`
`
`S$39.as2mm“32va.20...t
`
`0,MmM«EMA
`
`m8
`m8
`
`
`on
`
`8
`
`Petitioner Apple Inc. - Exhibit 1010, p. 7
`
`a.;.T>3.de7::he$5.2moamL
`
`our
`
`213
`
`Petitioner Apple Inc. - Exhibit 1010, p. 7
`
`
`
`US. Patent
`
`Jun. 12, 2012
`
`Sheet 6 of7
`
`US 8,200,837 B1
`
`
`
`
`
`RequestRate(req/s)
`
`FleuREA
`
`500
`
` 600
`
`200300
`
`O01
`
`80
`
`70
`
`50
`
`50
`
`40
`
`30
`
`20
`
`100
`
`Petitioner Apple Inc. - Exhibit 1010, p. 8
`
`)EZIVEREPBAWWWTH
`
`Petitioner Apple Inc. - Exhibit 1010, p. 8
`
`
`
`US. Patent
`
`Jun. 12, 2012
`
`Sheet 7 of7
`
`US 8,200,837 B1
`
`2°
`5'63
`3;,”
`00m 9‘30
`=.—.o
`Eu):
`00._
`D‘HO
`MmE—t
`209-1
`«NO
`
`'
`
`I
`
`0.)
`.—
`9‘
`
`C.C:
`0
`
`T
`a:
`0:
`:1.
`3‘
`K
`
`:
`i
`Z
`3
`\O;
`5.
`c.0
`a:
`
`T
`\n.
`
`0
`C‘
`M
`
`n:
`ES
`
`3
`
`e: ml
`5.
`‘63
`cr
`U
`mi
`
`i
`E
`
`g...
`v:
`’3:
`2:G"U
`D:
`
`T
`:
`
`2
`'
`E
`:
`.
`3
`7.3v:D.
`U‘0
`a:
`
`a
`.D
`D
`8
`
`,
`.3
`E
`U
`
`3‘
`
`2
`U
`
`D.d
`
`o
`
`D.1'5
`0
`
`D.N
`0
`
`by
`
`m
`
`0r
`V
`1,—1.3
`
`Petitioner Apple Inc. - Exhibit 1010, p. 9
`
`Petitioner Apple Inc. - Exhibit 1010, p. 9
`
`
`
`US 8,200,837 B1
`
`1
`METHOD AND SYSTEM FOR MAINTAINING
`A CONTENT SERVER AT SAFE LOAD
`CONDITIONS
`
`FIELD OF THE INVENTION
`
`The present inventionpertains to Internet/Intranet systems.
`More particularly, this invention relates to an adaptive web
`server that serves user access requests for the web server to
`less resource intensive contents in the web server when the
`web server is overloaded.
`
`DESCRIPTION OF THE RELATED ART
`
`An example of a data access network system is the Internet
`or Intranet network system. An Intemet/Intranet network sys-
`tem typically includes a number of data service systems con-
`nected together via interconnect networks. The data service
`systems typically include web and/or content servers that host
`contents for various customers or applications. The custom-
`ers are the owners of the contents hosted in the data service
`
`systems such that subscribers or users can access the contents
`via their computer terminals. The content servers typically
`utilize Internet applications, such as electronic mail, bulletin
`boards, news groups, and World Wide Web access. The hosted
`contents are arranged in the form of content sites within the
`content servers. Each site may include a number of pages
`(e.g., world wide web pages). A content site is typically for
`one customer of the server while a particular customer may
`own a number of content sites. The content servers may also
`be referred to as web servers.
`
`Often, a web page is formed from a number of data and/or
`executable program files, such as text files, graphics files,
`audio files, video files, and application program files. Each of
`the files is referred to as an “object”. The web pages can be
`accessed by a user at a user terminal (e.g., a personal com-
`puter system or a web access device) connected to any one of
`the data service systems.
`As is known, access to the web pages via Internet is typi-
`cally structured around the HTTP (Hyper Text Transfer Pro-
`tocol) protocol. The HTTP protocol is a request-and-response
`protocol. When a user at a client device designates a particular
`web page, at least one request is generated. The number of
`requests is dependent upon the sophistication of the desig-
`nated web page. As described above, a web page may include
`one or more “objects”. A multi-object page is aesthetically
`pleasing, but each object requires a separate request and a
`separate response. Therefore, the time for each request-and-
`response round trip plays a role in determining the total time
`a user must wait to view the complete web page.
`A web server can be accessed by multiple users at the same
`time. The web server typically handles the user access
`requests in the first-come-first-served (FIFO) fashion. One
`disadvantage of this type of prior art web server structure is
`that the web server is not equipped with protection mecha-
`nism against excessive load conditions. As is known, a web
`server typically has limits on the number of requests it can
`handle per second. In addition, the web server also has limits
`on the response time and bandwidth that can be served. Under
`high loads, the web server can be overwhelmed with requests,
`resulting in longer response time and poor performance for
`users. Thus, when the number of user access requests to the
`web server greatly exceeds the processing capacity ofthe web
`server (i.e., overloaded), the web server either handles a
`request in an unbearably long period of time or simply
`becomes non responsive. The sharp increase in server
`response time may also cause user connections to time out,
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`creating the perception that the server is down or crashed. In
`mission-critical applications, such as e-commerce, perceived
`server downtime may result in loss of sales and/or other
`financial losses.
`
`SUMMARY OF THE INVENTION
`
`One feature of the present invention is to improve perfor-
`mance of a web server.
`
`Another feature of the present invention is to increase
`performance of a web server by serving user access requests
`for the web server from less resource intensive contents in the
`web server when the web server is to be overloaded.
`
`A further feature of the present invention is to provide an
`adaptive web server that, when in overload situation, routes
`the user access requests to the less resource intensive contents
`in the web server such that the web server does not become
`overloaded or non-functional.
`
`A data service system in a data access network system
`includes a content server that stores content files for access by
`external access requests. Each of the content files is stored in
`a full content format and any number of adapted or degraded
`content formats which are less resource-intensive to serve
`
`than the full content format. The data service system also
`includes an adaptive load control system which is coupled to
`the content server to pass the access requests to the content
`server. The adaptive load control system modifies an access
`request to access the corresponding content file in one of the
`adapted content formats when the content server is in an
`overload condition such that the content server can be main-
`tained at safe load conditions.
`
`In a data service system of a data access network system
`having a content server that stores content files for access by
`external access requests, a method of maintaining the content
`server at safe load conditions includes the step ofdetermining
`load condition of the content server when the data service
`
`system receives an access request to access one ofthe content
`files stored in the content server. This step can be performed
`internally in the content server or external to the content
`server. Ifthe content server is determined to be in an overload
`
`condition, then the access request is modified to access the
`corresponding content file in an adapted content format
`which is less resource-intensive to serve than the same file in
`a full content format such that the content server is maintained
`at the safe load conditions.
`
`Other features and advantages ofthe present invention will
`become apparent from the following detailed description,
`taken in conjunction with the accompanying drawings, illus-
`trating by way of example the principles of the invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 shows a data access network system that includes a
`number of data service systems.
`FIG. 2 shows the structure of one of the adaptive data
`service systems of FIG. 1 in accordance with one embodi-
`ment of the present invention.
`FIG. 3 shows the control and feedback loop ofthe adaptive
`data service system of FIG. 2 for partial degradation.
`FIG. 4 schematically shows the structure of the content
`server of the adaptive data service system of FIG. 2.
`FIGS. 5 and 6 show various comparisons between the
`adaptive data service system of FIG. 2 and a prior art data
`service system.
`FIG. 7 shows a Gap Estimation method employed by a load
`monitor of FIGS. 2-3.
`
`Petitioner Apple Inc. - Exhibit 1010, p. 10
`
`Petitioner Apple Inc. - Exhibit 1010, p. 10
`
`
`
`US 8,200,837 B1
`
`3
`DETAILED DESCRIPTION OF THE INVENTION
`
`FIG. 1 shows a data access network system 10. In one
`embodiment, the network system 10 is an Internet system. In
`another embodiment, the network system 10 is an Intranet
`system. Alternatively, the data access network system 10 may
`be any other known network system that employs a known
`communication protocol.
`As can be seen from FIG. 1, the data service system 20 is
`connected to a number of user terminals 1111 through 1111 Via
`an interconnect network 12. Users at each of the user termi-
`
`nals 1111-1111 can access the data service system 20 for the
`services provided by the data service system 20. The users at
`each of the user terminals 1111-1111 can also access the data
`
`service system 15 for the services provided by the data service
`system 15 via the data service system 20 and the Internet 13.
`The user terminals 1111-1111 can also be referred to as client
`devices.
`
`Each of the user terminals 11a-11n may be located at a
`residence, a school, or an office of the user. Each of the user
`terminals 11a-11n includes a network access application pro-
`gram (e.g., a web browser application program such as
`Netscape’s Navigator) that allows the user to access the data
`services offered by the data service systems 15 and 20.
`Each of the user terminals 1111-1111 can be a computer
`system or other electronic device with data processing capa-
`bilities (e. g., a web TV). The interconnect network 12 can be
`any known network, such as Ethernet, ISDN (Integrated Ser-
`vices Digital Network), T-l or T-3 link, FDDI (Fiber Distrib-
`uted Data Network), cable or wireless LMDS network or
`telephone line network.
`FIG. 1 shows only two data service systems 15 and 20 for
`the data access network system 10 for illustration purposes
`only. In practice, the data access network system 10 may
`include many more data service systems. In addition, the
`Internet 13 is formed by a number of data service systems
`connected together via a network. Data communications
`among all data service systems are conducted using a prede-
`termined communication protocol for Intemet/Intranet com-
`munications. In one embodiment, the communication proto-
`col
`is
`the Hyper Text Transport Protocol
`(HTTP).
`Altematively, other known communication protocols for
`Internet/Intranet communications can also be used.
`
`Each of the data service systems 15 and 20 has substan-
`tially the same functional structure, which will be described
`in more detail below. Each of the data service systems 15 and
`20 can be employed by an Internet/Intranet Service Provider
`(ISP) to offer data services (e.g., web, news, or advertise-
`ment) and other services (e.g., e-commerce, e-mail) to users
`or subscribers connected to the data access system 10 via one
`of the data service systems 15 and 20.
`Each of the data service systems 15 and 20 includes a
`number of servers (e.g., web servers, e-mail servers, news
`servers, e-commerce servers, domain name servers, address
`assignment servers, proxy servers, advertisement servers, and
`session manager servers). The web servers, e-mail servers,
`news servers, e-commerce servers, and advertisement servers
`can be collectively referred to as local service servers or
`content servers. A content server typically stores a number of
`content files that
`include Hyper-Text Markup Language
`(HTML) web pages, gif images, video clips, etc. Data trans-
`fers to and from the content servers are enabled by transport
`protocols such as Transport Control Protocol (TCP) and the
`User Datagram Protocol (UDP). The content servers support
`a variety of Internet applications to provide services such as
`access to the World Wide Web, electronic mail, bulletin
`boards, chat rooms, news groups, and e-commerce. Using a
`
`4
`
`currently commercially available web browser and other cli-
`ent applications, users via their respective user terminals can
`access the content files (e.g., web pages, news,
`images,
`e-mails,) stored in the content servers.
`As described above, the access to the content servers is
`structured around the HTTP protocol which is a request-and-
`response protocol. When a user at a user terminal desires to
`access a content file stored in a content server of one of the
`
`10
`
`data service systems 15 and 20, at least one request is gener-
`ated and sent to the content server. The content server can
`
`handle multiple requests at the same time. However, the con-
`tent server has limits on the number of requests it can handle
`per second. When the number of requests received by the
`content server greatly exceeds the limits ofthe content server,
`the content server will be in an overload condition, resulting
`in at least unbearably longer response time and poor perfor-
`mance for users. This means when the request rate increases
`beyond the server capacity, server performance deteriorates
`dramatically, potentially causing a service outage. In addi-
`tion, when a client issues a request and does not get any
`response, the client is likely to issue several more subsequent
`requests. This quickly increases the number of requests
`received by the content server. To resolve the problem, each of
`the data service systems 15 and 20, in accordance with one
`embodiment of the present invention, includes an adaptive
`load control mechanism to control the load condition of its
`content servers such that each content server does not become
`
`overloaded. Alternatively, the load control mechanism of the
`present invention can also be applied to other servers of each
`of the data service systems 15 and 20. The adaptive load
`control mechanism is described in more detail below, also in
`conjunction with FIGS. 2-6.
`As can be seen from FIG. 2, a data service system 30 in
`accordance with one embodiment of the present invention is
`shown to include a content server 31. The data service system
`30 also includes an adaptive load control system 40 that
`controls the load condition of the content server 31 in accor-
`
`dance with one embodiment of the present invention. Thus,
`the data service system 30 can also be referred to as adaptive
`data service system or adaptive web server. The data service
`system 30 can be any one ofthe data service systems (e. g., the
`data service system 15 or 20) of FIG. 1.
`As will be described in more detail below, the content
`server 31 stores content files or dynamic executable code/
`program for access by access requests. Thus, the content files
`hereinafter refer to (1) static content files, (2) dynamic con-
`tent files, and (3) executable programs/codes. Each of the
`content files is stored in a full content format and an adapted
`or degraded content format. A content file in the adapted
`content format is much smaller in size and less resource
`intensive than the same file in the full content format. The
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`adaptive load control system 40 passes the access requests to
`the content server 31 when receiving the requests. When the
`content server 31 is in an overload condition or about to be in
`
`55
`
`60
`
`the overload condition, the adaptive load control system 40
`modifies the access requests to access their corresponding
`content files in the adapted content format. When the adaptive
`load control system 40 determines that the content server 31
`is not in the overload condition, the adaptive load control
`system 40 modifies the access requests to access their corre-
`sponding content files in the full content format. This allows
`the content server 31 to be maintained at safe load conditions.
`
`65
`
`Alternatively, the adaptive load control system 40 can adapt
`the content server 31 based not on the load condition of the
`
`content server 31, but on the client’s abilities (e.g., network
`connection of the client device, latency, or display capability
`
`Petitioner Apple Inc. - Exhibit 1010, p. 11
`
`Petitioner Apple Inc. - Exhibit 1010, p. 11
`
`
`
`US 8,200,837 B1
`
`5
`of the client device). The data service system 30 will be
`described in more detail below, also in connection with FIGS.
`2-6.
`
`The data service system 30 can be implemented in a com-
`puter system or other data processing system. The computer
`system that implements the data service system 30 can be
`server computer system, a workstation computer system, a
`personal computer system, or a mainframe computer system,
`a notebook computer system, or any other computer system.
`The data service system 30 includes a network interface 35
`that interfaces the adaptive load control system 40. The adap-
`tive load control system 40 then interfaces with the content
`server 31. The network interface 35 serves as the interface of
`
`the data service system 30 with external network (not shown).
`The interface 35 can be implemented by any known network
`interface technology, and thus will not be described in more
`detail below. The network interface 35 receives external
`
`requests for the content server 31 and passes the requests to
`the content server 31 via the adaptive load control system 40.
`The content server 31 can be any kind of content server that
`stores a number of content files. Each of the content files can
`
`be accessed by an access request. The content server 31 may
`also include a number of content sites, each storing a number
`of content files for access by multiple access requests. The
`multiple content sites may belong to different content provid-
`ers or customers with potential conflicting interests. In this
`case, the adaptive load control system 40 causes the content
`server 31 to be a number of performance-isolated virtual
`content servers, which will be described in more detail below.
`Each of the servers has a capability to provide independent
`performance guarantees regardless of the load on the other
`virtual servers.
`
`The content server 31 can be a static server or dynamic
`server. In one embodiment, the content server 31 is a static
`content server that stores static content files only. In another
`embodiment, the content server 31 may store both static and
`dynamic content files. As is known, web content is generally
`classified as static, such as a file, or dynamic, such as cgi-
`scripts. Dynamic content may be generated at run-time by a
`back-end engine (e. g., a database engine) that is separate from
`the server itself. Any adaption at the back-end engine is not
`handled by the adaptive load control system 40.
`In accordance with one embodiment of the present inven-
`tion, each ofthe content files stored in the content server 31 is
`stored in multiple formats or versions. For example, a content
`file can be stored in its original full content format or version.
`The same content file is also stored in a degraded or adapted
`format or version in the content server 31. FIG. 4 shows an
`
`example of such arrangement. As can be seen from FIG. 4, the
`content file in the degraded format 72 is smaller in size and
`worse in viewing quality than the same file in the full content
`format or version 71. This means that the degraded format of
`the content file requires less resource (e.g., bandwidth) to
`serve than the counterpart full content format of the same
`content file. This is possible because a content file can be
`shown, for example, at 64x64 pixel resolution, at 128x128
`pixel resolution, at 256x256 pixel resolution, or at higher or
`lower resolutions. The 256x256 pixel resolution version of a
`content file clearly has more image data and requires more
`resource to transfer than the 128x128 pixel resolution version
`of the same content file. Thus, if the full content version of a
`content file is at the 256x256 pixel resolution, the degraded
`version of the same content file can be at 128x128 pixel
`resolution, or at 64x64 pixel resolution. In summary, the
`degraded format of a content file may include images of less
`resolution, fewer embedded images, simplified or simpler
`pages without backgrounds or fewer hyper-links than the full
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`content format of the same content file. Alternatively, each of
`the content files stored in the content server 31 has several
`
`degraded versions ofthe same content file. The content server
`31 will be described in more detail below with only two
`versions (i.e., the full content version and one degraded ver-
`sion), for example, for each of the content files stored in the
`content server 31 for illustration purposes only.
`Referring again to FIG. 2, each access request specifies a
`content file stored in the content server 31 using the Universal
`Resource Locator (URL) which is an address. The URL path
`for a content file stored in the content server 31, however, does
`not specify which version or format from which the content
`file will be accessed. This means that multiple content trees
`contain different versions of the same URL. The path to a
`particular URL in a given content tree will be the concatena-
`tion of the content tree name and the URL name, prefixed by
`the name ofthe root service directory ofthe content server 31.
`For example, two content trees may be created in the root
`service directory “/root”, one being “/full_content” and the
`other “/degraded_content”. The “/full_content” content tree
`name directs the request to access the corresponding content
`file in the full content version or format. The “/degraded_con-
`tent” content tree name directs the request to access the cor-
`responding content file in the degraded content version or
`format. In this case, a URL of “http://www.hpl.hp.com/
`my_picture.jpg” may be served from either the directory
`"/root/full_content/my_picture.jpg”, or from the directory
`“root/degraded_content/my_picture.jpg”.
`The scheme applies even if the content file is dynamic
`content, such as the content generated by cgi-scripts. Multiple
`content trees may contain different versions or formats of the
`named cgi-scripts (e.g., “my_script.cgi”). The “/degraded-
`_content/” version or format is a less resource-intensive
`search script that, for example, looks only for the first five
`matches, instead of the “/full_content” version or format that
`looks for one hundred matches. The URL of the script is then
`prefixed by the right tree name to determine which version of
`the script
`to execute under given load conditions. For
`example,
`the URL
`of
`“http://www.hpl.hp.com/my-
`_script.cgi” may be modified to become either “http://ww-
`w.hpl.hp.com/rootall_content/cgi-bin/my_script.cgi”
`or
`“http://www.hpl.hp.com/root/degraded_content/cgi-bi/my-
`_script.cgi”.
`Alternatively, the less resource-intensive “/degraded_con-
`tent” search script can be replaced or substituted with a static
`version or format. This canbe done by switching to a different
`content tree. For example, an on-line vendorusing the content
`server 31 can use a dynamically generated version of their
`product catalog that interacts with a stock database to display
`the items currently in stock. When the content server 31 is
`overloaded, its statically pre-stored catalog version is then
`accessed and displayed. The reason for doing this is that a
`dynamic script, even degraded or simplified, still consumes
`more resources to serve than the static content.
`
`The adaptive load control system 40 is connected to the
`content server 31. In accordance with one embodiment ofthe
`
`present invention, the adaptive load control system 40 detects
`overload condition of the content server 31 and causes the
`
`access requests to access the corresponding file from one of
`several alternative content qualities for delivery in accor-
`dance with the load conditions. When the adaptive load con-
`trol system 40 detects that the content server 31 is in the
`overload conditions, the adaptive load control system 40
`causes the incoming access requests to the content server 31
`to access the corresponding content files in the degraded
`format which is
`less resource-intensive to serve. The
`
`degraded format reduces the size of responses. The degraded
`
`Petitioner Apple Inc. - Exhibit 1010, p. 12
`
`Petitioner Apple Inc. - Exhibit 1010, p. 12
`
`
`
`US 8,200,837 B1
`
`7
`format also reduces the total number of requests as the sim-
`plified content includes fewer embedded images and/or other
`objects. The degraded format also removes or reduces links
`embedded in the requested content file. Thus, the degraded
`format is less resource intensive to serve than the full content
`format.
`
`The adaptive load control system 40 is also able to reject
`access requests if needed. In addition, the adaptive load con-
`trol system 40 supports co-existence of multiple perfor-
`mance-isolated virtual servers such that performance levels
`and load adaption decisions ofvirtual server do not affect that
`of another virtual server. This is required when the content
`server 31 hosts multiple content sites that possibly belong to
`different customers or content providers with potentially con-
`flicting interests. The total load on the server 31 may not be
`evenly distributed among the hosted sites. In this case, the
`adaptive load control system 40 implements a performance
`isolation mechanism that does not penalize a site for exces-
`sive load incurred by another site. Using this mechanism, the
`content server 31 is viewed as a collection of one or more
`
`performance-isolated virtual servers, each with a capability to
`provide independent performance guarantees regardless of
`the load on other virtual servers, if any. Guarantees are
`declared in a service level agreement associated with each
`virtual server and are used to configure the adaptive load
`control system 40 for appropriate resource capacity alloca-
`tion. The load adaptive control system 40 makes adaption
`decisions within each virtual server of the content server 31
`on its load and resource allocation.
`
`Moreover, the adaptive load control system 40 also gives
`preferential treatment to guaranteed service classes, while
`allowing non-guaranteed service classes to consume the
`excess capability when available. The guaranteed service
`classes are governed by service level agreements. The non-
`guaranteed classes are typically served on best effort basis
`with available resources. Under overload conditions,
`the
`adaptive load control system 40 should direct non-:guaran-
`teed requests to their degraded content files first. An arbitrary
`policy can govern the relative degradation of client classes
`with different importance levels. For example, under over-
`load conditions, the class A requests should be sent to the
`degraded content
`files before class B requests. But
`if
`resources remain scarce, class B requests are then degraded
`before rejecting class A requests.
`The adaptive load control system 40 can be implemented at
`any point in the data service system 30 where the server’s
`requests and responses can be accessed. This means that the
`adaptive load control system 40 can be implemented in the
`web server software, in the UNIX socket library, or in the
`operating system ofa computer system that embodies the data
`service system 30. Moreover, the adaptive load control sys-
`tem 40 can also be implemented in the gateway that is external
`to the server, as well as transparent to the server.
`Basically, the adaptive load control system 40 require