0% found this document useful (0 votes)
259 views34 pages

Distributed System: Definition: A Distributed System Is A Piece of Software That En-Sures That

Uploaded by

Mangesh Thorat
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
259 views34 pages

Distributed System: Definition: A Distributed System Is A Piece of Software That En-Sures That

Uploaded by

Mangesh Thorat
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Distributed System: Denition

A distributed system is a piece of software that ensures that:

A collection of independent computers that appears to its users as a single coherent system

Two aspects: (1) independent computers and middleware. (2) single system
Machine A

Machine B

Machine C

Distributed applications Middleware service Local OS Local OS Local OS

Network

01 1

Introduction/1.1 Denition

Goals of Distributed Systems


Connecting resources and users

Distribution transparency Openness Scalability

01 2

Introduction/1.2 Goals

Background
Developing Collaborative applications over a collection of mobile heterogeneous devices and data stores. Autonomous and mobile data stores Wireless (or wired) networks of various characteristics Devices of varying capabilities (pagers, cell phones, PDAs, PCs etc.) Limitations of Current Technology Explicit and tedious (data and network) programming of applications on each device. Multiple types of heterogeneity of data stores Poor support for maintaining global consistency of data stores Poor Middleware support
Difficult peer-to-peer interaction (no data serving capabilities) Poor or no support for dis-connectivity, location independence, group collaboration, atomic transaction, QoS
Confidential & Proprietary All Rights Reserved Internal Distribution, April 2003.

System on Mobile Devices (SyD)


An Integrated Programming and Deployment Platform
Uniform Web Service view of device, data & network
persistent object-view of mobile data and services.

Rapid development of reliable and portable group applications


high-level programming and deployment environment Leverage off existing server applications

Peer-to-peer and distributed applications Group creation, maintenance, and manipulation Quality of Service, while handling mobility and dis-connectivity. Footprint: 112 KB, only 42 KB device resident

Confidential & Proprietary All Rights Reserved Internal Distribution, April 2003.

SyD Kernel Architecture and Interactions


SyD Kernel
1. Lookup

SyD Kernel modules developed in Java. SyD Directory provides user, group and service publishing, lookup service, and intelligent proxy management. SyD Listener sitting on device enables devices to act as servers by listening to remote invocation requests. SyD Engine allows users to execute services (can be group) remotely and aggregate results. SyD Event Handler handles local and global events. SyD Link enables an application to create and enforce interdependencies, constraints, and automatic updates among groups of SyD entities

SyDDirectory
3. Register Globally 2. Lookup

2. publish

SyDAppO Server Client UI

SyDListener
2. Invoke

SyDEngine
3. Remote Invoke

SyDLink
1. Execute

SyDEventHandler
1.Invoke

TCP/IP Web Services

SyDAppO

SyDAppO

SyDAppO

SyDAppO

Confidential & Proprietary All Rights Reserved Internal Distribution, April 2003.

Distribution Transparency
Transparency Access Description Hides differences in data representation and invocation mechanisms Hides where an object resides Hides from an object the ability of a system to change that objects location Hides from a client the ability of a system to change the location of an object to which the client is bound Hides the fact that an object or its state may be replicated and that replicas reside at different locations Hides the coordination of activities between objects to achieve consistency at a higher level Hides failure and possible recovery of objects Hides the fact that an object may be (partly) passivated by the system

Location Migration Relocation

Replication

Concurrency

Failure Persistence

Note: Distribution transparency may be set as a goal, but achieving it is a different story.
01 3 Introduction/1.2 Goals

Degree of Transparency
Observation: Aiming at full distribution transparency may be too much: Users may be located in different continents; distribution is apparent and not something you want to hide

Completely hiding failures of networks and nodes is (theoretically and practically) impossible You cannot distinguish a slow computer from a failing one You can never be sure that a server actually performed an operation before a crash Full transparency will cost performance, exposing distribution of the system Keeping Web caches exactly up-to-date with the master copy Immediately ushing write operations to disk for fault tolerance

01 4

Introduction/1.2 Goals

Openness of Distributed Systems


Open distributed system: Be able to interact with services from other open systems, irrespective of the underlying environment: Systems should conform to well-dened interfaces Systems should support portability of applications Systems should easily interoperate

Achieving openness: At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages

01 5

Introduction/1.2 Goals

Policies versus Mechanisms


Implementing openness: Requires support for different policies specied by applications and users: What level of consistency do we require for clientcached data? Which operations do we allow downloaded code to perform? Which QoS requirements do we adjust in the face of varying bandwidth? What level of secrecy do we require for communication?

Implementing openness: Ideally, a distributed system provides only mechanisms: Allow (dynamic) setting of caching policies, preferably per cachable item Support different levels of trust for mobile code Provide adjustable QoS parameters per data stream Offer different encryption algorithms
Introduction/1.2 Goals

01 6

Scale in Distributed Systems


Observation: Many developers of modern distributed system easily use the adjective scalable without making clear why their system actually scales. Scalability: At least three components: Number of users and/or processes (size scalability) Maximum distance between nodes (geographical scalability) Number of administrative domains (administrative scalability)

Most systems account only, to a certain extent, for size scalability. The (non)solution: powerful servers. Today, the challenge lies in geographical and administrative scalability.
01 7 Introduction/1.2 Goals

Techniques for Scaling


Distribution: Partition data and computations across multiple machines: Move computations to clients (Java applets) Decentralized naming services (DNS) Decentralized information systems (WWW)

Replication: Make copies of data available at different machines: Replicated le servers (mainly for fault tolerance) Replicated databases Mirrored Web sites Large-scale distributed shared memory systems

Caching: Allow client processes to access local copies: Web caches (browser/Web proxy) File caching (at server and client)
Introduction/1.2 Goals

01 8

Scaling The Problem


Observation: Applying scaling techniques is easy, except for one thing:

Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modication. Global synchronization precludes large-scale solutions.

Observation: If we can tolerate inconsistencies, we may reduce the need for global synchronization. Observation: Tolerating inconsistencies is application dependent.
01 9 Introduction/1.2 Goals

Distributed Systems: Hardware Concepts


Multiprocessors

Multicomputers Networks of Computers

01 10

Introduction/1.3 Hardware Concepts

Multiprocessors and Multicomputers


Distinguishing features: Private versus shared memory Bus versus switched interconnection

Shared memory M M M M P P P P P

Private memory Bus-based M P M P M P

Switch-based

M P

M P

M P

M P

Processor

Memory

01 11

Introduction/1.3 Hardware Concepts

Networks of Computers
High degree of node heterogeneity: High-performance parallel systems (multiprocessors as well as multicomputers) High-end PCs and workstations (servers) Simple network computers (offer users only network access) Mobile computers (palmtops, laptops) Multimedia workstations

High degree of network heterogeneity: Local-area gigabit networks Wireless connections Long-haul, high-latency connections Wide-area switched megabit connections

Observation: Ideally, a distributed system hides these differences


01 12 Introduction/1.3 Hardware Concepts

Distributed Systems: Software Concepts


Distributed operating system

Network operating system Middleware

System DOS

NOS

Middleware

Description Tightly-coupled OS for multiprocessors and homogeneous multicomputers Loosely-coupled OS for heterogeneous multicomputers (LAN and WAN) Additional layer atop of NOS implementing general-purpose services

Main goal Hide and manage hardware resources Offer local services to remote clients

Provide distribution transparency

01 13

Introduction/1.4 Software Concepts

Distributed Operating System


Some characteristics: OS on each computer knows about the other computers OS on different computers generally the same Services are generally (transparently) distributed across computers

Machine A

Machine B

Machine C

Distributed applications Distributed operating system services

Kernel

Kernel

Kernel

Network

01 14

Introduction/1.4 Software Concepts

Multicomputer Operating System


Harder than traditional (multiprocessor) OS: Because memory is not shared, emphasis shifts to processor communication by message passing: Often no simple global communication: Only bus-based multicomputers provide hardware broadcasting Efcient broadcasting may require network interface programming techniques No simple systemwide synchronization mechanisms Virtual (distributed) shared memory requires OS to maintain global memory map in software Inherent distributed resource management: no central point where allocation decisions can be made

Practice: Only very few truly multicomputer operating systems exist (example: Amoeba)

01 15

Introduction/1.4 Software Concepts

Network Operating System


Some characteristics: Each computer has its own operating system with networking facilities Computers work independently (i.e., they may even have different operating systems) Services are tied to individual nodes (ftp, telnet, WWW) Highly le oriented (basically, processors share only les)

Machine A

Machine B

Machine C

Distributed applications Network OS services Kernel Network OS services Kernel Network OS services Kernel

Network

01 16

Introduction/1.4 Software Concepts

Distributed System (Middleware)


Some characteristics: OS on each computer need not know about the other computers OS on different computers need not generally be the same Services are generally (transparently) distributed across computers

Machine A

Machine B

Machine C

Distributed applications

Middleware services Network OS services Kernel Network OS services Kernel Network OS services Kernel

Network

01 17

Introduction/1.4 Software Concepts

Need for Middleware


Motivation: Too many networked applications were hard or difcult to integrate: Departments are running different NOSs Integration and interoperability only at level of primitive NOS services Need for federated information systems: Combining different databases, but providing a single view to applications Setting up enterprise-wide Internet services, making use of existing information systems Allow transactions across different databases Allow extensibility for future services (e.g., mobility, teleworking, collaborative applications) Constraint: use the existing operating systems, and treat them as the underlying environment (they provided the basic functionality anyway)

01 18

Introduction/1.4 Software Concepts

Middleware Services (1/2)


Communication services: Abandon primitive socketbased message passing in favor of: Procedure calls across networks Remote-object method invocation Message-queuing systems Advanced communication streams Event notication service

Information system services: Services that help manage data in a distributed system: Large-scale, systemwide naming services Advanced directory services (search engines) Location services for tracking mobile objects Persistent storage facilities Data caching and replication

01 19

Introduction/1.4 Software Concepts

Middleware Services (2/2)


Control services: Services giving applications control over when, where, and how they access data: Distributed transaction processing Code migration

Security services: Services for secure processing and communication: Authentication and authorization services Simple encryption services Auditing service

01 20

Introduction/1.4 Software Concepts

Comparison of DOS, NOS, and Middleware


1: 2: 3: 4: 5: 6: 7: Degree of transparency Same operating system on each node? Number of copies of the operating system Basis for communication How are resources managed? Is the system easy to scale? How open is the system?
Distributed OS multiproc. multicomp. Very High High Yes Yes 1 N Shared Messages memory Global, Global, central distributed No Moderately Closed Closed Network OS Low No N Files Per node Yes Open Middleware DS High No N Model specic Per node Varies Open

Item 1 2 3 4 5 6 7

01 21

Introduction/1.4 Software Concepts

ClientServer Model
Basic model

Application layering ClientServer architectures

01 22

Introduction/1.5 ClientServer Model

Basic ClientServer Model (1/2)


Characteristics: There are processes offering services (servers) There are processes that use services (clients) Clients and servers can be distributed across different machines Clients follow request/reply model with respect to using services

Client Request Server

Wait for result

Reply

Provide service

Time

01 23

Introduction/1.5 ClientServer Model

Basic ClientServer Model (2/2)


Servers: Generally provide services related to a shared resource: Servers for le systems, databases, implementation repositories, etc. Servers for shared, linked documents (Web, Lotus Notes) Servers for shared applications Servers for shared distributed objects

Clients: Allow remote service access: Programming interface transforming clients local service calls to request/reply messages Devices with (relatively simple) digital components (barcode readers, teller machines, hand-held phones) Computers providing independent user interfaces for specic services Computers providing an integrated user interface for related services (compound documents)
Introduction/1.5 ClientServer Model

01 24

Application Layering (1/2)


Traditional three-layered view: User-interface layer contains units for an applications user interface Processing layer contains the functions of an application, i.e. without specic data Data layer contains the data that a client wants to manipulate through the application components

Observation: This layering is found in many distributed information systems, using traditional database technology and accompanying applications.

01 25

Introduction/1.5 ClientServer Model

Application Layering (2/2)


User interface HTML page containing list HTML generator Query generator Database queries Ranking component Web page titles with meta-information

User-interface level

Keyword expression

Ranked list of page titles

Processing level

Database with Web pages

Data level

01 26

Introduction/1.5 ClientServer Model

Client-Server Architectures
Single-tiered: dumb terminal/mainframe conguration Two-tiered: client/single server conguration Three-tiered: each layer on separate machine

Traditional two-tiered congurations:

Client machine User interface User interface User interface

User interface

User interface

Application

Application

Application Database

User interface Application Database Application Database


Application Database Database Database

Server machine (a) (b) (c) (d) (e)

01 27

Introduction/1.5 ClientServer Model

Alternative C/S Architectures (1/2)


Observation: Multi-tiered architectures seem to constitute buzzwords that fail to capture many modern clientserver organizations. Cooperating servers: Service is physically distributed across a collection of servers: Traditional multi-tiered architectures Replicated le systems Network news services Large-scale naming systems (DNS, X.500) Workow systems Financial brokerage systems

Cooperating clients: Distributed application exists by virtue of client collaboration: Teleconferencing where each client owns a (multimedia) workstation Publish/subscribe architectures in which role of client and server is blurred
Introduction/1.5 ClientServer Model

01 28

Alternative C/S Architectures (2/2)


Essence: Make distinction between vertical and horizontal distribution
Front end handling incoming requests Requests handled in round-robin fashion

Replicated Web servers each containing the same Web pages Disks

Internet Internet

01 29

Introduction/1.5 ClientServer Model

 yQcq & @u    & 1y2'b f Vx  du@BIr ! !  ! H 

eg c

P!  C B

 8 n 5  d  j$dEu

'! b

  uyu j8

k e jom k n

! dCB  @  tq1  duCByr ! F 

You might also like