Distributed System: Definition: A Distributed System Is A Piece of Software That En-Sures That
Distributed System: Definition: A Distributed System Is A Piece of Software That En-Sures 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
Network
01 1
Introduction/1.1 Denition
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.
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 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
SyDListener
2. Invoke
SyDEngine
3. Remote Invoke
SyDLink
1. Execute
SyDEventHandler
1.Invoke
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
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
Achieving openness: At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages
01 5
Introduction/1.2 Goals
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
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
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
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
01 10
Shared memory M M M M P P P P P
Switch-based
M P
M P
M P
M P
Processor
Memory
01 11
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
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
01 13
Machine A
Machine B
Machine C
Kernel
Kernel
Kernel
Network
01 14
Practice: Only very few truly multicomputer operating systems exist (example: Amoeba)
01 15
Machine A
Machine B
Machine C
Distributed applications Network OS services Kernel Network OS services Kernel Network OS services Kernel
Network
01 16
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
01 18
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
Security services: Services for secure processing and communication: Authentication and authorization services Simple encryption services Auditing service
01 20
Item 1 2 3 4 5 6 7
01 21
ClientServer Model
Basic model
01 22
Reply
Provide service
Time
01 23
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
Observation: This layering is found in many distributed information systems, using traditional database technology and accompanying applications.
01 25
User-interface level
Keyword expression
Processing level
Data level
01 26
Client-Server Architectures
Single-tiered: dumb terminal/mainframe conguration Two-tiered: client/single server conguration Three-tiered: each layer on separate machine
User interface
User interface
Application
Application
Application Database
01 27
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
Replicated Web servers each containing the same Web pages Disks
Internet Internet
01 29
eg c
P! C B
8 n 5 d j$dEu
'! b
uyu j8
k e jom k n