Please enable JavaScript.
Coggle requires JavaScript to display documents.
10. Distributed Architecture (Overview (Two important elements: network…
10. Distributed Architecture
Overview
A
distributed system
: a collection of computational and storage devices
connected through
a communications
network
Data, software, and users are distributed
Components communicate using a number of methods (message passing, remote procedure calls, remote method invocation, etc.)
Two important
elements
:
network topology
communications mode
Network topology
: the way in which entities are organized to form a connected network
Communications mode
: the method by which components communicate with each other
Key features
:
service
location transparency
services
reliability
and
availability
.
Many distributed architecture styles available (including client-server, multi-tier, broker, and service-oriented architecture)
Client-Server
the
most commonly
distributed system architecture
based on
two communicating processes
, usually running on different processors
=> decomposes a system into two major
subsystems
:
client
and
server
The first process, the
client
, issues a request to the second process, the
server
The
server
process receives the request (serving data from a database, printing a document), carries it out, and sends a reply to the client
Two-tier client-server architecture
front-end tier
focuses on the user interaction
back-end tier
focuses on business logic and database management
Evaluation
Advantages
:
Separation of responsibilities
such as user interface presentation and business logic processing
Reusability
of server components
Disadvantages
:
Lack of heterogeneous infrastructure
to deal with the requirement change
Security complications
Server availability and reliability
Testability and scalability
Fat clients with presentation and business logic together
Multi-tiers
At least 3 tiers:
Front-end tier
: user interface presentation tier
Middle tier
: manages business logic and execution
Back-end tier
: handles database management
Evaluation
Advantages
: Enhancement of reusability and scalability by adding the middle tier
Middle layer is easy to change
Have portable and nonproprietary design and implementation
Middle layer can provide multi-threading support
Reduces traffic on the network
Disadvantages
:
Difficulty in testing
due to lack of testing tools
Adding multiple servers in the system makes the server reliability and availability even more critical
Broker Architecture Style
middleware architecture
used in distributed computing to coordinate and facilitate communication between registered servers and clients.
Examples: CORBA, RPC, and RMI
Key ideas
:
Service provider register services through broker
Clients discover services through broker
Clients submit requests to broker
Broker massages requests from clients and relay results from service provider
Sub-components:
Broker
– provide service registration
Stub
(client-side proxy) – provide “stub” version of remote services, responsible for massaging messages
Skeleton
(server-side proxy) – encapsulates lower network details, dispatch requests to local service objects
Bridges
(optional) – for interaction with brokers
Network
– for interaction with brokers
Broker
Stub
Skeleton
Bridges
Network
Evaluation
Advantages
:
Server component
implementation
and
location transparency
Changeability
and
extensibility
Simplicity for clients to access server and server portability
Interoperability via broker bridges
Reusability
Feasibility of runtime changes of server components (add or remove server components on the fly)
Disadvantages
:
Inefficiency due to the
overhead
of proxies
Low fault-tolerance
Difficulty in testing
due to the amount of proxies
Service-Oriented Architecture (SOA)
SOA starts with a
businesses process
a
service
is a
business functionality
that is
independent
from other services, and published and available to be used via a standard programming interface
Software manages business processes through an SOA with well-defined, standard interfaces that can build, enhance, and expand their existing infrastructure more flexibly
SOA services
can be reused
within a given domain or product line, even among legacy systems
Loose coupling of service orientation
provides great flexibility for enterprises to make use of all available service resourses
The connections between services are conducted by common and universal message-oriented protocols, such as the
SOAP web service protocol
A connection can be established statically or dynamically.
Evaluation
Advantages
:
Loosely-coupled connection
: key attribute of SOA. Each service component is independent due to the s
tateless service feature
.
Interoperability
: Technically, any client or service can access other services regardless of their platform, technology, vendors, or language implementations.
Reusability
: Any service can be reused by any other service. Because clients of a service need only to know its public interfaces, service composition and integration become much easier.
Scalability
: Loosely-coupled services are easy to scale.