Fundamentals for Distributed Computing
5 January 2020
Obed N Munoz
Cloud Software Engineer
- What's a Distributed System?
- Autonomous computing elements and Single Coherent System
- Middleware and Distributed Systems
- Considerations for design
- Types: High Performance Distributed Computing
- Types: Distributed Information Systems
- Types: Pervasive systems
- Advantages of Distributed Systems
What's a Distributed System?
- A Distributed System is a collection of autonomous computing elements that appears to its users as a single coherent system - from Steen and Tanenbaum's book
- Key components in a Distributed Systems
- Compute (nodes)
- A Distributed System should be able to manage its internal and external:
Autonomous computing elements and Single Coherent System (1/2)
- Example: High Level of OpenStack Services and their relationship
Autonomous computing elements and Single Coherent System (2/2)
- Example: High Level of Kubernetes architecture
Middleware and Distributed Systems (1/2)
Middleware and Distributed Systems (2/2)
Middleware can be viewed as a container of commonly used components and functions that now no longer have to be implemented by applications separately.
Below some of the typical middleware services:
- Communication - Remote Procedure Call (RPC)
- Transactions - Databases
- Service Composition - Web Services
- Reliability - TCP Reliable Delivery
Considerations for design (1/2)
- Just because it is possible to build distributed systems does not necessarily mean that it is a good idea from Steen and Tanenbaum's book
A well designed distrubuted systems should consider the following characteristics:
- Supporting resource sharing
- Make distribution transparent
- Being open for other components or systems
- Being scalable
- Cannot avoid pitfalls
Considerations for design (2/2)
Common false assumptions that everyone makes when developing a distributed application for the first time - Peter Deutsch (Sun Microsystems)
- The network is reliable
- The network is secure
- The network is homogeneous
- The topology does not change
- Latency is zero
- Bandwidth is infinite
- Transport cost is zero
- There is one administrator
Types: High Performance Distributed Computing (1/3)
- Cluster Computing systems became popular when the price/performance ratio of personal computers and workstations improved.
- In cluster computing the underlying hardware consists of a collection of similar workstations or PCs, closely connected by means of a high-speed local-area network.
Types: High Performance Distributed Computing (2/3)
- In Grid Computing, grids 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.
Types: High Performance Distributed Computing (3/3)
- Cloud computing is all about providing the facilities to dynamically construct an infrastructure and compose what is needed from available services.
- Cloud Computing is more about providing lots of resources as a service (i.e. IaaS, SaaS, PaaS, XaaS).
- It comes from the idea of having an optimal and managable usage of the infrastructure.
Types: Distributed Information Systems (1/2)
- Distributed transaction processing systems are basically database-based systems. Operations on a database are carried out in the form of transactions.
Types: Distributed Information Systems (2/2)
- Enterprise Application Integration is required in order to provide a better interapplication communication and achieve a more integral and complete corporate system.
There are 4 main ways to achieve integration between common enterprise applications [Hohpe and Woolf, 2004] :
- File transfer
- Shared database
- Remote procedure calls
Types: Pervasive systems (1/4)
- With the rise of mobile and embedded computing systems, we're leaded more and more to pervasive systems which are intented to naturally blend into our environment.
- Ubiquitous computing systems are examples of pervasive and continuously present systems. It means that the interaction with the system is not providing total awareness of its presence.
- Below the core requirements for ubuquitous computing systems:
- Context awareness
Types: Pervasive systems (2/4)
Types: Pervasive systems (3/4)
- Mobile computing systems are a common case for pervasive systems.
- First, the devices that form part of a (distributed) mobile system may vary widely.
- Second, in mobile computing the location of a device is assumed to change over time.
- Sensor networks - they are more than just a collection of input devices. Instead, as we shall see, sensor nodes often collaborate to efficiently process the sensed data in an application-specific manner.
- A sensor network generally consists of tens to hundreds or thousands of relatively small nodes, each equipped with one or more sensing devices.
Types: Pervasive systems (4/4)
Reading: Advantages of Distributed Systems
From the textbook (Distributed Systems - M. van Steen and A.S. Tanenbaum, Distributed Systems) and other resources you may find.
Gnerate an essay that explain the main advantages of the distributed systems that are based on the following points:
- Concistency and Replication
- Fault Tolerance
- Development, Test and Release of Distributed Systems
This material is genereated thanks to some extracts from the following resources:
Use the left and right arrow keys or click the left and right
edges of the page to navigate between slides.
(Press 'H' or navigate to hide this message.)