1
Przetwarzanie
rozproszone, technologia
Klient/Server, klastry
Wg. W.Stallings
2
Przetwarzanie
rozproszone bo:
•
Rozwój architektury komunikacji
(TCP/IP)
•
Sieciowe systemy operacyjne jako
dodatki do zbioru usług systemów
lokalnych
•
Rozproszone systemy operacyjne –
wspólny dla wielu maszyn w sieci
system, udostępniający zasoby w
sposób transparentny
3
Model Klient/Server
•
Maszyny klientów to zazwyczaj PC,
lub stacje robocze zapewniające
wygodny interfejs dla końcowego
użytkownika.
•
Każdy serwer udostępnia (w sieci)
zestaw usług
•
Najczęściej serwer udostępnia pracę
z bazami danych wymagającymi
silnego komputera.
•
Sieć
4
Terminologia
•
Applications Programming Interface (API)
–
Zestaw funkcji i programów umożliwiających wzajemną
komunikację pomiędzy klientami i serwerami.
•
Klient
–
Pracujący w sieci komputer zdolny do wysyłania żądań i zapytań
do serwerów.
•
Middleware (oprogramowanie pośredniczące)
–
Zestaw sterowników, API i innego oprogramowania
usprawniające komunikację pomiędzy aplikacjami klientów i
serwerami.
•
Relacyjna baza danych
–
Baza danych w której dostęp do informacji ograniczony jest do
rekordów spełniających kryteria wyszukiwania.
•
Serwer
–
Komputer na którym przechowywane są informacje i programy
udostępniane klientom
•
Structured Query Language (SQL) Strukturalny Język
zapytań
–
Opracowany przez IBM, slużący do adresowania, wyszukiwania i
pobierania informacji z baz danych.
5
6
Przetwarzanie
rozproszone
•
Dystrybucja danych
•
Dystrybucja obliczeń
•
Dystrybucja procesów
•
Heterogeniczność
7
Aplikacje Klient/Server
•
Środowiskiem – podstawą -jest
system operacyjny
•
Systemy klienta i serwera mogą
być różne
•
Różnice nie mają znaczenia
jeżeli klient i serwer obsługują
te same protokoły
komunikacyjne.
8
9
Aplikacje Klient/Server
•
Aplikacja wykonywana jest na
serwerze
•
Logika aplikacji jest zazwyczaj
po stronie klienta
•
Warstwa prezentacja jest po
stronie klienta
10
Np. Aplikacja
bazodanowa
•
Serwer bazy danych
•
Interakcja pomiędzy klientem i
serwerem ma formę transakcji
–
Klient wysyła zapytanie i
otrzymuje odpowiedź (np. SQL)
•
Serwer jest odpowiedzialny za
zarządzanie bazą danych
11
12
Client/Server Database
Usage
13
Client/Server Database
Usage
14
Rodzaj aplikacji
Klient/Server
•
Host-based processing
przetwarzanie zcentralizowane
–
Nie jest to model klient/server –
po stronie klienta nie ma aplikacji
(terminal)
–
Klasyczna wczesna praca z
mainframe
15
Rodzaj aplikacji
Klient/Server
•
Przetwarzanie na serwerze
–
Przetwarzanie wykonywane jest
na serwerze
–
Klient zapewnia tylko graficzny
interfejs – lekki klient
16
Rodzaj aplikacji
Klient/Server
•
Przetwarzanie na kliencie
(ciężki klient)
–
Operacje przetwarzania
wykonywane są po stronie klienta
–
Tylko operacje bazodanowe i
sprawdzanie poprawności danych
po stronie serwera
17
Rodzaj aplikacji
Klient/Server
•
Przetwarzanie zespołowe
–
Aplikacja wykonywana w sposób
zoptymalizowany na kliencie i
serwerze
–
Trudna w realizacji i zarządzaniu
lecz pozwala np. minimalizować
ruch w sieci
18
Trójwarstwowa
architektura
Klient/Server
•
Aplikacja podzielona jest
pomiędzy trzy typy maszyn
–
Użytkownika
•
Cienki klient
–
Serwer warstwy pośredniej
•
Łączniki pomiędzy aplikacjami klientów
i serwerów (gateways)
•
Przekształcanie protokołów
•
Odwzorowanie zapytań z różnych baz
danych
–
Serwery wewnętrzne
19
20
Spójność buforów
•
Bufory przechowują ostatnio
używane fragmenty plików
•
Bufory są spójne gdy zawierają
identyczne kopie danych
•
Zapewnienie spójności poprzez
blokowanie jednoczesnego
dostępu do pliku przez kilku
klientów – mniejsza wydajność
21
22
Middleware
•
Zestaw narzędzi pozwalający na
standardowy dostęp do zasobów i aplikacji
na różnych platformach i systemach
operacyjnych
•
Programiści budują aplikacje wyglądające i
pracujące identycznie w różnych
środowiskach
•
Używany jest ten sam sposób dostępu do
danych
•
Wykorzystywane jest przekazywanie
komunikatów lub zdalne wywołanie
procedur
23
24
25
Middleware
Mechanisms
26
Middleware
Mechanisms
27
Middleware
Mechanisms
28
Distributed Message
Passing
•
Message passed used to
communicate among processes
•
Send and receive messages as
used in a single system OR
•
Remote procedure calls
29
Basic Message-Passing
Primitives
30
ReliabilityVersusUnreliability
Zawodność kontra niezwodność
•
Reliable message-passing
guarantees delivery if possible
–
Not necessary to let the sending
process know that the message
was delivered
•
Send the message out into the
communication network without
reporting success or failure
–
Reduces complexity and overhead
31
Remote Procedure Calls
Zdalne wywołanie
procedur
•
Pozwala współpracować programom
na różnych maszynach w opraciu o
prostą procedurę wywołania/zwrotu.
•
Jest powszechnie akceptowana -
standard
•
Standaryzacja interfejsu
–
Moduły klienta i serwera mogą być
przenoszone łatwo pomiędzy systemami
operacyjnymi i komputerami
32
33
Synchronous versus
Asynchronous
•
Synchronous RPC
–
Behaves much like a subroutine
call
•
Asynchronous RPC
–
Does not block the caller
–
Enable a client execution to
proceed locally in parallel with
server invocation
34
Object-Oriented
Mechanisms
•
Clients and servers ship messages back
and forth between objects
•
A client sends a request to an object
broker
•
The broker calls the appropriate object
and passes along any relevant data
•
Microsoft’s Component Object Model
(COM)
•
Common Object Request Broker
Architecture (CORBA) (IBM, Sun, Apple)
35
Clusters - Klastry
•
Alternatywa do symmetric
multiprocessing (SMP)
•
Grupa połączonych, niezależnych
komputerów pracujących
wspólnie jako jednolite
środowisko przetwarzania danych
–
Iluzja jednej maszyny
–
Każdy komputer może pracować
samodzielnie
36
Clustering Method
Description
Benefits
Limitations
Passive Standby
Bierny zapasowy
Serwer zapasowy
rozpoczyna pracę
po awarii
głównego.
Łatwa
implementacja.
Duży koszt
Active Secondary
Aktywny zapasowy
Serwer zapasowy
pracuje i wykonuje
inne zadania
Mniejszy koszt –
serwer zapasowy
pracuje
Trudniejsza implementacja
Separate Servers
Oddzielne serwery
Shared nothing
Każdy serwer ma
własny dysk. Dane
są nieustannie
kopiowane
pomiędzy
serwerami
głównymi i
zapasowymi
Wysoka
dyspozycyjność
Duże obciążenie sieci
Servers Connected
to Disks
Serwery podłączone
do dysków
Serwery są
podłączone do
zestawu dysków
ale każdy ma
własny obszar. Po
awarii inny serwer
przejmuje dysk
uszkodzonego
Mniejsze
obciążenie sieci i
serwerów – brak
kopiowania
Zwykle wymaga RAID i disk
mirroring
Servers Share Disks
Serwery ze
wspólnymi dyskami
Wiele serwerów
korzysta z tych
samych dysków
Jw. i ograniczenie
ryzyka przestoju
po awarii dysku
Wymaga RAID i mechanizmu
blokowania dostępu do dysków
37
Clusters
•
Separate server
–
Each computer is a separate
server
–
No shared disks
–
Need management or scheduling
software
–
Data must be constantly copied
among systems so each is current
38
Cluster Configurations
39
Clusters
•
Shared nothing
–
Reduces communication overhead
–
Disks partitioned into volumes
–
Each volume owned by a
computer
–
If computer fails another
computer gets ownership of the
volume
40
Cluster Configurations
41
Clusters
•
Shared disk
–
Multiple computers share the
same disks at the same time
–
Each computer has access to all of
the volumes on all of the disks
42
Operating System
Design Issues
•
Failure management
–
Highly available cluster offers a
high probability that al resources
will be in service
•
No guarantee about the state of
partially executed transactions if
failure occurs
–
Fault-tolerant cluster ensures that
all resources are always available
43
Operating System
Design Issues
•
Load balancing
–
When new computer added to the
cluster, the load-balancing facility
should automatically include this
computer in scheduling applications
•
Parallelizing Computation
–
Parallelizing compiler
–
Parallelized application
–
Parametric computing
44
Cluster Computer
Architecture
•
Cluster middleware services
and functions
–
Single entry point
–
Single file hierarchy
–
Single control point
–
Single virtual networking
–
Single memory space
–
Single job-management system
45
Cluster Computer
Architecture
•
Cluster middleware services
and functions
–
Single user interface
–
Single I/O space
–
Single process space
–
Checkpointing
–
Process migration
46
Cluster Computer
Architecture
47
Clusters Compared to
SMP
•
SMP is easier to manage and
configure
•
SMP takes up less space and draws
less power
•
SMP products are well established
and stable
•
Clusters are better for incremental
and absolute scalability
•
Clusters are superior in terms of
availability
48
Windows Cluster
Service
•
Cluster Service
–
Collection of software on each node that
manages all cluster-specific activity
•
Resource
–
Item managed by the cluster service
•
Online
–
Online at node when it is providing service
on that specific node
•
Group
–
Collection of resources managed as a single
unit
49
50
Sun Cluster
•
Major components
–
Object and communication
support
–
Process management
–
Networking
–
Global distributed file system
51
52
53
Beowulf and Linux
Clusters
•
Key features
–
Mass market commodity components
–
Dedicated processors (rather than
scavenging cycles from idle
workstations)
–
A dedicated, private network (LAN or
WAN or internetted combination)
–
No custom components
–
Easy replication from multiple vendors
54
Beowulf and Linux
Clusters
•
Key features
–
Scalable I/O
–
A freely available software base
–
Use freely available distribution
computing tools with minimal
changes
–
Return the design and
improvements to the community
55