Distributed Systems Fall 2010 Course introduction.

Slides:



Advertisements
Similar presentations
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
Jaringan Informasi Pengantar Sistem Terdistribusi oleh Ir. Risanuri Hidayat, M.Sc.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Distributed Object & Remote Invocation Vidya Satyanarayanan.
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Distributed components
Distributed Systems Fall 2010 Time and synchronization.
Distributed Systems Fall 2009 The assignment Fall 20095DV0203 Introduction GCom – group communication middleware Apply concepts from theory –Group handling.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Review For Midterm.
CS 582 / CMPE 481 Distributed Systems Communications (cont.)
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Computer Science Lecture 2, page 1 CS677: Distributed OS Last Class: Introduction Distributed Systems – A collection of independent computers that appears.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Distributed Systems Fall 2009 Course introduction.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
.NET Mobile Application Development Remote Procedure Call.
Lecture 8 Epidemic communication, Server implementation.
Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.
1 System Models. 2 Outline Introduction Architectural models Fundamental models Guideline.
Exercises for Chapter 2: System models
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Distributed Systems: Concepts and Design Chapter 1 Pages
Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts & Design (5 th Ed.). Essex: Addison-Wesley.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Architectures of distributed systems Fundamental Models
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Distributed Systems Fall 2011 Introduction. 2 Distributed Systems?
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Shuman Guo CSc 8320 Advanced Operating Systems
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Distributed Objects & Remote Invocation
Remote Procedure Call RPC
Today: Distributed Objects and Components 1. Me Greg Paperin MSci Computer Science href= 2.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Exercises for Chapter 2: System models From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Pearson Education 2005.
Distributed objects and remote invocation Pages
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Last Class: Introduction
03 – Remote invoaction Request-reply RPC RMI Coulouris 5
Programming Models for Distributed Application
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
DISTRIBUTED COMPUTING
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Architectures of distributed systems
Architectures of distributed systems Fundamental Models
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Distributed Systems (15-440)
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Distributed Systems Fall 2010 Course introduction

Fall 20105DV0203 Defining distributed systems “A distributed system is one in which components located at networked computers communicate and coordinate their actions by passing messages.” (Coulouris, Dollimore, Kindberg, 2005) ”A distributed system is one in which the failure of computer you didn't even know existed can render your own computer unusable.” (Leslie Lamport, 1987)

Fall 20105DV0204 Outline Staff presentation Course presentation Lessons from last year This year's course Basics and challenges of distributed systems The big assignment

Fall 20105DV0205 Staff presentation Daniel Henriksson Lars Larsson Questions about the assignments? –Send to Questions about lectures? –Send to the appropriate teacher!

Fall 20105DV0206 Course presentation Students should obtain: –Knowledge of theoretical models for distributed systems –Knowledge of problems and solutions in designing and in the implementation of distributed systems

Course presentation The course covers: –Architectural models of distributed systems –Client-Server, peer-to-peer, transactions, transparency, naming, error handling, resource management, and synchronization … and much more! –Computer security in a broad perspective –Distributed programming and middlewares Fall DV020

Fall 20105DV0208 Course presentation Theoretical part (4.5 ECTS) –Theory, methods, algorithms, and principles Practical part (3 ECTS) –Practical obligatory assignments

Fall 20105DV0209 Lessons from last year (positive) Students were very happy with the level of assistance on the assignment Students acquired a lot of new knowledge The average grade given to the course was “very good” Students were very happy with the practical assignment – hard and rewarding

Fall 20105DV02010 Lessons from last year (negative) Common pitfall: students start with the assignment too late Split opinions regarding what to do with extra time during lectures Very limited computer access due to other course Unclear how level 1 was easier than level 2 on the assignment Too large/annoying post-course evaluation!

Fall 20105DV02011 This year's course Added an assignment on Java RMI Note that any programming language may be used for the second, big assignment Let’s vote regarding our policy on what to do about extra time during lectures! Department hopes that computer access will be better this year (but don’t count on it) Clearer info about the big assignment New evaluation form/procedure Keep up good work

5DV02012 Extra time during lectures We want to be able to adopt the schedule to fit your needs Some lectures are somewhat “sparse” If our in-class discussion of topics take longer time, that’s fine (within reason) If not, we can start covering upcoming topics to have more time during denser lectures Consider topics a reading guide, not a guarantee If this poses a problem, please give us feedback, and we will try to remedy the situation 125DV020Fall 2010

5DV02013 What to learn? Book is dense with information –See reading guide on web page – it is actually accurate –Extremely good, but no easy read Start now! You will be busy later... Understand the problems and solutions –Learn the general ideas of algorithms and how/why they work, not every minute step Definitions are very important!

Fall 20105DV02014 Basics of distributed systems Architectural model –Placement of components across the network and their relationships, and the network itself System model –Client/Server HTTP, FTP, … countless others! –Peer-to-Peer (P2P) BitTorrent, Freenet, Direct Connect, … –Combinations: multiple servers, mobile code, mobile agents, thin clients

Fall 20105DV02015 Design of distributed systems Performance issues –Responsiveness –Throughput –Load balancing Quality of Service (QoS) –Reliability, security, performance (time-critical) –Adaptability

Design of distributed systems Caching and replication –Web caching and Content Distribution Networks Dependability –Correctness, security, and fault tolerance Fall DV020

Fall 20105DV02017 Distributed systems challenges Heterogeneous systems –Networks, hardware, OS, languages, protocols Openness Security Scalability –Control physical resource costs and performance loss, resource conservation, bottleneck avoidance

Distributed systems challenges Failure handling –Detection, masking, tolerance, recovery, redundancy Concurrency –No global time, simultaneously running processes Transparency –Access, location, concurrency, replication, failure, mobility, performance, scaling Fall DV020

Fall 20105DV02019 Distributed systems challenges How are parameters passed and how is data converted? –Marshalling, unmarshalling How are distributed resources (functions, methods, objects) published and discovered? How are errors handled? Security! Memory handling – distributed garbage collection?

Fall 20105DV02020 Middleware Distributed systems often utilize middleware to aid development Offers layer of abstraction Extends upon traditional programming models: –Local procedure call → Remote procedure call –OOP → Remote Method Invocation –Event-based programming model

Fall 20105DV02021 Middleware Applications, Services RMI, RPC Request/Reply protocol Marshalling, Unmarshalling UDP, TCP Middleware

Fall 20105DV02022 Operation invocation Data structures must be “flattened” and serialized for transport –External formats, e.g. XML, JSON, Java Object Serialization,... Use interface –Procedures having either input, output, or both –No pointers –Service interface: provided services –Remote interface: operations accessible from other processes –Cross-language/platform interfaces: IDL, WSDL

Fall 20105DV02023 Semantics (Local call = exactly once) Maybe once –Omission failures (lost packets, crashes) At-least-once –Crash failures, arbitrary failures (multiple executions) –Used by Sun RPC At-most-once –Executed exactly once or not at all –Used by Java RMI, Corba

Fall 20105DV02024 Security Distributed system = increased exposure Client- and Server-authentication Client authorization –Is the client allowed to perform X? Proof of execution –Server must be able to prove that something has been executed –Also, non-repudiation: it should not be possible to claim that something did not happen if it did

Fall 20105DV02025 Distributed systems: a mess! Communication performance variations –Latency (delay), bandwidth (throughput), jitter (variation in time) Clocks and timing –Clock drift Interaction models –Asynchronous, synchronous Event ordering –Delays cause replies to arrive to some process before the request

Distributed systems: a mess! Failures –Distributed systems are much more likely to fail unexpectedly –Lost packets, bit errors, local failures, no response, method does not exist, etc … If you can write stable programs in spite of these difficulties, you are a great programmer! Fall DV020

Fall 20105DV02027 The small assignment Previously a group exercise Solved individually You teach yourself Java RMI Deadline next Friday (Sept 10) 13:15 Session for (final) questions that very same day

Fall 20105DV02028 The big assignment Group communication middleware Presentation of working implementation at the end of the course Solved in pairs (2 students per team) Pair up among yourselves before Friday! Deadlines: Design report: September 17 13:15 Whole system: October 26 13:15 Presentations: October 27 – 29

Fall 20105DV02029 The big assignment Apply concepts from theory –Group handling –Message ordering –(Reliable) Multicast of messages –Not security, however

Fall 20105DV02030 Rules and grading Done in pairs 3 levels –Bonus points for the exam (if non- bonus points give you ≥ 30p of 60p total)! Valid for this year's exams only –Level 1: basic system (no bonus) –Level 2: + dynamic groups (3p bonus) –Level 3: + tree-based reliable multicast (6p bonus)

Levels You may change level at any time Level 1 is easiest, but in practice only if you aim for it from the beginning Many problems can be avoided due to greatly lowered fault-tolerance of the system Fall DV020

Fall 20105DV02032 Constraints May use any programming language and any tools you like –...as long as they do not provide a too big advantage (check with us!) –Currently, we can only help with Java RMI –Do not use plain sockets All normal rules apply –Thou shall not cheat, etc.

Fall 20105DV02033 Test and debug application(s) Test application –A user-level application that shows the functionality of the system Debug application –Used to demonstrate the correctness of your implementation These programs can, and likely will, be one and the same! –But make the debug parts non-essential to use the application –Must be GUI applications!

Fall 20105DV02034 Deliverables Deliverable 1 (project plan) –Your interpretation of the assignment –Requirement analysis –Project and time plan –Basic design of the system Yes, really Deliverable 2 (report) –Refers back to Deliverable 1 –Describe your system –...the usual –Make something to be proud of! One of your biggest projects during your time here at CS

Fall 20105DV02035 Live demonstration You will demonstrate your system to us at the end of the course –Written test protocol

Fall 20105DV02036 Good luck! Students have done this before, and succeeded –Certainly not easy –Hard work, big payoff –All students that attempted the entire assignment passed! Hints –Start on time. No really. –Read the whole specification –We know it’s long, but it helps you

Fall 20105DV02037 Next lecture Time, and the lack thereof –No global time, and its implications –Algorithms for (roughly) synchronizing processes