Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Understanding the Pros and Cons of Distributed Systems: Fundamentals and Design Issues, Study notes of Software Engineering

This document, from the university of san francisco's department of computer science, provides an in-depth exploration of distributed systems. It covers definitions, advantages, disadvantages, design issues, transparency, flexibility, reliability, performance, and distributed programming paradigms. The text also discusses various types of process and communication failures. This resource is valuable for students and professionals seeking a comprehensive understanding of distributed systems.

Typology: Study notes

Pre 2010

Uploaded on 07/30/2009

koofers-user-tdp
koofers-user-tdp 🇺🇸

10 documents

1 / 16

Toggle sidebar

Related documents


Partial preview of the text

Download Understanding the Pros and Cons of Distributed Systems: Fundamentals and Design Issues and more Study notes Software Engineering in PDF only on Docsity! Distributed Software Development Fundamentals of Distributed Computing Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science — University of San Francisco – p.1/?? 2a-0: Definitions What is a distributed system? (Couloris) “A distributed system is one in which hardware or software components communicate or coordinate their actions only by passing messages.” (Tanenbaum) “A distributed system is a collection of independent computers that appear to the users of the system as a single computer.” (Lamport) “You know you have one when the crash of a computer you’ve never heard of stops you from getting any work done.” All of these get at different aspects of the issue ... Department of Computer Science — University of San Francisco – p.2/?? 2a-3: Disadvantages of distributed systems Software design is much more complicated. Lack of appropriate tools/languages Disagreement on principles: how much should users know about the system? How much the system handle on a user’s behalf? Potential network saturation Privacy and security issues Allowing resources to be shared can lead to data leakage Extra sysadmin work Department of Computer Science — University of San Francisco – p.5/?? 2a-4: Design Issues Transparency Flexibility Dependability Performance Scalability Department of Computer Science — University of San Francisco – p.6/?? 2a-5: Transparency The goal of transparency is a single-system image From the user’s POV, it looks like a single machine. Types of transparency: Location transparency - Users cannot tell where their resources are actually located. Migration transparency - Resources can move without changing their names. Replication transparency - the number of copies of a resource is hidden from users. Concurrency transparency - Users can share resources without being aware of the presence of other users. Parallelism transparency - A task can be run on multiple machines without the user being aware of it. Department of Computer Science — University of San Francisco – p.7/?? 2a-8: Reliability There are several different aspects of reliability: Availability: what fraction of the time is the system usable? Integrity: Data must be kept consistent. (this sometimes clashes with availability) Security: Unauthorized usage must be prevented. Fault tolerance: How unpleasantly does the system fail? Is data lost? Can recovery happen? Department of Computer Science — University of San Francisco – p.10/?? 2a-9: Performance Performance is trickier than it appears. lots of possible metrics Response time Throughput System utilization Network capacity Typically, communication costs dominate This leads to a coarser-grained parallelism that we would see in a parallel computer. Department of Computer Science — University of San Francisco – p.11/?? 2a-10: Distributed Programming Paradigms Client/server model Remote Procedure Call Distributed Shared Memory Group Communication/multicast/Peer-to-peer Distributed objects Web services Department of Computer Science — University of San Francisco – p.12/?? 2a-13: Types of Communication Failure We also must consider failures that happen in the network: Crash: a link stops completely. Omission: A link fails to transmit some of its messages. Byzantine: A link can exhibit any possible behavior, including generating spurious messages. Note: A Byzantine failure can be treated the same as an attacker/intruder. Department of Computer Science — University of San Francisco – p.15/?? 2a-14: Summary There are lots of desirable properties and design issues for distributed systems. Performance, scalability, reliability, flexibility, transparency Often, we must sacrifice one for another Some (e.g. Parallel transparency) are not possible with today’s technology. Communication can be either synchronous or asynchronous Characterizing types of failure will help us identify what our algorithms and systems can and cannot stand up to. Department of Computer Science — University of San Francisco – p.16/??
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved