Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Intro To DS Chapter 1

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 29

Distributed Systems

Introduction
Outline
_ Introduction and Definition
_ Goals of a Distributed System
_ Types of Distributed Systems
_ Architectural Styles
_ System Architectures
Introduction and Definition
_ Computer technology passes advances over
decades
_ Large, slow, expensive, non-integrable before 80’s
_ Only centralized system with single computer
_ Fast, integrable, cheap and with powerful
microprocessors in 80’s and after
_ Computer networking by LAN and WAN
Introduction … Contd
_ Distributed system is a collection of
independent computers that appears to its
users as a single coherent system
_ Autonomous computers dealing with single system
for the users

_ The middleware layer of the system provides a


single-system-view for user under heterogeneous
applications, computers and networks.
_ It extends over multiple machines
Goals of Distributed System
_ Resource and Data Sharing
_ printers, databases, multimedia servers, ...
_ Availability and Reliability
_ the loss of some instances can be hidden
_ Scalability and Extensibility
_ the system grows with demand
Goals … contd
_ Transparency and Openness
_ Transparency- presents itself to users and
applications as if it was only a single computer
system hiding distributed nature of processes and
resources
_ Openness - offers services according to standard
rules that describe the syntax and semantics of
those services
_ Performance and Storage
_ CPU, memory, HDD
_ Inherent distributed communication
_ organizational distribution, e-mail, video
Goals ...Issues
_ Issues related to distributed systems
_ Concurrency – distributed clients may access
similar resources concurrently posing some
performance issues
_ Security and Privacy – unmanaged distributed
systems may pose certain security and privacy
issues originating from unprotected network
_ Partial failure – added difficulties to troubleshoot
hardware, system and network failures
Goals ...Issues
_ Issues related to distributed systems
_ Service Location, Migration and Replication –
there may be issues of finding server locations,
server selections, data/service migration and
replication
_ Management Overhead – distributed systems can
operate under heterogeneous hardware, platform
and language ecosystems making system
management complex and costly
Distributed System Characteristics
_ Encapsulated Component Communications
_ differences between the components and the way
they communicate are hidden from users
_ Consistent User-System Interactions
_ users and applications can interact with a
distributed system in a consistent and uniform way
regardless of location and variety
_ System Scalability, Availability and
Reliability
_ Are available at any time, scalable to any extent
and reliable in any manner
Goals ...Transparency
Transparency Type Description
Access Transparency Hide differences in data representation
and how a resource is accessed
Location Transparency Hide where a resource is physically
located
Migration Transparency Hide that a resource may be migrated
to another location
Relocation Transparency Hide that a resource may be relocated
while in use
Replication Transparency Hide that a resource is replicated

Concurrency Transparency Hide that a resource may be shared by


several competitive users

Failure Transparency Hide the failure and recovery of a


resource
Persistence Transparency Hide whether a resource is in memory
or on disk
Goals … Openness
_ Open distributed systems
_ can interact with services from other open systems
irrespective of the underlying environment
_ conforms to well-defined interfaces
_ Supports applications portability
_ Interoperate easily
_ Openness can be achieved by making the
system independent of heterogeneity
_ Requires application of policies and mechanisms
_ Policies are to be enacted and the system provides
mechanisms of their implementations
_ Caching, trusted code, Qos and encryption policies
Goals … Scalability
_ Scalability focuses on three components
_ Size scalability - number of users and processes
_ Geographical scalability - maximum distance
between nodes
_ Administrative scalability - number of
administrative domains allowed
_ Limitations
_ Focus on size scalability
_ Centralized services, data and algorithms
Goals … Scalability Techniques
_ Scalability with performance considerations
can be achieved through
_ Hiding communication latencies
_ Use asynchronous communication to avoid waiting
for requests by using requesting applications
_ Use job distribution to clients for interactive
applications (e.g. form validation)
_ Distribution
_ Distribute the job into different clusters (e.g.
DNS: .com,.org … )
_ Replication
Types of Distributed Systems
_ Three types:
_ distributed computing systems
_ distributed information systems
_ pervasive/embedded systems
_ Distributed computing systems-used for high-
performance computing tasks: cluster and grid
computing
Types … Distributed Computing
_ Two types: cluster and grid computing
_ Cluster Computing
_ a LAN connected collection of homogeneous
workstations running the same operating system to
be used for parallel computing of a single program
_ Master node has middleware
_ Allocates tasks to nodes
_ Controls nodes
_ Provides user interfaces
Types … Distributed Computing
_ Two types: cluster and grid computing
_ Grid Computing
_ a WAN connected collection of heterogeneous
workstations running for resource sharing and
coordinated problem solving in dynamic, multi-
institutional virtual organizations
_ e.g. cloud computing
Types of Distributed Systems
_ Distributed information systems (DIS)
_ many networked applications wrapping a number of requests
into a single larger request at the lowest level and have it
executed all/none of them as a distributed transaction
_ their interoperability and direct communications is managed
with enterprise application integration
_ Transaction processing systems(TPS)
_ process distributed transaction: a transaction that includes one or
more statements/primitives that, individually or as a group,
update data on two or more distinct nodes of a distributed system
_ May involve transaction grouping and rolling back
_ Distributed pervasive systems(DPS)
_ Systems for unstability, variable, small, battery-powered, mobile
nodes having dynamic connection to a wireless network
Types….TPS
_ Characteristics of transactions - ACID:
_ Atomic - the transaction happens indivisible that it
either happens completely or not at all with no
intermediate states
_ Consistent - the transaction does not violate system
invariants
_ Isolated or Serializable: concurrent transactions do
not interfere with each other with the final result
looking as though all transactions run sequentially
in some order
_ Durable: once a transaction commits, the changes
are permanent
Types…. DPS
_ three requirements for pervasive applications
_ embrace contextual changes: a device is aware that
its environment may change all the time, e.g.,
changing its network access point
_ encourage ad hoc composition: devices are used in
different ways by different users
_ recognize sharing as the default: devices join a
system to access or provide information
_ E.g. integrated home systems, electronic
healthcare systems, sensor networks, mobile
computing networks, ubiquitous computing
networks
Architectural Styles
_ Distributed systems can be logical organized into software
components and connectors
_ Components are replaceable units within its environment
_ Connectors are mechanisms that mediate
communication, coordination and cooperation among
components
_ Distributed system architectural styles
_ Layered architectures
_ components are organized in a layered fashion where
a component at layer Li is allowed to call components
at the underlying layer Li-1, but not the other way
around;
_ requests go down the hierarchy and results flow
upward
Architectural Styles ...Contd
_ Distributed system architectural styles
_ Object-based architectures – client-server model
_ each object corresponds to a component and these
components are connected through a remote
procedure call mechanism via object
communications
_ Data-centered architectures
_ processes communicate through a shared and
persistent data-space/repository
_ Processes being decoupled in time, event-based
architectures can be combined with data-centered
architectures
Architectural Styles ...Contd
_ Distributed system architectural styles
_ Event-based architectures – publish/subscribe
model
_ processes communicate through event/data
propagation published through the event bus
_ After the middleware ensures their subscription to
the events, the subscribed processes receive the
evens/data from the bus
_ processes are loosely coupled with no need of
explicit referral
System Architectures
_ System architecture:
_ the logical organization of distributed
systems components/processes
_ deciding the software components, their
interaction, and their placement
_ can have centralized, decentralized or a
hybrid communication and control
organization
System Architectures ...Contd
_ Centralized: traditional client-server structure
_ Vertical (or hierarchical) organization of
communication and control paths where
functions are logically separated into client
requests and server responses
_ Possesses request-reply behavior with
intermediate waiting status
_ Can be unreliable connectionless protocol or
reliable connection-oriented protocol
System Architectures ...Contd
_ Decentralized: peer-to-peer
_ Horizontal communication and control paths
where components interact each other
_ Hybrid: CS + P2P
_ Has both centralized and decentralized
architectures
_ e.g. edge-server systems and collaborative
distributed systems
_ Classification of a system as centralized or
decentralized refers to communication and
control organization
System Architectures ...CS
_ Client-server structure – application layering
_ User-interface level - GUI’s for end users
_ Processing level- data processing
application
_ Data level - DB or file system interactions
_ e.g. interface, process and data levels of web
search engines, decision support systems,
eCommerce applications ...
...Hardware Considerations
_ In multi-tier architectures
_ Client-server or client-client-server
_ Two-tier arch. - thin client vs fat-client
(a) put only terminal-dependent part of
the user interface on the client
machine and let the applications
remotely control the presentation
(b) put the entire user-interface software
on the client side
(c) move part of the application to the
client, e.g. checking correctness in
filling forms
(a) to (c) are for thin clients
(d) and (e) are for powerful client
machines what are called fat clients
(more popular)
(d) and (e) are difficult to manage since
client side software is distributed
and is prone to error; it is also
Architectures ...Decentralized
_ vertical distribution- CS where different tiers
correspond directly with logically different
components
_ horizontal distribution - physically split up the
client or the server into logically equivalent
parts
_ Equivalent processing potential
_ Components serving as server and client
_ Good for load balancing, resistant to DoS
Thank you!

You might also like