Lecture 1-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) August 28, 2012 Lecture 1  2012, I. Gupta,

Slides:



Advertisements
Similar presentations
CS 425 / ECE 428 Distributed Systems Fall 2014 Indranil Gupta (Indy) Lecture 1: Welcome, and Introduction Web: courses.engr.illinois.edu/cs425/ All slides.
Advertisements

CS542: Topics in Distributed Systems
CS 425 / ECE 428 Distributed Systems Fall 2014 Indranil Gupta (Indy) August 26 – December 9, 2014 Lecture 1-29 Web: courses.engr.illinois.edu/cs425/ All.
Application Layer-11 CSE401N: Computer Networks Lecture-4 Application Layer Overview HTTP.
2: Application Layer1 Chapter 2: Application Layer Our goals: r conceptual, implementation aspects of network application protocols m transport-layer service.
Chapter 2: Application Layer
Layer 7- Application Layer
Jacob Boston Josh Pfeifer. Definition of HyperText Transfer Protocol How HTTP works How Websites work GoDaddy.com OSI Model Networking.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Application Layer PART VI.
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Lecture 1-1 CS542: Topics in Distributed Systems Diganta Goswami.
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Introduction 1 Lecture 5 Application Layer slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering Department.
Distributed Systems Lecture 1: Overview CS425/CSE424/ECE428 Fall 2011 Nikita Borisov.
Process-to-Process Delivery:
19-1 Last time □ TCP ♦ Throughput ♦ Fairness ♦ Delay modeling □ TCP socket programming.
1 Application Layer Lecture 4 Imran Ahmed University of Management & Technology.
CS 3830 Day 7 Introduction : Application Layer 2 Processes communicating Process: program running within a host. r within same host, two processes.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 3: TCP/IP Architecture.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
2: Application Layer1 CS 4244: Internet Software Development Dr. Eli Tilevich.
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
2: Application Layer1 Internet apps: their protocols and transport protocols Application remote terminal access Web file transfer streaming multimedia.
Week 11: Application Layer1 Web and HTTP First some jargon r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,…
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
1.1 What is the Internet What is the Internet? The Internet is a shared media (coaxial cable, copper wire, fiber optics, and radio spectrum) communication.
Copyright © 2002 Pearson Education, Inc. Slide 3-1 CHAPTER 3 Created by, David Zolzer, Northwestern State University—Louisiana The Internet and World Wide.
Web: courses.engr.illinois.edu/cs425/
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
Distributed Systems: Concepts and Design Chapter 1 Pages
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
MySQL and PHP Internet and WWW. Computer Basics A Single Computer.
Sockets process sends/receives messages to/from its socket
Introduction. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
Lecture 28-1 Computer Science 425 Distributed Systems Lecture 28 “Wrap-Up” Klara Nahrstedt.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Unit 9: Distributing Computing & Networking Kaplan University 1.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
Lecture 1-1  2002, M. T. Harandi, J. Hou, and I. Gupta (modified Y. Hu) ECE 428 Distributed Systems Yih-Chun Hu August 25, 2005.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
CS 425 / ECE 428 Distributed Systems Fall 2015 Indranil Gupta (Indy) August 25 – December 8, 2015 Lecture 1-29 Web: courses.engr.illinois.edu/cs425/ All.
Computer Science, FSU1 CNT5505 DATA/COMUTER COMMUNICATIONS Fall 2010.
Lecture 29-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) August 27-December 11, 2012 Lecture 1-29.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Week 11: Application Layer 1 Web and HTTP r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists.
Distributed Systems Lecture 1 Introduction to distributed systems 1.
Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Chapter 1 Characterization of Distributed Systems.
Block 5: An application layer protocol: HTTP
WWW and HTTP King Fahd University of Petroleum & Minerals
Internet transport protocols services
Chapter 16: Distributed System Structures
Distributed Systems Bina Ramamurthy 11/12/2018 From the CDK text.
Lecture 1 Introduction to distributed systems
Computer Communication & Networks
湖南大学-信息科学与工程学院-计算机与科学系
CSC 724 Advanced Distributed Systems Introduction
Web: courses.engr.illinois.edu/cs425/
Process-to-Process Delivery:
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
CS 5565 Network Architecture and Protocols
Web: courses.engr.illinois.edu/cs425/
Web: courses.engr.illinois.edu/cs425/
Computer Networks Protocols
Presentation transcript:

Lecture 1-1 Computer Science 425 Distributed Systems CS 425 / CSE 424 / ECE 428 Fall 2012 Indranil Gupta (Indy) August 28, 2012 Lecture 1  2012, I. Gupta, K. Nahrtstedt, S. Mitra, N. Vaidya, M. T. Harandi, J. Hou Website:

Lecture 1-2 Our Main Goal Today To Define the Term Distributed System

Lecture 1-3 Can you name some examples of Operating Systems?

Lecture 1-4 Can you name some examples of Operating Systems? … Linux Win8 Unix FreeBSD Mountain Lion 2K Aegis Scout Hydra Mach SPIN OS/2 Express Flux Hope Spring AntaresOS EOS LOS SQOS LittleOS TINOS iOS PalmOS WinCE TinyOS Android …

Lecture 1-5 What is an Operating System?

Lecture 1-6 What is an Operating System? User interface to hardware (device driver) Provides abstractions (processes, file system) Resource manager (scheduler) Means of communication (networking) …

Lecture 1-7 FOLDOC definition Operating System - The low-level software which handles the interface to peripheral hardware, schedules tasks, allocates storage, and presents a default interface to the user when no application program is running. (FOLDOC = Free On-Line Dictionary of Computing)

Lecture 1-8 Can you name some examples of Distributed Systems?

Lecture 1-9 Can you name some examples of Distributed Systems? Client-Server (NFS) The Web The Internet A wireless network DNS Gnutella or BitTorrent (peer to peer overlays) A “cloud”, e.g., Amazon EC2/S3, Microsoft Azure A datacenter, e.g., NCSA, a Google datacenter, The Planet (Society?)

Lecture 1-10 What is a Distributed System?

Lecture 1-11 FOLDOC definition A collection of (probably heterogeneous) automata whose distribution is transparent to the user so that the system appears as one local machine. This is in contrast to a network, where the user is aware that there are several machines, and their location, storage replication, load balancing and functionality is not transparent. Distributed systems usually use some kind of client-server organization.

Lecture 1-12 Textbook definitions A distributed system is a collection of independent computers that appear to the users of the system as a single computer [Andrew Tanenbaum] A distributed system is several computers doing something together. Thus, a distributed system has three primary characteristics: multiple computers, interconnections, and shared state [Michael Schroeder]

Lecture 1-13 Unsatisfactory Why are these definitions short? Why do these definitions look inadequate to us? Because we are interested in the insides of a distributed system –design and implementation –Maintenance –Algorithmics (“protocols”)

Lecture 1-14 “I shall not today attempt further to define the kinds of material I understand to be embraced within that shorthand description; and perhaps I could never succeed in intelligibly doing so. But I know it when I see it, and the motion picture involved in this case is not that.” [Potter Stewart, Associate Justice, US Supreme Court (talking about his interpretation of a technical term laid down in the law, case Jacobellis versus Ohio 1964) ]

Lecture 1-15 (A) Facebook Social Network Graph among humans (A) Which is a Distributed System – (A) or (B)? Source:

Lecture 1-16 (B) The Internet (Internet Mapping Project, color coded by ISPs) (B)

Lecture 1-17 A working definition for us A distributed system is a collection of entities, each of which is autonomous, programmable, asynchronous and failure-prone, and which communicate through an unreliable communication medium. Entity=a process on a device (PC, PDA) Communication Medium=Wired or wireless network Our interest in distributed systems involves –design and implementation, maintenance, algorithmics

Lecture 1-18 Distributed System Example – Web domains Source: What are the “entities” (nodes)? What is the communication medium (links)?

Lecture 1-19 Distributed System Example – Gnutella Peer to Peer System Source: GnuMap Project What are the “entities” (nodes)? What is the communication medium (links)?

Lecture 1-20 Distributed System Example – A Datacenter

Lecture 1-21 The Internet – Quick Refresher Underlies many distributed systems. A vast interconnected collection of computer networks of many types. Intranets – subnetworks operated by companies and organizations. Intranets contain LANs and other subnets. WAN – wide area networks, consists of LANs ISPs – companies that provide modem links and other types of connections to users. Intranets are linked by backbones – network links of large bandwidth, such as satellite connections, fiber optic cables, and other high-bandwidth circuits. UC2B? Google Fiber?

Lecture 1-22 An Intranet underneath a distributed file system Running over this Intranet is a distributed file system - What are the “entities” (nodes) in it? What is the communication medium? prevents unauthorized messages from leaving/entering; implemented by filtering incoming and outgoing messages

Lecture 1-23 Distributed Systems are layered over networks Application remote terminal access Web file transfer streaming multimedia remote file server Internet telephony Application layer protocol smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietary (e.g. RealNetworks) NFS proprietary (e.g., Skype) Underlying transport protocol TCP TCP or UDP typically UDP TCP=Transmission Control Protocol UDP=User Datagram Protocol Implemented via network “sockets”. Basic primitive that allows machines to send messages to each other Distributed System Protocols! Networking Protocols

Lecture 1-24 The History of Internet Standards Source:

Lecture 1-25 The Secret of the World Wide Web: the HTTP Standard HTTP: hypertext transfer protocol WWW’s application layer protocol client/server model –client: browser that requests, receives, and “displays” WWW objects –server: WWW server stores the website, and sends objects in response to requests http1.0: RFC 1945 http1.1: RFC 2068 –Leverages same connection to download images, scripts, etc. PC running Explorer Server Running Apache Web server Mac running Safari http request http response

Lecture 1-26 The HTTP Protocol: More http: TCP transport service: client initiates a TCP connection (creates socket) to server, port 80 server accepts the TCP connection from client http messages (application- layer protocol messages) exchanged between browser (http client) and WWW server (http server) TCP connection closed http is “stateless” server maintains no information about past client requests Protocols that maintain session “state” are complex! past history (state) must be maintained and updated. if server/client crashes, their views of “state” may be inconsistent, and hence must be reconciled. RESTful protocols are stateless. aside

Lecture 1-27 HTTP Example Suppose user enters URL 1a. http client initiates a TCP connection to http server (process) at Port 80 is default for http server. 2. http client sends a http request message (containing URL) into TCP connection socket 1b. http server at host waiting for a TCP connection at port 80. “accepts” connection, notifying client 3. http server receives request messages, forms a response message containing requested object (index.html), sends message into socket time (contains text, references to 10 jpeg images)

Lecture 1-28 HTTP Example (cont.) For fetching referenced objects, have 2 options: non-persistent connection: only one object fetched per TCP connection –some browsers create multiple TCP connections simultaneously - one per object persistent connection: multiple objects transferred within one TCP connection 5. http client receives a response message containing html file, displays html, Parses html file, finds 10 referenced jpeg objects 6. Steps 1-5 are then repeated for each of 10 jpeg objects 4. http server closes the TCP connection (if necessary). time

Lecture 1-29 A human as a browser (Client Side) 1. Telnet to your favorite WWW server: Opens TCP connection to port 80 (default http server port) at Anything typed in sent to port 80 at telnet Type in a GET http request: GET /index.html HTTP/1.0 By typing this in (hit carriage return twice), you send this minimal (but complete) GET request to http server 3. Look at response message sent by http server!

Lecture 1-30 Does our Working Definition work for the http Web? A distributed system is a collection of entities, each of which is autonomous, programmable, asynchronous and failure-prone, and that communicate through an unreliable communication medium. Entity=a process on a device (PC, PDA) Communication Medium=Wired or wireless network Our interest in distributed systems involves –design and implementation, maintenance, study, algorithmics

Lecture 1-31 “Important” Distributed Systems Issues No global clock; no single global notion of the correct time (asynchrony) Unpredictable failures of components: lack of response may be due to either failure of a network component, network path being down, or a computer crash (failure-prone, unreliable) Highly variable bandwidth: from 16Kbps to Tbps Possibly large and variable latency: few ms to several seconds Large numbers of hosts: 2 to several million

Lecture 1-32 There are a range of interesting problems for Distributed System designers Real distributed systems –Cloud Computing, Peer to peer systems, key-value stores/NoSQL, distributed file systems, sensor networks, measurements Classical Problems –Failure detection, Asynchrony, Snapshots, Multicast, Consensus, Mutual Exclusion, Election Concurrency –RPCs, Concurrency Control, Replication Control Security –Byzantine Faults Others…

Lecture 1-33 Typical Distributed Systems Design Goals Common Goals: –Heterogeneity – can the system handle a large variety of types of PCs and devices? –Robustness – is the system resilient to host crashes and failures, and to the network dropping messages? –Availability – are data, services always there for clients? –Transparency – can the system hide its internal workings from the users? –Concurrency – can the server handle multiple clients simultaneously? –Efficiency – is it fast enough? –Scalability – can it handle 100 million nodes? (nodes=clients and/or servers) –Security – can the system withstand hacker attacks? –Openness – is the system extensible?

Lecture 1-34 “Important” Issues If you’re already complaining that the list of topics we’ve discussed so far has been perplexing… –You’re right! –It was meant to be (perplexing) The Goal for the Rest of the Course: see enough examples and learn enough concepts so these topics and issues will make sense –We will revisit many of these slides in the very last lecture of the course!

Lecture 1-35 “Concepts”? Which of the following inventions do you think is the most important? 1.Car 2.Wheel 3.Bicycle “What lies beneath?” Concepts!

Lecture 1-36 How will you Learn? Take a look at handout “Course Information and Schedule” Text: Colouris, Dollimore, Kindberg and Blair (5 th edition) Lectures Homeworks –Approx. one every two-three weeks –Solutions need to be typed, figures can be hand-drawn Programming assignments –Incremental, in 4 stages –We will build a real cloud computing system! –MP groups (== 2 students) »Pair with someone taking course for same number of hours (3/4) –4 credit students have to complete “Extra Credit” portion on each MP Exams/quizzes –Midterm + Final

Lecture 1-37 On the Textbook Text: Colouris, Dollimore, Kindberg and Blair (5 th edition). We will refer to section, chapter, and problem numbers only in the 5 th edition. –Older editions may have a different numbering for some HW problems (that we give from the textbook). Make sure you solve the right problem; the responsibility is yours (no points for solving the wrong problem!)

Lecture 1-38 What assistance is available to you? Lectures –lecture slides will be placed online at course website »“Tentative” version before lecture »“Final” version after lecture Homeworks – office hours and discussion forum to help you (without giving you the solution). Programming Assignments (MPs) – You can use any language, but we recommend C/C++ and Java (“best projects” code will be released in these) – office hours and discussion forum to help you (without giving you the solution). Course Prerequisite: CS 241 or ECE 391 or equivalent OS/networking course (latter need instructor permission) Source:

Lecture 1-39 You can meet us anytime In person (Office Hours): Myself (Indy): 3112 Siebel Center –Every Tuesday and Thursday from 3.30 PM to 4.30 PM TA, Imranul Hoque: –Every Monday and Wednesday from 1 PM to 2.30 PM, in 0207 SC TA, Abhishek Verma: (out first week) –Every Wednesday 2.30 pm – 4 pm and Friday 1 pm to 2.30 pm, in 0207 SC (Check course website) Virtually: Discussion Forum: Piazza (most preferable, monitored daily) – 24 hour turnaround time for questions! (turnaround time may be longer than Piazza)

Lecture 1-40 Readings For today’s lecture: Relevant parts of Chapter 1 Typically, before a lecture you will be expected to read the relevant chapter For next lecture –No readings! Topic: “Introduction to Cloud Computing” –Fill out and return Student InfoSheet