Chapter Three Distributed Systems Models
Chapter Three Distributed Systems Models
SYSTEM MODELS
Major concerns:
make the system reliable, manageable, adaptable and cost effective
3.2.1 Architectural elements
• What are the entities that are communicating in the distributed
system?
• How do they communicate, or, more specifically, what
communication paradigm is used?
• What (potentially changing) roles and responsibilities
– do they have in the overall architecture?
• How are they mapped on to the physical distributed infrastructure
– what is their placement?
a) Objects
computation consists of a number of interacting objects representing natural units of decomposition
for the given problem domain
Objects are accessed via interfaces,
with an associated interface definition language (IDL)
c) web services
closely related to objects and components
intrinsically integrated into the World Wide Web
using web standards to represent and discover services
i) Peer-to-peer architecture
i) Peer-to-peer architecture
17
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
caching
- A cache is a store of recently used data objects that is closer to one client or a particular set of
clients than the objects themselves
i) Peer-to-peer architecture
18
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
• mobile agents
- running program (including both code and data) that travels from one computer to another in a network carrying out a task on someone’s behalf (e.g.
collecting information), and eventually returning with the results.
- could be used for
software maintenance--- Software Updates…etc
collecting information from different vendors’ databases of prices--fishing codes in many sites
– Possible security threats with mobile code and mobile agents...
Web Applets
– yet another possibility – push model: server initiates interaction (e.g. on information updates on it)
i) Peer-to-peer architecture
19
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
mobile code Cont…
– Applets are an example of mobile code
Web Applets
– yet another possibility – push model: server initiates interaction (e.g. on information updates on it)
i) Peer-to-peer architecture
20
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
3.2.2 Architectural patterns
- Layering…..partition complex system….eg. Back-end, front end
Web Applets
– yet another possibility – push model: server initiates interaction (e.g. on information updates on it)
i) Peer-to-peer architecture
21
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Platform and Middleware
Software and hardware service layers in distributed systems
i) Peer-to-peer architecture
22
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Tiered architecture
- Tiering is a technique to organize functionality of a given layer and place this functionality into appropriate servers and, as a
secondary consideration, on to physical nodes
i) Peer-to-peer architecture
23
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Tiered architecture
Two-tier and three-tier architectures
i) Peer-to-peer architecture
24
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Tiered architecture
a) Two-tier and
three aspects partitioned into two
processes
(+) low latency
(-) splitting application logic
b) three-tier architectures
(+) one-to-one mapping from logical elements to physical servers
(-) added complexity, network traffic and latency
i) Peer-to-peer architecture
25
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
AJAX (Asynchronous Javascript And XML) – a way to create interactive, partially/selectively-updatable webpages
extension to the standard client-server style of interaction in WWW
Javascript forntend and server-based backend
i) Peer-to-peer architecture
26
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Thin clients
enabling access to sophisticated networked services (e.g. cloud services) with few assumptions to client device
software layer that supports a window-based user interface (local) for executing remote application programs or accessing
services on remote computer
i) Peer-to-peer architecture
27
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Other commonly occurring patterns
• proxy pattern
designed to support location transparency in RPC or RMI
proxy created in local address space, with same interface as the remote object
i) Peer-to-peer architecture
28
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
The web service architectural pattern
• Reflection pattern
a means of supporting both:
introspection (the dynamic discovery of properties of the system) :->dynamically discover interface offered by a given object
intercession (the ability to dynamically modify structure or behaviour):--discover and adapt the underlying architecture of the system
used e.g. in Java RMI for generic dispatching
ability to intercept incoming messages or invocations
i) Peer-to-peer architecture
29
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Categories of middleware
30
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Categories of middleware
31
Distributed systems by Patrick ndungu
3.2 Architectural Models Cont…
Limitations of middleware
- Some communication-related functions can be completely and
reliably implemented only with the knowledge and help of the application
standing at the end points of the communication system.
Example:
- e-mail transfer need another layer of fault- tolerance
that even TCP cannot offer
32
Distributed systems by Patrick ndungu
3.3 Fundamental models
3.3 Fundamental models
What is:
Interaction model?
Failure model?
Security model?
33
Distributed systems by Patrick ndungu
3.3 Fundamental models
3.3.1 Interaction model cont…
communication takes place with delays of considerable duration thus;-
accuracy with which independent processes can be coordinated is limited by these delays
and by difficulty of maintaining the same notion of time across all the computers in a
distributed system
34
Distributed systems by Patrick ndungu
3.3 Fundamental models
Performance of communication channels
latency –
how to define latency? delay between the start of message’s transmission from one process and the
beginning of receipt by another
bandwidth – how to define bandwidth? of a computer network – the total amount of information that
can be transmitted over it in a given time
Jitter -
What is jitter? – the variation in the time taken to deliver a series of messages
Computer clocks and timing events
clock drift rate
what is clock drift rate?
rate at which a computer clock deviates from a perfect reference clock
35
Distributed systems by Patrick ndungu
3.3 Fundamental models
Two variants of the interaction model
a) Synchronous distributed systems:
The time to execute each step of a process has known lower and upper bounds
Each message transmitted over a channel is received within a known bounded time
Each process has a local clock whose drift rate from real time has
a known bound
36
Distributed systems by Patrick ndungu
3.3 Fundamental models
Event ordering
Figure : Real-time ordering of events
37
Distributed systems by Patrick ndungu
3.3 Fundamental models
3.3.2 Failure model
faults occur in:
any of the computers (including software faults)
or in the network
Failure model defines and classifies the faults
Omission failures
process or communication channel fails to perform actions it is supposed to do
Process omission failures
chief omission failure of a process is to crash
crash is called fail-stop if other processes can detect certainly that the process has crashed
38
Distributed systems by Patrick ndungu
3.3 Fundamental models
3.3.2 Failure model cont…
Communication omission failures
communication channel does not transport a message from p’ss outgoing message buffer to q’s incoming message buffer
– known as dropping messages
i. send-omission failures
ii. receive-omission failures
iii. channel-omission failures
39
Distributed systems by Patrick ndungu
3.3 Fundamental models
3.3.2 Failure model cont…
Arbitrary failures
- arbitrary or Byzantine failure is used to describe the worst possible failure semantics, in which any type of error
may occur
40
Distributed systems by Patrick ndungu
3.3 Fundamental models
3.3.2 Failure model cont…
Timing failures
• applicable in synchronous distributed systems
Masking failures
knowledge of the failure can enable a new service to be designed to mask the failure of the components on which it depends
41
Distributed systems by Patrick ndungu
3.3 Fundamental models
Reliability of one-to-one communication
reliable communication:
i) Validity:
What is validity?
Any message in the outgoing message buffer is eventually delivered to the incoming message buffer
ii) Integrity:
What is integrity?
The message received is identical to one sent, and no messages are delivered twice
42
Distributed systems by Patrick ndungu
3.3 Fundamental models
3.3.3 Security model
modular nature of distributed systems and their openness exposes them to attack by
both external and internal agents
Security model defines and classifies attack forms,
providing a basis for the analysis of threats
basis for design of systems that are able to resist them
43
Distributed systems by Patrick ndungu
3.3 Fundamental models
Protecting objects
Users with access rights
association of each invocation and each result with the authority on which it is issued
such an authority is called a principal
principal may be a user or a process
44
Distributed systems by Patrick ndungu
3.3 Fundamental models
Securing processes and their interactions
securing communications over open channels
open service interfaces
45
Distributed systems by Patrick ndungu
3.3 Fundamental models
a)Threats to processes
lack of knowledge of true source of a message
problem both to server and client side
example: spoofing a mail server
b)Threats to communication channels
threat to the privacy and integrity of messages
can be defeated using
Defeating security threats
a) Cryptography and shared secrets
Cryptography is the science of keeping messages secure
Encryption is the process of scrambling a message in such a way as to hide its contents
b) Authentication
based on shared secrets authentication of messages – proving the identities supplied by their senders
46
Distributed systems by Patrick ndungu
3.3 Fundamental models
Secure channels
47
Distributed systems by Patrick ndungu
3.3 Fundamental models
Other possible threats from an enemy
c) Denial of service:
the enemy interferes with the activities of authorized users by making excessive and pointless invocations on services or message
transmissions in a network, resulting in overloading of physical resources (network bandwidth, server processing capacity)
d) Mobile code:
execution of program code from elsewhere, such as the email attachment etc
48
Distributed systems by Patrick ndungu
3.3 Fundamental models
The uses of security models
-> security analysis involves :-> the construction of a threat model:
listing all the forms of attack to which the system is exposed
an evaluation of the risks and consequences of each
49
Distributed systems by Patrick ndungu
The END
Q&A
THANKS