Architectural models in distributed system

The architecture of a system is its structure in terms of separately specified components and their interrelationships. The overall goal is to ensure that the structure will meet present and likely future demands on it. Major concerns are to make the system reliable, manageable, adaptable and cost-effective. The architectural design of a building has similar aspects – it determines not only its appearance but also its general structure and architectural style (gothic, neo-classical, modern) and provides a consistent frame of reference for the design

Generations of distributed systems

Distributed systems:EarlyInternet-scaleContemporary
ScaleSmallLargeUltra-large
HeterogeneityLimited (typically
relatively homogenous
configurations)
Significant in terms of
platforms, languages
and middleware
Added dimensions
introduced including
radically different styles of
architecture
OpennessNot a prioritySignificant priority
with range of standards
introduced
Major research challenge
with existing standards not
yet able to embrace
complex systems
Quality of serviceIn its infancySignificant priority
with range of services
introduced
Major research challenge
with existing services not
yet able to embrace
complex systems
Generations of distributed systems

Architectural elements

Communicating entities • The first two questions above are absolutely central to an understanding of distributed systems; 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

Communication paradigms • We now turn our attention to how entities communicate in a distributed system, and consider three types of communication paradigm:

  • interprocess communication;
  • remote invocation;
  • indirect communication.

Roles and responsibilities • In a distributed system processes – or indeed objects, components or services, including web services interact with each other to perform a useful activity, for example, to support a chat session. In doing so, the processes take on given roles, and these roles are fundamental in establishing the overall architecture to be adopted. In this section, we examine two architectural styles stemming from the role of individual processes: client-server and peer-to-peer

Client-server:a web server is often a client of a local file server that manages the files in which the web pages are stored. Web servers and most other Internet services are clients of the DNS service, which translates Internet domain names to network addresses. Another web-related example concerns search engines, which enable users to look up summaries of information available on web pages at sites throughout the Internet.

These summaries are made by programs called web crawlers, which run in the background at a search engine site using HTTP requests to access web servers throughout the Internet. Thus a search engine is both a server and a client: it responds to queries from browser clients and it runs web crawlers that act as clients of other web servers.

In this example, the server tasks (responding to user queries) and the crawler tasks (making requests to other web servers) are entirely independent; there is little need to synchronize them and they may run concurrently

Clients invoke individual servers
Clients invoke individual servers

Peer-to-peer: In this architecture all of the processes involved in a task or activity play similar roles, interacting cooperatively as peers without any distinction between client and server processes or the computers on which they run. In practical terms, all participating processes run the same program and offer the same set of interfaces to each other. While the client-server model offers a direct and relatively simple approach to the sharing of data and other resources, it scales poorly. The centralization of service provision and management implied by placing a service at a single address does not scale well beyond the capacity of the computer that hosts the service and the bandwidth of its network connections

Peer-to-peer architecture
Peer-to-peer architecture

Leave a Comment