Sistemi Distribuiti Architetture software 1 Sistemi distribuiti: Architetture software Il software di gestione di un sistema distribuito ha funzionalità analoghe ad un sistema operativo Gestione delle risorse (condivisione) Interfaccia per nascondere la natura complessa ed eterogenea del sistema complessivo (macchina virtuale) Tipologie di sistemi operativi distribuiti il sistema operativo mantiene una vista unica di tutte le risorse che gestisce (Distibuted Operating System) il sistema è una collezione di computer ciascuno dei quali esegue il suo SO. Il SO permette di attivare servizi di rete per la condivisione di risorse (Network Operating System) Network Operating System + middleware 2 1
Distributed Operating Systems (DOS) 1.14 3 Network operating systems () Sono costruiti da un insieme di computer connessi in rete ciascuno col proprio sistema operativo Sono messe a disposizione funzionalità per accedere ai servizi disponibili su un dato computer host A host B host C applicazioni distribuite servizi i di servizi i di servizi i di rete del SO rete del SO rete del SO kernel kernel kernel rete 4 2
Servizi di rete dei Esecuzione remota di comandi > rsh host comando Copia remota di file > rcp file1 host:file2 File system distribuito NFS (Network File System) Possibilità di condividere e montare file system remoti in UNIX Risorse di rete di Windows (\\host\risorsa) 5 L approccio basato su è scalabile e aperto ma non permette la visione come singolo sistema coerente E possibile sviluppare applicazioni distribuite utilizzando le API di rete dei (es. socket) per scambiare messaggi fra i processi L interfaccia i di comunicazione i non è trasparente (es. aprire un socket client richiede la conoscenza dell IP e della porta del server) 6 3
Limitazioni dei Mancanza di trasparenza Occorre specificare l host da cui ottenere una risorsa (può essere facilitato con una opportuna interfaccia es. browser delle risorse di rete) Difficoltà di gestione Le singole macchine sono gestite idi indipendentemente d t e richiedono ihid di essere configurate propriamente per condividere le risorse Occorre una gestione centralizzata degli account utente 7 + Middleware host A host B host C applicazioni distribuite servizi del middleware servizi di rete del SO servizi di rete del SO servizi di rete del SO kernel kernel kernel rete Il middleware deve fornire un insieme completo di servizi per la gestione del sistema distribuito Le applicazioni distribuite non devono by-passare il middleware Esistono più standard di middleware e anche all interno dello stesso standard non tutte le implementazioni sono compatibili! 8 4
Servizi del middleware Supporto alla comunicazione Servizi per nascondere i dettagli della comunicazione su rete Dipende dal paradigma di middleware Naming Ogni entità viene individuata da un nome URL Servizi per condividere e ricercare entità Sicurezza Non si può basare su meccanismi del, spesso va implementato da capo Persistenza Servizi per la memorizzazione (file system, database) 9 Openness e middleware Un middleware è di solito disponibile per più Le applicazioni divengono indipendenti dal SO Tuttavia rimane la dipendenza dallo specifico middleware middleware che aderiscono allo stesso standard devono condividere le stesse interfacce e gli stessi protocolli Applicazione stessa interfaccia applicativa (API) Applicazione middleware Protocollo comune middleware 10 5
I livelli del middleware 11 I livelli del middleware Host-infrastructure middleware resides atop the operating system and provides a high-level API that hides the heterogeneity of hardware devices, operating systems, and to some extent network protocols. Distribution middleware provides a high-level programming abstraction, such as remote objects, enabling developers to write distributed applications in a way similar to stand-alone programs. Corba, DCOM, and Java RMI all fit in this layer. Common middleware services include fault tolerance, security, persistence, and transactions involving entities such as remote objects. Domain-specific middleware services are tailored to match a particular class of applications. 12 6
SD: riepilogo architetture software System Description Main Goal Hide and Tightly-coupled l operating system manage DOS for multi-processors and hardware homogeneous multicomputers resources Loosely-coupled operating system for heterogeneous multicomputers (LAN and WAN) Additional layer atop of Provide + implementing general-purpose Middleware services Offer local services to remote clients Provide distribution transparency 13 7