throbber
as) United States
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket