Advanced Internet and Web Systems

73
Advanced Internet and Web Advanced Internet and Web Systems Systems C. Edward Chow C. Edward Chow

description

Advanced Internet and Web Systems. C. Edward Chow. Outline of the Talk. Syllabus Introduction to WWW Systems Survey of Web Cluster Systems Survey of Caching Techniques Server Selection and Load Balancing. Introduction to WWW Systems. Web Server Hosting web pages. Retrieving web pages - PowerPoint PPT Presentation

Transcript of Advanced Internet and Web Systems

Page 1: Advanced Internet and Web Systems

Advanced Internet and Web Advanced Internet and Web SystemsSystemsAdvanced Internet and Web Advanced Internet and Web SystemsSystems

C. Edward ChowC. Edward ChowC. Edward ChowC. Edward Chow

Page 2: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 2

Outline of the TalkOutline of the TalkOutline of the TalkOutline of the Talk

SyllabusSyllabus

Introduction to WWW SystemsIntroduction to WWW Systems

Survey of Web Cluster SystemsSurvey of Web Cluster Systems

Survey of Caching TechniquesSurvey of Caching Techniques

Server Selection and Load BalancingServer Selection and Load Balancing

Page 3: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 3

Introduction to WWW Introduction to WWW SystemsSystems

Web ClientBrowser

Web ServerHosting web pages

Web Authoring Systemcreate web pages

Publishweb pages

Retrieving web pagesusing HTTP

protocol

Internet

Web page: document written in HTML

Scanner

Video capture

Sound card

Page 4: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 4

What is Unique in What is Unique in WWW?WWW?

Hyperlink: Use Hypertext Markup Language Hyperlink: Use Hypertext Markup Language HTMLHTML to describe the document in ASCII text to describe the document in ASCII text (extended to iso-8859-1)(extended to iso-8859-1)

Naming scheme: Name object in the web with Naming scheme: Name object in the web with Universal Resource Locator (URL) with syntax:Universal Resource Locator (URL) with syntax:protocol://domain_name/<uri or path name>protocol://domain_name/<uri or path name>

HTTP: HyperText Transfer ProtocolHTTP: HyperText Transfer Protocola simple request-response protocol for a simple request-response protocol for transferring HTML documentstransferring HTML documents

ASCII text based (not binary, therefore easy to ASCII text based (not binary, therefore easy to debug)debug)

Page 5: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 5

Web Authoring SystemWeb Authoring SystemText Editor: type in HTML <tag> and contentText Editor: type in HTML <tag> and content

HTML Editor: like normal word processor, user did not HTML Editor: like normal word processor, user did not have know a lot about HTML syntax. Provide easy have know a lot about HTML syntax. Provide easy upload/download function.upload/download function.

DreamweaverDreamweaver

Netscape Page Composer, MS Front PageNetscape Page Composer, MS Front Page

Front Page takes another step by providing templates Front Page takes another step by providing templates and hyperlink management functionsand hyperlink management functions

Most desktop publishing software and word processor Most desktop publishing software and word processor have built-in converters to convert from their internal have built-in converters to convert from their internal format to HTML format. For exampleformat to HTML format. For example

FrameMaker, Office97(require special viewer)FrameMaker, Office97(require special viewer)

Page 6: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 6

Web Delivery SystemsWeb Delivery SystemsWeb Delivery SystemsWeb Delivery SystemsDelivery web documents efficiently and Delivery web documents efficiently and reliably to the web clients.reliably to the web clients.

Content Distribution and Content Content Distribution and Content DeliveryDelivery

Performance is decided by Performance is decided by Web server performanceWeb server performance

Network path performanceNetwork path performance

Client browser performance.Client browser performance.

Use multiple physical servers (server Use multiple physical servers (server farm), and multiple server farms in farm), and multiple server farms in wide area.wide area.

New generation of proxy New generation of proxy servers/content switches emerge.servers/content switches emerge.

Delivery web documents efficiently and Delivery web documents efficiently and reliably to the web clients.reliably to the web clients.

Content Distribution and Content Content Distribution and Content DeliveryDelivery

Performance is decided by Performance is decided by Web server performanceWeb server performance

Network path performanceNetwork path performance

Client browser performance.Client browser performance.

Use multiple physical servers (server Use multiple physical servers (server farm), and multiple server farms in farm), and multiple server farms in wide area.wide area.

New generation of proxy New generation of proxy servers/content switches emerge.servers/content switches emerge.

Page 7: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 7

Clients

Content Delivery Network Content Delivery Network (CDN)(CDN)Content Delivery Network Content Delivery Network (CDN)(CDN)

Host Server

MindSpring

PSINetSprint

Gloobix

QWest

@Home

UUnet

Huge Requests

Server Crash

Slow Response

Clients

Clients

Page 8: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 8

Content Delivery Content Delivery ProblemsProblemsContent Delivery Content Delivery ProblemsProblems

http://www.akamai.com

Page 9: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 9

Use Client Cache/Use Client Cache/Client Side Cache ServerClient Side Cache ServerUse Client Cache/Use Client Cache/Client Side Cache ServerClient Side Cache Server

Host Server

MindSpring

PSINetSprint

Gloobix

@Home

UUnet

Fewer Requests

Clients

Clients

Clients

ClientCache

ClientSideCacheServer

QWest

Fast Response

Page 10: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 10

Use Mirror SitesUse Mirror SitesUse Mirror SitesUse Mirror Sites

Host Server

MindSpring

PSINetSprint

Gloobix

QWest

@Home

UUnet

Fewer Requests

Server

Fast Response

Clients

Clients

Clients

Mirror Site

Mirror Site

Need improvement by guiding the selection of mirror servers with server load/network bandwidth measurement

Page 11: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 11

Edge Network Cache Edge Network Cache ServersServersEdge Network Cache Edge Network Cache ServersServers

Host Server

MindSpring

PSINetSprint

Gloobix

QWest

@Home

UUnet

Fewer Requests

Server

Fast Response

Clients

ClientsClients

ClientCache

Mirror Site

Mirror SiteEdgeNetworkCacheServer

CacheServer

CacheServer

CacheServer

CacheServer

ClientSideCacheServer

Page 12: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 12

Architecture solutions for Architecture solutions for scalable Web-server scalable Web-server systems (Fig. 1)systems (Fig. 1)

Architecture solutions for Architecture solutions for scalable Web-server scalable Web-server systems (Fig. 1)systems (Fig. 1)

Page 13: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 13

Fig. 2Fig. 2. Model architecture . Model architecture for a locally distributed for a locally distributed Web systemWeb system

Fig. 2Fig. 2. Model architecture . Model architecture for a locally distributed for a locally distributed Web systemWeb system

Page 14: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 14

Fig. 3Fig. 3. Architecture of a . Architecture of a cluster-based Web systemcluster-based Web systemFig. 3Fig. 3. Architecture of a . Architecture of a cluster-based Web systemcluster-based Web system

Page 15: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 15

Fig. 4Fig. 4. Architecture of a . Architecture of a virtual Web clustervirtual Web clusterFig. 4Fig. 4. Architecture of a . Architecture of a virtual Web clustervirtual Web cluster

Page 16: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 16

Fig. 5Fig. 5. Architecture of a . Architecture of a distributed Web systemdistributed Web systemFig. 5Fig. 5. Architecture of a . Architecture of a distributed Web systemdistributed Web system

Page 17: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 17

Content DistributionContent DistributionContent DistributionContent Distribution

Secure, automate content/application Secure, automate content/application distribution to single (multiple server)/wide distribution to single (multiple server)/wide area Internet sites.area Internet sites.

Provide replication, synchronization, staged Provide replication, synchronization, staged rollout and roll back.rollout and roll back.

With revision control, transmit only updates.With revision control, transmit only updates.

User-defined file distribution profiles/rulesUser-defined file distribution profiles/rules

Secure, automate content/application Secure, automate content/application distribution to single (multiple server)/wide distribution to single (multiple server)/wide area Internet sites.area Internet sites.

Provide replication, synchronization, staged Provide replication, synchronization, staged rollout and roll back.rollout and roll back.

With revision control, transmit only updates.With revision control, transmit only updates.

User-defined file distribution profiles/rulesUser-defined file distribution profiles/rules

Page 18: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 18

Content Delivery Content Delivery ProblemProblemContent Delivery Content Delivery ProblemProblem

Cache Location Problem: Cache Location Problem: Where to put cache servers?Where to put cache servers?

How many are needed?How many are needed?

When/where/how to push/delivery the When/where/how to push/delivery the content?content?

How about dynamic content?How about dynamic content?

Cache Location Problem: Cache Location Problem: Where to put cache servers?Where to put cache servers?

How many are needed?How many are needed?

When/where/how to push/delivery the When/where/how to push/delivery the content?content?

How about dynamic content?How about dynamic content?

Page 19: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 19

Akamai Edge Delivery Akamai Edge Delivery ServiceServiceAkamai Edge Delivery Akamai Edge Delivery ServiceService

Peering Bottleneck ProblemPeering Bottleneck Problem: : Access traffic evenly spread over 7400+ Access traffic evenly spread over 7400+ networks networks (no one over 5%; most << 1%)(no one over 5%; most << 1%) Need to put edge servers in many Need to put edge servers in many networks.networks.

11/2000, 4 billion bits/day for 2800 sites.11/2000, 4 billion bits/day for 2800 sites.

Source Http://www.akamai.comSource Http://www.akamai.com

Peering Bottleneck ProblemPeering Bottleneck Problem: : Access traffic evenly spread over 7400+ Access traffic evenly spread over 7400+ networks networks (no one over 5%; most << 1%)(no one over 5%; most << 1%) Need to put edge servers in many Need to put edge servers in many networks.networks.

11/2000, 4 billion bits/day for 2800 sites.11/2000, 4 billion bits/day for 2800 sites.

Source Http://www.akamai.comSource Http://www.akamai.com

DateDate # of # of Edge Edge ServersServers

# of # of NetworksNetworks

# of # of CountriesCountries

11/200011/2000 60006000 335335 54546/20016/2001 97009700 650650 5656

Page 20: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 20

F5 Web System ProductF5 Web System ProductF5 Web System ProductF5 Web System Product

BIG-IPBIG-IP

Server ArrayServer Array

WebmasterWebmaster

Site ISite I

newyork.domain.comnewyork.domain.com

Site IIISite III

tokyo.domain.comtokyo.domain.com

Site IISite II

losangeles.domain.comlosangeles.domain.com

UserUser

london.domain.comlondon.domain.com

Local DNSLocal DNS

3-DNS3-DNS

GLOBAL-SITEGLOBAL-SITE

RouterRouter

BIG-IPBIG-IP

InternetInternetInternetInternet

Page 21: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 21

BIG/ip - Delivers High BIG/ip - Delivers High AvailabilityAvailability BIG/ip - Delivers High BIG/ip - Delivers High AvailabilityAvailability

E-commerceE-commerce - ensures sites are not only up-and- - ensures sites are not only up-and-running, but taking ordersrunning, but taking orders

Fault-toleranceFault-tolerance - eliminates single points of failure - eliminates single points of failure

Content AvailabilityContent Availability - verifies servers are responding - verifies servers are responding with the correct contentwith the correct content

Directory & AuthenticationDirectory & Authentication - load balance multiple - load balance multiple directory and/or authentication services (LDAP, Radius, directory and/or authentication services (LDAP, Radius, and NDS)and NDS)

Portals/Search EnginesPortals/Search Engines – Using EAV administrators – Using EAV administrators perform key-word searchesperform key-word searches

Legacy SystemsLegacy Systems - Load balance services to multiple - Load balance services to multiple interactive servicesinteractive services

GatewaysGateways – Load balance gateways (SAA, SNA, etc.) – Load balance gateways (SAA, SNA, etc.)

E-mail (POP, IMAP, SendMail)E-mail (POP, IMAP, SendMail) - Balances traffic - Balances traffic across a large number of mail serversacross a large number of mail servers

E-commerceE-commerce - ensures sites are not only up-and- - ensures sites are not only up-and-running, but taking ordersrunning, but taking orders

Fault-toleranceFault-tolerance - eliminates single points of failure - eliminates single points of failure

Content AvailabilityContent Availability - verifies servers are responding - verifies servers are responding with the correct contentwith the correct content

Directory & AuthenticationDirectory & Authentication - load balance multiple - load balance multiple directory and/or authentication services (LDAP, Radius, directory and/or authentication services (LDAP, Radius, and NDS)and NDS)

Portals/Search EnginesPortals/Search Engines – Using EAV administrators – Using EAV administrators perform key-word searchesperform key-word searches

Legacy SystemsLegacy Systems - Load balance services to multiple - Load balance services to multiple interactive servicesinteractive services

GatewaysGateways – Load balance gateways (SAA, SNA, etc.) – Load balance gateways (SAA, SNA, etc.)

E-mail (POP, IMAP, SendMail)E-mail (POP, IMAP, SendMail) - Balances traffic - Balances traffic across a large number of mail serversacross a large number of mail servers

Page 22: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 22

3DNS Intelligent Load Balancing3DNS Intelligent Load Balancing3DNS Intelligent Load Balancing3DNS Intelligent Load Balancing

Intelligent Load BalancingIntelligent Load BalancingQoS Load BalancingQoS Load Balancing

Quality of Service load balancing is the Quality of Service load balancing is the ability to select apply different load ability to select apply different load balancing methods for different users or balancing methods for different users or request typesrequest types

Modes of Load BalancingModes of Load BalancingRound Robin Round Robin RatioRatio

Least ConnectionsLeast Connections RandomRandom

User-defined Quality-of-ServiceUser-defined Quality-of-Service Round Trip TimeRound Trip Time

Completion Rate (Packet Loss)Completion Rate (Packet Loss) BIG/ip Packet RateBIG/ip Packet Rate

Global AvailabilityGlobal Availability HOPSHOPS

Topology DistributionTopology Distribution Access ControlAccess Control

LDNS Round RobinLDNS Round Robin Dynamic RatioDynamic Ratio

E-CommerceE-Commerce

Intelligent Load BalancingIntelligent Load BalancingQoS Load BalancingQoS Load Balancing

Quality of Service load balancing is the Quality of Service load balancing is the ability to select apply different load ability to select apply different load balancing methods for different users or balancing methods for different users or request typesrequest types

Modes of Load BalancingModes of Load BalancingRound Robin Round Robin RatioRatio

Least ConnectionsLeast Connections RandomRandom

User-defined Quality-of-ServiceUser-defined Quality-of-Service Round Trip TimeRound Trip Time

Completion Rate (Packet Loss)Completion Rate (Packet Loss) BIG/ip Packet RateBIG/ip Packet Rate

Global AvailabilityGlobal Availability HOPSHOPS

Topology DistributionTopology Distribution Access ControlAccess Control

LDNS Round RobinLDNS Round Robin Dynamic RatioDynamic Ratio

E-CommerceE-Commerce

Page 23: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 23

GLOBAL-SITE Replicate GLOBAL-SITE Replicate Multiple Servers and Multiple Servers and SitesSites

GLOBAL-SITE Replicate GLOBAL-SITE Replicate Multiple Servers and Multiple Servers and SitesSites

File archiving engine and scheduler for automated site File archiving engine and scheduler for automated site and server replicationand server replication

BIG-IP controls server availability during replication and BIG-IP controls server availability during replication and synchronizationsynchronization

Gracefully shutdown for updateGracefully shutdown for update

update in group/scheduled mannerupdate in group/scheduled manner

FTP provides transferring files from GLOBAL-SITE to FTP provides transferring files from GLOBAL-SITE to target servers (agent free, scalable)target servers (agent free, scalable)

RCE for source controlRCE for source control

No client side softwareNo client side software

Complete, turnkey system (appliance)Complete, turnkey system (appliance)(adapt from F5 presentation)(adapt from F5 presentation)

File archiving engine and scheduler for automated site File archiving engine and scheduler for automated site and server replicationand server replication

BIG-IP controls server availability during replication and BIG-IP controls server availability during replication and synchronizationsynchronization

Gracefully shutdown for updateGracefully shutdown for update

update in group/scheduled mannerupdate in group/scheduled manner

FTP provides transferring files from GLOBAL-SITE to FTP provides transferring files from GLOBAL-SITE to target servers (agent free, scalable)target servers (agent free, scalable)

RCE for source controlRCE for source control

No client side softwareNo client side software

Complete, turnkey system (appliance)Complete, turnkey system (appliance)(adapt from F5 presentation)(adapt from F5 presentation)

Page 24: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 24

Intel NetStructureIntel NetStructureIntel NetStructureIntel NetStructure

Routing based on XML tag (e.g., given preferred Routing based on XML tag (e.g., given preferred treatment for buyers, large volume)treatment for buyers, large volume)

http://www.intel.com/network/solutions/xml.htmhttp://www.intel.com/network/solutions/xml.htm

Routing based on XML tag (e.g., given preferred Routing based on XML tag (e.g., given preferred treatment for buyers, large volume)treatment for buyers, large volume)

http://www.intel.com/network/solutions/xml.htmhttp://www.intel.com/network/solutions/xml.htm

Page 25: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 25

1. Compared to SUN E450 server

Page 26: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 26

Simple Web Access Simple Web Access Example: Step1Example: Step1

Someone requests a document using a browser (Web Client) on Someone requests a document using a browser (Web Client) on a computer connected to Interneta computer connected to Internet

On a browser window Type in a URL, On a browser window Type in a URL, http://http://news.netcraft.com/archives/web_server_survey.htmlnews.netcraft.com/archives/web_server_survey.html

Equivalent of %telnet www.netcraft.co.uk 80 > outEquivalent of %telnet www.netcraft.co.uk 80 > outGET /survey/ HTTP/1.0<cr>GET /survey/ HTTP/1.0<cr><cr><cr>

Here <cr> is “carriage return” entered by pressing Here <cr> is “carriage return” entered by pressing “enter”key“enter”key

The browser parses the URL, The browser parses the URL,

obtains domain name of url, www.netcraft.co.ukobtains domain name of url, www.netcraft.co.uk

asks Domain Name Server (DNS) for translating the domain asks Domain Name Server (DNS) for translating the domain name to the IP addressname to the IP address

with IP address the client computer set up a HTTP connection with IP address the client computer set up a HTTP connection to the serverto the server

Page 27: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 27

Computer NetworkComputer NetworkLocal Area Network (LAN): a private-owned network within a single Local Area Network (LAN): a private-owned network within a single

building or campus of up to a few kilometer in size building or campus of up to a few kilometer in size (Tanenbaum).(Tanenbaum).

Wide Area Network (WAN): a network that spans a large Wide Area Network (WAN): a network that spans a large geographical area, often a country or continent, and connects geographical area, often a country or continent, and connects LANs or MANs. It consists of transmission line (called circuits, LANs or MANs. It consists of transmission line (called circuits, channels, or trunks) and switching elements (called switching channels, or trunks) and switching elements (called switching nodes, data switching exchanges or router).nodes, data switching exchanges or router).

host router

LAN

hostrouter

LANhost

LAN

host

LANcommunication subnet

DNSweb client

web serverDNS

Page 28: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 28

Protocol and Protocol Protocol and Protocol LayerLayer

A set of rules for achieving a global objective A set of rules for achieving a global objective exercised by geographically distributed nodes. exercised by geographically distributed nodes. (Robert Gallager, Prof. EE MIT)(Robert Gallager, Prof. EE MIT)

Physical

Application

Presentation

Session

Transport

Network

Data Link

End-to-End

Networking

Processing

Communication

user-oriented functions

syntactic, format compatibility

value-added features to transport connection

reliable transfer between

establish connection between

reliable transfer across a link

attachment to network or comm. line

processes at different hosts

different hosts in a net

between neighboring hosts

Page 29: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 29

Protocol Data Protocol Data EncapsulationEncapsulation

Physical

Application

Presentation

Session

Transport

Network

Data Link

Physical

Application

Presentation

Session

Transport

Network

Data Link

Physical Transmission Medium

Data

Data

AH

DataPH

DataSH

DataTH

DataNH

DataLH LT

Message between entities consist of two parts: header and payload.Data from upper layer are put in the payload.Header contains info to allow receiving

end to deliver to the right upper layer entity.TH: Transport Layer Header

Page 30: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 30

Internet Protocol Layer Internet Protocol Layer InterfaceInterface

Application

Transport

IP

TCP

IP

FTP

(4) SAP’s

(3)SAP’s

Layer

Layer

Ports

NetworkLayer

SAP: Service Access Point

UDP

21 25

DNS

53

W3Server

MINSServer

WebClient1

80 2001 2002

SMTP

email

Page 31: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 31

Simple Web Access Simple Web Access Example: Step2Example: Step2Browser sends the following character string to serverBrowser sends the following character string to server

GET /survey/ HTTP/1.0GET /survey/ HTTP/1.0User-agent: Mosaic for X windows/2.4User-agent: Mosaic for X windows/2.4Accept: text/plainAccept: text/plainAccept: text/htmlAccept: text/htmlAccept: image/*Accept: image/*

httpd server httpd server

parses the request according to HTTP protocol 1.0parses the request according to HTTP protocol 1.0

interprets rest of the metainfo for browser capabilitiesinterprets rest of the metainfo for browser capabilities

Maps the /survey/ to Maps the /survey/ to c:/InetPub/wwwrootc:/InetPub/wwwroot/survey//survey/default.htmdefault.htma file path in its file system according to server configuration.a file path in its file system according to server configuration.

retrieves retrieves c:/InetPub/wwwrootc:/InetPub/wwwroot/survey//survey/default.htmdefault.htm or index.html or index.html

sends information back using HTTP/1.0 formatsends information back using HTTP/1.0 format

Page 32: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 32

Simple Web Access Simple Web Access Example: Step3Example: Step3

Server replies information using HTTP/1.0 formatServer replies information using HTTP/1.0 format

HTTP/1.0 200 Document followsHTTP/1.0 200 Document follows

Date: Tue, 19 Jan 1999 18:10:20 GMTDate: Tue, 19 Jan 1999 18:10:20 GMT

Server: NCSA/1.5Server: NCSA/1.5

Content-type: text/htmlContent-type: text/html

<html><html>

<head><title>Netcraft Web Server Survey</title></head><head><title>Netcraft Web Server Survey</title></head>

Server close file, set certain timeout and wait for next Server close file, set certain timeout and wait for next subsequent requests, such as images/midi files referenced subsequent requests, such as images/midi files referenced in the web page. (called keep-alive connection). When in the web page. (called keep-alive connection). When time expires, disconnect the connection.time expires, disconnect the connection.

Page 33: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 33

Simple Web Access Simple Web Access Example: Step3aExample: Step3a

Browser send GET /sample.htm HTTP/1.0Browser send GET /sample.htm HTTP/1.0

Server repliesServer replies

HTTP/1.0 404 Object Not FoundHTTP/1.0 404 Object Not Found

Content-Type: text/htmlContent-Type: text/html

<body><h1>HTTP/1.0 404 Object Not Found<body><h1>HTTP/1.0 404 Object Not Found

</h1></body></h1></body>

Server close file, network connection, wait Server close file, network connection, wait for next requestfor next request

Page 34: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 34

Simple Web Access Simple Web Access Example: Step4Example: Step4Simple Web Access Simple Web Access Example: Step4Example: Step4

Browser receives http response, a web Browser receives http response, a web document with HTML tags, from the server.document with HTML tags, from the server.

Browser parses/processes the HTML Browser parses/processes the HTML document, display the document content document, display the document content according the tags.according the tags.

When other images/audio/video data are When other images/audio/video data are referenced by <img> <object> <applet> referenced by <img> <object> <applet> tags, the browser initiates the retrieval of tags, the browser initiates the retrieval of those data. those data.

Some of them will http requests to the same Some of them will http requests to the same web servers. That is the reason why keep-web servers. That is the reason why keep-alive connection improves the web server alive connection improves the web server throughput.throughput.

A URL request may trigger many http A URL request may trigger many http requests to several web servers.requests to several web servers.

Browser receives http response, a web Browser receives http response, a web document with HTML tags, from the server.document with HTML tags, from the server.

Browser parses/processes the HTML Browser parses/processes the HTML document, display the document content document, display the document content according the tags.according the tags.

When other images/audio/video data are When other images/audio/video data are referenced by <img> <object> <applet> referenced by <img> <object> <applet> tags, the browser initiates the retrieval of tags, the browser initiates the retrieval of those data. those data.

Some of them will http requests to the same Some of them will http requests to the same web servers. That is the reason why keep-web servers. That is the reason why keep-alive connection improves the web server alive connection improves the web server throughput.throughput.

A URL request may trigger many http A URL request may trigger many http requests to several web servers.requests to several web servers.

Page 35: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 35

HTTPHTTPHTTP1.0/1.1HTTP1.0/1.1http://www.w3.org/Protocols/rfc2068/rfc2068http://www.w3.org/Protocols/rfc2068/rfc2068

A HTTP request consists of A HTTP request consists of method: GET, HEAD, POST, PUT, DELETE, method: GET, HEAD, POST, PUT, DELETE,

Universal Resource Identifier (URI)Universal Resource Identifier (URI)

Protocol versionProtocol version

other info to modify or supplement the requestother info to modify or supplement the requestIf-Modified-Since: (only return object if it is newer the If-Modified-Since: (only return object if it is newer the datedate

authorization: (user password or other authentication authorization: (user password or other authentication as required)as required)

accept: application/postscriptaccept: application/postscript

Page 36: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 36

HTTP ResponseHTTP Responseconsists of consists of

status line (success or failure)status line (success or failure)HTTP/1.1 400 Bad RequestHTTP/1.1 400 Bad Request

200 (Document Follow), 301 (Move Permanently), 200 (Document Follow), 301 (Move Permanently), 302 (Move Temporarily), 304 (Not Modified), 401 302 (Move Temporarily), 304 (Not Modified), 401 (Unauthorized), 402 (payment required), 403 (Unauthorized), 402 (payment required), 403 (Forbidden), 404 (Not Found), 500 (server error)(Forbidden), 404 (Not Found), 500 (server error)

description of the information (metaheader)description of the information (metaheader)Server, Date, Content-Length, Content-Type, Server, Date, Content-Length, Content-Type, Content-Encoded, Last ModifiedContent-Encoded, Last Modified

actual info requestedactual info requested

Page 37: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 37

Content-Type: MIME Content-Type: MIME TypeType

MIME Type File ExtensionMIME Type File Extensiontext/plain txt, default (most text/plain txt, default (most

server) server) text/html htm, html text/html htm, html application/postscript psapplication/postscript psapplication/ms-powerpoint pptapplication/ms-powerpoint pptapplication/x-javascript jsapplication/x-javascript jsimage/gif gifimage/gif gifimage/jpeg jpgimage/jpeg jpgaudio/midi midaudio/midi midvideo/mpeg mpgvideo/mpeg mpgx-world/x-vrml wrlx-world/x-vrml wrl

Page 38: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 38

Configure MIME TypesConfigure MIME TypesConfigure MIME TypesConfigure MIME TypesFor supporting new mime types, both web For supporting new mime types, both web server and web client may need to be server and web client may need to be reconfigured. reconfigured.

For web server,For web server,

Include new mime.type definition in the Include new mime.type definition in the mime.types file of the configuration directory mime.types file of the configuration directory of the web serverof the web server

By default, most servers deliver unknown By default, most servers deliver unknown type as text/plaintype as text/plainbrowser then may display them as browser then may display them as ““gibberish”gibberish”

Restart the web serverRestart the web server

For web client,For web client,

Specify external viewer associated with the Specify external viewer associated with the mime typemime type

Or, install the plug-in associate with the mime Or, install the plug-in associate with the mime typetype

For supporting new mime types, both web For supporting new mime types, both web server and web client may need to be server and web client may need to be reconfigured. reconfigured.

For web server,For web server,

Include new mime.type definition in the Include new mime.type definition in the mime.types file of the configuration directory mime.types file of the configuration directory of the web serverof the web server

By default, most servers deliver unknown By default, most servers deliver unknown type as text/plaintype as text/plainbrowser then may display them as browser then may display them as ““gibberish”gibberish”

Restart the web serverRestart the web server

For web client,For web client,

Specify external viewer associated with the Specify external viewer associated with the mime typemime type

Or, install the plug-in associate with the mime Or, install the plug-in associate with the mime typetype

Page 39: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 39

Brief Survey of Web Brief Survey of Web ServersServers

http://www.w3c.org/hypertext/WWW/http://www.w3c.org/hypertext/WWW/Servers.htmlServers.html

Jigsaw, http://www.w3c.org/Jigsaw/Jigsaw, http://www.w3c.org/Jigsaw/

http://java.sun.com/products/java-servers/http://java.sun.com/products/java-servers/

http://www.yahoo.com/http://www.yahoo.com/computers_and_Internet/Internet/computers_and_Internet/Internet/World_Wide_Web/HTTP/ServersWorld_Wide_Web/HTTP/Servers

http://www.netcraft.co.uk/Survey/http://www.netcraft.co.uk/Survey/

““Web Server Technologies” by Nancy J. Yeager Web Server Technologies” by Nancy J. Yeager and Robert E. McGrath, Morgan Kaufmann and Robert E. McGrath, Morgan Kaufmann 1996.1996.

Page 40: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 40

CGI Script ExampleCGI Script Example

Client type Client type http://owl.uccs.edu/cgi-bin/chow/uptime.plhttp://owl.uccs.edu/cgi-bin/chow/uptime.plor click on <A HREF =“http://owl.uccs.edu or click on <A HREF =“http://owl.uccs.edu /cgi-bin/chow /uptime.pl”> Show the load on /cgi-bin/chow /uptime.pl”> Show the load on owl</A> in a web page.owl</A> in a web page.uptime.pluptime.pl

#!/usr/bin/perl#!/usr/bin/perl$UPTIME = '/usr/ucb/uptime';$UPTIME = '/usr/ucb/uptime';select(STDOUT); $| =1; #make output unbufferedprint "Content-select(STDOUT); $| =1; #make output unbufferedprint "Content-

type: text/html\n\n";type: text/html\n\n";if (-x $UPTIME) { exec($UPTIME);if (-x $UPTIME) { exec($UPTIME);

} else { print "cannot find uptime command on this system.\n"; } else { print "cannot find uptime command on this system.\n"; exit(1); }exit(1); }

Page 41: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 41

CGI Script Example (Step CGI Script Example (Step 2)2)

Web browser sends “GET Web browser sends “GET /cgi-bin/chow/uptime.pl HTTP/1.0” to /cgi-bin/chow/uptime.pl HTTP/1.0” to owl.uccs.eduowl.uccs.edu

httpd server at owl parses the request and httpd server at owl parses the request and discovers that a perl script needs to be discovers that a perl script needs to be executed.executed.

It locates the script in the file system.It locates the script in the file system.

Create the execution environmentCreate the execution environmentstarting a process with appropriate shell environment starting a process with appropriate shell environment variable setvariable set

with STDIN from httpd programwith STDIN from httpd program

with STDOUT to httpdwith STDOUT to httpd

Page 42: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 42

CGI Script Example (Step CGI Script Example (Step 3)3)

uptime.pl generates uptime.pl generates Content-type: text/plainContent-type: text/plain

15:55 up 18 days, 7:15, 5 users, load average: 0.89, 0.81, 15:55 up 18 days, 7:15, 5 users, load average: 0.89, 0.81, 0.790.79

It was sent over STDOUT back to httpdIt was sent over STDOUT back to httpd

httpd add httpd add HTTP/1.0 200 OKHTTP/1.0 200 OK

Server: Netscape-Communications/1.1Server: Netscape-Communications/1.1

Date: Tuesday, 27-Jan-98 23:12:45 GMTDate: Tuesday, 27-Jan-98 23:12:45 GMT

httpd relays the text string back to the web httpd relays the text string back to the web browserbrowser

Page 43: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 43

What problems can What problems can occur?occur?

How to detect a script running infinite How to detect a script running infinite loop?loop?

How to detect a hung script?How to detect a hung script?

Page 44: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 44

Handle Multiple Handle Multiple RequestsRequests

Can’t afford sequential processing, since some Can’t afford sequential processing, since some requested documents are big. requested documents are big.

Three basic approaches:Three basic approaches:

1. Fork a new child process: Cloning a copy of httpd1. Fork a new child process: Cloning a copy of httpd

2. Use multithread (if the OS or language support it)2. Use multithread (if the OS or language support it)e.g., IIS, Java Web Server, Jigsawe.g., IIS, Java Web Server, Jigsaw

3. Spread the load among several helper programs3. Spread the load among several helper programse.g., Apachee.g., Apache

Apache allows the starting , min, max # of child web Apache allows the starting , min, max # of child web server processes to be specified in a configuration file. server processes to be specified in a configuration file. It can dynamically adjust to the load.It can dynamically adjust to the load.

Page 45: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 45

More than One Web Service on More than One Web Service on the Same Server Platformthe Same Server Platform

Run different/same httpd programs on different Run different/same httpd programs on different portsports

http://www.server.org/intro.html (port 80 by http://www.server.org/intro.html (port 80 by default)default)

http://www.server.org:8080/intro.html (port 8080)http://www.server.org:8080/intro.html (port 8080)

http://www.server.org:8081/intro.html (port 8081)http://www.server.org:8081/intro.html (port 8081)

They may have different document trees, They may have different document trees, content, and access control, and serve different content, and access control, and serve different user groups (customer, sales, authorized)user groups (customer, sales, authorized)

Note that running program at any port < 1024 Note that running program at any port < 1024 requires root privilege.requires root privilege.

Page 46: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 46

Virtual HostingVirtual HostingTo allow one server to server requests with multiple IP To allow one server to server requests with multiple IP addresses.addresses.

It is a It is a low costlow cost option for clients that want own id and option for clients that want own id and cannot afford a separate machine/connection.cannot afford a separate machine/connection.

Hosting other domain names on the same machine.Hosting other domain names on the same machine.http://www.a.com/home.htmlhttp://www.a.com/home.html

http://www.b.com/home.htmlhttp://www.b.com/home.html

Require OS with virtual host support.Require OS with virtual host support.

Assign Multiple IP numbers to the same interfaceAssign Multiple IP numbers to the same interfaceusing the using the ifconfigifconfig command in UNIX or ipconfig in NT. command in UNIX or ipconfig in NT.

Page 47: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 47

Assign Multiple IP Assign Multiple IP Address to the Same Address to the Same InterfaceInterface

On FreeBSD, executeOn FreeBSD, execute

ifconfig ep0 192.168.123.2ifconfig ep0 192.168.123.2

ifconfig ep0 192.168.123.3 alias netmask 0XFFFFFFFFifconfig ep0 192.168.123.3 alias netmask 0XFFFFFFFF

ifconfig ep0 192.168.124.1 aliasifconfig ep0 192.168.124.1 alias

(netmask option is used to suppress error msg)(netmask option is used to suppress error msg)

On Linux, executeOn Linux, execute

ifconfig eth0:0 192.168.123.3 192.168.124.1ifconfig eth0:0 192.168.123.3 192.168.124.1

you may addyou may add

# route add -host 192.168.123.3 dev eth0:0# route add -host 192.168.123.3 dev eth0:0

# route add -host 192.168.124.1 dev eth0:0# route add -host 192.168.124.1 dev eth0:0

Page 48: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 48

New Hosting TechniqueNew Hosting TechniqueNew Hosting TechniqueNew Hosting Technique

Set up virtual machines for each Set up virtual machines for each customercustomer

Related software packages:Related software packages:User mode LinuxUser mode Linux

VMWare ESX and Virtual VMWare ESX and Virtual Center/Infrastructure.Center/Infrastructure.

MS VS 2005MS VS 2005

Utility Computing (On-Demand ComputiUtility Computing (On-Demand Computing)ng)

Page 49: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 49

Improving WWW Improving WWW Delivery Systems Delivery Systems

Currently network is bottleneck.Currently network is bottleneck.

The retrieval of web pages can be The retrieval of web pages can be improved byimproved by

increasing network bandwidth, e.g., ADSL linkincreasing network bandwidth, e.g., ADSL link

reducing round trip, e.g., use client side reducing round trip, e.g., use client side programming to check data with Java/Javascriptprogramming to check data with Java/Javascript

caching (both at client and proxy cache server)caching (both at client and proxy cache server)

increase # and processing power of web serversincrease # and processing power of web servers

load balancing by partitioning client-server load balancing by partitioning client-server requestsrequests

Page 50: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 50

Large Web SitesLarge Web SitesMapping the request, e.g., ftp.netscape.com, evenly Mapping the request, e.g., ftp.netscape.com, evenly across a set of server, e.g., ftp[1-28].netscape.comacross a set of server, e.g., ftp[1-28].netscape.com

to Internet

Router/Firewall

Router/Firewall

DMZ FirewallRRDNS

WebServer1

WebServer9

InternalProxy Server

HA NFS Server HA NFS Server

WebPages

To Intranet

Page 51: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 51

CISCO Distributed CISCO Distributed DirectorDirector

Distributed Director Distributed Director uses, the Director uses, the Director Response Protocol Response Protocol (DRP), a UDP-based (DRP), a UDP-based application for application for querying DRP server querying DRP server agent for BGP and agent for BGP and IGP routing table IGP routing table metrics between metrics between distributed servers distributed servers and clients, and and clients, and perform load perform load distribution.distribution.

Page 52: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 52

Internet CachingInternet CachingHarvest/SQUID Cache: Harvest/SQUID Cache: hierarchicalhierarchical, 42% ftp bw reduction, 42% ftp bw reduction

Client/Proxy Cache. Client/Proxy Cache. Local Small, 65% bw reductionLocal Small, 65% bw reduction

Server PushServer Push Cache: Cache: Gwertzman and Seltzer (cornell)Gwertzman and Seltzer (cornell)

Distributed Internet Cache: Distributed Internet Cache: Povey and Harrison (uq) Povey and Harrison (uq) hierarchical index on tree tophierarchical index on tree top, content on the leave, content on the leave

Cachemesh: Cachemesh: Wong and Crowcroft (ucl)Wong and Crowcroft (ucl)cache routing tablecache routing table for reducing search overhead for reducing search overhead

WebWave: WebWave: Heddaya and Mirdad (bu)Heddaya and Mirdad (bu)Cache on RouteCache on Route, Tree Load Balancing &Load Diffusion, Tree Load Balancing &Load Diffusion

Adaptive Web Caching: Adaptive Web Caching: Zhang, Floyd, JacobsonZhang, Floyd, JacobsonSelf-configuration Cache Group, MulticastSelf-configuration Cache Group, Multicast..

Page 53: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 53

Havest/SQUID Object Havest/SQUID Object CacheCache

Hierarchical Cache: Danzig, Hall & Schwartz shows it reduces 42% of FTP traffic. Hierarchical Cache: Danzig, Hall & Schwartz shows it reduces 42% of FTP traffic. Place Place Big Big caches between regional networks and backbone. Byte*hop as metriccaches between regional networks and backbone. Byte*hop as metric

Havest Object Cache: Havest Object Cache: manual configuratedmanual configurated hierarchical cache system. Client uses hierarchical cache system. Client uses Internet Cache Protocol (ICP) to (Internet Cache Protocol (ICP) to (recursivelyrecursively) query Sibling and Parent caches) query Sibling and Parent caches

NLANR SQUID Object Cache. Internet hierarchical cache system. Problems:NLANR SQUID Object Cache. Internet hierarchical cache system. Problems:14 separate Australian branches from US14 separate Australian branches from US

CA content sources distribute content through East Coast root cache, back to CA clients.CA content sources distribute content through East Coast root cache, back to CA clients.

Page 54: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 54

Server Push CacheServer Push CacheAssume a network with a lot of push Assume a network with a lot of push cache servers.cache servers.

Show server initiated cache (push Show server initiated cache (push cache) can be combined with client cache) can be combined with client cache to be very effective.cache to be very effective.

Use network topology info and access Use network topology info and access history to decide which push cach history to decide which push cach server to place replica.server to place replica.

Page 55: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 55

Distributed Internet Distributed Internet CacheCache

Povey and Harrison (Univ. of Queenland, Povey and Harrison (Univ. of Queenland, Brisbane) Brisbane)

Address hierarchical cache problemAddress hierarchical cache problem

Hierarchical structure for data searhing only.Hierarchical structure for data searhing only.with mapping info on non-leave nodes, with mapping info on non-leave nodes, content on the leave.content on the leave.

After retrieving a new page, send advertisment After retrieving a new page, send advertisment up the tree hierarchy. Non-leave node in the up the tree hierarchy. Non-leave node in the path store the advertisement (url, cache loc.) path store the advertisement (url, cache loc.) in its table.in its table.

Disadvantages: increase load on leave caches. Disadvantages: increase load on leave caches.

Page 56: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 56

CachemeshCachemeshWong and Crowcroft (University College London).Wong and Crowcroft (University College London).

Client search cache routing table for cache location.Client search cache routing table for cache location.

A collection of co-operating caches use Cache A collection of co-operating caches use Cache Information Exchange Protocol (CIEP) to add/delete Information Exchange Protocol (CIEP) to add/delete entries to the cache routing table.entries to the cache routing table.

Web site as unit for cache table entriesWeb site as unit for cache table entries

Collision resolution when multiple cache servers claim Collision resolution when multiple cache servers claim responsibility (based on freq.) for a web site: use responsibility (based on freq.) for a web site: use random CIEP_ADD/DELETE sending delay.random CIEP_ADD/DELETE sending delay.

Realistic metrics to be used for selecting cache server.Realistic metrics to be used for selecting cache server.

Page 57: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 57

WebWaveWebWaveHeddaya and Mirdad (Boston Univ.)Heddaya and Mirdad (Boston Univ.)

No directory lookup or cache search.No directory lookup or cache search.

Cache lies along the route to the source.Cache lies along the route to the source.

Assume cache server can change filter rules Assume cache server can change filter rules in router to intercept and server the web in router to intercept and server the web requests.requests.

Define Optimal Tree Load Balancing (TLB).Define Optimal Tree Load Balancing (TLB).

Provide load diffusion algorithms that achieve Provide load diffusion algorithms that achieve TLB.TLB.

Only address single tree for now. Only address single tree for now.

Page 58: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 58

Adaptive Web CacheAdaptive Web CacheZhang (UCLA), Floyd, Jacobson (NRG, LBNL)Zhang (UCLA), Floyd, Jacobson (NRG, LBNL)

New DARPA-funded research project. New DARPA-funded research project.

Focus on scalability and self-configurationFocus on scalability and self-configuration..

Self-configuration Self-configuration Cache Group use Cache Cache Group use Cache Group Management Protocol (CGMP).Group Management Protocol (CGMP).

IP Multicast delivery.IP Multicast delivery.

Cache server may join multiple cache groups Cache server may join multiple cache groups (select multi-homed hosts as cache server)(select multi-homed hosts as cache server)

Ideally one cache server forward requests to Ideally one cache server forward requests to the source.the source.

Page 59: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 59

Dynamic Server Dynamic Server Selection One candidate Selection One candidate architecturearchitecture

WebServer2

WebServer8

WebServer1

WebServer9

client

LB Agent

Server push load status

Client proberesponse time

LB AgentLB Agent LB Agent

Page 60: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 60

Novel Server Selection Novel Server Selection TechniqueTechniqueFei et al (Ammar) [GIT-CC-97-Fei et al (Ammar) [GIT-CC-97-24]24]

Use application layer anycast to select the best Use application layer anycast to select the best geographically separated web servers.geographically separated web servers.

Server push (server load status) to resolver.Server push (server load status) to resolver.

Only push when load change over threshold.Only push when load change over threshold.

Client (resolver) probe (response time of the Client (resolver) probe (response time of the server)server)

Retrieve fixed size document in each server.Retrieve fixed size document in each server.

Avoid oscillation by returning one server from a Avoid oscillation by returning one server from a set of equivalent servers.set of equivalent servers.

Investigate the impact of push/probe frequency Investigate the impact of push/probe frequency on response time.on response time.

Page 61: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 61

Application-layer Anycast Application-layer Anycast ArchitectureArchitecture

ContentServer

PushDaemon

PerformanceUpdate

Server

ProbeClient

NameResolver

ProbeUpdate

Resolver

Probes

Anycast-wareClient

AnycastQuery/Response

client/servercomm.

Server Pushes(multicast)

Page 62: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 62

Experimental TopologyExperimental Topology

Page 63: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 63

Performance of Server Location Performance of Server Location SchemeScheme

Page 64: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 64

Response Time Varying Response Time Varying with Push and Probe with Push and Probe FrequencyFrequencyServer push twice/min

Client Probe once/6minvs. Server push 12 times/min

Client probe once/10min

Page 65: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 65

Dynamic Server Selection vs.Dynamic Server Selection vs.Load Balancing in ServersLoad Balancing in Servers

In Fei et al’s work, after every client chooses the In Fei et al’s work, after every client chooses the lightest server, it becomes the heavy loaded server.lightest server, it becomes the heavy loaded server.

Next round, every client swings to next lightest Next round, every client swings to next lightest server and results in oscillation in server selection.server and results in oscillation in server selection.

How to damp the oscillation:How to damp the oscillation:

Anycast resolvers return a set of good serversAnycast resolvers return a set of good servers

A threshold is used to add/delete good server setA threshold is used to add/delete good server set

User response timeUser response time vs. vs. System throughputSystem throughputDynamic serverDynamic server Load BalancingLoad Balancing selectionselection in Serversin Servers

Page 66: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 66

WAN Load Balancing WAN Load Balancing ArchitectureArchitecture

ContentServer

PushDaemon

PerformanceUpdate

LBed Server

ProbeClient

LBCoordinator

ProbeUpdate

LB Agent

Probes

LBClient

LBQuery/Responseclient/server

comm.

Server Pushes(multicast)

LBClient

LBQuery/Response

ProbeClient

LBCoordinator

ProbeUpdate

LB Agent

LBCoord.

Protocol

Page 67: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 67

ProbeClient

LBCoordinator

ProbeUpdate

LB Agent

WAN Load Balancing WAN Load Balancing Architecture-2Architecture-2

ContentServer

Server

ProbeClient

LBCoordinator

ProbeUpdate

LB Agent

Probes

LBClient

LBQuery/Responseclient/server

comm.

LBClient

LBQuery/Response

LBCoord.

Protocol

Page 68: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 68

WAN Load Balancing WAN Load Balancing Architecture-3Architecture-3

LBQuery/Response

LBClient

LBClient

ProbingModule

LBCoordinator

ProbeUpdate

LB Agent

TrafficControl

TrafficUpdate

ContentServer

Server Probes

LBClient

client/servercomm.

LBClient

LBCoord.

Protocol

Probingmodule

LBCoordinator

ProbeUpdate

LB Agent

TrafficControl

TrafficUpdate

LBQuery/Response

Control Control

Load Balancing System

Page 69: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 69

Functions of LB Functions of LB coordinatorcoordinator

Collect server load, network status, and traffic Collect server load, network status, and traffic status from probing and traffic control modulestatus from probing and traffic control module

Share the server and traffic status with other LB Share the server and traffic status with other LB coordinators via LB coordinating protocolcoordinators via LB coordinating protocol

Run load balancing algorithm thatRun load balancing algorithm thatdirects the client requests (macro control)directs the client requests (macro control)

dynamically regulates the client-server traffic (micro dynamically regulates the client-server traffic (micro control)control)

Control the probing frequency of probing moduleControl the probing frequency of probing module

Regulate the traffic of client-server Regulate the traffic of client-server communicationcommunication

Page 70: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 70

Status Collection in WLB Status Collection in WLB systemsystem

Passive traffic monitoring on client-server Passive traffic monitoring on client-server comm.comm.

Server load report from other LB coordinatorsServer load report from other LB coordinators

Active probing on server and network loads Active probing on server and network loads when there is no traffic status reportswhen there is no traffic status reports

Research issues:Research issues:traffic monitoring system designtraffic monitoring system design

efficiency, accuracy, coordination of probing efficiency, accuracy, coordination of probing systemsystem

derive server and network load from traffic dataderive server and network load from traffic data

Page 71: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 71

Traffic Control in WLB Traffic Control in WLB SystemSystem

Admission control (Macro level Control)Admission control (Macro level Control)Estimate the load of the requestsEstimate the load of the requests

Direct the requestsDirect the requests

Taffic grooming/shapping (Micro level Taffic grooming/shapping (Micro level control)control)

At what protocol level (TCP, IP?)At what protocol level (TCP, IP?)

At which module/interface (Router? At which module/interface (Router? Layer4/Content/Web switch)Layer4/Content/Web switch)

Page 72: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 72

Important Web SitesImportant Web Siteshttp://www.w3c.org/http://www.w3c.org/

http://http://developer.netscape.comdeveloper.netscape.com//

http://java.sun.com/http://java.sun.com/

http://www.microsoft.com/workshop/defauhttp://www.microsoft.com/workshop/default.asplt.asp

http://www.apache.org/http://www.apache.org/

http://http://www.netcraft.co.ukwww.netcraft.co.uk/Survey//Survey/

http://http://web.mit.edu/afs/athena/user/w/s/wsmart/web.mit.edu/afs/athena/user/w/s/wsmart/WEB/HTMLtutor.htmlWEB/HTMLtutor.html

......

Page 73: Advanced Internet and Web Systems

Advanced Internet & Web Systems

chow 73

Useful ReferencesUseful ReferencesOreily’s Web seriesOreily’s Web series

HTML, CGI, Dynamic HTML, Programming PerlHTML, CGI, Dynamic HTML, Programming Perl

““Web Server Technologies” by Nancy J. Yeager Web Server Technologies” by Nancy J. Yeager and Robert E. McGrath, Morgan Kaufmann 1996.and Robert E. McGrath, Morgan Kaufmann 1996.HTML+CGIHTML+CGIWorld Wide Web Beyond the Basics, edit by Marc World Wide Web Beyond the Basics, edit by Marc Abrams, Prentice Hall, 1998Abrams, Prentice Hall, 1998MS Technical Support for IIS, self learning MS Technical Support for IIS, self learning manual. manual. How to setup and maintain a web sites, L. Stein.How to setup and maintain a web sites, L. Stein.Web Server TuningWeb Server Tuning……