`.,..
`-I
`0
`
`\..
`
`PTO/SB/05 (07-06)
`Approved for use through 01/31/2007. OMB 0651-0032
`U.S. Patent and Trademark Office. U.S. DEPARTMENT OF COMMERCE
`Under the Paoerwork Reduction Act of 1995 no persons are reauired to resoond to a collection of information unless it disolavs a valid OMB control number.
`
`UTILITY
`PATENT APPLICATION
`TRANSMITTAL
`
`Attorney Docket No.
`
`First Inventor
`
`Title
`
`13C
`
`Leighton
`
`"'
`
`t~~t tl1j:f:.:j/M ~~m v.s"(:J/"' I
`'1..S
`
`0
`
`I
`
`JJ&.r..J "fu<lfA,,
`I
`
`(Only for new nonprovisional applications under 37 CFR 1.53(b))
`
`Express Mail Label No.
`
`EQ744745608US
`
`APPLICATION ELEMENTS
`See MPE.P chapter 600 concerning utility patent application contents.
`
`ADDRESS TO:
`
`Commissioner for Patents
`P.O. Box 1450
`Alexandria VA 22313-1450
`
`J
`
`!--'
`ti:"""
`·' -
`
`Cl) T-
`::::) LC)
`T-
`!;!£?
`~T-
`....
`
`2.0
`
`1.(ZJ Fee Transmittal Form (e.g., PTO/SB/17)
`(Submit an original and a duplicate for fee processing)
`Applicant claims small entity status.
`See 37 CFR 1.27.
`31
`(Tota/ Pages
`3.0 Specification
`Both the claims and abstract must start on a new page
`(For information on the preferred arrangement, see MPEP 608.01 (a})
`(Total Sheets
`4.(2] Drawing(s) (35 U.S.C. 113)
`2
`
`5. Oath or Declaration
`
`(Total Sheets
`
`3
`
`l
`
`1
`l
`
`b.
`
`A copy from a prior application (37 CFR 1.63(d))
`
`a. 5:J Newly executed (original or copy)
`Dor continuation/divisional with Box 18 completed)
`
`i.
`
`DELETION OF INVENTOR{S}
`Signed statement attached deleting inventor(s)
`name in the prior application, see 37 CFR
`1.63(d)(2) and 1.33(b).
`
`6.0 Application Data Sheet. See 37 CFR 1.76
`
`7.0 CD-ROM or CD-R in duplicate, large table or
`151puter Program (Appendix)
`Landscape Table on CD
`
`8. Nucleotide and/or Amino Acid Sequence Submission
`(if apoable, items a. - c. are required)
`a.
`Computer Readable Form (CRF)
`b.
`Specification Sequence Listing on:
`
`ACCOMPANYING APPLICATION PARTS
`
`9. 0
`
`Assignment Papers (cover sheet & document(s})
`
`Name of Assignee
`
`10. 0
`
`37 CFR 3.73(b) Statement
`(when there is an assignee)
`
`OPowerof
`Attorney
`
`11. 0
`
`English Translation Document (if applicable)
`
`12. 0
`
`lnfoEjition Disclosure Statement (PTO/SB/08 or PT0-1449)
`Copies of citations attached
`
`13. 0
`
`Preliminary Amendment
`
`14. O Return Receipt Postcard (MPEP 503)
`(Should be specifically itemized)
`
`15. O Certified Copy of Priority Document(s)
`(if foreign priority is claimed)
`
`16. O Nonpublication Request under 35 U.S.C. 122(b)(2)(B)(i).
`Applicant must attach form PTO/SB/35 or equivalent.
`
`i.
`0
`CD-ROM or CD-R (2 copies); or
`ii.O Paper
`
`17. 0 Other:
`
`Statements verifying identity of above copies
`c. 0
`18. If a CONTINUING APPLICATION, check appropriate box, and supply the requisite information below and in the first sentence of the
`specification following the title, or in an Application Data Sheet under 37 CFR 1. 76:
`D Divisional
`W Continuation
`Prior application information:
`Examiner Kri!jjti~ Q Sbingleli
`
`0 Continuation-in-part (CIP)
`
`of prior application No.: 1.0/4.17.,f:\07 ....... .........
`
`Art Unit: 2141
`
`[{]The address associated with Customer Number: I
`
`50086
`
`I OR D Correspondence address below
`
`19. CORRESPONDENCE ADDRESS
`
`Name
`
`Address
`
`City
`
`Country
`
`Signature
`
`\
`
`I State
`II \. r-'\ I Telephone
`).
`I Date September 1, 2006
`Y'7: _A
`I ~l. /
`Registration No. I
`Name
`1 ~ \
`David lhoifson
`<Attornev/AaenO 30.467
`IPrintrrvoel
`This collection of information is required by 37 ~J3(b). The information is required to obtain or retain a benefit b the public which is to file and b the
`(
`y
`y
`USPTO to process) an application. Confidentiality is governed by 35 U.S.C. 122 and 37 CFR 1.11and1.14. This collection is estimated to take 12 minutes to
`complete, including gathering, preparing, and submitting the completed application form to the USPTO. Time will vary depending upon the individual case. Any
`comments on the amount of time you require to complete this form and/or suggestions for reducing this burden, should be sent to the Chief Information Officer,
`U.S. Patent and Trademark Office, U.S. Department of Commerce, P.O. Box 1450, Alexandria, VA 22313-1450. DO NOT SEND FEES OR COMPLETED
`FORMS TO THIS ADDRESS. SEND TO: Commissioner for Patents, P.O. Box 1450, Alexandria, VA 22313-1450.
`If you need assistance in completing the form, call 1-800-PT0-9199 and select option 2.
`
`Zip Code
`
`
`1
`
`Petitioner Limelight - LN1002
`
`
`
`PTO/SB/17 (07-06)
`c
`Approved for use through 01/31/2007. OMB 0651-0032
`:(/)
`U.S. Patent and Trademark Office; U.S. DEPARTMENT OF COMMERCE
`~ Ui'\der the Paperwork Reduction Act of 1995 no persons are renuired to resoond to a collection of information unless it disolavs a valid OMB control number
`Complete if Known
`Effective on 1210812004.
`~ _..
`v
`FefilpfurauEantEroffleTConsRAoffda~dANppropSriaaMonsAcltT200Ts(HA.R4Bl1~. L!A~p~p~lic~a~ti~o~n~N~u~m~b~e~r--l~(~ne~w~)~~~~~~~~~~~~--1
`Filing Date
`Seotember 1, 2006
`First Named Inventor Leiohton
`Examiner Name
`
`""'
`
`For FY 2005
`0 Applicant claims small entity status. See 37 CFR 1.27
`... ToTALAMOUNTOFPAYMENT I($)
`
`1000.00
`
`Art Unit
`
`Attorney Docket No.
`
`13C
`
`METHOD OF PAYMENT (check all that apply)
`
`D Check D Credit Card DMoney Order D None D Other (please identify):. ___________ _
`0 Deposit Account Deposit Account Number: 501269
`
`Deposit Account Name: Akamai Technologies. Inc.
`For the above-identified deposit account, the Director is hereby authorized to: (check all that apply)
`
`D Charge fee(s) indicated below, except for the filing fee
`D Charge any additional fee(s) or underpayments of fee(s) [{] Credit any overpayments
`
`[{]Charge fee(s) indicated below
`
`under 37 CFR 1.16 and 1.17
`WARNING: Information on this form may become public. Credit card Information should not be included on this form. Provide credit card
`Information and authorization on PT0-2038.
`FEE CALCULATION
`
`1. BASIC FILING, SEARCH, AND EXAMINATION FEES
`FILING FEES
`SEARCH FEES
`Small Entin!
`§?mi!ll Entin!
`E.!!!Jil ~ E.!!!Jil ~
`300
`150
`500
`250
`
`Agglicatlon Tl£1!e
`
`Utility
`
`EXAMINATION FEES
`Small Entitlr'.
`~
`100
`
`E.!!!Jil
`200
`
`Fees Paid m
`1 QQQ QQ
`
`Design
`
`Plant
`
`Reissue
`
`200
`
`200
`
`300
`
`100
`
`100
`
`150
`
`100
`
`300
`
`500
`
`50
`
`150
`
`250
`
`130
`
`160
`
`600
`
`65
`
`80
`
`300
`
`200
`
`100
`
`0
`
`0
`
`0
`
`0
`
`Provisional
`2. EXCESS CLAIM FEES
`Fee Descrlgtion
`Each claim over 20 (including Reissues)
`Each independent claim over 3 (including Reissues)
`Multiple dependent claims
`Fee Paid($)
`Total Claims
`Extra Claims
`X - - - - = - - - - -
`____ • 20 or HP=
`0
`HP = highest number of total daims paid for, if greater than 20.
`E.!!!Ji1
`Fee Paid/$)
`lndeg. Claims
`Extra Claims
`= - - - - -
`x
`3orHP =
`0
`HP= highest number of independent claims paid for, if greater than 3.
`3. APPLICATION SIZE FEE
`If the specification and drawings exceed I 00 sheets of paper (excluding electronically filed sequence or computer
`listings under 37 CFR 1.52(e)), the application size fee due is $250 ($125 for small entity) for each additional 50
`sheets or fraction thereof. See 35 U.S.C. 4Ha)(l)(G) and 37 CFR l.16(s).
`Number of each additional 50 or fraction thereof ~ Fee Paid ($)
`Total Sheets
`Extra Sheets
`=
`I 50 =
`____ - 100 =
`(round up to a whole number) x
`4. OTHER FEE(S)
`Non-English Specification, $130 fee (no small entity discount)
`
`Small EntlW
`E.!!!Jil
`~
`50
`25
`200
`100
`180
`360
`Multiple Degendent Claims
`E.!!!Ji1
`Fee Paid ($)
`
`Fees Paid ($)
`
`Other (e.g., late piing surcharge):
`
`~
`SUBMITTED BY
`'\.
`/
`\
`Signature ~ cf:-
`\. ./
`
`1
`
`Registration No.
`IAttomev/Aaent\ 30,467
`
`Telephone 972-385-2018
`
`\
`
`Name (Print/Type) David H:"Tudson
`
`Date September 1, 2006
`This collection of information is required by 37 C~6. The information is required to obtain or retain a benefit by the public which is to file (and by the
`USPTO to process) an application. Confidentiality is governed by 35 U.S.C. 122 and 37 CFR 1.14. This colledion is estimated to take 30 minutes to complete,
`including gathering, preparing, and submitting the completed application form to the USPTO. Time will vary depending upon the individual case. Any comments
`on the amount of time you require to complete this form and/or suggestions for reducing this burden, should be sent to the Chief Information Officer. U.S. Patent
`and Trademark Office, U.S. Department of Commerce, P.O. Box 1450, Alexandria, VA 22313-1450. DO NOT SEND FEES OR COMPLETED FORMS TO THIS
`ADDRESS. SEND TO: Commissioner for Patents, P.O. Box 1450, Alexandrla, VA 22313-1450.
`If you need assistance in completing the form, call 1-800-PT0-9199 and select option 2.
`
`2
`
`
`
`,..
`
`Date of Mailing: September 1, 2006
`
`CERTIFICATE OF MAILING BY "EXPRESS MAIL" UNDER37 CFR § 1.10
`"EXPRESS MAIL" mailing label number:
`__
`E Q 7 4 4 7 4 5 6 0 8 LJ S J
`I hereby certify that I have caused the documents indicated below to be deposited with the United States Postal Service
`"Express Mail Post Office to Addressee" under 37 CFR § 1.10 on the date indicated above and are addressed to
`the above Date of Mailing with the
`Commissioner of Patents, P.O. Box 1450, Alexandria, VA. 22313-1450 and mailed
`above "Express Mail" mailing label number
`
`David H. Judson
`
`Typed or printed name of person mailing paper or fee
`
`Date: September 1, 2006 ·
`
`Internet Address
`
`mail@davidjudson,com
`
`Phone: 972-385-2018
`
`Commissioner for Patents
`P.O. Box 1450
`Alexandria, VA 22313-1450
`
`Re:
`
`Content distribution system using an alternative domain name system (DNS) and
`content servers
`Inventors: F. Thomson Leighton and Daniel M. Lewin
`Docket: Akamai Technologies, Inc. 13C
`Assignee: Massachusetts Institute of Technology
`
`Dear Sir:
`
`A utility application is enclosed. Please direct all correspondence to the address associated with
`
`Customer Number 50086.
`
`Respectfully submitted,
`
`By:
`
`David H. Judson, Reg. No. 30,467
`
`· 15950 Dallas Parkway
`Suite 225
`Dallas, Texas 75248
`972-385-2018
`
`3
`
`
`
`13C
`
`1
`
`PATENT
`
`CONTENT DISTRIBUTION SYSTEM USING AN ALTERNATIVE
`DOMAIN NAME SYSTEM (DNS) AND CONTENT SERVERS
`
`CROSS-REFERENCE TO RELATED APPLICATIONS
`
`5
`
`This application is a continuation of prior application Serial No. 10/417,607,
`
`filed April 17, 2003, now U.S. Patent No. 7,103,645, which application was a
`
`continuation of prior application Serial No. 09/604,878, filed June 28, 2000, now U.S.
`
`Patent No. 6,553,413, which application was a continuation of prior application Serial
`
`No. 09/314,863, filed May 19, 1999, now U.S. Patent No. 6,108,703, which application
`
`10 was based on and claimed priority from Provisional Application 60/092,710, filed July
`
`14, 1998.
`
`Technical Field
`
`BACKGROUND OF THE INVENTION
`
`This invention relates generally to information retrieval in a computer network.
`
`15 More particularly, the invention relates to a novel method of hosting and distributing
`
`content on the Internet that addresses the problems of Internet Service Providers (ISPs) and
`
`Internet Content Providers.
`
`Description of the Related Art
`
`The World Wide Web is the Internet's multimedia information retrieval system. In
`
`20
`
`the Web environment, client machines effect transactions to Web servers using the
`
`Hypertext Transfer Protocol (HTTP), which is a known application protocol providing
`
`users access to files (e.g., text, graphics, images, sound, video, etc.) using a standard page
`
`description language known as Hypertext Markup Language (HTML). HTML provides
`
`basic document formatting and allows the developer to specify "links" to other servers and
`
`2 5
`
`files. In the Internet paradigm, a network path to a server is identified by a so-called
`
`Uniform Resource Locator (URL) having a special syntax for defining a network
`
`connection. Use of an HTML-compatible browser (e.g., Netscape Navigator or Microsoft
`
`Internet Explorer) at a client machine involves specification of a link via the URL. In
`
`4
`
`
`
`...
`
`13C
`
`2
`
`PATENT
`
`response, the client makes a request to the server identified in the link and, in return,
`
`receives a document or other object formatted according to HTML. A collection of
`
`documents supported on a Web server is sometimes referred to as a Web site.
`
`It is well known in the prior art for a Web site to mirror its content at another server.
`
`5
`
`Indeed, at present, the only method for a Content Provider to place its content closer to its
`
`readers is to build copies of its Web site on machines that are located at Web hosting farms
`
`in different locations domestically and internationally. These copies of Web sites are
`
`known as mirror sites. Unfortunately, mirror sites place unnecessary economic and
`
`operational burdens on Content Providers, and they do not offer economies of scale.
`
`1 O Economically, the overall cost to a Content Provider with one primary site and one mirror
`
`site is more than twice the cost of a single primary site. This additional cost is the result of
`
`two factors: (1) the Content Provider must contract with a separate hosting facility for each
`
`mirror site, and (2) the Content Provider must incur additional overhead expenses
`
`associated with keeping the mirror sites synchronized.
`
`15
`
`In an effort to address problems associated with mirroring, companies such as
`
`Cisco, Resonate, Bright Tiger, F5 Labs and Alteon, are developing software and hardware
`
`that will help keep mirror sites synchronized and load balanced. Although these
`
`mechanisms are helpful to the Content Provider, they fail to address the underlying problem
`
`of scalability. Even if a Content Provider is willing to incur the costs associated with
`
`2 0 mirroring, the technology itself will not scale beyond a few (i.e., less than 10) Web sites.
`
`In addition to these economic and scalability issues, mirroring also entails
`
`operational difficulties. A Content Provider that uses a mirror site must not only lease and
`
`manage physical space in distant locations, but it must also buy and maintain the software
`
`or hardware that synchronizes and load balances the sites. Current solutions require
`
`2 5
`
`Content Providers to supply personnel, technology and other items necessary to maintain
`
`multiple Web sites. In summary, mirroring requires Content Providers to waste economic
`
`and other resources on functions that are not relevant to their core business of creating
`
`content.
`
`5
`
`
`
`13C
`
`3
`
`PATENT
`
`Moreover, Content Providers also desire to retain control of their content. ·Today,
`
`some ISPs are installing caching hardware that interrupts the link between the Content
`
`Provider and the end-user. The effect of such caching can produce devastating results to
`
`the Content Provider, including (1) preventing the Content Provider from obtaining
`
`5
`
`accurate hit counts on its Web pages (thereby decreasing revenue from advertisers), (2)
`
`preventing the Content Provider from tailoring content and advertising to specific audiences
`
`(which severely limits the effectiveness of the Content Provider's Web page), and (3)
`
`providing outdated information to its customers (which can lead to a frustrated and angry
`
`end user).
`
`10
`
`There remains a significant need in the art to provide a decentralized hosting
`
`solution that enables users to obtain Internet content on a more efficient basis (i.e., without
`
`burdening network resources unnecessarily) and that likewise enables the Content Provider
`
`to maintain control over its content.
`
`The present invention solves these and other problems associated with the prior art.
`
`6
`
`
`
`13C
`
`4
`
`PATENT
`
`BRIEF SUMMARY OF THE INVENTION
`
`It is a general object of the present invention to provide a computer network
`
`comprising a large number of widely deployed Internet servers that form an organic,
`
`massively fault-tolerant infrastructure designed to serve Web content efficiently,
`
`5
`
`effectively, and reliably to end users.
`
`Another more general object of the present invention is to provide a fundamentally
`
`new and better method to distribute Web-based content. The inventive architecture
`
`provides a method for intelligently routing and replicating content over a large network of
`
`distributed servers, preferably with no centralized control.
`
`10
`
`Another object of the present invention is to provide a network architecture that
`
`moves content close to the user. The inventive architecture al.lows Web sites to develop
`
`large audiences without worrying about building a massive infrastructure to handle the
`
`associated traffic.
`
`Still another object of the present invention is to provide a fault-tolerant network for
`
`15
`
`distributing Web content. The network architecture is used to speed-up the delivery of
`
`richer Web pages, and it allows Content Providers with large audiences to serve them
`
`reliably and economically, preferably from servers located close to end users.
`
`A further feature of the present invention is the ability to distribute and manage
`
`content over a large network without disrupting the Content Provider's direct relationship
`
`2 0 with the end user.
`
`Yet another feature of the present invention is to provide a distributed scalable
`
`infrastructure for the Internet that shifts the burden of Web content distribution from the
`
`Content Provider to a network of preferably hundreds of hosting servers deployed, for
`
`example, on a global basis.
`
`2 5
`
`In general, the present invention is a network architecture that supports hosting on a
`
`truly global scale. The inventive framework allows a Content Provider to replicate its most
`
`popular content at an unlimited number of points throughout the world. As an additional
`
`feature, the actual content that is replicated at any one geographic location is specifically
`
`7
`
`
`
`13C
`
`5
`
`PATENT
`
`tailored to viewers in that location. Moreover, content is automatically sent to the location
`
`where it is requested, without any effort or overhead on the part of a Content Provider.
`
`It is thus a more general object of this invention to provide a global hosting
`
`framework to enable Content Providers to retain control of their content.
`
`5
`
`The hosting framework of the present invention comprises a set of servers operating
`
`in a distributed manner. The actual content to be served is preferably supported on a set of
`
`hosting servers (sometimes referred to as ghost servers). This content comprises HTML
`
`page objects that, conventionally, are served from a Content Provider site. In accordance
`
`with the invention, however, a base HTML document portion of a Web page is served from
`
`l 0
`
`the Content Provider's site while one or more embedded objects for the page are served
`
`from the hosting servers, preferably, those hosting servers nearest the client machine. By
`
`serving the base HTML document from the Content Provider's site, the Content Provider
`
`maintains control over the content.
`
`The determination of which hosting server to use to serve a given embedded object
`
`15
`
`is effected by other resources in the hosting framework. In particular, the framework
`
`includes a second set of servers (or server resources) that are configured to provide top
`
`level Domain Name Service (DNS). In addition, the framework also includes a third set of
`
`servers (or server resources) that are configured to provide low level DNS functionality.
`
`When a client machine issues an HTTP request to the Web site for a given Web page, the
`
`2 0
`
`base HTML document is served from the Web site as previously noted. Embedded objects
`
`for the page preferably are served from particular hosting servers identified by the top- and
`
`low-level DNS servers. To locate the appropriate hosting servers to use, the top-level DNS
`
`server determines the user's location in the network to identify a given low-level DNS
`
`server to respond to the request for the embedded object. The top-level DNS server then
`
`2 5
`
`redirects the request to the identified low-level DNS server that, in tum, resolves the request
`
`into an IP address for the given hosting server that serves the object back to the client.
`
`More generally, it is possible (and, in some cases, desirable) to have a hierarchy of
`
`DNS servers that consisting of several levels. The lower one moves in the hierarchy, the
`
`closer one gets to the best region.
`
`8
`
`
`
`13C
`
`6
`
`PATENT
`
`A further aspect of the invention is a means by which content can be distributed and
`
`replicated through a collection of servers so that the use of memory is optimized subject to
`
`the constraints that there are a sufficient number of copies of any object to satisfy the
`
`demand, the copies of objects are spread so that no server becomes overloaded, copies tend
`
`5
`
`to be located on the same servers as time moves forward, and copies are located in regions
`
`close to the clients that are requesting them. Thus, servers operating within the framework
`
`do not keep copies of all of the content database. Rather, given servers keep copies of a
`
`minimal amount of data so that the entire system provides the required level of service.
`
`This aspect of the invention allows the hosting scheme to be far more efficient than
`
`10
`
`schemes that cache everything everywhere, or that cache objects only in pre-specified
`
`locations.
`
`The global hosting framework is fault tolerant at each level of operation. In
`
`particular, the top level DNS server returns a list of low-level DNS servers that may be used
`
`by the client to service the request for the embedded object. Likewise, each hosting server
`
`15
`
`preferably includes a buddy server that is used to assume the hosting responsibilities of its
`
`associated hosting server in the event of a failure condition.
`
`According to the present invention, load balancing across the set of hosting servers
`
`is achieved in part through a novel technique for distributing the embedded object requests.
`
`In particular, each embedded object URL is preferably modified by prepending a virtual
`
`2 0
`
`server hostname into the URL. More generally, the virtual server hostname is inserted into
`
`the URL. Preferably, the virtual server hostname includes a value (sometimes referred to as
`
`a serial number) generated by applying a given hash function to the URL or by encoding
`
`given information about the object into the value. This function serves to randomly
`
`distribute the embedded objects over a given set of virtual server hostnames. In addition, a
`
`2 5
`
`given fingerprint value for the embedded object is generated by applying a given hash
`
`function to the embedded object itself. This given value serves as a fingerprint that
`
`identifies whether the embedded object has been modified. Preferably, the functions used
`
`to generate the values (i.e., for the virtual server hostname and the fingerprint) are applied
`
`to a given Web page in an off-line process. Thus, when an HTTP request for the page is
`
`9
`
`
`
`13C
`
`7
`
`PATENT
`
`received, the base HTML document is served by the Web site and some portion of the
`
`. page's embedded objects are served from the hosting servers near (although not necessarily
`
`the closest) to the client machine that initiated the request.
`
`The foregoing has outlined some of the more pertinent objects and features of the
`
`5
`
`present invention. These objects should be construed to be merely illustrative of some of
`
`the more prominent features and applications of the invention. Many other beneficial
`
`results can be attained by applying the disclosed invention in a different manner or
`
`modifying the invention as will be described. Accordingly, other objects and a fuller
`
`understanding of the invention may be had by referring to the following Detailed
`
`10 Description of the Preferred Embodiment.
`
`10
`
`
`
`13C
`
`8
`
`PATENT
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`For a more complete understanding of the present invention and the advantages
`
`thereof, reference should be made to the following Detailed Description taken in connection
`
`with the accompanying drawings in which:
`
`5
`
`Figure 1 is a representative system in which the present invention is implemented;
`
`Figure 2 is a simplified representation of a markup language document illustrating
`
`the base document and a set of embedded objects;
`
`Figure 3 is a high level diagram of a global hosting system according to the present
`
`invention;
`
`10
`
`Figure 4 is a simplified flowchart illustrating a method of processing a Web page to
`
`modified embedded object URLs that is used in the present invention;
`Figure 5 is a simplified state diagram illustrating how the present invention
`
`responds to a HTTP request for a Web page.
`
`11
`
`
`
`13C
`
`9
`
`PATENT
`
`DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
`
`A known Internet client-server system is implemented as illustrated in Figure 1. A
`
`client machine 10 is connected to a Web server 12 via a network 14. For illustrative
`
`purposes, network 14 is the Internet, an intranet, an extranet or any other knoWn network.
`
`5 Web server 12 is one of a plurality of servers which are accessible by clients, one of which
`
`is illustrated by machine 10. A representative client machine includes a browser 16, which
`
`is a known software tool used to access the servers of the network. The Web server
`
`supports files (collectively referred to as a "Web" site) in the form of hypertext documents
`
`and objects. In the Internet paradigm, a network path to a server is identified by a so-called
`
`10 Uniform Resource Locator (URL).
`
`A representative Web server 12 is a computer comprising a processor 18, an
`
`operating system 20, and a Web server program 22, such as Netscape Enterprise Server.
`
`The server 12 also includes a display supporting a graphical user interface (GUI) for
`
`management and administration, and an Application Programming Interface (API) 26
`
`15
`
`that provides extensions to enable application developers to extend and/or customize the
`
`core functionality thereof through software programs including Common Gateway
`
`Interface (CGI) programs, plug-ins, servlets, active server pages, server side include
`
`(SSI) functions or the like.
`
`A representative Web client is a personal computer that is x86-, PowerPC®- or
`
`2 0
`
`RISC-based, that includes an operating system such as IBM® OS/2® or Microsoft
`
`Windows '95, and that includes a Web browser, such as Netscape Navigator 4.0 (or higher),
`
`having a Java Virtual Machine (JVM) and support for application plug-ins or helper
`
`applications. A client may also be a notebook computer, a handheld computing device
`
`(e.g., a PDA), an Internet appliance, or any other such device connectable to the computer
`
`25
`
`network.
`
`As seen in Figure 2, a typical Web page comprises a markup language (e.g. HTML)
`
`master or base document 28, and many embedded objects (e.g., images, audio, video, or the
`like) 30. Thus, in a typical page, twenty or more embedded images or objects are quite
`
`common. Each of these images is an independent object in the Web, retrieved (or validated
`
`12
`
`
`
`13C
`
`10
`
`PATENT
`
`for change) separately. The common behavior of a Web client, therefore, is to fetch the
`
`base HTML document, and then immediately fetch the embedded objects, which are
`
`typically (but not always) located on the same server. According to the present invention,
`
`preferably the markup language base document 28 is served from the Web server (i.e., the
`
`5
`
`Content Provider site) whereas a given number (or perhaps all) of the embedded objects are
`
`served from other servers. As will be seen, preferably a given embedded object is served
`
`from a server (other than the Web server itself) that is close to the client machine, that is not
`
`overloaded, and that is most likely to already have a current version of the required file.
`
`Referring now to Figure 3, this operation is achieved by the hosting system of the
`
`10
`
`present invention. As will be seen, the hosting system 35 comprises a set of widely- ·
`
`deployed servers (or server resources) that form a large, fault-tolerant infrastructure
`
`designed to serve Web content efficiently, effectively, and reliably to end users. The servers
`
`may be deployed globally, or across any desired geographic regions. As will be seen, the
`
`hosting system provides a distributed architecture for intelligently routing and replicating
`
`15
`
`such content.· To this end, the global hosting system 35 comprises three (3) basic types of
`
`servers (or server resources): hosting servers (sometimes called ghosts) 36, top-level DNS
`servers 38, and low-level DNS servers 40. Although not illustrated, there may be additional
`
`levels in the DNS hierarchy. Alternatively, there may be a single DNS level that combines
`
`the functionality of the top level and low-level servers. In this illustrative embodiment, the·
`
`2 0
`
`inventive framework 35 is deployed by an Internet Service Provider (ISP), although this is
`
`not a limitation of the present invention. The ISP or ISPs that deploy the inventive global
`
`hosting framework 35 preferably have a large number of machines that run both the ghost
`server component 36 and the low-level DNS component 40 on their networks. These
`
`machines are distributed throughout the network; preferably, they are concentrated around
`network exchange points 42 and network access points 44, although this is not a
`
`2 5
`
`requirement. In addition, the ISP preferably has a small number of machines running the
`
`top-level DNS 38 that may also be distributed throughout the network.
`
`Although not meant to be limiting, preferably a given server used in the framework
`
`35 includes a processor, an operating system (e.g., Linux, UNIX, Windows NT, or the like),
`
`13
`
`
`
`13C
`
`11
`
`PATENT
`
`a Web server application, and a set of application routines used by the invention. These
`
`routines are conveniently implemented in software as a set of instructions executed by the
`
`processor to perform various process or method steps as will be described in more detail
`
`below. The servers are preferably located at the edges of the network (e.g., in points of
`
`5
`
`presence, or POPs).
`
`Several factors may determine where the hosting servers are placed in the network.
`
`Thus, for example, the server locations are preferably determined by a demand driven
`
`network map that allows the provider (e.g., the ISP) to monitor traffic requests. By
`
`studying traffic patterns, the ISP may optimize the server locations for the given traffic
`
`10
`
`profiles.
`
`According to the present invention, a given Web page (comprising a base HTML
`
`document and a set of embedded objects) is served in a distributed manner. Thus,
`
`preferably, the base HTML document is served from the Content Provider Site 45 that
`
`normally hosts the page. The embedded objects, or some subset thereof, are preferentially
`served from the hosting servers 36 and, specifically, given hosting servers 36 that are near
`
`15
`
`the client machine that in the first instance initiated the request for the Web page. In
`
`addition, preferably loads across the hosting servers are balanced to ensure that a given
`
`embedded object may be efficiently served from a given hosting server near the client when
`
`such client requires that object to complete the page.
`
`2 0
`
`To serve the page contents in this manner, the URL associated with an embedded
`
`object is modified. As is well-known, each embedded object that may be served in a page
`
`has its own URL. Typically, the URL has a hostname identifying the Content Provider's
`
`site from where the object is conventionally served, i.e., without reference to the present
`
`invention. According to the invention, the embedded object URL is first modified,
`
`2 5
`
`preferably in an off-line process, to condition the URL to be served by the global hosting
`
`servers. A flowchart illustrating the preferred method for modifying the object URL is
`
`illustrated in Figure 4.
`
`The routine begins at step 50 by determining whether all of the embedded objects in
`
`a given page have been processed. If so, the routine ends. If not, however, the routine gets
`
`14
`
`
`
`13C
`
`12
`
`PATENT
`
`the next embedded object at step 52. At step 54, a virtual server hostname is prepended
`
`into the URL for the given embedded object. The virtual server hostname includes a value
`
`(e.g., a number) that is generated, for example, by applying a given hash function to the
`
`URL. As is well-known, a hash function takes arbitrary length bit strings as inputs and
`
`5
`
`produces fixed length bit strings (hash values) as outputs. Such functions satisfy two
`
`conditions: (I) it is infeasible to find two different inputs that produce the same hash value,
`
`and (2) given an input and its hash value, it is infeasible to find a different input with