Fox, Armando. Introduction Internet Services CS 241 Internet Services
Download
Report
Transcript Fox, Armando. Introduction Internet Services CS 241 Internet Services
Introduction
CS 241 Internet Services
© Armando Fox
[email protected]
Today’s Travel Photo: Where Are You?
For extra credit on the diagnostic exam. :) Be specific.
Goals
What’s an Internet service? Where did they come
from?
Where is the Internet headed?
What are the challenges in getting there?
Methodology:
relevant literature: systems, networks, applications…
Case studies (specific service examples) & guest speakers
Systematic characterization of application space
Build something
Ground Rules
No whining or spectating, lots of building and reading
Be on time! Especially for guest speakers!
This quarter’s featured project topic:
Appliance Computing
Project is really important
Don’t even think about asking for an extension
Lots of heavy-duty tools will be made available
“Best project” judged by panel will receive a prize (probably
an expenses-paid trip to a major Internet conference)
Referees will include both technical personnel and investors
Short Course Outline
Overview
Basics, intro, history, programming & deployment models,
ASP model, proxies and middleware, caching & aggregation
Appliance computing
The customized Internet
Mass customization, personalization, privacy/security issues
Adapting to wireless
Software structure for Internet scale
software structure of Internet applications, software
techniques for scalability and robustness, application
decomposition, failure management
Building cluster-based systems
Short Course Outline, cont’d.
The future and the real world
Internet infrastructure meets reality, Internet
business/economics
A research agenda for future work in Internet and related
software infrastructure
Non-topics (except in passing):
security
low-level networking
practicum (“how to build a Web site”)
“how to do an Internet startup” (but we will talk about
business aspects)
Recommended optional readings will be posted
Features This Quarter
Guest speakers and Technical Advisory Board (on Web)
Loose coupling to Internet Infrastructure Lab
Project themes: ubiquitous and appliance computing
Why these are very similar to “traditional” (Web-based) services
Focus on user experience and “end-to-end” application functionality
Administrivia
Web site always under construction
Also class mailing lists, cs241-all@lists and cs241-staff@lists
Also class calendar using Yahoo calendar: username cs444i
password tcseq101…please don’t mess it up!
We may use this to schedule joint lectures
No class Monday 1/15 (MLK day)
HW #1 due by email Wed 1/17
HW is posted on the Web site already
Diagnostic exam! Woohoo!
Enrollment results announced by email to cs241-all by
Friday
Outline
Prehistory and History
HTTP and HTML as foundations
Characterizing Services
Service-Centric View of the Internet
Engineering Challenges
One-Slide Internet Timeline
1969: four-node ARPAnet
1973-75: Internetworking & TCP/IP
Common standards connect networks of networks
1980: Ethernet, Berkeley UNIX, free TCP/IP
Computers can communicate
Internetworking becomes real
1990: World Wide Web prototype at CERN
Anyone can access and publish rich content
(Pre)-History: Early Internet Services
DNS
rlogin, rsh, rwho, telnet, ftp
Archie & Veronica
gopher
email & news (non-interactive)
What’s Changed?
Universal client, least-common-denominator output
format (HTML & friends)
Universal stackable client-server protocol (HTTP)
Client extensibility via Java and JavaScript
Mass deployment: new audience with different
expectations
Exponential growth
A student’s view of the Internet then...
Long flows, thin pipes, infrequent losses
Internet
(56kbps)
ucbvax.berkeley.edu
Typical late-1980’s
grad students
Thanks: © Stefan Savage, Univ. of Washington
… and the Internet now
Short flows, fat pipes, frequent losses
Internet
(>155Mbps)
www.etrade.com
Typical 1999
grad students
5% drop rate
Thanks: © Stefan Savage, Univ. of Washington
HTTP/1.0 Problems
Chatty: 1 object request per HTTP “transaction”
Terrible use of TCP
Slow start, short connections, terrible congestion behavior
Background: What was TCP designed for?
Can’t trust caching
No standard extensibility mechanisms
Naming completely broken for things like CGI
“When all you have is a hammer, everything looks
like a nail”: every protocol on earth has been
tunnelled over HTTP
HTTP/1.1 Fixes Some Problems
Caching directives standardized
But will people use them? (cache busting)
Caching semantics are complicated (cookies)
Still expiration based
Persistent connections
Client and server complexity
Can servers afford to keep connections open?
Request pipelining and partial requests
Client parsing is much more complicated
Services Emerge From the Ooze
Conclusion: HTTP is flawed, but it doesn’t matter
CGI-bin, servlets, etc.: RPC all over again?
Web front ends (databases, shells, …)
What are the problems with using the Web
(HTML/HTTP) as a substrate for...
Ecommerce/transaction services?
“session oriented” services?
“Push” services?
Non-PC clients and slow networks?
Where Do Internet Services Live?
At the server? (common case)
At the client? (Java, JavaScript, ActiveX extensions)
In between? (proxies)
Server-Based Applications
The common case
Search engines, e-commerce sites, content, other
“destination” services
If content servers allow caching, where does the
service live then?
Extending the Client
Client extension mechanisms
Java applets
JavaScript
ActiveX
When are these useful?
Latency (& disconnection)
Common example: input validation
Are standalone applets Internet services?
Which extension mechanism is “best”?
Metrics: speed, security, ubiquity…others?
Proxy-based
Client
Svr
ISP
Network
Client
ISP
Client
Proxy
Svr
Svr
Svr
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. Proxy
What can you do with one but not the other?
Groupware
Web databases (Four11, WhoWhere, search engines)
Anonymizer
Character set translation, language translation
MyCoolNewsFromLotsOfSites.com
Transformations for weird clients
What about security?
Other objections to proxies too; we’ll explore them later
Service-Centric vs. Content-Centric
“Content is king” -> “Services are king”
Most Yahoo! user loyalty is for Yahoo mail--not content
Approx. 70% of securities trading in Finland done online
Approx. 1 in 7 U.S. trades done online (estimate: Bill
Burnham, CS First Boston, April 1999)
Why this is especially important for mobile devices
“Utility Company” Requirements
Availability 24x7
Robust fault tolerance--self maintenance
Replication/redundancy & distribution
How about exploiting clusters?
How do we measure availability?
State management: why not just use a big database?
Incremental growth
Rapid deployment
Client Diversity
The “Post-PC” world
Moore’s Law has made computing
power smaller, cheaper, faster, lowerpower
•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?
Summary
Building Internet services today is hard
Unforgiving novice users demand “perfect” availability
Enormous traffic loads
Exponential growth along all axes
Current user experience is indefensible and problem is about
to worsen
Is this…
A systems problem?
A networking problem?
An application design problem?
…Yes.
Today’s Travel Photo (Wailea Point)