`Bhatti et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,200,837 B1
`Jun. 12, 2012
`
`US008200837Bl
`
`(54) METHOD AND SYSTEM FOR MAINTAINING
`A CONTENT SERVER AT SAFE LOAD
`CONDITIONS
`Inventors: Nina T. Bhatti, Mountain View, CA
`(US); Tarek Farouk Abdelzaher, Ann
`Arbor, MI (US)
`
`(75)
`
`.
`(73) Assrgnee: Hewlett-Packard Development
`Company, L-P-, Houston, TX (US)
`Subject to any disclaimer the term ofthis
`’
`patent is extended or adjusted under 35
`Use 1540’) by 0 days
`
`( * ) Notice:
`‘
`
`(21) App1.N0.: 09/299,684
`
`(22)
`(51)
`
`APE 26: 1999
`
`Filed:
`Int. CL
`(2006.01)
`G06F 15/16
`(52) U.S. 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
`gee application file for c5mp1e1e 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 *
`2 : 12/ E0;1I1g
`1
`,
`,
`y es et a .
`........... .. 709/228
`5,918,013 A *
`6/1999 Mighdolletal.
`5,995,943 A * 11/1999 131111 5131,
`,,,,,,,,,,,,,,,,,,,,, ,, 705/14
`5,021,425 A *
`2/2000 Dougljs 5131,
`6,028,842 A *
`2/2000 Chapman et a1.
`6,038,598 A *
`3/2000 Damleels ~~~~~~~~~~~~~~~~~~~~ ~~ 709/219
`6,041,041 A *
`3/2000 Ramanatllan et al.
`370/241
`6,052,718 A *
`4/2000 Gifford ....................... .. 709/219
`6,061,700 A *
`5/2000 Brobstetal.
`6,067,557 A *
`5/2000 Hegde
`6,105,042 A *
`8/2000 Aganovic et al.
`
`........... .. 715/500
`
`............... .. 709/246
`6,128,668 A * 10/2000 Barber etal.
`,
`,
`as ern
`e a.
`2 : 1 §au,1et:,1(~ ,
`1
`6,161,137 A * 12/2000 Ogdon et al.
`............... .. 709/224
`6,167,085 A * 12/2000 S
`d
`tal.
`5,132,125 131 *
`1/2001 B:1::11:r:1ea1,
`,,,,,,,,,,,,,, ,, 709/225
`6,185,221 B1 *
`2/2001 Aybay
`6,185,625 B1 *
`2/2001 Tso et al.
`6,216,157 B1 *
`4/2001 Vishwanath et al.
`6,243,761 B1 *
`6/2001 M 1
`1.
`................ .. 709/246
`6,263,114 B1 ,,
`7/2001 Saiigefg a
`6,269,078 B1*
`7/2001 Lakshman etal.
`,
`,
`*
`/
`1313
`1~
`~~~~~~~~~~~~~~~ ~
`6 314 463 B1
`11 :31 t.A E: et a
`on 1nue
`
`/
`709 224
`
`OTHER PUBLICATIONS
`
`Engelschall, Ralf S. “Apache HTTP Server Version 1.3: Module
`mod_rewrite”. Archived on Jan. 11, 1998 by the Internet Archive:
`<http://web.archive.org/web/19980111100041/www.apache.org/
`docs/mod/mod_rewrite.htrn1>. pp. 1 to 18*
`(Contlnued)
`,
`,
`,
`,
`,
`,
`P’””‘”y E’““’”’”” ” Chnsmpher Blaglm
`57
`ABSTRACT
`,
`,
`,
`)
`(
`A data service system 1n 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-
`,
`,
`,
`v1ce system also 1ncludes an adaptive load control system
`which is coupled to the content server to pass the access
`-
`_
`requestsiothe Content Server‘ The adap“Ve1°ad°°mr°1 SVS
`tem medlfies an aeeess request to aeeess the eerrespendmg
`content file 1n 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, Amethod ofmain-
`~
`~
`~
`~
`~
`tammg the Content Server at Safe load Commons 15 also
`descrlbed
`
`6 Claims, 7 Drawing Sheets
`
`31
`
`g 3:’.
`
`
`
`{#0
`II
`I
`50
`I
`
`1
`
`l
`
`A To(FRaI"1
`£xr:.IwAL
`N71-«voma
`
`Petitioner Apple Inc. - Exhibit 1010, p. l
`
`|'’
`I
`\
`
`1 1
`
`|
`
`Petitioner Apple Inc. - Exhibit 1010, p. 1
`
`
`
`US 8,200,837 B1
`Page 2
`
`6,587,109 B1*
`*
`20016/3,3322% E11,,
`2002/0049833 A1*
`
`7/2003 Rose et a1.
`.
`§}‘§1;:;f,fnac{'e,;1""""""" " 709/232
`4/2002 Kikinis
`‘
`709/246
`. . . . . . . . . . . . . . . . . . . . . . . N
`' """""""""" "
`
`OTHER PUBLICATIONS
`Multimedia-Friendly serverand Comminication Design, K.sh1n, er
`a1,XP-002157973,Apr.1999-Jun.1999.
`Agile Application-Aware Adaption for Mobility, B.D.Nob1e,et al,
`XP-00771038, Dec. 1997.
`
`* cited by examiner
`
`U.S. PATENT DOCUMENTS
`6,317,795 B1 * 11/2001 Ma11<1neta1.
`............... .. 709/246
`613781053 B” 4/2002 Lama“ 6”“
`*
`a1’
`' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' "
`345/716
`6,441,831 B1*
`8/2002 Abramowitz etal.
`.
`709/226
`6,449,647 131 *
`9/2002 Colby etal
`
`709/246
`6,484,212 131* 11/2002 Markowitz etal
`Eflfjnfftfif,‘ """"""""" " 709/231
`1
`6,505,256 131*
`1/2003 York ........................... .. 709/246
`6,535,922 B1*
`3/2003 Kikinis ....................... .. 709/228
`6,553,410 132*
`4/2003 Kikinis
`6,564,250 131*
`5/2003 Nguyen ...................... .. 709/208
`6,581,109 B1 *
`6/2003 Fields et al.
`................ .. 709/246
`
`* ,
`
`Petitioner Apple Inc. - Exhibit 1010, p. 2
`
`Petitioner Apple Inc. - Exhibit 1010, p. 2
`
`
`
`U.S. Patent
`
`Jun. 12, 2012
`
`Sheet 1 017
`
`US 8,200,837 B1
`
`ON
`
`
`
`mob.yam
`
`ImmM:wE
`
`Petitioner Apple Inc. - Exhibit 1010, p. 3
`
`Petitioner Apple Inc. - Exhibit 1010, p. 3
`
`
`
`
`U.S. Patent
`
`21022,1n.HJ
`
`7f02AleehS
`
`1B738:M
`
`
`
` 2.,ids?:.Z%q<3DtQUYou“COL.
`
`\ N
`
`Petitioner Apple Inc. - Exhibit 1010, p. 4
`
`Petitioner Apple Inc. - Exhibit 1010, p. 4
`
`
`
`U.S. Patent
`
`m
`
`ooaSU
`
`mm
`
`mMm/Q:§i._
`
`
`
`
`
`nEco:25.5_.§__5852%
`
`..w+M_Sw2EUsUmod
`H.8>._om3:05:00
`
`IR.X..m‘:.m5m_n.uoozuoi\m._m«Rn_
`
`co:S_ED
`
`vozmofl
`
`Om
`
`...1‘¥.......
`
`Petitioner Apple Inc. - Exhibit 1010, p. 5
`
`Petitioner Apple Inc. - Exhibit 1010, p. 5
`
`
`
`
`
`U.S. Patent
`
`Jun. 12, 2012
`
`Sheet 4 of7
`
`US 8,200,837 B1
`
`bah.
`
`.r:..muE\.viSE3in
`9m:m_<a<\_.ooM\v<
`
`
`
`w§.Gi\L\<m.t<3...U:u\._.3u\I.:
`
`
`
`
`
`do
`
`3.
`
`MM352,?
`
`Petitioner Apple Inc. - Exhibit 1010, p. 6
`
`Petitioner Apple Inc. - Exhibit 1010, p. 6
`
`
`
`
`U.S. Patent
`
`Jun. 12, 2012
`
`Sheet 5 of7
`
`US 8,200,837 B1
`
`
`
`
`
`§_um._ccEmamuseum_2o._.,
`
`comcom.2...SnSN
`
`2:c
`
`
`$5.7:mksm.§E._.<mQM_mL
`.I.\<o.\_U.u.<<l
`
`2:
`3
`
`8
`
`8
`
`2..
`
`8
`
`Mmax}:
`
`Petitioner Apple Inc. - Exhibit 1010, p. 7
`
`Petitioner Apple Inc. - Exhibit 1010, p. 7
`
`
`
`U.S. Patent
`
`Jun. 12, 2012
`
`Sheet 6 of7
`
`US 8,200,837 B1
`
`
`
`
`
`RequestRate(req/s)
`
`500660
`
`200
`
`100
`
`
`
`)El!VEREPemu?WWTH
`
`O01
`
`80
`
`70
`
`50
`
`50
`
`40
`
`30
`
`20
`
`FIe.uREA
`
`Petitioner Apple Inc. - Exhibit 1010, p. 8
`
`Petitioner Apple Inc. - Exhibit 1010, p. 8
`
`
`
`U.S. Patent
`
`Jun. 12, 2012
`
`Sheet 7 of7
`
`US 8,200,837 B1
`
`‘E30
`3-98
`d)q).-—
`mmz-«
`
`2°
`535%
`-E58
`:3
`CD
`'4-1
`Zora:
`@010
`
`/___._/4.2:-\
`
`o
`“"
`H
`
`C‘CI
`0
`
`22
`:1.
`35
`,2“
`
`=
`Z
`3
`,2
`3.
`.._..0
`“
`
`v~T
`3;
`o
`3"
`Z
`
`«E
`
`5:‘
`°=_l_
`
`5
`N5
`:1.
`‘.3’;
`O‘
`Q
`ail
`
`5
`=.
`
`...I
`vi
`3!
`:1!
`3'D:
`
`T
`
`2
`'
`E
`I
`o
`3
`:50:.'J.
`U‘0
`at
`
`.3
`:>
`8
`
`3:
`3
`E
`0
`
`*°
`2
`U
`
`D.(J
`
`O
`
`0.fl
`0
`
`D.IE
`0
`
`[\
`
`J5»
`V
`LL;
`
`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 maintaimng 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-1111 may be located at a
`residence, a school, or an ofiice 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).
`Alternatively, 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 tenninals 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 prograrns/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 64><64 pixel resolution, at 128x128
`pixel resolution, at 256x256 pixel resolution, or at higher or
`lower resolutions. The 256><256 pixel resolution version of a
`content file clearly has more image data and requires more
`resource to transfer than the 128x 1 28 pixel resolution version
`of the same content file. Thus, if the full content version of a
`content file is at the 256><256 pixel resolution, the degraded
`version of the same content file can be at 128x128 pixel
`resolution, or at 64><64 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/fi.1ll_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.con1/my-
`_script.cgi” may be modified to become either “http://ww-
`w.hpl.hp.con1/rootall_content/cgi-bin/my_script.cgi”
`or
`“http://www.hpl.hp.con1/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 requires
`three entry points. They are (1) initializationpoint, (2) request
`pre-processing point, and (3) request post-processing point.
`The initialization point initializes internally used data struc-
`tures,