distributed systems fall 2009 course introduction

30

Post on 21-Dec-2015

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Distributed Systems Fall 2009 Course introduction
Page 2: Distributed Systems Fall 2009 Course introduction

Distributed Systems Fall 2009

Course introduction

Page 3: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 3

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)

Page 4: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 4

Outline

• Staff presentation• Course presentation• Lessons from last year• This year's course• Basics and challenges of distributed systems

• Summary

Page 5: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 5

Staff presentation

• Daniel Henriksson (danielh@cs) • Lars Larsson (larsson@cs)

• Questions about the assignment?– Always send email to both teachers, even replies to replies!

• Questions about lectures?– Send email to the appropriate teacher!

Page 6: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 6

Course presentation

• Students should obtain:– Knowledge of theoretical models for distributed systems

– Knowledge of problems and solutions in designing and implementation of distributed systems

Page 7: Distributed Systems Fall 2009 Course introduction

Course presentation

• The course covers:– Architectural models of distributed systems

– Client-Server, peer-to-peer, transactions, transparency, naming, error handling, resource management, and synchronization

– Computer security in a broad perspective

– Distributed programming and middlewares

Page 8: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 8

Course presentation

• Theoretical part (4.5 ECTS)– Theory, methods, algorithms, and principles

• Practical part (3 ECTS)– Practical obligatory assignment

Page 9: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 9

Lessons from last year (positive)

• Students were very happy with the level of assistance with the assignment

• The anonymous feedback form was appreciated, as was the web site itself

• Students acquired a lot of new knowledge

• The average grade given to the course was “very good”

• The practical assignment was rewarding, albeit hard

Page 10: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 10

Lessons from last year (negative)• The practical assignment was hard, albeit rewarding

• The book was hard to read, and did not cover ordering algorithms sufficiently

• Java RMI was hard to use

• First set of theory lectures should be allocated more time

• Lectures should all have custom made slides

• Exam too focused on details

• Interface used for practical was confusing

Page 11: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 11

This year's course

• Same practical assignment, but:– No potentially confusing interface

– Any programming language allowed

• Added a group exercise on Java RMI

• All lectures will have custom made slides

• More time allocated to key topics

• Exam more focused on “broader” questions

• Keep up good work with assistance, listening to feedback, lecturing style, and web page

Page 12: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 12

The practical assignment

• Group communication middleware– Group membership handling

– Message ordering guarantees

– (Reliable) Multicast communication

• Presentation of working implementation at the end of the course

• Solved in pairs (2 students per team)

• Deals with theory from the first set of lectures

http://www.cs.umu.se/kurser/5DV020/HT09/assignment.html

Page 13: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 13

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!

Page 14: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 14

Schedule is subject to change

• We want to be able to adapt the schedule to fit your needs• If our in-class discussion of topics take longer time, that’s fine (within reason)

• Consider the topics for the lectures to be a reading guide, not a guarantee• If this poses a problem, please give us feedback, and we will try to remedy the situation

Page 15: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 15

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

Page 16: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 16

Design of distributed systems

• Performance issues– Responsiveness– Throughput– Load balancing

• Quality of Service (QoS)– Reliability, security, performance (time-critical)

– Adaptability

Page 17: Distributed Systems Fall 2009 Course introduction

Design of distributed systems

• Caching and replication– Web caching and Content Distribution Networks

• Dependability– Correctness, security, and fault tolerance

Page 18: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 18

Distributed systems challenges

• Heterogeneous systems– Networks, hardware, OS, languages, protocols

• Openness• Security• Scalability

– Control physical resource costs and performance loss, resource conservation, bottleneck avoidance

Page 19: Distributed Systems Fall 2009 Course introduction

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

Page 20: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 20

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?

Page 21: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 21

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

Page 22: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 22

Middleware

Applications, Services

RMI, RPC

Request/Reply protocolMarshalling, Unmarshalling

UDP, TCP

Middleware

Page 23: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 23

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

Page 24: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 24

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

Page 25: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 25

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

Page 26: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 26

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

Page 27: Distributed Systems Fall 2009 Course introduction

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!

Page 28: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 28

Summary

• Introduction to the course• What are distributed systems?• Consequences of distributed systems– Concurrency– No global time– Unrelated errors

Page 29: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 29

Summary

• Challenges– Heterogeneity– Openness– Security– Scalability– Error handling– Concurrency– Transparency

• Middlewares

Page 30: Distributed Systems Fall 2009 Course introduction

Fall 2009 5DV020 30

Next lecture

• Time, and the lack thereof– No global time, and its implications

– Algorithms for (roughly) synchronizing processes