DC Notes
DC Notes
System Model
System Models:
It describe common properties and design choice of
dispatcher for distributed system in a single descriptive
model.
Three types of models
I. Physical Models
II. Architectural Models
III. Fundamental Models
Physical models consider the types of computers and devices that
constitute a distributed system and how they are connected.
Architecture models define the main components of the system, what their
roles are and how they interact (software architecture), and how they are
deployed in an underlying network of computers (system architecture).
Architecture model is concerned with the placement of its parts, namely how
components are mapped to underlying network and the relationship between
them, that is, their functional roles and patterns of communication between
them.
i. Architectural elements
ii. System Architectures
i. Architectural elements
To understand the fundamental building blocks of a distributed
system, it is necessary to consider four key questions:
• 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)?
Communicating entities: what is communicating and how those
entities communicate together define a rich design space for the
distributed systems developer to consider.
It is helpful to address the first question from a system-oriented
and a problem-oriented perspective.
From a system perspective, the answer is normally very clear in
that the entities that communicate in a distributed system are
typically processes, leading to the prevailing view of a distributed
system as processes coupled with appropriate inter-process
communication paradigms.
From a programming perspective, however, this is not enough, and
more problem-oriented abstractions have been proposed:
Objects have been introduced to enable and encourage the use of
object oriented approaches in distributed systems (including both
object-oriented design and object-oriented programming languages).
Components: Since their introduction a number of significant
problems have been identified with distributed objects, and the use
of component technology has emerged as a direct response to such
weaknesses.
Components resemble objects in that they offer problem-oriented
abstractions for building distributed systems and are also accessed
through interfaces.
Web services represent the third important paradigm for the
development of distributed systems.
Web services are closely related to objects and components, again
taking an approach based on encapsulation of behavior and access
through interfaces.
A component is a reusable program buliding block that can be combined with same or other computers
in the network
Communication paradigms: deals with how entities communicate
in a distributed system, and consider three communication
paradigm:
● Inter-process communication
● Remote invocation
● Indirect communication.
Inter-process communication refers to the relatively low-level
support for communication between processes in distributed
systems,
Remote invocation represents the most common communication
paradigm in distributed systems, covering a range of techniques
based on a two-way exchange between communicating entities in a
distributed system and resulting in the calling of a remote operation
(Request-reply protocols)
Request-reply protocols are effectively a pattern imposed on an
underlying message-passing service to support client-server
computing
Remote procedure calls: In RPC, procedures in processes on
remote computers can be called as if they are procedures in the local
address space.
The underlying RPC system then hides important aspects of
distribution, including the encoding and decoding of parameters and
results, the passing of messages and the preserving of the required
semantics for the procedure call
Indirect communication through a third entity, allowing a strong
degree of decoupling between senders and receivers.
In particular:
● Senders do not need to know who they are sending to and vice
versa(space uncoupling).
● Senders and receivers do not need to exist at the same time (time
uncoupling).
Key techniques for indirect communication
Group communication
Publish-subscribe systems
Message queues
Tuple spaces
Distributed shared memory
Group communication:
Group communication is concerned with the delivery of messages
to a set of recipients and hence is a multiparty communication
paradigm supporting one-to-many communication.
Group communication relies on the abstraction of a group which
is represented in the system by a group identifier.
Publish-subscribe systems:
Many systems, can be classified as information-dissemination
systems wherein a large number of producers (or publishers)
distribute information items of interest (events) to a similarly large
number of consumers (or subscribers).
Publish-subscribe systems all share the crucial feature of providing
an intermediary service that efficiently ensures information
generated by producers is routed to consumers who desire this
information.
Group Communication and Publish-subscribe systems
Message queues: Whereas publish-subscribe systems offer a one-
to-many style of communication;
Uses a special HTTP request to check with the original server that
cached pages are up-to-date before displaying them.
4. Masking Failures:
A service masks a failure by hiding it or converting it into a more
acceptable type of failure.
Checksums are used to mask corrupting messages
Message omission failures can be hidden by retransmitting
messages
The term reliable communication is defined in
terms of
• Validity :The Validity of something such as a result or
a piece of information whether it can be trusted or
believed
• Integrity: The message received is identical to one
sent, and no messages are delivered twice.
3. Security Models
Security of a distributed system can be achieved by securing the
processes and the channels used for their interactions and by
protecting the objects that they encapsulate against unauthorized
access.
Security model includes,
● Protecting Objects
1.Access Rights: who is allowed to perform the operations of an
object.
2. Principal: the authority who has some rights on the object.
● Securing processes and their interactions.
1. The enemy: The threats from a potential enemy include threats
to processes and threats to communication channels
Threats to processes:
A process that is designed to handle incoming requests may
receive a message from any other process in the distributed system,
and it cannot necessarily determine the identity of the sender.
Threats to communication channels:
An enemy can copy, alter or inject messages as they travel across
the network and its intervening gateways.
Such attacks present a threat to the privacy and integrity of
information as it travels over the network and to the integrity of the
system
Other possible threats from an enemy
Two further security threats – denial of service attacks and the deployment
of mobile code.
● Denial of service:
This is a form of attack in which 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
Mobile code:
Mobile code raises new and interesting security problems for any process
that receives and executes program code from elsewhere, such as the email
attachment.
Such code may easily play a Trojan horse role, purporting to fulfil an innocent
purpose .
2. Defeating security threats
● Cryptography and shared secrets:
cryptography is the science of keeping messages secure, and
encryption is the process of scrambling a message in such a way as
to hide its contents.
● Authentication:
The use of shared secrets and encryption provides the basis for the
authentication of messages – proving the identities supplied by their
senders.
● Secure channels: Encryption and authentication are used to build
secure channels as a service layer on top of existing communication
services.
A secure channel is a communication channel connecting a pair of
processes, each of which acts on behalf of a principal.
A secure channel has the following properties:
● Each of the processes knows reliably the identity of the principal
on whose behalf the other process is executing. Therefore if a client
and server communicate via a secure channel
● A secure channel ensures the privacy and integrity (protection
against tampering) of the data transmitted across it.
● Each message includes a physical or logical timestamp to prevent
messages from being replayed or reordered
● The uses of security models
The use of security techniques such as encryption and access
control incurs substantial processing and management costs
Difficulties and Threats for Distributed Systems
Widely Varying modes of use
Wide range of system environment
Internal Problems – ( no sync. Clock, data update issues etc...)
External threats – ( DOS , Attacks in integrity and secrecy )