SlideShare a Scribd company logo
1 of 48
Distributed Computing Systems
The Web
The World Wide Web
• Huge client-server system
• Traditionally  Document-based
– Referenced by “Uniform Resource Locator” (URL)
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
References
• [TS02] Andrew Tanenbaum and Marten van Steen,
Distributed Systems – Principles and Paradigms,
Prentice Hall, ©2002 (ch 11)
• [KR10] James F. Kurose and Keith W. Ross, Computer
Networking - A Top-Down Approach (5th ed), Pearson,
©2010 (ch 2.2.4)
• [SAAF08] F. Schneider, S. Agarwal, T. Alpcan, and A.
Feldmann. The New Web: Characterizing AJAX Traffic,
In Proceedings of the Passive and Active Measurement
Conference (PAM), Cleveland, OH, USA, 2008
Outline
• Introduction (done)
• Document Model (next)
• Architecture
• Processes
• Caching
• Web 2.0
Document Model
<HTML> <!- Start of HTML document -->
<BODY> <!- Start of the main body -->
<H1>Hello World</H1> <!- Basic text to be displayed -->
</BODY> <!- End of main body -->
</HTML> <!- End of HTML section -->
<HTML> <!- Start of HTML document -->
<BODY> <!- Start of the main body -->
<SCRIPT type = "text/javascript"> <!- identify scripting language -->
document.writeln ("<H1>Hello World</H1>); // Write a line of text
</SCRIPT> <!- End of scripting section -->
</BODY> <!- End of main body -->
</HTML> <!- End of HTML section -->
• All information in documents
– Typically in Hypertext Markup Language (HTML)
– Different types: ASCII, scripts
• Scripts give you “mobile code” (more later)
• Can also have eXtensible Markup Language (XML)
– Provides structure to document
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
(1) <!ELEMENT article (title, author+,journal)>
(2) <!ELEMENT title (#PCDATA)>
(3) <!ELEMENT author (name, affiliation?)>
(4) <!ELEMENT name (#PCDATA)>
(5) <!ELEMENT affiliation (#PCDATA)>
(6) <!ELEMENT journal (jname, volume, number?, month? pages, year)>
(7) <!ELEMENT jname (#PCDATA)>
(8) <!ELEMENT volume (#PCDATA)>
(9) <!ELEMENT number (#PCDATA)>
(10) <!ELEMENT month (#PCDATA)>
(11) <!ELEMENT pages (#PCDATA)>
(12) <!ELEMENT year (#PCDATA)>
XML Document Type Definition
• Definition above refers to journal article. Specifies type.
– Document Type Definition (DTD)
– Provides structure to XML documents  can test if XML is valid based
on DTD
(#PCDATA is
primitive type,
series of chars)
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
XML Document
• (An XML document using XML definitions from previous slide)
• Formatting rules usually applied by embedding in HTML
(1) <?xml = version "1.0">
(2) <!DOCTYPE article SYSTEM "article.dtd">
(3) <article>
(4) <title>Prudent Engineering Practice for Cryptographic Protocols</title>
(5) <author><name>M. Abadi</name></author>
(6) <author><name>R. Needham</name></author>
(7) <journal>
(8) <jname>IEEE Transactions on Software Engineering</jname>
(9) <volume>22</volume>
(10) <number>12</number>
(11) <month>January</month>
(12) <pages>6 – 15</pages>
(13) <year>1996</year>
(14) </journal>
(15) </article>
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Refers to previous dtd
Outline
• Introduction (done)
• Document Model (done)
• Architecture (next)
• Processes
• Caching
• Web 2.0
Architectural Overview
• Text documents typically “processed” on client
– But can be done at server, too (e.g., Common Gateway Interface (CGI))
(often with user input , e.g., a form)
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Server-Side Scripts
• Like Client, Server can execute JavaScript
(1) <HTML>
(2) <BODY>
(3) <P>The current content of <pre>/data/file.txt</PRE>is:</P>
(4) <P>
(5) <SERVER type = "text/javascript");
(6) clientFile = new File("/data/file.txt");
(7) if(clientFile.open("r")){
(8) while (!clientFile.eof())
(9) document.writeln(clientFile.readln());
(10) clientFile.close();
(11) }
(12) </SERVER>
(13) </P>
(14) <P>Thank you for visiting this site.</P>
(15) </BODY>
(16) </HTML>
(The tag <SERVER…>
is system specific)
• Server can also pass pre-compiled code  applet
<OBJECT codetype=“application/java” classid=“java.welcome.class”>
• Servlets are applets that run on server side (Architecture next slide)
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Architectural Overview
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
HTTP Connections
a) Using non-persistent connections (HTTP 1.0)
• TCP connection setup expensive
b) Using persistent connections (HTTP 1.1)
• Can also have requests either serially or in parallel
• Communication based on Hypertext Transfer Protocol (HTTP)
– Client request, server reply protocol
– Uses TCP
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
User-server State: Cookies (1 of 3)
Web servers stateless
Many major Web sites use
cookies to have state at
server
Four components:
1) cookie header line of HTTP
response message
2) cookie header line in HTTP
request message
3) cookie file kept on user’s PC,
managed by user’s browser
4) back-end database at Web
site
Example:
• Susan always access Internet from
same PC (e.g., in her home)
• Visits specific e-commerce site for
first time (e.g., amazon.com)
• When initial HTTP requests
arrives at site, site creates:
– unique ID
– entry in backend database for
ID
(see next slide for example)
James F. Kurose and Keith W. Ross, Computer Networking - A Top-Down Approach (5th ed), Pearson, ©2010
User-server State: Cookies (2 of 3)
Client Server
usual http response msg
usual http response msg
cookie file
(one week later)
usual http request msg
cookie: u168 cookie-
specific
action
access
ebay 8734 usual http request msg Amazon server
creates ID
u168 for user create
entry
usual http response
set-cookie: u168
ebay 8734
amazon u168
usual http request msg
cookie: u168 cookie-
specific
action
access
ebay 8734
amazon u1678
backend
database
James F. Kurose and Keith W. Ross, Computer Networking - A Top-Down Approach (5th ed), Pearson, ©2010
User-server State: Cookies (3 of 3)
What cookies can bring:
• authorization
• shopping carts
• recommendations
• user session state (Web e-mail)
Cookies and privacy:
• Cookies permit some sites to
learn lots about users
– e.g., tracking visits by 3rd party
sites
• Also, persist when session
closed, so next user has
‒ e.g., public computer
• Or stolen (sniffed), or sent to
attacker if script embedded in
primary Web page
James F. Kurose and Keith W. Ross, Computer Networking - A Top-Down Approach (5th ed), Pearson, ©2010
Outline
• Introduction (done)
• Document Model (done)
• Architecture (done)
• Processes (next)
• Caching
• Web 2.0
Client Process: Extensible Browser
• Make client browser extensible  do more than default
– A plug-in
– Associated with document type (MIME type)
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Client-Side Process: Web Proxy
• Initially, handle connection when browser does not “speak”
language
• Now, most browsers can handle, but proxies still used for
common cache when many browsers (e.g., NZ) or to get
“rights” of domain (e.g., proxy.wpi.edu)
• Can be useful for debugging Web session
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Servers
• Core invokes modules with data
– Actual module path depends upon data type
• Phases:
– authentication, response, syntax checking, user-profile, transmission
• Extend server to support different types (PHP)
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Server Clusters (1 of 3)
• Front-end replicates request to back-end (horizontal
distribution)
– But can become overloaded still since all connections through
• Single server can become heavily loaded
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Server Clusters (2 of 3)
• TCP handoff – most “work” on response, typically
– But can’t take advantage of document knowledge or caching
– Or, higher-layer has to do more work, making front-end bottleneck
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Server Clusters (3 of 3)
• Distributor talks to dispatcher initially, then hands off connection
• Front-end switch can stay at TCP layer, told where to send data
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Outline
• Introduction (done)
• Document Model (done)
• Architecture (done)
• Processes (done)
• Caching (next)
• Web 2.0
Web Caching
• Browser keeps recent requests
– Proxy can be valuable if shared interests
• Check cache first, server next
• Cache is full. How to decide replacement?
– LRU (what is different than pages or disk blocks?)
– e.g., GreedyDual (value divided by size)
• How consistent should client cache be to
server content? What are tradeoffs?
Caching - Conditional GET
• Goal: don’t send object if
cache has up-to-date
cached version
• cache: specify date of
cached copy in HTTP
request:
If-modified-since:
<date>
• server: response contains
no object if cached copy is
up-to-date. e.g.,
HTTP/1.0 304 Not
Modified
cache server
HTTP request msg
If-modified-since:
<date>
HTTP response
HTTP/1.0
304 Not Modified
object
not
modified
HTTP request msg
If-modified-since:
<date>
HTTP response
HTTP/1.0 200 OK
<data>
object
modified
Cache Coherency
• Strong consistency
– Validate each access
– Server indicates if invalid
– But requires request to server for each client request
• Weak consistency
– Validate only when client clicks “refresh”
– Or, using heuristic Time To Live (TTL)
Squid Texpire = (Tcached – Tlast_modified) + Tcached
 = 0.2 (derived from practice)
• Why not have server push invalidation?
• In practice, cache hits low (50% max, only if really large)
– Make “cooperative” caches
Cooperative Web Proxy Caching
• Proxy first checks neighbors before asking server
– Shown effective for 10,000+ users
• But complicated, and often not clear win over single proxy
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Misc Caching
• Static vs. Dynamic documents
– Caching only effective for static docs (non CGI)
• But Web increasingly dynamic (personalized)
• Cookies used since server (mostly) stateless
– Make proxies support active caching
• Generate HTML
• Need copies of server-side scripts/code
• Accessing databases harder
• Caching large documents
– Can only send changes from original
– But in many cases, connection request is largest cost
Server Replication
• Clusters (covered)
• Deploy entire copy of Web site at another site
(mirror)
– Often done with file transfer networks (e.g., FTP
servers)
– But non-transparent (i.e., explicitly choose mirror)
• Content Delivery Network (CDN)
– Have network of cooperative caches run by
provider (next)
Akamai CDN
• Embedded documents have names that are resolved by Akamai DNS
to local CDN server
– Use Internet “map” to determine local server
• Local server gets copy from original server
• Akamai has many CDN servers “close” to clients
(“Close”
CDN Server
resolved by
DNS)
Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
Outline
• Introduction (done)
• Document Model (done)
• Architecture (done)
• Processes (done)
• Caching (done)
• Web 2.0 (next)
The Web 1.0
• World Wide Web most popular application
running over HTTP
• Users click on links embedded in documents
to fetch additional documents
• Thus, in basic Web 1.0, HTTP request-
response loads new page in response to each
user request
The Web 2.0
• Shift away from class request-response, to
asynchronous communication
• Web browsers request data without human
intervention (e.g., without clicking on link/button)
• Such requests can mask latency or limited bandwidth
– pre-fetching or
– displaying before all data has arrived
• HTTP requests are becoming automated, rather than
human generated
• AJAX is one such supporting technology
AJAX – What is it?
• AJAX – acronym for Asynchronous JavaScript
and XML
– Despite name, doesn’t have to be XML (often
JSON, a JavaScript text-based notation)
• Not stand-alone language or technology
• Methods for client-side code to create Web
applications
• Clients send and receive data asynchronously,
without interfering with display
AJAX Technologies
• AJAX uses:
– Javascript (for altering page)
– XML or JSON (for information exchange)
– ASP or JSP (server side)
• Key is the XMLHttpRequest object
• All modern browsers support XMLHttpRequest object
– Note: IE5 and IE6 uses an ActiveXObject.
• XMLHttpRequest object exchanges data with server
asynchronously
– Update parts of Web page, without reloading whole page
(illustration next)
AJAX versus Normal Web Browsing
Web 2.0 Applications
• Google Maps was early adopter of AJAX
– Encouraged others to use for interactive apps
• Many Web-email offerings use AJAX
technologies to rival desktop mail clients
The Problem
• Prediction algorithms may fetch data that is
not needed  add extra data to Web
browsing
• Fetching no longer limited by user read and
click speed, but driven by JavaScript code logic
• Traditional Web traffic models (e.g., data rate
for browsing, number of objects per page)
may not hold
Web 2.0 Outline
• Introduction (done)
• Approach (next)
• Results
• Conclusions
Approach
• Pick four popular, “representative”,
AJAX apps and study their traffic:
– Google Maps
– Google Mail
– Gmx.de (popular German
Webmailer)
– Lokalisten.de (popular German social
network)
• Traces from networks in Munich,
Germany and Berkeley, USA
• Highlight differences in Web 2.0
traffic compared to traditional Web
1.0 traffic
Google Maps Internals
• Google Maps is AJAX
application
– Sometimes called the
“canonical” AJAX app
• Prefetches tiles
• Opens multiple TCP
connections to different
servers
• Uses cookies to identify users
• HTTP 1.1 transfers data via
persistence and pipelining
– Mostly to fetch new image tiles
– Also control, GUI-related
pictures, user queries
Analysis
• Extract standard HTTP request from all
connections
– Identified Google Maps via initial request to
maps.google.com plus session cookies Google uses
• Studied:
– Number of bytes transferred (HTTP payload)
– Number of HTTP requests
– Inter-request times
• Colors:
– Red/Pink – All HTTP
– Green – Google Maps
Web 2.0 Outline
• Introduction (done)
• Approach (done)
• Results (next)
• Conclusions
Bytes Per Connection (HTTP Payload)
Bytes Per Connection (HTTP Payload)
Compare HTTP 1.0, Maps to the right, Mail to the left
(HTTP 1.0 has not changed much since 1997)
Bytes Per Session (HTTP Payload)
Requests per Session
All-HTTP:
Conclusions
• On average, versus All-HTTP, AJAX apps
– Transfer more bytes per connection and per
session
– Have more requests per session
– Have significantly shorter inter-request times
• Larger sessions and burstier traffic with AJAX
applications
• Existing Web traffic models still applicable, but
need new parameterization

More Related Content

What's hot

Communications is distributed systems
Communications is distributed systemsCommunications is distributed systems
Communications is distributed systemsSHATHAN
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based systemChetan Selukar
 
Processes and Processors in Distributed Systems
Processes and Processors in Distributed SystemsProcesses and Processors in Distributed Systems
Processes and Processors in Distributed SystemsDr Sandeep Kumar Poonia
 
4.file service architecture (1)
4.file service architecture (1)4.file service architecture (1)
4.file service architecture (1)AbDul ThaYyal
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSKathirvel Ayyaswamy
 
Chapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systemsChapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systemsAbDul ThaYyal
 
File replication
File replicationFile replication
File replicationKlawal13
 
Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...tugrulh
 
Distributed OS - An Introduction
Distributed OS - An IntroductionDistributed OS - An Introduction
Distributed OS - An IntroductionSuhit Kulkarni
 
Distributed system notes unit I
Distributed system notes unit IDistributed system notes unit I
Distributed system notes unit INANDINI SHARMA
 
Distributed File Systems: An Overview
Distributed File Systems: An OverviewDistributed File Systems: An Overview
Distributed File Systems: An OverviewAnant Narayanan
 
Processes and Threads in Windows Vista
Processes and Threads in Windows VistaProcesses and Threads in Windows Vista
Processes and Threads in Windows VistaTrinh Phuc Tho
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software conceptsPrajakta Rane
 
ITFT_Inter process communication
ITFT_Inter process communicationITFT_Inter process communication
ITFT_Inter process communicationSneh Prabha
 
Distributed operating system
Distributed operating systemDistributed operating system
Distributed operating systemudaya khanal
 

What's hot (20)

Communications is distributed systems
Communications is distributed systemsCommunications is distributed systems
Communications is distributed systems
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based system
 
Processes and Processors in Distributed Systems
Processes and Processors in Distributed SystemsProcesses and Processors in Distributed Systems
Processes and Processors in Distributed Systems
 
4.file service architecture (1)
4.file service architecture (1)4.file service architecture (1)
4.file service architecture (1)
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMS
 
Chapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systemsChapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systems
 
File replication
File replicationFile replication
File replication
 
Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...
 
Distributed OS - An Introduction
Distributed OS - An IntroductionDistributed OS - An Introduction
Distributed OS - An Introduction
 
Distributed system notes unit I
Distributed system notes unit IDistributed system notes unit I
Distributed system notes unit I
 
Chapter04 new
Chapter04 newChapter04 new
Chapter04 new
 
5.distributed file systems
5.distributed file systems5.distributed file systems
5.distributed file systems
 
CS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMSCS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMS
 
Distributed File Systems: An Overview
Distributed File Systems: An OverviewDistributed File Systems: An Overview
Distributed File Systems: An Overview
 
Processes and Threads in Windows Vista
Processes and Threads in Windows VistaProcesses and Threads in Windows Vista
Processes and Threads in Windows Vista
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts
 
Chap 4
Chap 4Chap 4
Chap 4
 
Distributed Operating System_4
Distributed Operating System_4Distributed Operating System_4
Distributed Operating System_4
 
ITFT_Inter process communication
ITFT_Inter process communicationITFT_Inter process communication
ITFT_Inter process communication
 
Distributed operating system
Distributed operating systemDistributed operating system
Distributed operating system
 

Similar to mmWeb

Similar to mmWeb (20)

Web
WebWeb
Web
 
Networks
NetworksNetworks
Networks
 
Application Layer
Application Layer Application Layer
Application Layer
 
lec-01-WP.pdf
lec-01-WP.pdflec-01-WP.pdf
lec-01-WP.pdf
 
application layer protocol for iot.pptx
application layer protocol for iot.pptxapplication layer protocol for iot.pptx
application layer protocol for iot.pptx
 
www | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorialwww | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorial
 
Introduction to the Internet and Web.pptx
Introduction to the Internet and Web.pptxIntroduction to the Internet and Web.pptx
Introduction to the Internet and Web.pptx
 
Application layer
Application layerApplication layer
Application layer
 
Environment Canada's Data Management Service
Environment Canada's Data Management ServiceEnvironment Canada's Data Management Service
Environment Canada's Data Management Service
 
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
 
Web technologies: recap on TCP-IP
Web technologies: recap on TCP-IPWeb technologies: recap on TCP-IP
Web technologies: recap on TCP-IP
 
world wide web
world wide webworld wide web
world wide web
 
Iso model
Iso modelIso model
Iso model
 
Ch1 2ed 29_dec03
Ch1 2ed 29_dec03Ch1 2ed 29_dec03
Ch1 2ed 29_dec03
 
Module 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptxModule 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptx
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 
World Wide Web(WWW)
World Wide Web(WWW)World Wide Web(WWW)
World Wide Web(WWW)
 
introduction to Web system
introduction to Web systemintroduction to Web system
introduction to Web system
 
Net working lec.1
Net working lec.1Net working lec.1
Net working lec.1
 
Orientation to Computer Networks
Orientation to Computer NetworksOrientation to Computer Networks
Orientation to Computer Networks
 

Recently uploaded

High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls KolkataHigh Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With RoomVIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Roomrran7532
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call Girladitipandeya
 
Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024TeckResourcesLtd
 
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Kolkata Call Girl Rishra 👉 8250192130 Available With Room
VIP Kolkata Call Girl Rishra 👉 8250192130  Available With RoomVIP Kolkata Call Girl Rishra 👉 8250192130  Available With Room
VIP Kolkata Call Girl Rishra 👉 8250192130 Available With Roomdivyansh0kumar0
 
Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024CollectiveMining1
 
VIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our Escorts
VIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our EscortsVIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our Escorts
VIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our Escortssonatiwari757
 
VIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our Escorts
VIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our EscortsVIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our Escorts
VIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our Escortssonatiwari757
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girladitipandeya
 
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual serviceanilsa9823
 
Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024
Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024
Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024Osisko Gold Royalties Ltd
 

Recently uploaded (20)

High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls KolkataHigh Profile Call Girls Kolkata Gayatri 🤌  8250192130 🚀 Vip Call Girls Kolkata
High Profile Call Girls Kolkata Gayatri 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With RoomVIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
VIP Kolkata Call Girls Bidhannagar 8250192130 Available With Room
 
Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Udyog Vihar Delhi reach out to us at 🔝9953056974🔝
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Abids high-profile Call Girl
 
Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024Sustainability Leadership, April 26 2024
Sustainability Leadership, April 26 2024
 
Call Girls 🫤 Mahipalpur ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
Call Girls 🫤 Mahipalpur ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOYCall Girls 🫤 Mahipalpur ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOY
Call Girls 🫤 Mahipalpur ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
 
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls Kolkata Amaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls Kolkata Amaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls In Vasant Kunj 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Vasant Kunj 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In Vasant Kunj 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In Vasant Kunj 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
VIP Kolkata Call Girl Rishra 👉 8250192130 Available With Room
VIP Kolkata Call Girl Rishra 👉 8250192130  Available With RoomVIP Kolkata Call Girl Rishra 👉 8250192130  Available With Room
VIP Kolkata Call Girl Rishra 👉 8250192130 Available With Room
 
@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Karol Bagh 💓 High Profile Escorts Delhi 🫶
 
@9999965857 🫦 Sexy Desi Call Girls Vaishali 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Vaishali 💓 High Profile Escorts Delhi 🫶@9999965857 🫦 Sexy Desi Call Girls Vaishali 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Vaishali 💓 High Profile Escorts Delhi 🫶
 
Call Girls In South Delhi 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Delhi 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Delhi 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Delhi 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Rohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 15 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024Collective Mining | Corporate Presentation - April 2024
Collective Mining | Corporate Presentation - April 2024
 
VIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our Escorts
VIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our EscortsVIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our Escorts
VIP Call Girl Amritsar 7001035870 Enjoy Call Girls With Our Escorts
 
VIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our Escorts
VIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our EscortsVIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our Escorts
VIP Amritsar Call Girl 7001035870 Enjoy Call Girls With Our Escorts
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls Shamirpet high-profile Call Girl
 
Call Girls 🫤 Nehru Place ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
Call Girls 🫤 Nehru Place ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOYCall Girls 🫤 Nehru Place ➡️ 9999965857  ➡️ Delhi 🫦  Russian Escorts FULL ENJOY
Call Girls 🫤 Nehru Place ➡️ 9999965857 ➡️ Delhi 🫦 Russian Escorts FULL ENJOY
 
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Fazullaganj Lucknow best sexual service
 
Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024
Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024
Osisko Gold Royalties Ltd - Corporate Presentation, April 23, 2024
 

mmWeb

  • 2. The World Wide Web • Huge client-server system • Traditionally  Document-based – Referenced by “Uniform Resource Locator” (URL) Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 3. References • [TS02] Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002 (ch 11) • [KR10] James F. Kurose and Keith W. Ross, Computer Networking - A Top-Down Approach (5th ed), Pearson, ©2010 (ch 2.2.4) • [SAAF08] F. Schneider, S. Agarwal, T. Alpcan, and A. Feldmann. The New Web: Characterizing AJAX Traffic, In Proceedings of the Passive and Active Measurement Conference (PAM), Cleveland, OH, USA, 2008
  • 4. Outline • Introduction (done) • Document Model (next) • Architecture • Processes • Caching • Web 2.0
  • 5. Document Model <HTML> <!- Start of HTML document --> <BODY> <!- Start of the main body --> <H1>Hello World</H1> <!- Basic text to be displayed --> </BODY> <!- End of main body --> </HTML> <!- End of HTML section --> <HTML> <!- Start of HTML document --> <BODY> <!- Start of the main body --> <SCRIPT type = "text/javascript"> <!- identify scripting language --> document.writeln ("<H1>Hello World</H1>); // Write a line of text </SCRIPT> <!- End of scripting section --> </BODY> <!- End of main body --> </HTML> <!- End of HTML section --> • All information in documents – Typically in Hypertext Markup Language (HTML) – Different types: ASCII, scripts • Scripts give you “mobile code” (more later) • Can also have eXtensible Markup Language (XML) – Provides structure to document Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 6. (1) <!ELEMENT article (title, author+,journal)> (2) <!ELEMENT title (#PCDATA)> (3) <!ELEMENT author (name, affiliation?)> (4) <!ELEMENT name (#PCDATA)> (5) <!ELEMENT affiliation (#PCDATA)> (6) <!ELEMENT journal (jname, volume, number?, month? pages, year)> (7) <!ELEMENT jname (#PCDATA)> (8) <!ELEMENT volume (#PCDATA)> (9) <!ELEMENT number (#PCDATA)> (10) <!ELEMENT month (#PCDATA)> (11) <!ELEMENT pages (#PCDATA)> (12) <!ELEMENT year (#PCDATA)> XML Document Type Definition • Definition above refers to journal article. Specifies type. – Document Type Definition (DTD) – Provides structure to XML documents  can test if XML is valid based on DTD (#PCDATA is primitive type, series of chars) Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 7. XML Document • (An XML document using XML definitions from previous slide) • Formatting rules usually applied by embedding in HTML (1) <?xml = version "1.0"> (2) <!DOCTYPE article SYSTEM "article.dtd"> (3) <article> (4) <title>Prudent Engineering Practice for Cryptographic Protocols</title> (5) <author><name>M. Abadi</name></author> (6) <author><name>R. Needham</name></author> (7) <journal> (8) <jname>IEEE Transactions on Software Engineering</jname> (9) <volume>22</volume> (10) <number>12</number> (11) <month>January</month> (12) <pages>6 – 15</pages> (13) <year>1996</year> (14) </journal> (15) </article> Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002 Refers to previous dtd
  • 8. Outline • Introduction (done) • Document Model (done) • Architecture (next) • Processes • Caching • Web 2.0
  • 9. Architectural Overview • Text documents typically “processed” on client – But can be done at server, too (e.g., Common Gateway Interface (CGI)) (often with user input , e.g., a form) Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 10. Server-Side Scripts • Like Client, Server can execute JavaScript (1) <HTML> (2) <BODY> (3) <P>The current content of <pre>/data/file.txt</PRE>is:</P> (4) <P> (5) <SERVER type = "text/javascript"); (6) clientFile = new File("/data/file.txt"); (7) if(clientFile.open("r")){ (8) while (!clientFile.eof()) (9) document.writeln(clientFile.readln()); (10) clientFile.close(); (11) } (12) </SERVER> (13) </P> (14) <P>Thank you for visiting this site.</P> (15) </BODY> (16) </HTML> (The tag <SERVER…> is system specific) • Server can also pass pre-compiled code  applet <OBJECT codetype=“application/java” classid=“java.welcome.class”> • Servlets are applets that run on server side (Architecture next slide) Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 11. Architectural Overview Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 12. HTTP Connections a) Using non-persistent connections (HTTP 1.0) • TCP connection setup expensive b) Using persistent connections (HTTP 1.1) • Can also have requests either serially or in parallel • Communication based on Hypertext Transfer Protocol (HTTP) – Client request, server reply protocol – Uses TCP Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 13. User-server State: Cookies (1 of 3) Web servers stateless Many major Web sites use cookies to have state at server Four components: 1) cookie header line of HTTP response message 2) cookie header line in HTTP request message 3) cookie file kept on user’s PC, managed by user’s browser 4) back-end database at Web site Example: • Susan always access Internet from same PC (e.g., in her home) • Visits specific e-commerce site for first time (e.g., amazon.com) • When initial HTTP requests arrives at site, site creates: – unique ID – entry in backend database for ID (see next slide for example) James F. Kurose and Keith W. Ross, Computer Networking - A Top-Down Approach (5th ed), Pearson, ©2010
  • 14. User-server State: Cookies (2 of 3) Client Server usual http response msg usual http response msg cookie file (one week later) usual http request msg cookie: u168 cookie- specific action access ebay 8734 usual http request msg Amazon server creates ID u168 for user create entry usual http response set-cookie: u168 ebay 8734 amazon u168 usual http request msg cookie: u168 cookie- specific action access ebay 8734 amazon u1678 backend database James F. Kurose and Keith W. Ross, Computer Networking - A Top-Down Approach (5th ed), Pearson, ©2010
  • 15. User-server State: Cookies (3 of 3) What cookies can bring: • authorization • shopping carts • recommendations • user session state (Web e-mail) Cookies and privacy: • Cookies permit some sites to learn lots about users – e.g., tracking visits by 3rd party sites • Also, persist when session closed, so next user has ‒ e.g., public computer • Or stolen (sniffed), or sent to attacker if script embedded in primary Web page James F. Kurose and Keith W. Ross, Computer Networking - A Top-Down Approach (5th ed), Pearson, ©2010
  • 16. Outline • Introduction (done) • Document Model (done) • Architecture (done) • Processes (next) • Caching • Web 2.0
  • 17. Client Process: Extensible Browser • Make client browser extensible  do more than default – A plug-in – Associated with document type (MIME type) Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 18. Client-Side Process: Web Proxy • Initially, handle connection when browser does not “speak” language • Now, most browsers can handle, but proxies still used for common cache when many browsers (e.g., NZ) or to get “rights” of domain (e.g., proxy.wpi.edu) • Can be useful for debugging Web session Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 19. Servers • Core invokes modules with data – Actual module path depends upon data type • Phases: – authentication, response, syntax checking, user-profile, transmission • Extend server to support different types (PHP) Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 20. Server Clusters (1 of 3) • Front-end replicates request to back-end (horizontal distribution) – But can become overloaded still since all connections through • Single server can become heavily loaded Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 21. Server Clusters (2 of 3) • TCP handoff – most “work” on response, typically – But can’t take advantage of document knowledge or caching – Or, higher-layer has to do more work, making front-end bottleneck Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 22. Server Clusters (3 of 3) • Distributor talks to dispatcher initially, then hands off connection • Front-end switch can stay at TCP layer, told where to send data Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 23. Outline • Introduction (done) • Document Model (done) • Architecture (done) • Processes (done) • Caching (next) • Web 2.0
  • 24. Web Caching • Browser keeps recent requests – Proxy can be valuable if shared interests • Check cache first, server next • Cache is full. How to decide replacement? – LRU (what is different than pages or disk blocks?) – e.g., GreedyDual (value divided by size) • How consistent should client cache be to server content? What are tradeoffs?
  • 25. Caching - Conditional GET • Goal: don’t send object if cache has up-to-date cached version • cache: specify date of cached copy in HTTP request: If-modified-since: <date> • server: response contains no object if cached copy is up-to-date. e.g., HTTP/1.0 304 Not Modified cache server HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified object not modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> object modified
  • 26. Cache Coherency • Strong consistency – Validate each access – Server indicates if invalid – But requires request to server for each client request • Weak consistency – Validate only when client clicks “refresh” – Or, using heuristic Time To Live (TTL) Squid Texpire = (Tcached – Tlast_modified) + Tcached  = 0.2 (derived from practice) • Why not have server push invalidation? • In practice, cache hits low (50% max, only if really large) – Make “cooperative” caches
  • 27. Cooperative Web Proxy Caching • Proxy first checks neighbors before asking server – Shown effective for 10,000+ users • But complicated, and often not clear win over single proxy Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 28. Misc Caching • Static vs. Dynamic documents – Caching only effective for static docs (non CGI) • But Web increasingly dynamic (personalized) • Cookies used since server (mostly) stateless – Make proxies support active caching • Generate HTML • Need copies of server-side scripts/code • Accessing databases harder • Caching large documents – Can only send changes from original – But in many cases, connection request is largest cost
  • 29. Server Replication • Clusters (covered) • Deploy entire copy of Web site at another site (mirror) – Often done with file transfer networks (e.g., FTP servers) – But non-transparent (i.e., explicitly choose mirror) • Content Delivery Network (CDN) – Have network of cooperative caches run by provider (next)
  • 30. Akamai CDN • Embedded documents have names that are resolved by Akamai DNS to local CDN server – Use Internet “map” to determine local server • Local server gets copy from original server • Akamai has many CDN servers “close” to clients (“Close” CDN Server resolved by DNS) Andrew Tanenbaum and Marten van Steen, Distributed Systems – Principles and Paradigms, Prentice Hall, ©2002
  • 31. Outline • Introduction (done) • Document Model (done) • Architecture (done) • Processes (done) • Caching (done) • Web 2.0 (next)
  • 32. The Web 1.0 • World Wide Web most popular application running over HTTP • Users click on links embedded in documents to fetch additional documents • Thus, in basic Web 1.0, HTTP request- response loads new page in response to each user request
  • 33. The Web 2.0 • Shift away from class request-response, to asynchronous communication • Web browsers request data without human intervention (e.g., without clicking on link/button) • Such requests can mask latency or limited bandwidth – pre-fetching or – displaying before all data has arrived • HTTP requests are becoming automated, rather than human generated • AJAX is one such supporting technology
  • 34. AJAX – What is it? • AJAX – acronym for Asynchronous JavaScript and XML – Despite name, doesn’t have to be XML (often JSON, a JavaScript text-based notation) • Not stand-alone language or technology • Methods for client-side code to create Web applications • Clients send and receive data asynchronously, without interfering with display
  • 35. AJAX Technologies • AJAX uses: – Javascript (for altering page) – XML or JSON (for information exchange) – ASP or JSP (server side) • Key is the XMLHttpRequest object • All modern browsers support XMLHttpRequest object – Note: IE5 and IE6 uses an ActiveXObject. • XMLHttpRequest object exchanges data with server asynchronously – Update parts of Web page, without reloading whole page (illustration next)
  • 36. AJAX versus Normal Web Browsing
  • 37. Web 2.0 Applications • Google Maps was early adopter of AJAX – Encouraged others to use for interactive apps • Many Web-email offerings use AJAX technologies to rival desktop mail clients
  • 38. The Problem • Prediction algorithms may fetch data that is not needed  add extra data to Web browsing • Fetching no longer limited by user read and click speed, but driven by JavaScript code logic • Traditional Web traffic models (e.g., data rate for browsing, number of objects per page) may not hold
  • 39. Web 2.0 Outline • Introduction (done) • Approach (next) • Results • Conclusions
  • 40. Approach • Pick four popular, “representative”, AJAX apps and study their traffic: – Google Maps – Google Mail – Gmx.de (popular German Webmailer) – Lokalisten.de (popular German social network) • Traces from networks in Munich, Germany and Berkeley, USA • Highlight differences in Web 2.0 traffic compared to traditional Web 1.0 traffic
  • 41. Google Maps Internals • Google Maps is AJAX application – Sometimes called the “canonical” AJAX app • Prefetches tiles • Opens multiple TCP connections to different servers • Uses cookies to identify users • HTTP 1.1 transfers data via persistence and pipelining – Mostly to fetch new image tiles – Also control, GUI-related pictures, user queries
  • 42. Analysis • Extract standard HTTP request from all connections – Identified Google Maps via initial request to maps.google.com plus session cookies Google uses • Studied: – Number of bytes transferred (HTTP payload) – Number of HTTP requests – Inter-request times • Colors: – Red/Pink – All HTTP – Green – Google Maps
  • 43. Web 2.0 Outline • Introduction (done) • Approach (done) • Results (next) • Conclusions
  • 44. Bytes Per Connection (HTTP Payload)
  • 45. Bytes Per Connection (HTTP Payload) Compare HTTP 1.0, Maps to the right, Mail to the left (HTTP 1.0 has not changed much since 1997)
  • 46. Bytes Per Session (HTTP Payload)
  • 48. Conclusions • On average, versus All-HTTP, AJAX apps – Transfer more bytes per connection and per session – Have more requests per session – Have significantly shorter inter-request times • Larger sessions and burstier traffic with AJAX applications • Existing Web traffic models still applicable, but need new parameterization