CdL MAGISTRALE in INFORMATICA
A.A. 2014-15
corso di “Sistemi Distribuiti”
8. Le architetture (seconda parte)
Prof. S.Pizzutilo
I Sistemi Distribuiti
Un Sistema Distribuito è un insieme di processori indipendenti (con proprie
risorse HW/SW) interconnessi da una rete di comunicazione, che cooperano per
condividere alcune delle risorse ovunque distribuite.
Architettura di un Sistema Distribuito = numero, tipo ed
interazioni delle componenti (software/hardware) del
sistema.
!   Stili Architetturali della interazione tra componenti
!   Architetture di sistema
! Tipi di Sistemi Distribuiti
1
Tipi di Sistemi Distribuiti
Sistemi di calcolo distribuiti:
•  Cluster
•  Grid
Sistemi informativi:
•  Sistemi transazionali
•  Integrazione di applicazioni aziendali
Sistemi pervasivi:
•  Sistemi domestici
•  Sistemi per l’assistenza sanitaria
•  Reti di sensori
•  Sistemi Multiagente
Cluster, Grid e Cloud
Un computer CLUSTER è un insieme di computer omogenei connessi tramite
una rete con lo scopo di distribuire una elaborazione (parallelizzabile) tra
computer componenti il cluster
La tecnologia GRID, a differenza del cluster, prevede la interconnessione tra
macchine anche eterogenee per realizzare attività cooperative di calcolo.
Per CLOUD computing si intende un insieme di tecnologie informatiche che
permettono l'utilizzo di risorse hardware (storage, CPU) o software distribuite in
remoto.
2
CLUSTER
Per realizzare una architettura Cluster occorrono:
Ø 
Ø 
Ø 
Ø 
Un sistema operativo in grado di far funzionare i computer come cluster (per esempio GNU/
Linux, utilizzando OpenMosix).
OpenMosix è una patch al kernel GNU/Linux per abilitare la migrazione dei processi.
OpenMosix non ha un controllo centralizzato di tipo master/slave. Ogni nodo agisce come un
sistema autonomo, le sue decisioni sono indipendenti e si basano su una conoscenza parziale
degli altri nodi.
Hardware di rete ad elevate prestazioni
Un algoritmo parallelizzabile
I computer cluster vengono utilizzati per effettuare:
ü 
ü 
ü 
Fail-over service o Alta Affidabilità (HA=High Availability) : il funzionamento
delle macchine è continuamente monitorato, e quando uno dei due host smette di
funzionare l’altra macchina subentra al fine di garantire un servizio continuativo;
Load-balancing: è un sistema nel quale le richieste di lavoro sono inviate alla
macchina con meno carico;
High Performance Computing (HPC): i computer sono configurati per fornire
prestazioni estremamente alte. Le macchine suddividono i processi di un job su
più macchine. La peculiarità è che i processi sono parallelizzati e che le routine
che possono girare separatamente sono distribuite piuttosto essere serializzate .
Tecnologie per il cluster
Il mondo GNU/Linux supporta vari tipi di software per il clustering, come:
1. Beowulf, distcc, MPICH ed altri sono in gran parte applicazioni di clustering molto
specializzate. Il programma distcc fornisce compilazione parallela quando utilizza
la GCC
2. Linux Virtual Server, Linux-HA sono cluster con un computer-direttore che
permette alle richieste di servizi in arrivo di essere distribuite attraverso i molteplici
nodi del cluster.
3. MOSIX, openMosix, Kerrighed, OpenSSI sono cluster sotto ogni punto di vista.
Sono stati integrati nel kernel che provvede alla migrazione automatica dei processi
tra nodi omogenei. OpenSSI, openMosix e Kerrighed sono implementazioni singlesystem image.
4.  GNU/Linux è attualmente il sistema più utilizzato per il clustering: secondo
Top500 nel 2006 è stato il sistema più usato in assoluto. La piattaforma Microsoft
Windows Compute Cluster Server 2003 basata su Windows Server 2003 Standard
x64 Edition fornisce elementi per il calcolo ad alte prestazioni, come "Job
Scheduler", le librerie MSMPI ed altri strumenti di amministrazione.
3
GRID
“a flexible, secure, coordinated resource sharing among dynamic
collections of individuals, institution, and resources – what we refer to
as a Virtual Organizations”
La tecnologia GRID viene utilizzata per realizzare attività cooperative di
calcolo del tipo:
Ø  Storage,
GRID architecture layers
Ø  Data base,
applicazione
Ø  Process control
Ø  HPC,…..
collective
connectivity
resource
fabric
Un GRID System
Le proprietà fondamentali del grid computing sono il controllo coordinato su larga
scala di risorse, appartenenti a diversi domini amministrativi, l'uso di protocolli ed
interfacce standard, open e general-purpose che forniscono una gamma di servizi, il
supporto ad applicazioni eterogenee, il supporto a Quality of Service(QoS)
complessi: tempi di risposta, throughput, disponibilità, affidabilità, sicurezza ed
infine la capacità di gestire diversi sistemi contemporaneamente.
Dal punto di vista strutturale, un sistema di grid computing richiede:
§ 
§ 
§ 
Almeno un server, che gestisce tutte le funzioni amministrative e di controllo per il sistema.
Un’altra applicazione e web server (sia fisici che virtuali) forniscono servizi specifici per il
sistema.
Una rete di computer con particolari software di rete di grid computing. Questi computer
agiscono sia come punto di interfaccia per l'utente e come risorse a cui il sistema fa
riferimento per le diverse applicazioni.
Middleware specifico con lo scopo di permettere ai diversi computer di eseguire un processo
o un'applicazione nella rete di macchine.
4
GRID
Le Computational GRID sono sistemi distribuiti
composti da risorse eterogenee e distribuite
geograficamente, cooperanti in Virtual
Organization dinamiche.
Architettura GRID = “…hardware and software
infrastructure that provides dependable, consistent,
pervasive, and inexpensive access to high-end
computational capabilities.”[1]
[Foster e Kesselman]
[1] I. Foster, C. Kesselman, “The Grid: Blueprint for a New Computing Infrastructure” (1998).
Modello stratificato di
un’Architettura GRID
Struttura di una architettura GRID con
relativi protocolli[2]:
Application
 
 
 
 
 
Application
Collective
Resource
Connectivity
Fabric
Collective
Resource
Connectivity
Fabric
[2] I. Foster, C. Kesselman, S. Tuecke, “The anatomy of the Grid: Enabling scalable virtual organizations” (2001).
5
ARCHITETTURA GRID
uso coordinato
di risorse
multiple
servizi di base
e astrazioni
fondamentali
Modello informale di una
architettura GRID
Application
Application
Collective
Middleware
Resource
Connectivity
Resources Pool
Fabric
6
OPEN GRID SERVICE ARCHITECTURE
definizione delle interfacce
identificazione dei protocolli (protocol binding)
• 
• 
interoperabilità
OGSA
virtualizzazione
standardizzazione
accesso a piattaforme eterogenee,
mapping di istanze multiple di risorse
logiche nella stessa risorsa fisica,
•  gestione risorse à composizione
delle risorse ai livelli sottostanti,
•  mapping nelle facility del sistema.
• 
• 
•  individuazione
•  allocazione
•  monitoraggio
•  rendicontazione e fatturazione
•  inglobamento in un singolo
•  sistema virtuale
SERVIZIO = entità network-enabled che fornisce una certa
funzionalità attraverso lo scambio di messaggi
Lo standard OGSA
L’Open Grid Forum (2006) presenta lo standard Open Grid Service
Architecture (OGSA)[3] = insieme di norme e specifiche, per lo
sviluppo di soluzioni GRID basate su un’architettura serviceoriented,
Execution Management:
Job description & submission
Scheduling
Resource provisioning
Resource Management:
Discovery
Monitoring
Control
Data Services:
Common access facilities
Efficient & reliable transport
Replication services
Self-Management:
Self-configuration
Self-optimization
Self-healing
OGSA
Information Services:
Registry
Notification
Logging/auditing
Security:
Cross-organizational users
Trust nobody
Authorized access only
Web Services
[3] A.V. “The Open Grid Services Architecture, Version 1.5”, OGF (2006).
7
(Service-Oriented Architecture)
A paradigm for organizing and utilizing distributed capabilities that may be
under the control of different ownership domains. It provides a uniform means
to offer, discover, interact with and use capabilities to produce desired effects
consistent with measurable preconditions and expectations.
[OASIS (Organizzazione per lo sviluppo di standard sull'informazione strutturata) ]
An architectural style that supports service-orientation. Service-orientation is a
way of thinking in terms of services and service-based development and the
outcomes of services.
A service:
• 
Is a logical representation of a repeatable business activity that has a
specified outcome (e.g., check customer credit, provide weather data,….)
• 
Is self-contained
• 
May be composed of other services
• 
Is a “black box” to consumers of the service
[Open Group]
(Service-Oriented Architecture)
visione logica: SERVIZIO = entità computazionale autonoma
ü  orientamento ai messaggi
ü  orientamento alla descrizione
ü  granularità
ü  orientamento alla rete
ü  indipendenza dalla piattaforma
ü  connessioni stateless
VANTAGGI
ü  è possibile determinare le parti attive
della SOA in qualsiasi istante
ü  i sistemi di sicurezza possono
comprendere la semantica della
comunicazione
8
( Evoluzione di SOA in Internet:
i WEB services )
In informatica un Web Service (servizio web), secondo la definizione data dal
World Wide Web Consortium (W3C), è un sistema software progettato per
supportare l'interoperabilità tra diversi elaboratori su di una medesima rete ovvero in
un contesto distribuito.
SVANTAGGI:
VANTAGGI:
Ø  overhead (formattazione XML)
Ø  indipendenza da SO e ling. di
Ø  perdita di versatilità (forme
programmazione
basilari per l’invocazione dei
Ø  protocollo HTTP per la
servizi)
trasmissione dei messaggi
Ø  autodescriventi
Ø  sistema standard di messaging basato su XML
Ø  interazioni da macchina a macchina
Modello informale di una
architettura GRID
User Job
User Job
…
User Job
Application
waitingJobs
Middleware
execution management services
resource management services
self-management services
OGSA
information service
data services
security services
Resources Pool
9
Modello informale del Middleware per i
Servizi di Execution Management
Job1
Job2
waitingJobs
…
JobN
Middleware for Execution
Management Services
Execution Management Services
Dispatcher module
submits jobs to Job
Manager modules
JobManager1
Dispatcher
JobManager
2
Jobs are loaded by
Dispatcher module
…
JobManager
M
da … OGSInfrastructure
a…Web Services-RESOURCE FRAMEWORK
Ø  CRITICHE RIVOLTE A OGSI:
troppe funzionalità nella stessa specifica; poca adattabilità agli strumenti
esistenti; stato incapsulato nel Web service stesso; problemi di incompatibilità a
causa di WSDL 2.0
WSRF:
1)  Concetto WS-Resource
CAUSE:
Ø  EVOLUZIONE DEI WEB SEVICES
(WSDL 2.0, WS-Addressing,…)
2)  Separazione delle funzioni
3)  Vista più semplice della
funzione di notifica
10
SPECIFICHE DEL WSRF
WS-Resource:
risorsa + Web service
WS-Addressing:
indirizzamento tramite
Endpoint Reference
WS-BaseFaults:
schema XML standard per
la rappresentazione dei
fault
WSRF
WS-ServiceGroups:
aggregazione di WS a
scopi applicativi
WS-ResourceProperties:
tipo e valori dei componenti
della WS-Resource accessibili
dal WS
WS-ResourceLifetime:
cancellazione immediata e
“garbage collection”
WSDL
La erogazione di servizi diversi mediante il WEB si ottiene
associando ad una applicazione un'interfaccia software
descritta in un linguaggio ( Web Services Description
Language ), che espone all'esterno il servizio/i associato/i .
Utilizzando questa interfaccia altri sistemi possono interagire
con l'applicazione stessa attivando le operazioni qui descritte
(servizi o richieste di procedure remote) tramite appositi
"messaggi" di richiesta. Tali messaggi di richiesta sono inclusi
in una "busta" (SOAP) formattati secondo lo standard XML e
trasportati tramite HTTP.
11
IL GLOBUS TOOLKIT 4
“standard de facto” per le applicazioni Grid con WSRF
MOTIVAZIONI
FUNZIONALITÀ
•  esigenza di organizzazioni virtuali
in ambito scientifico
•  superamento della incompatibilità
tra le risorse di una griglia
•  gestione delle risorse
•  trasferimento dei dati
•  discovery dei servizi
•  strumenti per la costruzione di nuovi
WS (C, Java e Phyton)
•  potente infrastruttura di sicurezza
basata su standard
•  interfacce per l’accesso a tali servizi
•  documentazione
IL GT4:
ARCHITETTURA E COMPONENTI
COMPONENTI
ARCHITETTURA
cccccccccccc
12
Il CLOUD computing
“Computing is being transformed to a model consisting of services that
are commoditized and delivered in a manner similar to traditional
utilities such as water, electricity, gas, and telephony.
In such a model, users access services based on their requirements
without regard to where the services are hosted or how they are
delivered.
Several computing paradigms have promised to deliver this utility
computing vision and these include cluster computing, Grid computing,
and more recently Cloud computing.”
Rajkumar Buyya,, Chee Shin Yeo, Srikumar Venugopal, James Broberg , Ivona Brandic
“Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering computing as the 5th utility” in Future
Generation Computer Systems 25 (2009) 599616
13
Definizioni di CLOUD computing
Il National Institute of Standards and Technology (NIST) [6] : “. . . a pay-per-use model
for enabling available,convenient, on-demand network access to a shared pool of
configurable computing resources (e.g. networks, servers, storage, applications, services)
that can be rapidly provisioned and released with minimal management effort or service
provider interaction.”
Armbrust et al. [5] : “data center hardware and software that provide services.”
Sotomayor et al. [7] : “cloud” is more often used to refer to the IT infrastructure deployed
on an Infrastructure as a Service provider data center”.
Caratteristiche comuni delle definizioni su riportate:
a)  Approccio pay-per-use sulla base delle richieste degli utenti
b)  Servizi scalabili che danno l’illusione di risorse di calcolo infinite
c)  Interfaccia self-service adattata al particolare utente
d)  Astrazione e virtualizzazione delle risorse.
Il CLOUD computing
Le radici tecnologiche del cloud
computing dal punto di vista :
•  dell’hardware (virtualization,
multi-core chips),
•  di Internet (Web services, serviceoriented architectures, Web 2.0),
•  dei sistemi distribuiti (clusters,
grids),
•  e della gestione dei sistemi
(autonomic computing, data center
automation).
Tratto da W.Voorsluys, J.Broberg, R.Buyya , “Introduction to Cloud Computing” in Cloud Computing:Principles
and Paradigms ed.2011 John Wiley &Sons, Inc.
14
Architettura del Cloud
L’architettura del Cloud computing prevede uno o più server reali (e/o virtualizzati),
generalmente in architettura ad alta affidabilità e fisicamente collocati presso il data
center del fornitore.
Il sistema del Cloud Computing prevede tre utenti distinti:
•  Il fornitore di servizi (colui che offre servizi come server virtuali, storage,
applicazioni complete ecc, generalmente secondo un modello “pay-per-use”) espone
delle interfacce per elencare e gestire i propri servizi che intende erogare.
•  Il cliente amministratore utilizza tali interfacce per selezionare il servizio richiesto
(ad esempio un server virtuale completo oppure solo storage) e per gestirlo
(configurazione, attivazione, disattivazione).
•  Il cliente finale utilizza il servizio così configurato. Le caratteristiche fisiche
dell’implementazione (server reale, localizzazione del data center) sono irrilevanti.
Non è detto che il cliente amministratore e il cliente finale siano sempre due persone
distinte: in determinati casi possono coincidere. Per esempio un cliente può utilizzare un
servizio di storage per effettuare il backup dei propri dati, ed è lo stesso cliente che
provvede a configurare e utilizzare il servizio.
Gli utenti di servizi di Cloud computing
15
Modelli di Servizi Cloud
I servizi del Cloud Computing possono essere raggruppati in tre categorie
racchiuse all'interno di un gruppo più generico che prende il nome di
Everything as a service (XaaS):
Ø  IaaS che fornisce risorse hardware fruibili dal cliente finale secondo le
proprie necessità,
Ø  PaaS che fornisce una piattaforma per lo sviluppo di applicazioni
sviluppate dall’utente e
Ø  SaaS che riesce a fornire le funzionalità di un software applicativo vero
e proprio.
Sistemi Informativi distribuiti
Sistemi realizzati per consentire l’integrazione tra diverse
applicazioni (o la loro “interoperabilità”)
•  Sistemi transazionali
che operano cioè
con la logica delle transazioni, ovvero di sequenze
di operazioni che godono delle proprietà ACID:
- Atomicità: la transazione è indivisibile deve essere o
totale o nulla;
- Consistenza: una transazione non deve violare eventuali
vincoli di integrità, ovvero non devono verificarsi
contraddizioni (inconsistency) tra i dati;
- Isolamento: ogni transazione deve essere eseguita in
modo isolato e indipendente dalle altre transazioni;
- Durabilità: detta anche persistenza, si riferisce al fatto
che una volta che una transazione ha richiesto un commit
work, i cambiamenti apportati non dovranno essere più
persi.
•  Integrazione di
applicazioni aziendali
realizzata mediante particolari
middleware di comunicazione
(RPC,RMI,…) basato sullo
scambio di messaggi di tipo
client-server (sincrono) o
publish-subscribe ( paradigma
asincrono di messaggistica) .
16
Sistemi distribuiti pervasivi
Sono sistemi distribuiti instabili (nella struttura HW, nelle forme di comunicazione, nella
loro posizione, costruiti per rispondere ai problemi dell’ubiquitous computing , del
disappearing computing, del mobile computing, dell’embedded computing.
Ø Sistemi domestici: PDA, smart phone,
recommender systems, …..
Ø  Sistemi per l’assistenza sanitaria: sistemi Body
Area Network
Ø  Reti di sensori: Mesh network, reti Manet
(Mobile Ad hoc NETwork), ecc…. Una mesh network è
una rete di comunicazione senza cavi fatta di nodi (dispositivi con capacità di
comunicazione wireless) con al più 2 path di comunicazione tra ciascun nodo.
17
Scarica

I Sistemi Distribuiti - Dipartimento di Informatica