Upload
hadang
View
227
Download
0
Embed Size (px)
Citation preview
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 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.