23
Architetture dei sistemi distribuiti Mariagrazia Fugini Impianti Como 08-09

Architetture dei sistemi distribuiticorsi.dei.polimi.it/impianticomo/download/architetture-Batini... · Sistemi a oggetti distribuiti Infrastruttura a oggetti distribuiti •Hardware

  • Upload
    hadang

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Architetture deisistemi distribuiti

Mariagrazia Fugini Impianti Como 08-09

Sommario

• Sistemi centralizzati e distribuiti • Meccanismi per sistemi distribuiti

– RPC– Client-server

• Middleware• Distributed object computing• Tecnologie per sistemi a oggetti distribuiti• J2EE e Enterprise JavaBeans

Obiettivi

• Sistemi centralizzati, distribuiti e cooperativi

• Definizione dei concetti di base dei sistemi distribuiti

• Introduzione alle piattaforme tecnologiche

Riferimenti ai testi consigliati

• Sistemi Informativi Vol. V F.Angeli ed.– Cap. 1: architetture (escl. 3.4)

Sistema centralizzato

Terminaliutente

Nodo elaborativoApplicazioni

Archivi centralizzati

Sistema distribuitoStazioniutente

Nodo elaborativoApplicazioni

Archivi locali

Archivi locali Nodo elaborativo

Applicazioni

Nodo elaborativoApplicazioni

Archivi locali

Sistemi informativi distribuiti

• SI distribuito: Sistema costituito da un insieme di applicazioni logicamente indipendenti che collaborano per il perseguimento di obiettivi comuni attraverso una infrastruttura di comunicazione hardware e software

• Elaborazione distribuitaLe applicazioni, fra loro cooperanti, risiedono su piu’nodi elaborativi

• Base di dati distribuitaIl patrimonio informativo, unitario, e’ ospitato su piu’nodi elaborativi

SI ad accoppiamento forte

– concepiti in modo unitario– risorse informative e elaborative controllate da una o

più unità organizzative comunque facenti riferimento a una unica autorità.

– unitarietà nelle scelte architetturali e tecnologiche– integrazione dei sottosistemi in un unico sistema

complessivoRisultato

• elevata qualità del servizio reso all’utenza • aumento dei vincoli organizzativi e tecnologici esistenti fra le

unità organizzative che cooperano

SI ad accoppiamento debole• Risorse informative e elaborative preesistenti • Soggetti organizzativi fra loro autonomi che, per motivi

istituzionali o di business, hanno interesse a cooperare per fornire servizi a valore aggiunto

• Normalizzazione nelle scelte architetturali e tecnologiche (interfacce verso le risorse messe a fattore comune rispondenti a una logica unitaria)

• Logiche di federazione dei sottosistemi • Logiche di proceduralità (processi di cui si deve garantire

l’avanzamento e il tracciamento)• Modesto aumento dei vincoli organizzativi e tecnologici:

regole di interfacciamento concordate

RPC: Remote Procedure CallProgrammachiamante

Client Stub

Marshalling Unmarshalling

Chiamata localecon valori dei

parametri in ingresso

Protocollo di comunicazione

Invia messaggio

Ricevi messaggio

Valori dei parametriIn uscita

Procedurachiamata

Server Stub

Marshalling Unmarshalling

Valori dei parametri in uscita

Invia messaggio Ricevi messaggio

Chiamata localecon valori dei parametri in ingresso

Dispatcher

Messaggio =Nome proc +

Lista valori input Scegli proc

Elaboratore A Elaboratore B

Mec

cani

smo

RPC

RPC

• Sistemi a accoppiamento forte• La chiamata di una procedura remota non è

completamente analoga alla chiamata di una procedura locale

• Possibili limitazioni ai formati dei dati– Dati composti, puntatori

• Gestione delle eccezioni– Es. malfunzionamento del canale trasmissivo

• Invocazione concorrente della stessa proceduraremota da parte di piu’ programmi chiamanti

Sistemi client-server

Processo client

Esecuzionedel servizio

Richiestadi servizio

Restituzionedella risposta

tempo

Processo server

•Cliente: utilizzatore di servizi

•Servente: fornitore di servizi

•Attore: assume a seconda delle situazioni entrambi i ruoli

Sistemi client-server

• Accoppiamento forte• Un processo servente può servire più processi

cliente• Logica

– Bloccante– Non bloccante (invio richiesta, notifica di esecuzione)

• Processo servente sempre attivo vs attivazioneogni volta che pervenga una richiesta

Sistemi a oggetti distribuiti

Infrastruttura a oggetti distribuiti

•Hardware•Software di base•Reti

Sistema a oggettidistribuiti

Accoppiamento forte e accoppiamento debole

Infrastruttura per gestire problematiche architetturali, tecnologiche e gestionali

DOC Distributed Object Computing• Se accoppiamento forte:

– Unica macchina virtuale– Tecnologie di integrazione BD, gestione di BD

distribuite, gestione transazioni• Se accoppiamento debole:

– Definizione dei servizi di cooperazione e delleinterfacce di invocazione

– Repository– Logiche di tipo sincrono e asincrono con scambio

messaggi– Tecnologie di gestione e trattamento meta-

informazioni, specifica interfacce di oggetti, code di messaggi

Modello a oggetti (1)

• Oggetto– Dati (stato)– Funzioni (comportamento)– Identita’– Istanziazione di una classe

• Interfaccia– Servizi messi a disposizione da un oggetti e

invocabili da altri oggetti

Modello a oggetti (2)

• Connessione tra oggetti:– Sincrona (bloccante)– Asincrona– Pull (cliente chiede l’esecuzione del servizio)– Push (servente propone attivamente il servizio)

Gestoreordini

Oggetto servente Oggetto cliente

Connessione

Interfaccia

Gestoreacquisti

GestoreCatalogo

GestoreAcquistoGestore

Amministrativo

Portaleweb per

e-marketplace

CoordinatoreMercatovirtuale

Gestore Transazioni

GestorePagamenti

Gestoreprofilinegozi

UTENTE DELUTENTE DEL

SERVIZIOSERVIZIO

• Utente finale

• P.O.S. evoluto

Statistiche

NegozianteNegoziante

Vendite

Sistema di commercio elettronico

Comunicazione

• Sincrona– Request/reply

• Asincrona– Publish & Subscribe (sottoscrizione a informazioni

prodotte da editori e distribuite da un distributore)– Multicasting– Instance Based Routing (con criteri di selezione

messaggi)– Store & forward (consegna a tutti i sottoscrittori, anche

se non sono sempre attivi)

Comunicazione Publish&Subscribe

Distributor PublisherSubscriber

Subscription Registration

Get info Publication

Comunicazione Multicasting

PublisherSubscriber

Subscription

Publication

Alternativa store and forward: il messaggio è memorizzato e consegnato

dal distributore

Middleware• Middleware: un insieme di componenti software che

realizzano una macchina virtualeTipologie:• Middleware generalizzato• Middleware orientati a specifiche classi di servizio:

– Middleware per l’accesso a basi di dati interfaccie di programmazione per l’accesso a basi di dati da parte di applicazioni software in modo indipendente dalle caratteristiche fisiche dei singoli sistemi di gestione dei dati;

• Open Data Base Connectivity – ODBC• Java Data Base Connectivity – JDBC

– Middleware per la gestione di transazioniEs. Distributed Transaction Processing – DTP del consorzio X/Open, che specifica le modalità mediante le quali processi diversi possono fra loro collaborare per attuare transazioni distribuite.

Hardware

Hardware

Softwaredi base

Hardware

Softwaredi base

Hardware

Software di base

Applicazione

Interfaccia utente

Applicazione

Interfacciautente

Applicazione

Interfacciautente

Applicazione

Interfacciautente

Middleware

Rete