Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Goals
Where is the Internet headed? What are the challenges in getting there?
Methodology:
Build something
Ground Rules
Appliance Computing
Dont 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
Overview
Basics, intro, history, programming & deployment models, ASP model, proxies and middleware, caching & aggregation Appliance computing
software structure of Internet applications, software techniques for scalability and robustness, application decomposition, failure management Building cluster-based systems
Internet infrastructure meets reality, Internet business/economics A research agenda for future work in Internet and related software infrastructure
security low-level networking practicum (how to build a Web site) how to do an Internet startup (but we will talk about business aspects)
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
Also class mailing lists, cs241-all@lists and cs241-staff@lists Also class calendar using Yahoo calendar: username cs444i password tcseq101please dont mess it up! We may use this to schedule joint lectures
Outline
Prehistory and History HTTP and HTML as foundations Characterizing Services Service-Centric View of the Internet Engineering Challenges
DNS
Whats Changed?
Internet (56kbps)
Typical late-1980s grad students
ucbvax.berkeley.edu
www.etrade.com
HTTP/1.0 Problems
Cant 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
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?
Conclusion: HTTP is flawed, but it doesnt 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...
Push services?
Non-PC clients and slow networks?
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?
Latency (& disconnection) Common example: input validation Are standalone applets Internet services?
Proxy-based
Client Svr ISP ISP Client Proxy Svr
Client
Network
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
Groupware Web databases (Four11, WhoWhere, search engines) Anonymizer Character set translation, language translation MyCoolNewsFromLotsOfSites.com Transformations for weird clients
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)
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
Moores Law has made computing power smaller, cheaper, faster, lower-power
Wireless communication is pervasive and inexpensive enough for consumers The Internet has become a mass market phenomenon: Access Is the
Summary
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.