`a2) Patent Application Publication (0) Pub. No.: US 2010/0115613 A1
`
` Ramaswamietal. (43) Pub. Date: May6, 2010
`
`
`US 20100115613A1
`
`(54) CACHEABLE MESH BROWSERS
`
`(52) U.S.Coo. 726/22; 707/E17.108; 707/E17.111
`
`(75)
`
`Inventors:
`
`Prem Ramaswami, Branchburg, NJ
`(US); Satishkumar Sampath,
`Bangalore (IN)
`
`Correspondence Address:
`STERNE, KESSLER, GOLDSTEIN & FOX, P.L.
`L.C.
`1100 NEW YORK AVENUE,N.W.
`WASHINGTON,DC 20005 (US)
`
`(73) Assignee:
`
`Google Inc., Mountain View, CA
`(US)
`
`(21) Appl. No.:
`
`12/262,903
`
`(22)
`
`Filed:
`
`Oct. 31, 2008
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`GO6F 12/14
`GO6F 7/06
`G06F 17/30
`
`(2006.01)
`(2006.01)
`(2006.01)
`
`(57)
`
`ABSTRACT
`
`Methods and systems for improving the end-user experience
`by reducing the latency of data access across networks by
`accessing peer browser cachesare disclosed. In one embodi-
`ment, a method of accessing a web data element includes:
`transmitting a first request for the web data element from a
`first browser to a home location of the web data element;
`transmitting a second request for the web data element from
`the first browser to one or more hosts including a second
`browser accessible by the first browser; receiving a cached
`copy of the web data element by the first browser from the
`second browser; and displaying the cached copy of the web
`data element. In another embodiment, a method of improving
`access to a web data element, includes: receiving a copy ofthe
`web data element at a first browser in response to a first
`requestinitiated from thefirst browser; storing the copy ofthe
`webdata element in a cache controlledby the first browseras
`a cached web data element; receiving a request for the web
`data element from a second browser; and providing a copy of
`the cached web data element to the second browser.
`
`100
`\W\
`
`web server 150
`(home location)
`
`
`151
`
`persistent storage
`152
`web data element
`
`
`
`
`host 101
`
`browser
`111
`
`cache
`121
`
`host 103
`host 102
`
`
`browser
`112
`
`browser
`113
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cache
`cache
`123
`122
`124
`
`
`host 104
`
`browser
`114
`
` cache
`
`
`
`
`
`
`
`
`
`
`
`router
`131
`
`external network
`140
`
`|
`
`local network
`130
`
`Data Co Exhibit 1041
`Data Co Exhibit 1041
`Data Co v. Bright Data
`
`Data Co v. Bright Data
`
`
`
`Patent Application Publication
`
`May 6, 2010 Sheet 1 of 5
`
`US 2010/0115613 Al
`
`egh___
`
`J9ynoJ
`
`Leb
`
`
`
`YIOMIOU|BLE}Xe
`
`OFrL
`
`yoeo
`
`Lob
`
`JESMOIG
`
`LLL
`
`LOL#SOU
`
`
`abes0}sjuejsisioda||LGL4
`yuawe|eByepgam
`
`OGLJeAiasqomOOL
`
`(uOI}eD0]BUOY)\\\
`
`L‘Sid
`
`
`
`YJOMOU[290]
`
`O€l
`
`eyoeo
`
`vel
`
`Jasmoq
`
`VLL
`
`ayoeo
`
`ech
`
`JOSmolq
`
`Ebb
`
`eyoero
`
`Gb
`
`Jasmolq
`
`cobb
`
`COL}SOYcOL}SOY
`
`
`
`
`
`
`
`Patent Application Publication
`
`May 6, 2010 Sheet 2 of 5
`
`US 2010/0115613 Al
`
`
`
`asuodseaeyuseoJeed
`
`e{npow
`
`922
`
`
`
`jsanbayayoeoJoed
`
`e|Npow
`
`8éc
`
`
`
`ginpowBulyoes
`
`ve?
`
`
`
`SJEMYOSYAOM]OU
`
`0&2
`
`
`
` 902
`
`
`
`abelojsiuaisissad
`
`SOBL9]Ul
`
`VLE
`
`éSls
`YIOMIOU
`
`
`
`BUDEJSOSMOIG
`
`aBesojs
`
`802
`
`
`
`
`
`
`
`soeJajulJesn
`
`GbE
`
`
`
`
`
`g|npowAejdsip
`
`COC
`
`JOSMOIG
`
`02?
`
`OrZOl?
`
`Josssooid
`
`
`
`SYORDJASMOIG
`
`vO?
`
`
`
`Arowoewolweucp
`
`C02
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication
`
`May 6, 2010 Sheet 3 of 5
`
`US 2010/0115613 Al
`
`jusWwE]9Byepqampauoes
`
`
`
`
`
`SalNUSpP!JOSMOlgISJI4
`
`
`
`jusWaleByepqaMpaused
`
`
`
`JOSMOJGPUODASOo}
`
`
`
`
`
`SAINIJABSMOIGPUdDES
`
`
`
`JUBWE/8B}eEpGampeyoed
`
`
`
`
`
`SpUESJOSMOIG}SJI4
`
`VIE
`
`OLE
`
`BLE
`
`jUSsWalayepqam
`
`
`
`
`
`sjsanbalJ9Smojg}sul4ZOE
`
`juaWa|9Byepqam
`
`
`
`
`
`SO8AIBO81JOSMOIG}SJI4Oe
`
`
`
`juswa|9eyepqam
`
`
`
`
`
`SEUOBOJOSMOIGISJI490€
`
`
`
`
`
`s}sonbolJasmoigpuocoss
`
`
`
`WOd}JUDWE]SYEPqom
`
`
`
`uoneoo]awoY
`
`80€
`
`€‘Sls
`
`
`
`dnoi6198d0}
`
`
`
`
`
`JSONbalJOSMOIGPUuddES
`
`
`
`
`
`SOAIQOOIJASMOIG1SJI4
`
`cle
`
`jUdsW9|9YepGampeyoero
`
`WOJUSWS]aBJepGam
`
`
`
`dnoi6190d
`
`
`
`
`
`shejdsipiesmolgpuocoas
`
`OZe
`
`
`
`
`
`s}sonbalJasmMoigpuodssSOle
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication
`
`May 6, 2010 Sheet 4 of 5
`
`US 2010/0115613 Al
`
`ae)|
`
`}U9]U09
`
`SLYV
`
`OLY
`
`jooojojd 00r
`
`JalnUep!}Ua]U0D
`
`Joyepiyen
`
`807
`
`907
`
`vov
`
`COV
`
`
`
`Jepeoyysenbe:|Japesy
`
`Joyepijen
`
`Japeoyasuodsal
`
`Japeoyjooojoid
`
`vIlP
`
`ZLV
`
`
`
`Patent Application Publication
`
`US 2010/0115613 Al
`
`S‘Sis
`
`May 6, 2010 Sheet 5 of 5
`
`JOYNUSP! 00S
`
`JU}UOD
`
`CoG
`
`Joyepyen
`
`véG
`
`sounuap!
`
`}S]|
`
`OLS
`
`
`
`xepulysey
`
`ZOS
`
`——
`
`vOS
`
`
`
`US 2010/0115613 Al
`
`May6, 2010
`
`CACHEABLE MESH BROWSERS
`
`BACKGROUND
`
`1. Field
`[0001]
`[0002] Embodiments of this invention relate generally to
`reducing the latency of accessing data elements across one or
`more networks.
`[0003]
`2. Background Art
`[0004] Content access and content delivery through net-
`works such as the Internet has become pervasive. For
`example, the World Wide Web (WWWor Web) is a system of
`interlinked documents accessedvia the Internet. The Internet
`is a loose interconnection ofnumerous networksthat allows a
`host connected to one network to access data on a server
`located in a second network possibly in another part of the
`world. Based on hypertext documents, the Web allowsvari-
`ous typesoffiles, such as audio, video, images, text, and other
`types of binary files to be displayed, accessed, stored and
`retrieved.
`
`[0005] As the Web becomes increasingly rich in content,
`and as the sophistication of the content (e.g., higher quality
`images and video) increases, the numberof people accessing
`the web as well as the frequency ofweb access keepsincreas-
`ing. Often, a user accesses content in a data center that is
`located many network hops away from the user. Accessing
`content on distant network locations increases overall net-
`
`work traffic as well as latency to obtain the requested content.
`Theincreasedtraffic may cause network congestion and lead
`to poor overall performance in access to content using the
`Web. While the networks are frequently upgraded to higher
`capacities, the amountoftraffic flowing through the networks
`is also constantly increasing.
`[0006] Content available on the Web is in the form of a
`webpage and/or data elements being linked to from a
`webpage. A webpageis typically in Hyper Text Markup Lan-
`guage (HTML)ora variant thereof, and may contain links to
`one or more other webpagesor other content such as images,
`audio files, video files, executable content, and scripts. A
`webpage can includetext, images, HTML language elements,
`and links to other content. Each element, such as a webpage or
`linked content is, in general, separately downloadedfrom its
`original location (homelocation). The home location is the
`server identified by the URL corresponding to that element.
`Allelements of a particular webpageare not required to have
`the same homelocation. The requesting browser is generally
`referred to as a client browser.
`
`[0007] Many techniques have been used to enhance the
`end-user experience in accessing content over networks. For
`example, content may be compressed on the server and be
`decompressed only whenit is received at the client browser.
`Client side programs may perform processing activities on
`the client, reducing the frequency of access to servers for a
`particular task. Server content may be transparently dupli-
`cated at multiple locations so that clients have a shorterdis-
`tance in network hops to reach desired content. Proxy caches
`may cache server content so that local clients have faster
`access to selected content. Web browsers (browsers) may
`cache content locally so that the browsers may simply serve
`up some content from the local cache when that content is
`needed again. Somepeer-to-peer networking approachesare
`also conventionally used to speedupthe delivery of content to
`requesting clients. Each of these techniques serve to reduce
`network traffic and reduce congestion while enhancing the
`end-user experience. Often a combination of
`several
`
`approaches, including one or more of the approaches noted
`above, is employed to enhance the end-user experience and
`improve network utilization. But, the need for new techniques
`to improve the end-user experience and network utilization
`remains.
`
`Services that transparently replicate server content
`[0008]
`to multiple servers improve the end-user experience andnet-
`work utilization by moving content closer to requesting cli-
`ents. The process of replicating server content is generally
`transparent to browsers, and the browsers are directed to the
`replicating servers transparently. For example, a corporate
`webserver mayreplicate its content to multiple replicating
`servers distributed throughout the Internet. Browsers access-
`ing the corporate web server using its predetermined uniform
`resource locator (URL), can be transparently directed to a
`suitable replicating server by appropriately resolving and
`responding to domain name service (DNS) queries of the
`browserto return the address for that replicating server. Net-
`works of replicating servers are sometimes referred to as
`content delivery networks (CDN).
`[0009]
`Proxy caches are generally intermediate network
`nodesthat intercept requests for web content (web requests)
`from browsers. In general, a proxy cachere-issues an inter-
`cepted web request to the web server such that the proxy
`cache will receive the response. The responses thus received
`are cached in the proxy cache andare used to service subse-
`quent requests for the same content by any browser whose
`requests are interceptedat the proxy. Proxy cachesare prima-
`rily implemented in a mannerthat the proxy cacheintercepts
`web requests from browsers in a local network such as a
`corporate local networkor the local network of a school. The
`cache maintainedby the proxy cachecan benefit all browsing
`clients in the local network.
`
`[0010] Most current web browsers implement a local
`cache. When content is obtained from a web server, the
`browserstores a copy of that content in its own local cache.
`Subsequent requests for the same content can be serviced by
`simply retrieving that content from the local cache. The local
`cache allows each browser to first seek to retrieve content
`
`from its own cache, before sending out any messagesonto the
`network.
`
`[0011] Delivery mechanisms based on peer-to-peer net-
`work technology are used for distributing content such as
`audio and videofiles. For example, BitTorrent is a technology
`that allows a client wanting to downloada file to connect to
`multiple sources having thatfile or portions thereof to com-
`plete the downloadspeedily. BitTorrentalso turnsclients that
`downloaded any files into servers from which others can
`downloadall or parts of such downloadedfiles. A client uses
`BitTorrent to download content by first discovering its peer
`group of other BitTorrent clients. In general, the group of
`peers from which a client can downloada file is determined
`by a specialized node identified as the ‘tracker’ for the speci-
`fied content. A client identifies a tracker by locating a ‘torrent’
`file that lists the desired content. The torrentfile is created by
`each node that becomes a part of the BitTorrent delivery
`network, andlists the files (or the parts ofthefiles) that are
`available from that node. A client wanting to download a
`particular content first locates a torrent, and based on the
`torrent connects to the specified tracker. In turn, the tracker
`provides the information necessary for the BitTorrent client
`initiating the download to download the content. SomeBit-
`Torrent implementations may not have centralized trackers,
`and would distribute the tracker functions amongall BitTor-
`
`
`
`US 2010/0115613 Al
`
`May6, 2010
`
`rent peers. These implementations still require the corre-
`sponding torrent to be obtainedprior to retrieving content.
`[0012] The conventional approaches,
`including those
`described above, help improve the end-user experience and
`networkutilization. However, as the Web and Internet con-
`tinues to grow addingusers, networks, and contentof increas-
`ing complexity, there remains a need for methods and systems
`for further improving the end-user experience and network
`utilization.
`
`SUMMARY
`
`panying figures. Thesefigures are intendedto beillustrative,
`not limiting. Although the invention is generally described in
`the context of these embodiments, it should be understood
`that it is not intended to limit the scope of the invention to
`these particular embodiments.
`[0018]
`FIG. 1 shows a network according to an embodi-
`mentof the present invention.
`[0019]
`FIG. 2 shows a computer according to an embodi-
`mentof the present invention.
`[0020]
`FIG. 3 is a flowchart showing processing stages in
`two browsers according to an embodiment of the present
`invention.
`
`[0013] Methods and systems for improving the end-user
`experience by reducing the latency of data access across
`networks are disclosed. In one embodiment, a method of
`FIG. 4 shows a request for web content and a
`[0021]
`accessing a web data element includes the stages of: trans-
`response with web content, according to an embodiment of
`mitting a first request for the web data elementfromafirst
`the present invention.
`browser to a homelocation of the web data element; trans-
`[0022] FIG.5 shows aschemethat can be usedfor locating
`mitting a second request for the web data element from the
`cached web data elements according to an embodimentofthe
`first browser to one or more hosts including a second browser
`present invention.
`accessible by the first browser; receiving a cached copyof the
`web data element by the first browser from the second
`browser, where the cached copy of the web data element was
`stored in a cache associated with the second browser; and
`displaying the cached copy of the web data elementusing the
`first browser, where the cached copy of the web data element
`is received by the first browser before the first browser
`receives the web data element from the homelocation.
`[0014]
`In another embodiment, a method of improving
`access to a web data element, includesthe stagesof: receiving
`a copy of the web data elementat a first browser in response
`to a first request initiated from thefirst browser; storing the
`copy ofthe web data element in a cache controlled bythefirst
`browser, where the copy of the web data elementis stored as
`a cached webdata element; receiving a request for the web
`data element from a second browser, where the request for the
`webdata elementis sent in conjunction with a request from
`the second browser to a homelocation of the web data ele-
`ment; and providing a copy ofthe cached web data elementto
`the second browser.
`[0015]
`In another embodiment, a system for using a
`browser cache for accessing a web data element, includes a
`first browser and a second browsercoupledto a network. The
`first browser has a caching module configured to receive a
`copy of the web data elementand to store the copy ofthe web
`data element in a cache, and a peer cache response module
`configured to receive a third request from the second browser
`for the web data element, and to provide a copy of the cached
`web data elementto the second browser. The second browser
`includesa peer cache request module configured to transmit a
`second request for the web data element to a homelocation of
`the web data element, to transmit the third request to an
`address accessible bythefirst browser, and to display the copy
`of the cached web data element.
`[0016]
`Further features and advantages of the present
`invention, as well as the structure and operation of various
`embodiments thereof, are described in detail below withref-
`erence to the accompanying drawings. It is noted that the
`invention 1s not limited to the specific embodiments described
`herein. Such embodiments are presented herein for illustra-
`tive purposes only. Additional embodiments will be apparent
`to persons skilled in the relevant art(s) based on the teachings
`contained herein.
`
`DETAILED DESCRIPTION OF EMBODIMENTS
`
`[0023] While the present invention is described herein with
`reference to illustrative embodiments for particular applica-
`tions, it should be understoodthat the invention is not limited
`thereto. Those skilled in the art with access to the teachings
`herein will recognize additional modifications, applications,
`and embodiments within the scope thereof and additional
`fields in which the invention would be of significant utility.
`
`Overview
`
`[0024] The Web continues to grow adding users, networks
`and content. Although the networks that comprise the Web
`and the Internet constantly increase in bandwidth, the growth
`ofthe numberofusers and amount and complexity of content
`continues the need for new technologies to improve the end-
`user experience and the corresponding networkutilization.
`[0025] The invention disclosed herein, in one embodiment,
`includes methods and systemsto leverage the caches ofone or
`more browsers in a local network for the benefit of all brows-
`
`ers in that local network. The methods and systems disclosed
`herein can be used by themselvesor in combination with one
`or more conventional approaches(e.g., compression,client-
`side scripts, content delivery networks, proxy caching, local
`browser caching, peer-to-peerfile delivery, etc.) to improve
`the end-user experience and networkutilization. The methods
`and systems disclosed herein are expected to yield better
`end-user experience and network utilization while causing an
`increase in message exchanges only within a local network.
`[0026] An example use of an embodimentof the present
`invention maybeillustrated considering users accessing the
`Web using browsers located on a local area network (peer
`browsers) in an environment such as an internet cafe. In
`general, the local area network within the internet cafe con-
`stitutes very high bandwidth links compared tothe link out-
`going to the Internet from the internet cafe.
`In certain
`instances, such as when a breaking newsstory occurs, when
`manyofthe users in the internet cafe are participating in an
`educational exercise, or when a web portal contains content
`of interest to a wide section of local population, the same
`content may be accessed by more than one user. A user (or
`more accurately, the corresponding browser) who receives
`the content that he requested may cache that content. Subse-
`quently, a second user who desires that same content can,
`simultaneously while requesting the content from the known
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0017] Reference will be made to the embodiments of the
`invention, examples ofwhich maybeillustrated in the accom-
`
`
`
`US 2010/0115613 Al
`
`May6, 2010
`
`location for that content (herein the homelocation), request
`that content from other users on the samelocal area network.
`
`One or more sources may respond to the request from the
`second user. The second user may use the content from the
`first received response, which mayeither be from the home
`location or another browser from the same network. By
`enabling each browserin the peer group of browsers to share
`its cache with other browsers in the same peer group, the
`embodimentsof the present invention form a logical mesh of
`caches in a local network. This process will be further
`described below.
`
`In the above example, it can be seen that embodi-
`[0027]
`ments of the present invention can be used seamlessly with
`many of the other technologies mentioned above to improve
`the end-user experience. For example, the approach taught in
`this disclosure is complementary to content distribution net-
`works, proxy caching, and local caching. Any increase in
`messagetraffic generated is restricted to the corresponding
`local area network. The improvementin the end-user experi-
`ence may correspondto the reduction ofthe latency in obtain-
`ing content. Therefore, as the external networks and/orserv-
`ers experience increasing congestion, the relative advantages
`ofembodiments ofthe present invention increase. Also, as the
`volume of contentthat is obtained from cachesofpeer brows-
`ers increase, the relative advantages of embodiments of the
`present invention increase. For example, if a large number of
`users on the samelocal network desire to view a videofile of
`substantial length, having the videofile accessible in a peer
`cache is likely to significantly reduce the access times
`involved for most users.
`
`[0028] Embodiments of the present invention, in effect,
`distribute a cache among browsers in a predetermined area.
`Thedistribution of the cache can enable a user to have access
`
`to a larger cache, having cached content that is more consis-
`tent because each cache is maintained by the corresponding
`browser, and not having a single point of failure such as a
`proxy cache. The present invention, in one embodiment,dis-
`patches requests to obtain content to the homelocation of a
`particular content element as well as to the local network,
`thereby benefiting from content cached by a local peer while
`not getting penalized with increased latency if the contentis
`not found in the cache of a peer browser.
`
`System Components
`
`FIG.1 illustrates an environment 100 in which peer
`[0029]
`browser cache sharing is performed in accordance with an
`embodimentof this invention. Hosts 101, 102, 103 and 104
`include internal browsers 111, 112, 113 and 114, respectively.
`Hosts 101, 102, 103 and 104 all connect to the same local
`network 130. For illustrative purposes, each host includes one
`active browser, for example, browser 111 is active on host
`101, browser 112 is active on host 102, browser 113 is active
`on host 103, and browser114is active on host 104. Hosts 101,
`102, 103 and 104 also include internal browser caches 121,
`122, 123 and 124, respectively. Each browser cache is con-
`trolled by the respective browser, for example, browser cache
`121 is controlled by browser 111, browser cache 122 is con-
`trolled by browser 112, browser cache 123 is controlled by
`browser 113, and browser cache 124is controlled by browser
`114. Hosts 101, 102, 103, and 104 may each be any comput-
`ing device on which a browser can be used, such as, for
`example, a personal computer, personal digital assistant
`(PDA), or an embedded device. Browsers 111, 112, 113, and
`114 may be any web browser. Some embodiments of the
`
`present invention may require that browsers 111, 112, 113,
`and 114 are of the same type. Other embodiments, however,
`mayonly requirethatcertain aspects of caching and commu-
`nication are supported by each browser 111, 112, 113, and
`114 so as to permit interaction among peer browsers. Each
`browser cache may include spacein the corresponding host’s
`dynamic memory as well as in that host’s persistent memory.
`[0030] Local network 130, in general, may include one or
`more interconnected networks under one administrative
`
`domain. An administrative domain is a collection of hosts,
`routers, and the interconnecting networks managed by a
`single administrative authority. In the embodiment shown in
`FIG.1, local network 130 is a local area network (LAN)that
`is connected to external network 140 through router 131.
`LAN 130, for example, may be a wired network such as
`ethernet, gigabit ethernet, a wireless network such as IEEE
`802.11, or a combination thereof. Router 131 is connected to
`LAN130 with oneinterface, and to external network 140 with
`interface 141.
`
`[0031] A web server 150 having one or more web data
`elements is connected to external network 140 through a
`connection 142. Web server 150 can be any computer execut-
`ing an instance of web server software such as, for example,
`the Apache web server software produced by the Apache
`Software Foundation.In this disclosure the term webserveris
`
`used collectively for the computer and the executing instance
`of the web server software. Web server 150 mayalso include
`of one or more computers that are load sharing and/orrepli-
`cating the relevant web data content. Web server 150 can
`include a persistent memory (not shown) such as a hard disk
`drive and/or a dynamic memory (not shown). Web dataele-
`ments including web data element 152 mayreside in persis-
`tent memory or in dynamic memory on web server 150. Web
`data element 152 may be one of several types of data ele-
`ments, such as an HTML-based webpage, an image, an audio
`file, a video file, a script, executable code, or other binary
`code. Web server 150 may make web data element 152 acces-
`sible to browsers including browsers 111, 112, 113 and 114.
`[0032] External network 140 may include one or morenet-
`works including the Internet. Router 131 can be any device
`that can exchange packets between LAN 130 and external
`network 140. For example, in the embodiment shownin FIG.
`1, router 131 may perform routing of Internet Protocol (IP)
`packets from LAN 130 to web server 150 that is connected via
`external network 140, and vice versa. In a typical network
`spread across geographic areas, particularly when the end-to-
`end connectivity involves traversing a large network such as
`the Internet, a packet may encounter multiple routers in its
`path to the destination. The numberofrouters encountered on
`apathtraversed by a packet is generally referred to as the “hop
`count” of that path, and is a measure of the distance and/or
`cost related with that path.
`[0033]
`In addition to the hop count, another measure of the
`cost of a connectionorlink may be the bandwidth andlatency
`associated with the corresponding link. In the embodiment
`shown in FIG.1, interface 141, that connects LAN 130 andits
`hosts to external network 140, may berelatively slow com-
`pared to LAN 130. For example, LAN 130 maybea gigabit
`ethernet network having a bandwidth of 1 Gbps while link
`141 may be a dial-up internet link at 128 kbps. In such a
`situation, any web request from a host on LAN 130 to web
`server 150, is likely to experience latency due to interface
`141.
`
`
`
`US 2010/0115613 Al
`
`May6, 2010
`
`[0034] FIG.2 shows components ofa host 200 (e.g., suchas
`host 101, 102, 103 or 104) according to an embodimentof the
`present invention. Host 200 includes a processor 210, a
`dynamic memory 202, a persistent memory 206,a user inter-
`face 212, and network interface 214, interconnected by a
`system bus 240. Host 200 also includes a browser software
`module 220. Dynamic memory 202 includes a browser cache
`204. Persistent memory 206 includes an area for browser
`cache storage 208. Browser module 220 can includea display
`module 222, a caching module 224, a peer cache response
`module 226, a peer cache request module 228, and a network
`software module 230.
`
`Processor 210, dynamic memory 202, persistent
`[0035]
`memory 206, user interface 212, and network interface 214,
`can be of types usually found on a general purpose personal
`computer, personaldigital assistant, and/or smartphone. Pro-
`cessor 210 may include a general purpose microprocessor or
`a specialized processor. Dynamic memory 202, for example,
`may include of one or more variants of random access
`memory (RAM). Persistent memory 206 may include a hard
`disk, optical disk, flash memory, or similar storage medium.
`Userinterface 212 mayinclude a keyboard device, a mouse or
`tracking device, and a display. Network interface 214 may be
`an interface capable of transmitting and receiving data pack-
`ets form one or more networks compliant with standard pro-
`tocols, such as, ethernet, gigabit ethernet, IEEE 802.11, ora
`non-standard communication protocol. System bus 240 may
`be acommunication device compliant with a standard such as
`Peripheral Component Interconnect (PCI).
`[0036] Browser 220 is defined using any one or more com-
`puter programming languageor scripting language, such as
`Java, C, C++, or Perl. Processor 210 creates an instance of
`browser 220 that executes exchanging data with dynamic
`memory 202, persistent memory 206, user interface 212, and
`network interface 214, over system bus 240.
`[0037] According to the teachings in this disclosure,
`browser 220 controls browser cache 204. In some embodi-
`ments, maintaining browser cache 204 may include storing
`all or part of the data in browser cache 204 in browser cache
`storage 208. For example, for reasons includingreliability
`and scalability, someor all of the data in browser cache 204
`may be automatically stored in browser cache storage. How-
`ever, in general, the process of transferring data between
`browser cache 204 and browser cache storage 208 is trans-
`parent to browser 200. In the rest of this disclosure, browser
`cacherefers to the combined browser cache 204 and browser
`
`cache storage 208 unless specifically noted.
`[0038] Caching module 224 is acomponentofbrowser 220
`that stores and retrieves data from the browser cache(e.g.,
`browser cache 204). For example, browser 220 may use cach-
`ing module 224 to seek a web data element from its local
`browser cache for its own use, or in order to respond to a
`request from a peer browser. Caching module 224 mayalso
`include functionality to insert received web data elements
`into the browser cache.
`
`Peer cache response module 226 includes the func-
`[0039]
`tionality for a peer browser with an active browser cache to
`receive a peer request for a web data element, locate the
`desired web data element in its browser cache, and to send
`back a copy of the desired web data elementto the requesting
`peer browser.
`[0040]
`Peer cache request module 228 includes functional-
`ity to generate web data element requests to be sent to peer
`browsers. For example, browser 220 may use peer cache
`
`request module 228to identify web data elements that should
`be requested from the peer browsers(in addition to requesting
`from the homelocation for that web data element) andcreat-
`ing and sending the request message to be sent to the peer
`browsers.
`[0041] Network software module 230 may include func-
`tionality to packetize, address, and send web data element
`request messages to network interface 214 to be transmitted
`on to a network. Network software module 230 may also
`include functionality to receive packets addressed to a peer
`browser group and to make those messagesavailable to peer
`cache request module 228. A person skilled in the art will
`understand that network software module 230 encompasses
`much of the functionality of conventional IP network soft-
`ware with some modification and/or configuration to recog-
`nize packets from peer browsers.
`
`Message Exchange and Cache Processing
`
`FIG. 3 is a flowchart illustrating the exchange of
`[0042]
`messages among peer browsers and cache interactions
`according to an embodiment of the present invention. For
`ease ofdescription, only the exchanges between two browsers
`and a serverare illustrated in FIG. 3. A person skilled in the art
`will understandthat the disclosed methodscales with a larger
`numberof peer browsers and a larger numberofservers.
`[0043]
`In stage 302, a first browser (e.g., browser 112 on
`host 102) requests a web data element. For example, browser
`112 may request web data element 152 from web server 150.
`The communication between browser 112 and web server
`
`150 may be based on protocols including the Hypertext
`Transfer Protocol (HTTP). Therefore, the request for web
`data element 152 may be generated as a HTTP GET massage
`from browser 112 to web server 150.
`
`[0044] The web data element being requested from a web
`server may be an HTMLpageor a linked element such as an
`image, audioor videofile. In general, the web data elementto
`beretrieved is specified, by a user or in the form of a linked
`element in a webpage, as a uniform resource locator (URL)
`that includes the domain nameoftheserver(e.g., http://www.
`google.com). Before the packet or packets containing the web
`data element request leaves the requesting host, an appropri-
`ate IP address is determined that corresponds to the web
`server identified by the URL. Theresolution ofa URL and/or
`domain nameto an IP address may be handled by components
`of the requesting host including its network software module
`(e.g., network software module 214 ofhost 200). The specific
`details of resolving a URL and/or domain namebasediden-
`tifier to an IP address, generating one or moreIP packets from
`a messageto be sent, addressing the packets, transmitting the
`packets onto the network,receiving packets, extracting mes-
`sages out of received packets, etc., are not described here
`becausethe details of such aspectsare not directly relevantto
`this invention, and are generally knownto persons of skill in
`the art.
`
`In stage 304, the browser requesting the web data
`[0045]
`elementin stage 302 receives a response from the correspond-
`ing web server containing a copy of the requested web data
`element. For example, browser 112 may receive an HTTP OK
`response message from web server 150. The response con-
`tains a copy of web data element 152 and mayalso include,
`for example, information such as the server that returned the
`associateddata (in this example, the copy ofweb data element
`152), the length of the associated data in bytes, the type of
`content of the associated data (e.g., audiofile format, image
`
`
`
`US 2010/0115613 Al
`
`May6, 2010
`
`file format, etc.), whether the copy of the associated data is
`compressed or encrypted, an expiry time that may indicate to
`caches to not cache the associated data beyondthe indicated
`time, and i