CSC 724 Advanced Distributed Systems Introduction

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

Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
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.
Introduction1-1 Introduction to Computer Networks Our goal:  get “feel” and terminology  more depth, detail later in course  approach:  use Internet.
1 Application Layer. 2 Writing Networked Applications TCP UDP IP LL PL TCP UDP IP LL PL TCP UDP IP LL PL Web Browser Web Server Ftp Server Ftp Client.
Distributed Information Systems - The Client server model
Introduction to the Application Layer Computer Networks Computer Networks Spring 2012 Spring 2012.
Lecture 1-1 CS542: Topics in Distributed Systems Diganta Goswami.
1 Computer Networks Transport Layer Protocols. 2 Application-layer Protocols Application-layer protocols –one “piece” of an app –define messages exchanged.
Client/Server Architecture
Introduction 1 Lecture 5 Application Layer slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering Department.
1: Introduction1 Part I: Introduction Goal: r get context, overview, “feel” of networking r more depth, detail later in course r approach: m descriptive.
Introduction. Readings r Van Steen and Tanenbaum: 5.1 r Coulouris: 10.3.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
2: Application Layer1 Internet apps: their protocols and transport protocols Application remote terminal access Web file transfer streaming multimedia.
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
Application Layer CHAPTER 2. Announcements and Outline  Administrative Items  Questions? Recap 1.Introduction to Networks 1.Network Type 2.N etwork.
What makes a network good? Ch 2.1: Principles of Network Apps 2: Application Layer1.
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
Copyright © Curt Hill, Client – Server Computing An important paradigm.
Introduction. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
1 End-user Protocols, Services and QoS. 2 Layering: logical communication application transport network link physical application transport network link.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
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,
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross.
Unit 9: Distributing Computing & Networking Kaplan University 1.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
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.
INTERNET AND PROTOCOLS For more notes and topics visit: eITnotes.com.
Distributed Systems Lecture 1 Introduction to distributed systems 1.
Distributed Processing, Client/Server and Clusters
Chapter 1 Characterization of Distributed Systems
Introduction to Networks
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CLOUD COMPUTING
Last Class: Introduction
Graciela Perera Introduction Graciela Perera
CS 3214 Computer Systems Networking.
CS 3214 Computer Systems Lecture 21 Godmar Back.
Lecture 2 Dr. Richard Spillman Fall 2009
Principles of Network Applications
Internet transport protocols services
CS 3214 Computer Systems Networking.
Grid Computing.
CSC 480 Software Engineering
Lecture 6: TCP/IP Networking By: Adal Alashban
CHAPTER 2 Application Layer.
Introduction to client/server architecture
#01 Client/Server Computing
Cloud Computing.
Introduction to Networks
Client-Server Interaction
Chapter 2 Introduction Application Requirements VS. Transport Services
Distributed Systems Bina Ramamurthy 11/12/2018 From the CDK text.
Lecture 1 Introduction to distributed systems
Computer Communication & Networks
Introduction to Databases Transparencies
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
لایه ی کاربرد مظفر بگ محمدی 2: Application Layer.
Unit# 5: Internet and Worldwide Web
Enactment of segmentation
Distributed Systems Bina Ramamurthy 4/7/2019 B.Ramamurthy.
Applications Layer Functionality & Protocols
Distributed Systems Bina Ramamurthy 4/22/2019 B.Ramamurthy.
Introduction To Distributed Systems
Computer Networks Protocols
#01 Client/Server Computing
Presentation transcript:

CSC 724 Advanced Distributed Systems Introduction Instructor: Xiaohui (Helen) Gu Spring, 2018

Logistics Instructor: Helen Gu (gu@csc.ncsu.edu) Office: 3274 EB II Office Hours: 2-3pm Tu/Th TA: Onkar Patil (opatil@ncsu.edu) Office: TBD Office hours: by appointment More information http://courses.ncsu.edu/csc724/lec/001/

Course Goal This class is about learning fundamental concepts and the state of the art research results in distributed systems Target audience: PhD students and MS thesis students!

Course Requirements Prerequisites What to expect CSC 501 (operating systems) Programming skills in C++/Java and Linux What to expect Programming-intensive projects (a real distributed system that you can be proud of) Research paper reviews for the first half semester

How will you Learn? Lectures Read papers Projects Discussion Canonical distributed system problems Recent advances in distributed system research Read papers Learn how to read and write by reading the state-of-the-art papers Projects The best way to learn distributed systems to design and implement a cool distributed system by yourself Discussion Ask questions (important) Give feedback to your peers on their projects

How will you get an A? Write good paper reviews Class participation Two papers each week for the first half semester 20% Class participation Make one paper presentation (10%) Attend the class and participate discussions (10%) Projects Project Proposal (5%) Proposal Presentation (5%) Project MidReview (5%) Project Demo (15%) Final Presentation (10%) Final Writeup (20%) – a research paper!

Get Project Started NOW Form your team two or three members per group Learn to conduct team work! Choose project ideas See course homepage Recent conference papers: SOSP/OSDI, NSDI, ICDCS, Middleware, DSN Talk to the instructor Make appointments by email, Demo environments Amazon AWS, Google Cloud, VCL

What is a Distributed System?

Some Examples Client-Server The Web The Internet A sensor network DNS Kazaa (peer to peer overlays) Data Center Stock Trading System Cluster Grid

Google Technology Layers Services and Applications Web search GMail Ads system Google Maps Distributed systems infrastructure Computing platform Cheap PC Hardware Linux Physical networking 10

Google’s Map/Reduce Execution

Web Hosting Systems Application software distributed among three types of machines User machine thin client Middle-tier server Gateway Convert protocols Merge/integrate results from different data sources Backend server

Online Dictionary 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.

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]

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/Algorithms/Protocols Implementation Maintenance Management

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 host Communication Medium=Wired or wireless network

Distributed System Design Goals 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? i.e., Operating in such a way as to not be perceived by users. Heterogeneity – can the system handle different types of devices?

Distributed Systems Design Goals 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?

Distributed System Example -- the Internet intranet ISP desktop: backbone satellite link server: % network link:

The Internet A vast interconnected collection of computer networks of many types. Intranets – subnetworks operated by companies and organizations. 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.

Internet Apps: Their Protocols and Transport Protocols Application layer protocol smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietary (e.g. RealNetworks) NFS (e.g., Skype) Underlying transport protocol TCP TCP or UDP typically UDP Application e-mail remote terminal access Web file transfer streaming multimedia remote file server Internet telephony Implemented via network “sockets”. Basic primitive that allows machines to send messages to each other TCP=Transmission Control Protocol UDP=User Datagram Protocol

WWW: the HTTP Protocol 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 http request PC running Explorer http response http request Server Running cnn.com Web server http response Mac running Navigator

The HTTP Protocol: More http is “stateless” server maintains no information about past client requests 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 aside Protocols that maintain “state” are complex! past history (state) must be maintained if server/client crashes, their views of “state” may be inconsistent, and hence must be reconciled.

Distributed Software Systems Approaches: Client/server model Centralized control Decentralized control Peer-to-peer Transactions

Client/Server Computing Client machines: single-user PCs/workstations user-friendly interface Each server provides shared user services Server enables many clients to share access to same database to use high-performance computer system (manage database)

Classes of Client/Server Applications Host-based processing not true client/server computing traditional mainframe environment Server-based processing Server: all processing User: provides graphical interface Client-based processing Client: all processing data Server: validation /database logic Cooperative processing processing optimized: client/server complex to set up and maintain

Major Class Topics Basic Concepts Clock Synchronization/Consensus, Replication Large-scale decentralized systems Peer to peer, service overlay networks Big data Google MapReduce, data stream processing Autonomic system management Cloud computing Virtualization Research methodology & Presentation skills