Distributed Architecture
Distributed Architecture
DISTRIBUTED ARCHITECTURE
The architecture of a system describes its major components, their relationships (structures),
and how they interact with each other. Software architecture and design includes several
contributory factors such as Business strategy, quality attributes, human dynamics, design, and
IT environment.
In distributed architecture, components are presented on different platforms and several
components can cooperate with one another over a communication network in order to achieve
a specific objective or goal.
In this architecture, information processing is not confined to a single machine rather it
is distributed over several independent computers.
A distributed system can be demonstrated by the client-server architecture which forms
the base for multi-tier architectures; alternatives are the broker architecture such as
CORBA, and the Service-Oriented Architecture (SOA).
There are several technology frameworks to support distributed architectures, including
.NET, J2EE, CORBA, .NET Web services, AXIS Java Web services, and Globus Grid
services.
Middleware is an infrastructure that appropriately supports the development and
execution of distributed applications. It provides a buffer between the applications and
the network.
It sits in the middle of system and manages or supports the different components of a
distributed system. Examples are transaction processing monitors, data convertors and
communication controllers etc.
Middleware as an infrastructure for distributed system
Page 1 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
1
Access
Hides the way in which resources are accessed and the differences
in data platform.
2 Location
Hides where resources are located.
3 Technology
Hides different technologies such as programming language and OS
from user.
4
Migration / Relocation
Hide resources that may be moved to another location which are in
use.
5 Replication
Hide resources that may be copied at several location.
6
Concurrency
Hide resources that may be shared with other users.
7
Failure
Hides failure and recovery of resources from user.
8 Persistence
Hides whether a resource (software) is in memory or disk.
Advantages
Resource sharing − Sharing of hardware and software resources.
Openness − Flexibility of using hardware and software of different vendors.
Concurrency − Concurrent processing to enhance performance.
Scalability − Increased throughput by adding new resources.
Fault tolerance − the ability to continue in operation after a fault has occurred.
Disadvantages
Complexity − they are more complex than centralized systems.
Page 2 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
Client-Server Architecture
The client-server architecture is the most common distributed system architecture which
decomposes the system into two major subsystems or logical processes −
Client − this is the first process that issues a request to the second process i.e. the
server.
Server − this is the second process that receives the request, carries it out, and sends a
reply to the client.
In this architecture, the application is modeled as a set of services that are provided by servers
and a set of clients that use these services. The servers need not know about clients, but the
clients must know the identity of servers, and the mapping of processors to processes is not
necessarily 1:1.
Page 3 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
Client-server Architecture can be classified into two models based on the functionality of the
client −
Thin-client model / Fat server
In thin-client model, all the application processing and data management is carried by the
server. The client is simply responsible for running the presentation software.
Used when legacy systems are migrated to client server architectures in which legacy
system acts as a server in its own right with a graphical interface implemented on a
client
A major disadvantage is that it places a heavy processing load on both the server and
the network.
Thick/Fat-client model/ Thin server
In thick-client model, the server is only in charge for data management. The software on the
client implements the application logic and the interactions with the system user.
Most appropriate for new C/S systems where the capabilities of the client system are
known in advance
More complex than a thin client model especially for management. New versions of the
application have to be installed on all clients.
Page 4 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
Advantages
Separation of responsibilities such as user interface presentation and business logic
processing.
Reusability of server components and potential for concurrency
Simplifies the design and the development of distributed applications
It makes it easy to migrate or integrate existing applications into a distributed
environment.
It also makes effective use of resources when a large number of clients are accessing a
high-performance server.
Disadvantages
Lack of heterogeneous infrastructure to deal with the requirement changes.
Security complications.
Limited server availability and reliability.
Limited testability and scalability.
Fat clients with presentation and business logic together.
Multi-Tier Architecture (n-tier Architecture)
Multi-tier architecture is a client–server architecture in which the functions such as
presentation, application processing, and data management are physically separated. By
separating an application into tiers, developers obtain the option of changing or adding a
specific layer, instead of reworking the entire application. It provides a model by which
developers can create flexible and reusable applications.
Page 5 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
The most general use of multi-tier architecture is the three-tier architecture. Three-tier
architecture is typically composed of a presentation tier, an application tier, and a data storage
tier and may execute on a separate processor.
Presentation Tier / front-end / interface
Presentation layer is the topmost level of the application by which users can access directly
such as webpage or Operating System GUI (Graphical User interface). The primary function of
this layer is to translate the tasks and results to something that user can understand. It
communicates with other tiers so that it places the results to the browser/client tier and all other
tiers in the network.
Application Tier (Business Logic, Logic Tier, or Middle Tier)
Application tier coordinates the application, processes the commands/query, makes logical
decisions, evaluation, validation and performs calculations. It controls an application’s
functionality by performing detailed processing. It also moves and processes data between the
two surrounding layers.
Data Tier
In this layer, information is stored and retrieved from the database or file system. The
information is then passed back for processing and then back to the user. It includes the data
persistence mechanisms (database servers, file shares, etc.) and provides API (Application
Programming Interface) to the application tier which provides methods of managing the stored
data.
Page 6 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
Advantages
Better performance than a thin-client approach and is simpler to manage than a thick-
client approach.
Enhances the reusability and scalability − as demands increase, extra servers can be
added.
Provides multi-threading support and also reduces network traffic.
Provides maintainability and flexibility
Disadvantages
Unsatisfactory Testability due to lack of testing tools.
More critical server reliability and availability.
Page 7 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
Page 8 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
A bridge can connect two different networks based on different communication protocols. It
mediates different brokers including DCOM, .NET remote, and Java CORBA brokers.
Bridges are optional component, which hides the implementation details when two brokers
interoperate and take requests and parameters in one format and translate them to another
format.
Page 9 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
Features of SOA
A service-oriented architecture provides the following features −
Distributed Deployment − Expose enterprise data and business logic as loosely,
coupled, discoverable, structured, standard-based, coarse-grained, stateless units of
functionality called services.
Composability − Assemble new processes from existing services that are exposed at a
desired granularity through well defined, published, and standard complaint interfaces.
Interoperability − Share capabilities and reuse shared services across a network
irrespective of underlying protocols or implementation technology.
Reusability − Choose a service provider and access to existing resources exposed as
services.
SOA Operation
The following figure illustrates how does SOA operate −
Page 10 of 11
GITONGA MUNYI ©2020 – DISTRIBUTED SYSTEMS
Advantages
Loose coupling of service–orientation provides great flexibility for enterprises to make
use of all available service recourses irrespective of platform and technology
restrictions.
Each service component is independent from other services due to the stateless service
feature.
The implementation of a service will not affect the application of the service as long as
the exposed interface is not changed.
A client or any service can access other services regardless of their platform,
technology, vendors, or language implementations.
Reusability of assets and services since clients of a service only need to know its public
interfaces, service composition.
SOA based business application development are much more efficient in terms of time
and cost.
Enhances the scalability and provide standard connection between systems.
Efficient and effective usage of ‘Business Services’.
Integration becomes much easier and improved intrinsic interoperability.
Abstract complexity for developers and energize business processes closer to end
users.
Page 11 of 11