Post on 19-Dec-2015
IntroductionIntroduction
CS 241 Internet ServicesCS 241 Internet Services© Armando Fox© Armando Fox
fox@cs.stanford.edufox@cs.stanford.edu
Today’s Travel Photo: Where Are Today’s Travel Photo: Where Are You?You?
For extra credit on the diagnostic exam. :) Be specific.
GoalsGoals
What’s an Internet service? Where did they What’s an Internet service? Where did they come from?come from? Where is the Internet headed?Where is the Internet headed?
What are the challenges in getting there?What are the challenges in getting there?
Methodology:Methodology: relevant literature: systems, networks, applications…relevant literature: systems, networks, applications…
Case studies (specific service examples) & guest Case studies (specific service examples) & guest speakersspeakers
Systematic characterization of application spaceSystematic characterization of application space
Build somethingBuild something
Ground RulesGround Rules
No whining or spectating, lots of building and No whining or spectating, lots of building and readingreading
Be on time! Especially for guest speakers!Be on time! Especially for guest speakers!
This quarter’s featured project topic: This quarter’s featured project topic: Appliance ComputingAppliance Computing
Project is Project is really importantreally important Don’t even think about asking for an extensionDon’t even think about asking for an extension
Lots of heavy-duty tools will be made availableLots of heavy-duty tools will be made available
““Best project” judged by panel will receive a prize (probably Best project” judged by panel will receive a prize (probably an expenses-paid trip to a major Internet conference)an expenses-paid trip to a major Internet conference)
Referees will include both technical personnel and investorsReferees will include both technical personnel and investors
Short Course OutlineShort Course Outline
OverviewOverview Basics, intro, history, programming & deployment models, Basics, intro, history, programming & deployment models,
ASP model, proxies and middleware, caching & aggregationASP model, proxies and middleware, caching & aggregation
Appliance computingAppliance computing
The customized InternetThe customized Internet Mass customization, personalization, privacy/security issuesMass customization, personalization, privacy/security issues
Adapting to wirelessAdapting to wireless
Software structure for Internet scaleSoftware structure for Internet scale software structure of Internet applications, software software structure of Internet applications, software
techniques for scalability and robustness, application techniques for scalability and robustness, application decomposition, failure managementdecomposition, failure management
Building cluster-based systemsBuilding cluster-based systems
Short Course Outline, cont’d.Short Course Outline, cont’d.
The future and the real worldThe future and the real world Internet infrastructure meets reality, Internet Internet infrastructure meets reality, Internet
business/economicsbusiness/economics
A research agenda for future work in Internet and related A research agenda for future work in Internet and related software infrastructuresoftware infrastructure
Non-topics (except in passing): Non-topics (except in passing): securitysecurity
low-level networkinglow-level networking
practicum (“how to build a Web site”)practicum (“how to build a Web site”)
““how to do an Internet startup” (but we how to do an Internet startup” (but we willwill talk about talk about business aspects)business aspects)
Recommended optional readings will be postedRecommended optional readings will be posted
Features This QuarterFeatures This Quarter
Guest speakers and Technical Advisory Board (on Web)Guest speakers and Technical Advisory Board (on Web)
Loose coupling to Loose coupling to Internet Infrastructure LabInternet Infrastructure Lab
Project themes: ubiquitous and appliance computingProject themes: ubiquitous and appliance computing Why these are very similar to “traditional” (Web-based) Why these are very similar to “traditional” (Web-based)
servicesservices Focus on user experience and “end-to-end” application Focus on user experience and “end-to-end” application
functionalityfunctionality
AdministriviaAdministrivia
Web site always under constructionWeb site always under construction Also class mailing lists, Also class mailing lists, cs241-all@listscs241-all@lists and and cs241-staff@listscs241-staff@lists
Also class calendar using Yahoo calendar: username Also class calendar using Yahoo calendar: username cs444i cs444i password password tcseq101tcseq101…please don’t mess it up!…please don’t mess it up!
We may use this to schedule joint lecturesWe may use this to schedule joint lectures
No class Monday 1/15 (MLK day)No class Monday 1/15 (MLK day)
HW #1 due by email Wed 1/17HW #1 due by email Wed 1/17 HW is posted on the Web site alreadyHW is posted on the Web site already
Diagnostic exam! Woohoo!Diagnostic exam! Woohoo! Enrollment results announced by email to Enrollment results announced by email to cs241-allcs241-all by by
FridayFriday
OutlineOutline
Prehistory and HistoryPrehistory and History
HTTP and HTML as foundationsHTTP and HTML as foundations
Characterizing ServicesCharacterizing Services
Service-Centric View of the InternetService-Centric View of the Internet
Engineering ChallengesEngineering Challenges
One-Slide Internet TimelineOne-Slide Internet Timeline
1969: four-node ARPAnet1969: four-node ARPAnet Computers can communicateComputers can communicate
1973-75: Internetworking & TCP/IP1973-75: Internetworking & TCP/IP Common standards connect Common standards connect networks of networksnetworks of networks
1980: Ethernet, Berkeley UNIX, free TCP/IP1980: Ethernet, Berkeley UNIX, free TCP/IP Internetworking becomes realInternetworking becomes real
1990: World Wide Web prototype at CERN1990: World Wide Web prototype at CERN Anyone can access Anyone can access and publishand publish rich content rich content
(Pre)-History: Early Internet (Pre)-History: Early Internet ServicesServices
DNSDNS
rlogin, rsh, rwho, telnet, ftprlogin, rsh, rwho, telnet, ftp
Archie & VeronicaArchie & Veronica
gophergopher
email & news (non-interactive)email & news (non-interactive)
What’s Changed?What’s Changed?
Universal client, least-common-denominator Universal client, least-common-denominator output format (HTML & friends)output format (HTML & friends)
Universal Universal stackablestackable client-server protocol client-server protocol (HTTP)(HTTP)
Client extensibility via Java and JavaScriptClient extensibility via Java and JavaScript
Mass deployment: new audience with different Mass deployment: new audience with different expectationsexpectations
Exponential growthExponential growth
A student’s view of the Internet A student’s view of the Internet then...then...
ftp rogue
ftp BSD4.2
ucbvax.berkeley.edu
Internet(56kbps)
Typical late-1980’s grad students
Long flows, thin pipes, infrequent losses
Thanks: © Stefan Savage, Univ. of Washington
… … and the Internet nowand the Internet now
panic
buy
sell
call
put
www.etrade.com
Typical 1999grad students
Internet(>155Mbps)
5% drop rate
Short flows, fat pipes, frequent losses
Thanks: © Stefan Savage, Univ. of Washington
HTTP/1.0 ProblemsHTTP/1.0 Problems
Chatty: 1 object request per HTTP “transaction”Chatty: 1 object request per HTTP “transaction”
Terrible use of TCPTerrible use of TCP Slow start, short connections, terrible congestion behaviorSlow start, short connections, terrible congestion behavior
Background:Background: What was TCP designed for? What was TCP designed for?
Can’t trust cachingCan’t trust caching
No standard extensibility mechanismsNo standard extensibility mechanisms
Naming completely broken for things like CGINaming completely broken for things like CGI
““When all you have is a hammer, everything looks When all you have is a hammer, everything looks like a nail”: every protocol on earth has been like a nail”: every protocol on earth has been tunnelled over HTTPtunnelled over HTTP
HTTP/1.1 Fixes Some ProblemsHTTP/1.1 Fixes Some Problems
Caching directives standardizedCaching directives standardized But will people use them? (cache busting)But will people use them? (cache busting)
Caching semantics are complicated (cookies)Caching semantics are complicated (cookies)
Still expiration basedStill expiration based
Persistent connectionsPersistent connections Client and server complexityClient and server complexity
Can servers afford to keep connections open?Can servers afford to keep connections open?
Request pipelining and partial requestsRequest pipelining and partial requests Client parsing is much more complicatedClient parsing is much more complicated
Services Emerge From the OozeServices Emerge From the Ooze
Conclusion: HTTP is flawed, but it doesn’t Conclusion: HTTP is flawed, but it doesn’t mattermatter
CGI-bin, servlets, etc.: RPC all over again?CGI-bin, servlets, etc.: RPC all over again?
Web front ends (databases, shells, …)Web front ends (databases, shells, …)
What are the problems with using the Web What are the problems with using the Web (HTML/HTTP) as a substrate for...(HTML/HTTP) as a substrate for... Ecommerce/transaction services?Ecommerce/transaction services?
““session oriented” services?session oriented” services?
““Push” services?Push” services?
Non-PC clients and slow networks?Non-PC clients and slow networks?
Where Do Internet Services Live?Where Do Internet Services Live?
At the server? (common case)At the server? (common case)
At the client? (Java, JavaScript, ActiveX At the client? (Java, JavaScript, ActiveX extensions)extensions)
In between? (proxies)In between? (proxies)
Server-Based ApplicationsServer-Based Applications
The common caseThe common case
Search engines, e-commerce sites, content, Search engines, e-commerce sites, content, other “destination” servicesother “destination” services
If content servers allow caching, where does If content servers allow caching, where does the service live then?the service live then?
Extending the ClientExtending the Client
Client extension mechanismsClient extension mechanisms Java appletsJava applets
JavaScriptJavaScript
ActiveXActiveX
When are these useful?When are these useful? Latency (& disconnection)Latency (& disconnection)
Common example: input validationCommon example: input validation
Are standalone applets Internet services?Are standalone applets Internet services?
Which extension mechanism is “best”?Which extension mechanism is “best”? Metrics: speed, security, ubiquity…others?Metrics: speed, security, ubiquity…others?
Proxy-basedProxy-based
Network
ProxyISP
ISP
Svr
Svr
Svr
SvrClient
Client
Client
What does the proxy do?Transducer (compression, filtering, anonymization, language translation...)Aggregation from multiple servers (many-to-many vs. many-to-one)Possibly caching/firewalling
HCI challenge: orthogonal user interfaces
Server vs. ProxyServer vs. Proxy
What can you do with one but not the other?What can you do with one but not the other? GroupwareGroupware
Web databases (Four11, WhoWhere, search engines)Web databases (Four11, WhoWhere, search engines)
AnonymizerAnonymizer
Character set translation, language translationCharacter set translation, language translation
MyCoolNewsFromLotsOfSites.comMyCoolNewsFromLotsOfSites.com
Transformations for weird clientsTransformations for weird clients
What about security?What about security? Other objections to proxies too; we’ll explore them Other objections to proxies too; we’ll explore them
laterlater
Service-Centric vs. Content-Service-Centric vs. Content-CentricCentric
““Content is king” -> “Services are king”Content is king” -> “Services are king” Most Yahoo! user loyalty is for Yahoo Most Yahoo! user loyalty is for Yahoo mailmail--not --not
contentcontent
Approx. 70% of securities trading in Finland done Approx. 70% of securities trading in Finland done onlineonline
Approx. 1 in 7 U.S. trades done online (estimate: Bill Approx. 1 in 7 U.S. trades done online (estimate: Bill Burnham, CS First Boston, April 1999)Burnham, CS First Boston, April 1999)
Why this is especially important for Why this is especially important for mobile mobile devicesdevices
““Utility Company” RequirementsUtility Company” Requirements
Availability 24x7Availability 24x7 Robust fault tolerance--self maintenanceRobust fault tolerance--self maintenance
Replication/redundancy & distributionReplication/redundancy & distribution
How about exploiting clusters?How about exploiting clusters?
How do we measure availability?How do we measure availability?
State management: why not just use a big State management: why not just use a big database?database?
Incremental growthIncremental growth
Rapid deploymentRapid deployment
Client DiversityClient Diversity
The “Post-PC” worldThe “Post-PC” world Moore’s Law has made Moore’s Law has made
computing power smaller, computing power smaller, cheaper, faster, lower-powercheaper, faster, lower-power
•Wireless communication is pervasive and inexpensive enough for consumers•The Internet has become a mass market phenomenon: “Access Is the Killer App”•Now includes home appliances!
How do we support all these?
SummarySummary
Building Internet services today is hardBuilding Internet services today is hard Unforgiving novice users demand “perfect” availabilityUnforgiving novice users demand “perfect” availability
Enormous traffic loadsEnormous traffic loads
Exponential growth along all axesExponential growth along all axes
Current user experience is indefensible and problem is Current user experience is indefensible and problem is about to worsenabout to worsen
Is this…Is this… A systems problem?A systems problem?
A networking problem?A networking problem?
An application design problem? An application design problem? …Yes.…Yes.