300 likes | 522 Views
Architetture dei sistemi distribuiti Prof. Barbara Pernici Politecnico di Milano. Sommario. Sistemi distribuiti Meccanismi: RPC Client-server Middleware Distributed object computing Tecnologie per sistemi a oggetti distribuiti J2EE e Enterprise Java Beans. Obiettivi.
E N D
Architetture deisistemi distribuiti Prof. Barbara PerniciPolitecnico di Milano
Sommario • Sistemi distribuiti • Meccanismi: • RPC • Client-server • Middleware • Distributed object computing • Tecnologie per sistemi a oggetti distribuiti • J2EE e Enterprise Java Beans
Obiettivi • Definizione dei concetti di base dei SI distrbuiti • Introduzione alle piattaforme tecnologiche
Bibliografia • Serie Sistemi Informativi Vol. V • Cap. 1: architetture (escl. 3.4) • Lucidi (in rete)
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 distribuita Le applicazioni, fra loro cooperanti, risiedono su piu’ nodi elaborativi • base di dati distribuita Il 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 complessivo Risultato • - 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 • Sistemi a accoppiamento forte • La chiamata di una procedura remota non e’ completamente analoga alla chiamata di una procedura locale • Possibili limitazioni ai formati dei dati • Dati composti, puntatori • Gestione delle eccezioni • Ies malfunzionamento del canale trasmissivo • Invocazione concorrente della stessa procedura remota da parte di piu’ programmi chiamanti
Sistemi client-server • Cliente • Servente • Attore Processo client Processo server Richiesta di servizio Esecuzione Restituzione del servizio della risposta tempo
Sistemi client-server • Accoppiamento forte • Un processo servente puo’ servire piu’ processi cliente • Logica • Bloccante • Non bloccante (invio richiesta, notifica di esecuzione) • Processo servente sempre attivo vs attivazione ogni volta che pervenga una richiesta
Sistemi a oggetti distribuiti Accoppiamento forte e accoppiamento debole Infrastruttura per gestire problematuche architetturali, tecnologiche e gestionali
DOC Distributed Object Computing • Se accoppiamento forte: • Unica macchina virtuale • Se accoppiamento debole: • Definizione dei servizi di cooperazione e delle interfacce di invocazione • Repository • Logiche di tipo sincrono e asincrono con scambio 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) Interfaccia Oggetto servente Oggetto cliente Gestore acquisti Gestore ordini Connessione
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)
Middleware • Middleware: un insieme di componenti software che realizzano una macchina virtuale Tipologie: • middlewaregeneralizzato • 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 transazioni Es. 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.
Middleware generalizzato • Include: • Servizi di supporto: • strumenti di comunicazione (notification service per comunicazione asincrona) • servizi di sicurezza • servizi di indirizzamento (naming service) • meccanismi di sincronizzazione (incl. time service) • servizi di accodamento messaggi • Servizi di “trasparenza” (virtualizzazione) • Servizi di monitoraggio • Supporto a transazioni distribuite • ACID: atomica, consistente, isolata, durabile (persistente)
DOC (1) • Formalismi di definizione di oggetti (IDL interface definition language) • Protocolli di interoperabilita’ (tipi di messaggi da scambiare e sequenze ammissibili) • Servizi di intermediazione tra oggetti (object broker) • Individuazione oggetti • Object Request Broker (ORB): registro servizi disponibili e degli oggetti che li mettono a disposizione –> possibilita’ di riconfigurazione dinamica delle applicazioni (es. in caso di malfunzionamento)
DOC (3) • Meccanismi per lo scambio di messaggi • Sincroni/asincroni • Message broker (per gestione code di messaggi) • Coordinamento di procedure con sequenze di passi eseguiti da oggetti diversi • Servizi di supporto per oggetti • Gestione del ciclo di vita di un oggetto • Gestione della persistenza • Linguaggi di interrogazione • Gestione uso degli oggetti (licensing service) • Servizi di supporto (vedi middleware generalizzato)
Infrastrutture per il Distributed Object Computing • Common Object Request Broker Architecture - CORBA promossa da Object Management Group - OMG: CORBA è uno standard industriale per la realizzazione di infrastrutture a oggetti distribuiti operanti su reti e sistemi eterogenei; • Enterprise Java Beans • Focus su logica applicativa • Servizi di supporto separati da logica applicativa • Oggetti pubblicati all’interno di un application server • MS DCOM • La famiglia delle tecnologie Web
CORBA (Internet interORB protocol)