Distributed system Communication techniques
- Remote procedure call
- Remote method communication –based on objects i.e. method invocation between client and server
- MOM – Message Oriented Middleware
- Data streaming
For every Communication technique in distributed system, establish what it is and how it is in distributed system environment and also the challenges
The basis of communication in distributed system is Layered protocols. Establish why there is need for layering, identifying various services offered by these layers
- OSI 7 layered Model
- TCP/IP protocol suite model
The OSI is suitable for computer network environment but for distributed systems, there is a challenge and therefore need for middleware
Why need middleware?
Note that having powerful and flexible opportunities for communication between services is essential for any distributed system.
In traditional network applications, communication is based on low level message passing primitives offered by the transport layer. An important issue in middleware systems is to offer a high level of abstraction that will make it easier to express communication between processes than this approach offered by the interface to the transport layer.
RPC in distributed systems
One of the most widely used abstractions is the RPC. The essence of RPC is that a service is implemented by means of a procedure of which the body is executed at a server. The client is offered only the signature of the procedure that is the procedure stem along with its parameters.
How does RPC work?
We have a client stub and the server stub.
When the client calls the procedure, the client side presentation called a client stub takes care of wrapping the parameter values into a message and sends it to the server. The server then calls the actual procedure and returns the result again in a message. The client stub extracts the result values from the return message and passes it back to the calling client application.
What type of communication does RPC effect? Is it persistent, transient, synchronous, asynchronous?
RPCs offer synchronous communication facilities by which a client is blocked until the server has sent a reply. Although variations of either mechanisms exist by which distrithis model is rela… it turns out that the general purpose high level message oriented models are often more convenient.
What are the limitations of RPCs? Can they be addressed through RMI?
What is RMI and how does it work?
Focus on similarities and differences between RPCs and RMIs
The message oriented model (MOM) Communication techniques distributed system – what is it and how does it work? What are its advantages over other communication models i.e. RPC/RMI?
In MOM (Message Oriented Models) the issues are whether or not communication is persistent and whether or not communication is synchronous.
- After a careful analysis that MOM models generally offer persistent asynchronous communication and are used where RPCs are not appropriate.
- They are used to assist in the integration of widely dispersed collection of databases into large scale information systems.
DATA STREAMING ABSTRACTION APPROACH
A very different form of communication is that of streaming in which the issue is whether or not two successive messages have a temporal relationship. In continuous data streams, a maximum end to end delay is specified by each message. In addition, it is also required that messages are sent subject to a minimum end to end delay. Examples of continuous data streams are video and audio streams.
Challenges of data streaming communication approach
- Unreliable links
MULTICASTING COMMUNICATION APPROACH
The basic idea behind multi casting is to disseminate information from one sender to multiple receivers. First, multicasting can be achieved by setting up a tree from the sender to the receiver. Considering that it is now well understood how self organized into peer to peer systems, solutions have also appeared to dynamically set up trees in a decentralized fashion.
What is multicasting and what are the challenges of multicasting? How is it implemented in a distributed system?
NAMING in distributed system
The need for naming in distributed systems
The type of names that exist –
- Human readable names
Various naming techniques
- Flat naming
- Structured naming
- Attribute based names
There is need of mapping names onto computational entities.
Finding the entity, a name it refers to is known as name resolution. To engage in this effort, there is need for a naming system.
Features of distributed systems that make naming difficult
- Distribution of the naming system
The issues of a naming system that needs to be addressed by the naming system are
What does defining a distributed naming system require?
- Defining a set of admissible names for the entities
- Defining the set of the named entities
- Defining the association between names and entities.
What challenge that scalability pose here? It is about introducing new entities, each entity requires to be given a name which is a challenge
What is a name? a name is something that refers to an entity. It could be a string, symbols, etc.
Defining the set of admissible names determines how we can speak about the system. An entity is something one can operate on by accessing it through an access point.
An access point is a special sort of entity in distributed systems used to access an entity.
What does it entail to access an identity through an access point? This requires an address. The address of an access point can be called the address of the entity
What is the relationship between addresses and names?
Addresses are some sort of names which are unfriendly for human.
Location independency is another issue of addresses.
An identifier is another type of name and it refers to at most one entity. This means that each entity is referred to by at most one identifier. An identifier always refers to the same entity which is never reused.
Distinction between addresses and identifiers. Use stable analogy.
Identifiers and addresses are often in machine readable form. This poses a challenge to humans because they cannot handle them easily. This might create problems in the use, monitoring and control of distributed systems.
There is therefore need for use of human friendly names. This brings another need of name resolution which is about resolving names to addresses.
The main issue is how do we associate names and identifiers to addresses?
NAMING TECHNIQUES USED IN A DISTRIBUTED SYSTEM
Look at the DNS case and how it addresses the issue of associating names and identifiers to addresses?
- Flat naming
- Structured naming
- Attribute based naming
It’s the simplest, where a name is just a flat sequence of characters or symbols. Examples are broadcasting where messages containing the identifier of the given entity is sent to everyone but only the machine containing the entity responds.
The challenge of this approach is inefficiency that arises from network growth.
Multi casting – it’s also used in multicasting where only a strict group of … receives the request.
Structured names are composed of simple human readable names. A good example of this is the internet namespace.
Have an understanding of namespaces
names are organized hierarchically according to a level directed graph that is called a naming graph.
How is the structure of a naming graph?
- Leaf notes – represent named entities.
- Directory notes – have a number of outgoing pages each labelled with an identifier.
THE INTERNENT DNS
Limitations of flat and structured naming
- Flat naming allows for unique and location independent way to refer to distributed entities.
- Structured naming provides for human friendliness. The challenge is how is it possible to exploit information associated to entities to exploit them?
ATTRIBUTE BASED NAMING in distributed systems
Many ways can be used to describe an entity. The most popular approach is to use a collection of (attribute value pairs) associated with an entity to describe it. These are also referred to as directory services.
Choosing the right set of attributes to describe the resources is the most important thing.
This can be achieved through resource distribution framework (RDF). This is simply a model for describing resources and the references in RDF are essentially URLs.
To use RDF involves querying a directory service. if resource description is stored, they can be queried when looking for a particular resource. The query returns a reference to the resource to be .. by the application.
How relevant is naming to distributed systems? What is naming? Distinguish between names, addresses and identifiers
Look at the different approaches to naming.
Look at concept of namespace with special attention to the DNS case
- How to Become a Data Analyst – Salary, Qualifications, skills.How to Become a Data Analyst – Salary, Qualifications, skills. Hello, hope you are doing great. Let’s start by defining what a data analyst is? Whether it’s sales figures, audience demographics,…
- The truth about Crypto-Currency.The truth about Crypto-Currency. What to Know About Cryptocurrency. What is cryptocurrency? Cryptocurrency is a type of digital currency that generally only exists electronically. There is no physical coin or bill…
- Basic Computer OperationsBasic Computer Operations. A computer as shown in the figure below performs basically five major operations or functionsirrespective of its size and make. These are 1) it accepts data or instructions…
- Classification of ComputersClassification of Computers. i. Classification of Computers by Size a) Micro-Computers • Micro –Computers are the Smallest class of Computers• Micro- Computers have one micro-processor in its Central Processing Unit• Micro-Processor…
- History of ComputersHistory of Computers i. First generation computers (1946-1956) Overview of the Intelligent System They made use of vacuum tubes to store and process information. The tubesconsumed a lot of power and…