Steen Tanebaum Distributed Systems 3E Chapter 1
Sensor networks
-Pervasive -Generally consists of tens to hundreds or thousands of relatively small nodes each equipped with one or more sensing devices
Mobile computing systems
-Pervasive -Widely varying devices -Wireless -Location changes over time
Middleware Services
-Resource Management -Facilities for interapplication communication -Security Services -Accounting services -Masking of and recovery from failures
Scaling techniques
-Scaling up -Scaling out
Nested Transactions
-The top-level transaction may fork off children that run in parallel with one another, on different machines, to gain performance or simplify programming. -Provide a natural way of distributing a transaction across multiple machines.
Pervasive systems
-intended to naturally blend into our environment -often equipped with sensors that pick up various aspects of user's behavior
Multiprocessor Machines
-multiple CPUs are organized in such a way that they all have access to the same physical memory (shared-memory multiprocessors) -highly convenient for improving the performance of programs -easy to program -not easily scalable
Multicomputer system
-several computers are connected through a network and there is no sharing of main memory -pass messages instead of modifying shared memory -more difficult to program -error prone
Benefits of Distributed Systems
1) Computation speed-up 2) Increased data availability 3) Enhanced reliability
Size scalability
A system in which one can easily add more users and resources to the system without any noticeable loss of performance.
Access Transparency
Hide differences in data representation and how an object is accessed
Unstructured Overlay
Type of Overlay Network where each node has a number of references to randomly selected other nodes.
Types of Distribution Transparency
-Access -Location -Relocation -Migration -Replication -Concurrency -Failure
Publish/subscribe system
-Applications send messages to logical contact points, often described by means of a subject. -Applications indicate their interest for a specific type of message, after which the communication middleware will take care that those messages are delivered to those applications. -AKA Message oriented middleware (MOM)
Message oriented middleware (MOM)
-Applications send messages to logical contact points, often described by means of a subject. -Applications indicate their interest for a specific type of message, after which the communication middleware will take care that those messages are delivered to those applications. -AKA publish/subscribe system
Parallel vs Concurrent processing
-Parallel - more than one processing entity working towards one goal -Concurrent - not necessarily toward a single goal
Ubiquitous computing systems
-Pervasive -Continuously present (eg, user is continuously interacting with the system, often not being aware that interaction is taking place
Scalability dimensions
-Size scalability -Geographical scalability -Administrative scalability
Disadvantages of Distributed Systems
-Software - little software exists compared to PCs -Networking - still slow and can cause other problems (eg when disconnected) -Security - data may be accessed by unauthorized users
Types of pervasive systems
-Ubiquitous computing systems -Mobile computing systems -Sensor networks
Shared memory types
-Uniform memory access - good for small size since network could become a bottleneck -Non-uniform memory access - local memory for each processor. May or may not have unaffiliated memory modules. Can access other processor's memory
High performance distributed computing systems
-cluster computing -grid computing -cloud computing
Types of distributed systems
-high performance distributed computing -distributed information systems
Types of overlay networks
1) Structured overlay 2) Unstructured overlay
Distributed system design goals
1) Support resource sharing 2) Making distribution transparent 3) Being open 4) Being scalable
Core requirements for a ubiquitous computing system
1. (Distribution) Devices are networked, distributed, and accessible in a transparent manner 2. (Interaction) Interaction between users and devices is highly unobtrusive 3. (Context awareness) The system is aware of a user's context in order to optimize interaction 4. (Autonomy) Devices operate autonomously without human intervention and are thus highly self-managed 5. (Intelligence) The system as a whole can handle a wide range of dynamic actions and interactions
Properties Transactions adhere to
A - Atomic C - Consistent I - Isolated D - Durable
Distributed System (Book Definition)
A collection of autonomous computing elements that work together and appears to its users as a single coherent system.
Distributed System (Slide Definition)
A collection of processors that do not share memory or a clock. Each processor has its own local memory and is connected through a communication network.
Parallel Computer
A computer designed for parallel processing
Middleware
A separate layer of software that is logically placed on top of the respective operating systems of the computers that are part of a distributed system.
Geographical scalability
A system in which the users and resources may lie far apart, but the fact that communication delays may be significant is hardly noticed.
Administrative scalabilty
A system that can still be easily managed even if it spans many independent administrative organizations.
Open Distributed System
A system that offers components that can easily be used by, or integrated into other systems.
Remote procedure calls (RPC)
A type of communication middleware where an application component can effectively send a request to another component by doing a local procedure call, which results in the request being packaged as a message and sent to the callee.
Isolated Transaction
Concurrent transactions do not interfere with each other
Remote method invocation (RMI)
Essentially the same as an RPC, except that it operates on objects instead of functions
Scaling out
Expanding a distributed system by deplying more machines -Hiding communication latencies -distribution of work -replication
Replication Transparency
Hide that an object is replicated
Relocation Transparency
Hide that an object may be moved to another location while in use
Concurrency Transparency
Hide that an object may be shared by several independent users
Migration Transparency
Hide that an object may move to another location
Failure Transparency
Hide the failure and recovery of an object
Location Transparency
Hide where an object is located
Distribution Transparency
Hiding the fact that processes and resources are physically distributed across multiple computers possibly separated by large distances.
Scaling up
Improving a distributed system's capacity (eg by increasing memory, upgrading CPUs, or replacing network modules)
Durable Transaction
Once a transaction commits, the changes are permanent
Parallel processing
Several working entities work together toward a common goal. Emphasizes concurrent manipulation of data elements belonging to one or more processes solving a single problem.
Consistent Transaction
The transaction does not violate system invatiants
Atomic Transaction
To the outside world, the transaction happens indivisibly
Structured Overlay
Type of Overlay Network where each node has a well-defined set of neighbors with whom it can communicate. (eg nodes in a tree or ring)
Cloud computing
an easily accessible pool of virtualized resources -Infrastructure as a service -platform as a service -software as a service
Cluster computing
distributed system where the underlying hardware consists of a collection of similar workstations closely connected by means of a high-speed local-area network
Grid computing
distributed systems that are often constructed as a federation of computer systems, where each system may fall under a different administrative domain and may be very different when it comes to hardware, software, and deployed network technology