i sistemi distribuiti - dipartimento di informaticadisys/sidys8architetture14_b.pdf · 1 cdl...

17
1 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. Stili Architetturali della interazione tra componenti Architetture di sistema Tipi di Sistemi Distribuiti Architettura di un Sistema Distribuito = numero, tipo ed interazioni delle componenti (software/hardware) del sistema.

Upload: lytruc

Post on 16-Feb-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

1

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.

!   Stili Architetturali della interazione tra componenti !   Architetture di sistema ! Tipi di Sistemi Distribuiti

Architettura di un Sistema Distribuito = numero, tipo ed interazioni delle componenti (software/hardware) del sistema.

2

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.

3

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 single-system 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.

4

GRID

La tecnologia GRID viene utilizzata per realizzare attività cooperative di calcolo del tipo:

Ø  Storage, GRID architecture layers Ø  Data base, Ø  Process control Ø  HPC,…..

applicazione

collective

resource connectivity

fabric

“a flexible, secure, coordinated resource sharing among dynamic collections of individuals, institution, and resources – what we refer to as a Virtual Organizations”

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.

5

Le Computational GRID sono sistemi distribuiti composti da risorse eterogenee e distribuite geogra f i camente , cooperant i in Vi r tua l 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).

GRID

Struttura di una architettura GRID con relativi protocolli[2]:

  Application   Collective

  Resource   Connectivity   Fabric

Collective

Resource

Connectivity

Fabric

Application

[2] I. Foster, C. Kesselman, S. Tuecke, “The anatomy of the Grid: Enabling scalable virtual organizations” (2001).

Modello stratificato di un’Architettura GRID

6

ARCHITETTURA GRID

servizi di base e astrazioni fondamentali

uso coordinato di risorse multiple

Modello informale di una architettura GRID

Middleware Collective

Resource

Connectivity

Resources Pool Fabric

Application Application

7

OPEN GRID SERVICE ARCHITECTURE

standardizzazione

•  individuazione •  allocazione •  monitoraggio •  rendicontazione e fatturazione •  inglobamento in un singolo •  sistema virtuale

interoperabilità

•  definizione delle interfacce •  identificazione dei protocolli (protocol binding)

virtualizzazione

•  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.

OGSA

SERVIZIO = entità network-enabled che fornisce una certa funzionalità attraverso lo scambio di messaggi

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 service-oriented,

OGSA

Resource Management: Discovery Monitoring Control

Execution Management: Job description & submission Scheduling Resource provisioning

Information Services: Registry Notification Logging/auditing

Data Services: Common access facilities Efficient & reliable transport Replication services

Security: Cross-organizational users Trust nobody Authorized access only

Self-Management: Self-configuration Self-optimization Self-healing

Web Services

[3] A.V. “The Open Grid Services Architecture, Version 1.5”, OGF (2006).

Lo standard OGSA

8

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) ]

(Service-Oriented Architecture)

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]

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

(Service-Oriented Architecture)

9

( Evoluzione di SOA in Internet: i WEB services )

Ø  interazioni da macchina a macchina

Ø  autodescriventi Ø  sistema standard di messaging basato su XML

VANTAGGI:

Ø  indipendenza da SO e ling. di programmazione

Ø  protocollo HTTP per la trasmissione dei messaggi

SVANTAGGI:

Ø  overhead (formattazione XML)

Ø  perdita di versatilità (forme basilari per l’invocazione dei servizi)

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.

Modello informale di una architettura GRID

Application

Middleware

Resources Pool

execution management services

data services

self-management services

resource management services

security services information service

OGSA

waitingJobs

User Job User Job User Job …

10

Dispatcher

JobManager1 JobManager M JobManager 2

Jobs are loaded by Dispatcher module Dispatcher module

submits jobs to Job Manager modules

Job1

Job2

JobN

… waitingJobs

Middleware for Execution Management Services

Execution Management Services

Modello informale del Middleware per i Servizi di Execution Management

da … OGSInfrastructure a…Web Services-RESOURCE FRAMEWORK

Ø  EVOLUZIONE DEI WEB SEVICES (WSDL 2.0, WS-Addressing,…)

CAUSE:

Ø  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 2)  Separazione delle funzioni

3)  Vista più semplice della funzione di notifica

11

SPECIFICHE DEL WSRF

WSRF

WS-Resource: risorsa + Web service

WS-Addressing: indirizzamento tramite Endpoint Reference

WS-ResourceProperties: tipo e valori dei componenti della WS-Resource accessibili dal WS

WS-ResourceLifetime: cancellazione immediata e

“garbage collection”

WS-ServiceGroups: aggregazione di WS a scopi applicativi

WS-BaseFaults: schema XML standard per la rappresentazione dei fault

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.

WSDL

12

IL GLOBUS TOOLKIT 4

“standard de facto” per le applicazioni Grid con WSRF

•  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

FUNZIONALITÀ

•  esigenza di organizzazioni virtuali in ambito scientifico

•  superamento della incompatibilità tra le risorse di una griglia

MOTIVAZIONI

IL GT4: ARCHITETTURA E COMPONENTI

ARCHITETTURA

cccccccccccc

COMPONENTI

13

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

14

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.

Tratto da W.Voorsluys, J.Broberg, R.Buyya , “Introduction to Cloud Computing” in Cloud Computing:Principles and Paradigms ed.2011 John Wiley &Sons, Inc.

Il CLOUD computing

Le radici tecnologiche del cloud computing dal punto di vista : •  dell’hardware (virtualization,

multi-core chips), •  di Internet (Web services, service-

oriented architectures, Web 2.0), •  dei sistemi distribuiti (clusters,

grids), •  e della gestione dei sistemi

(autonomic computing, data center automation).

15

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

16

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.

Modelli di Servizi Cloud

Sistemi Informativi distribuiti

•  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) .

Sistemi realizzati per consentire l’integrazione tra diverse applicazioni (o la loro “interoperabilità”)

17

Sistemi distribuiti pervasivi

Ø 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.

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.