La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Massimo Ancona Sistemi Distribuiti. Un sistema distribuito (SD) è un insieme integrato di 8Hardware 3processori 3una struttura di rete 8Software 3componenti.

Presentazioni simili


Presentazione sul tema: "Massimo Ancona Sistemi Distribuiti. Un sistema distribuito (SD) è un insieme integrato di 8Hardware 3processori 3una struttura di rete 8Software 3componenti."— Transcript della presentazione:

1 Massimo Ancona Sistemi Distribuiti

2 Un sistema distribuito (SD) è un insieme integrato di 8Hardware 3processori 3una struttura di rete 8Software 3componenti operanti sui processori e comunicanti tramite la rete

3 Categorie di Sistemi Distribuiti 8Client-server 8Cooperative processing 8Peer-to-peer 8Messaging model 8Distributed database 8Object-based 8Object-oriented 8Group communication

4 Modello Client-Server 8Interazione asimmetrica tra due processi /Il processo client invia una richiesta di servizio al server che esegue il servizio e restituisce un risultato /Il flusso di controllo è usualmente sincrono /La logica di comunicazione è half-duplex: dal client al server e viceversa /Non è escluso che client e server possano scambiarsi i ruoli /Variante: function shipping i processi si scambiano anche codice

5 Cooperative processing 8Tipo particolare di client-server /Il client implementa un’interfaccia verso un utente. Esempio una Graphical User Interface (GUI) esempio Xwindow (X11) di Unix

6 Modello Peer-to-peer 8Concetto in uso da molti anni con diversi significati. Noi lo usiamo come alternativa a client-server /Interazione tra due processi che non svolgono ruoli fissi

7 Messaging model 8I processi si scambiano messaggi tramite code di tipo FIFO. /Il numero di processi che possono accedere alla stessa coda non è fissato /Si considerano code infinite: la scrittura ha sempre successo, la lettura è bloccante /E’ difficile correlare le richieste con relative risposte /Esempio tipico: produttore(i)-consumatore(i)

8 Distributed Database 8Diverse parti di insiemi di dati risiedono su processori diversi. /La gestione avviene in modo completamente trasparente per l’utente come se il database risiedesse su un singolo nodo. /Ha i seguenti problemi: uIntegrità dei dati usincronizzazione degli accessi utransazioni e query generalizzate

9 Modello Object-based 8Ogni risorsa condivisa è vista come un oggetto. /Gli oggetti sono identificati in modo unico (object ID). /Gli oggetti possono essere spostati nella rete senza cambiarne l’object ID.

10 Modello Object-oriented 8Ogni entità in esecuzione è un oggetto. /Gli oggetti sono dotati di un’interfaccia message-handling. /L’accesso alle operazioni fornite dall’oggetto è filtrata dalla sua interfaccia.

11 Modello Group-communication 8I processi interagiscono con scambio di messaggi - il ricevitore non è un unico processo ma un gruppo di processi. /Ogni operazione send al gruppo si mutua in una receive per ogni processo del gruppo. /L’invio di un messaggio ai membri di un gruppo è detto multicasting. /Applicazioni: 3fault-tolerance: un gruppo di server identici eseguono la stessa operazione 3aggiornamento multiplo: esempio sincronizzazione di clock

12 Processi e Thread 8Un processo (task/job) e’ un’istanza di un programma attivo su un processore. /Su un sistema multiprocessore o su un computer network si hanno più processi attivi simultaneamente: in questo caso si dice che si ha multiprocessing o parallel processing. /Su un sistema monorocessore solo un processo può essere in esecuzione (attivo) in ogni istante. Tuttavia il sistema operativo può mantenere più processi “attivi” simultaneamente passando il controllo a turno a ciascuno di essi: in questo caso si parla di multitasking.

13 Processi e Thread (cont.) single-user multitasking 8Recentemente si parla di single-user multitasking quando più processi collaborano all’esecuzione di un singolo programma. /Vi sono versioni di Unix che non possono eseguire I/O asincroni: in questo caso, per sovrapporre operazioni di I/O con l’elaborazione si costruisce un programma formato da più processi in esecuzione simultanea - quando un processo si blocca su una read gli altri possono proseguire l’elaborazione.

14 Processi e Thread (cont.) 8Questo metodo ha i seguenti difetti: /su sistemi piccoli si penalizza l’occupazione di memoria. /Il costo del context-switching è elevato. / Lo scambio di dati tra processi è costoso

15 Processi e Thread (cont.) 8Per questo si sono introdotti i thread detti anche processi lightweight /Vengono schedulati indipendentemente come i processi. /Condividono lo stesso spazio virtuale. /Il context-switching è più efficiente. /ogni thread ha un program counter, registri e stack propri, ogni altro dato è condiviso

16 Process Scheduling 8Non-preemptive: il processo continua l’esecuzione finché non lascia spontaneamente l’uso del processore 8preemptive: il processo può essere interrotto al completamento di una singola istruzione macchina 8Nei thread il problema è più critico: se un thread viene interrotto durante l’aggiornamento di una struttura condivisa può lasciarla in uno stato inconsistente

17 Processi e thread (cont.) 8Più precisamente un processo è composto da /un programma eseguibile /un address space privato (insieme di pagine virtuali) /risorse di sistema: semafori, porte di comunicazione, file.. che gli vengono allocate dal sistema operativo /almeno un thread di esecuzione

18 Processi e thread (cont.) 8Mentre un thread è composto da /un unico ID (client ID) /un insieme di registri macchina /una o più stack (in Windows NT ad esempio una per eseguire in kernel mode e una in user mode) /un’eventuale memoria privata in uso a sottosistemi quali run- time library e dynamic-link library (DLL)

19 Processi e thread (cont.) 8Spazio di indirizzamento di un processo /con meccanismi di virtual memory un processo hanno una visione logica della memoria che non risponde al layout fisico /ogni accesso viene tradotto in un indirizzo fisico prevenendo l’accesso a memoria virtuale di altri processi /per eseguire codice del sistema operativo o accedere alla sua memoriaun thread deve eseguire in kernel mode. La maggior parte dei processi esegue in modo ristretto (user mode)

20 Ancora sul modello client-server 8La limitazione principale di questo modello è l’intrinseca focalizzazione su “clienti che richiedono singoli servizi”. Piccole applicazioni client/server sono utili per gestire semplici servizi distinti - esempi: file print o accesso a database centralizzato. 8Per questo si estende il modello ad interazioni supportate da server multipli in un’interazione uno- molti: /come richiedere servizi multipli /come gestire tali servizi /come smistare le risposte ai clienti

21 Ancora sul modello client-server 8Le richieste per servizi multipli sono gestibili o esplicitamente o implicitamente. /nel primo caso il client emette una richiesta per ogni servizio /nel secondo caso il cliente emette una singola richiesta: il server è complesso ed interagisce con altri server per eseguire la richiesta del client. Ad esempio un database eterogeneo può: Wmappare una richiesta ad alto livello in subqueries a database distinti sul network W applicare un join relazionale per immergere le risposte Wrestituire al client il data set costruito

22 Ancora sul modello client-server 8Il comportamento del client o di un server complesso nel ricevere risposte dipende dal modello di comunicazione sottostante. /Le comunicazioni possono essere bloccanti o non bloccanti /nel secondo caso il guadagno in velocità è compromesso dalla complessità della gestione /Strumenti di supporto all’implementazione di modelli client/server complessi sono: 3 i meccanismi RPC (Remote Procedure Call) e LPC (local PC) 3i messaging system basati su API per il posting di messaggi a code bounded

23 Ancora sul modello client-server 8I messaging system tendono ad aumentare le istruzioni di controllo all’interno delle applicazioni. Il problema è risolvibile inserendo oggetti attivi detti agenti con lo scopo di /mediare le interazioni tra le applicazioni ed il communication kernel /eseguire task di controllo distribuito specifici dell’ applicazione /In questo senso gli agenti svolgono un ruolo analogo agli stub RPC 3 le API di messaging implementano primitive per comunicazioni blocking o non-blocking 3vengono supportati entrambi i meccanismi di polling e di callback

24 Ancora sul modello client-server /Gli agenti si interfacciano sia con l’applicazione che con il system layer di messaging, ma ne restano distinti. WNe segue che gli agenti possono supportare svariati modelli di coordinamento distribuito restando indipendenti dalle applicazioni W possono assumere i ruoli sia del client che del server.

25 Service Request Manager 8Un broker (o request broker) è un meccanismo di controllo dedicato che media le interazioni tra le applicazioni client e i server in grado di fornirle. /I broker liberano le applicazioni dalla necessità di mantenere informazioni su dove o come ottenere certi servizi. Essi sono realizzabili con tre modelli 3 Forwarding Broker smista una richiesta all’opportuna applicazione server, ottiene la risposta e la gira al client (es. CORBA) 3Handle-driven broker restituisce al client un service handle che contiene le informazioni che il client usa per interagire con il server 3Hybrid broker che supporta entrambi i modelli dinamicamente

26 Terminologia 8Naming 8Naming: un processo usa un nome per accedere ad una risorsa non sua. Il termine identificatore viene usato esclusivamente per programmi il termine nome anche per utenti 8Reliability 8Reliability: misura della possibilità di deviare dal comportamento voluto 8Fault-tolerance: 8Fault-tolerance: la capacità di un sistema di fallire in modo indolore o mascherare il guasto in modo trasparente all’utente 8Marshalling: 8Marshalling: il meccanismo di conversione di un insieme di dati in forma di messaggio da trasmettere.

27 Terminologia 8Unreliable message acknowledgment retry 8Unreliable message: un invio di un messaggio senza richiesta di acknowledgment (ack) o retry. 8Delivery failure 8Delivery failure: “mancanza di recapito” - si fanno le seguenti assunzioni: /I messaggi vengono eliminati dai server o dai gateway di rete /La rete può disconnettersi (partizionarsi) 8Delivery sicuro: 8Delivery sicuro: i messaggi vengono filtrati da metodi di correzione dell’errore e/o ritrasmissione.

28 Mobile Communication Networks 8Una rete (network) è formata da nodi e connessioni (link). I nodi sono di due tipi: /endpoints o (hosts/ terminals) che operano come sorgente/ destinazione di traffico /switch (router/ access point/ base station) che hanno la funzione di smistare il traffico 8Un network è detto mobile se cui alcuni nodi (endpoint e switch) cambiano ubicazione relativa nel tempo durante il funzionamento

29 Mobile Communication Networks 8Un routing system è un insieme di componenti atte a /monitorare la topologia della rete (network) e i servizi /distribuire l’informazione necessaria per costruire i percorsi (route) /locazzare gli end-point di una sessione /smistare il traffico in base ai percorsi (route) stabiliti

30 Mobile Communication Networks 8In funzione del grado di mobilità dei suoi componenti una rete si divide in /Cablata (Wireline) - tutte le componenti sono fisse (rete wired tradizionale) Es. la LAN del DISI /Cellulare - solo gli end point sono mobili, mentre le switch sono fisse /Satellitare (Satellite network) quando le switch sono satelliti orbitanti intorno alla terra /Pocket radio (ad hoc) - Sia gli end point che le switch sono mobili

31 Mobile Communication Networks 8Network cellulari base station /Le switch sono fisse e chiamate anche base station alcune sono collegate alla rete in modo wired altre in modo wireless /Gli end point sono mobili - solo ripartiti in celle ciascuna associata ad una base station (una base station può gestire una o più celle). Questa organizzazione favorisce il riuso delle frequenze di trasmissione in celle geograficamente distanti /Appartengono a questa categoria le reti telefoniche cellulari (AMPS, PCS, GSM ) gli standard di telefonia cordless, le WLAN IEEE

32 Mobile Communication Networks 8Network cellulari - problemi /Le dimensione delle celle - Wi sistemi microcellulari hanno celle con raggio da 50m a 500m e costituiscono sistemi di massima capacità ma con maggior costo di handoff Whandoff ( o handover) - l’operazione di aggiornamento della configurazione dovuta al cambiamento di posizione (cella) di un endpoint. Il cambio di cella è provocato dal cambio posizione, l’appartenenza a una cella, detto affiliazione, viene formalizzato mediante un processo di registrazione. /Assegnamento delle celle ai Mobile Switching Centers (MSCs) - un MCS è un’entità associata ad una porzione fissata del network

33 Mobile Communication Networks 8Satellite Network /Le switch units sono imbarcate su satelliti orbitanti. I link sono terra-satellite o inter-satellitari. Hanno problemi simili ai sistemi cellulari. Sono di due tipi: Wun piccolo numero di satelliti in orbita geostazionaria offre una buona copertura del terreno tali da raggiungere quasi ogni utente con un singolo hop. Utenti non coperti dallo stesso satellite iteragiscono su più hop terra-cielo o usando link intersatellitari WLow hearth Orbit (LEO) network composti da molti satelliti (molto costosi es. Iridium) Benché dotati di topologia dinamica non richiedono meccanismi di traking a topologia adattativa.

34 Mobile Communication Networks 8Pocket Radio Network /I sistemi di comunicazione militari richiedono tecniche di networking di tipo adattivo in modo da sopravvivere in ambienti ostili. Esempi: DARPA PRNET SURAN. ad hoc packet radio network /Solo di recente si è visto un interesse per l’uso anche in applicazioni civili. Questi network vengono chiamati ad hoc dal comitato dello standard IEEE si chiamano anche i packet radio network. /La mobilità delle switch porta alcuni problemi di organizzazione diversi da quelli dei network cellulari

35 Mobile Communication Networks 8Pocket Radio Network cnt. /La necessità di risposte rapide al movimento degli switch richiede meccanismi organizzativi automatici operanti con interventi manuali minimi. /Il problema di progetto principale consiste nell’organizzare le switch in gruppi: problema motivato da Wesigenza di controllare il riuso spaziale dei canali (in termini di frequenza, tempo, spreading code...) W ridurre il tempo di overhead del routing

36 Mobile Communication Networks 8Pocket Radio Network - Tecniche di clustering delle switch per realizzare il controllo dei canali di comunicazione /Algoritmi principali W Un primo algoritmo, di tipo distribuito,fa usa clusterheads. Ogni nodo ha un proprio ID numerico. Il nodo con ID minimo in un certo intorno viene scelto come clusterhead locale e delegato a controllare l’accesso al canale WUn secondo algoritmo costruisce cluster senza scegliere un clusterhead: ogni cluster ha un diametro di al più due hop. I cluster vengono costruiti iterativamente partendo dal nodo di massimo grado per formare il primo cluster e iterando il metodo nel parte restante del network

37 Mobile Communication Networks 8Pocket Radio Network - Tecniche di clustering gerarchico O(n^2) n /Si applica a grandi network (DARPA) per ridurre lo spazio occupato - infatti la quantità di informazione richiesta è dell’ordine O(n^2) mentre la capacità del network cresce solo linearmente con n.

38 Mobile Communication Networks 8Location tracking location trackingmobility trackingmobility management /Ogni network deve avere informazioni sulla posizione corrente di ogni endpoint. Lo scopo è quello di smistare il traffico di comunicazione ai destinatari interessati: il problema è detto location tracking o mobility tracking o mobility management ID indirizzo /Di solito si mantengono due informazioni distinte l’ID di un endpoint e il suo indirizzo (che specifica dove è situato). /Molti meccanismi per il tracking della locazione si basano su un mapping, dipendente dal tempo, dell’ID sull’indirizzo attuale di ogni endpoint

39 Mobile Communication Networks 8Location tracking cont. location database /Molti metodi sono simili ad aggiornamenti/ interrogazioni applicate a un database distribuito (detto location database). Il problema si divide in due sotto-problemi: Wstabilire quando e come cambiare una entry nel database Worganizzare e mantenere il database stesso

40 Mobile Communication Networks 8Updating the location database /Essendo la mobilità all’interno di di una cella trasparente al network - l’operazione è necessaria solo quando un endpoint cambia cella. Si effettuano due operazioni Wupdating (detta registration) l’azione con cui un endpoint mobile inizia un cambio di locazione; Wfinding (detta paging) l’azione di attivazione di una ricerca di un endpoint Wmolti metodi usano una combinazione di entrambi - ad esempio gli update non vengono attivati ad ogni cambio di cella ma secondo una strategia predefinita

41 Mobile Communication Networks 8Updating the location database: static strategies /In questo caso vi è un insieme di celle predefinito in cui avviene l’aggiornamento. Quando un endpoint entra in una di queste celle si può attivare un aggiornamento (non neces- sariamente ogni volta). Vi sono due metodi: WLocation areas (o paging o registration areas) L’area di servizio è ripartita in gruppi di celle, ciascuno gruppo forma una a location area: la posizione di un endpoint è aggiornata solo quando esso cambia location area; usato da sistemi cellulari di seconda generazione (GSM, IS-41); WReporting cells (o reporting centers); in questo metodo un sotto- insieme di celle da cui poter aggiornare la posizione di un endpoint viene definito staticamente. La ricerca di un endpoint si effettua nelle vicinanze dalla reporting cell da cui è stato attivato l’aggiornamento più recente (ultimo indirizzo conosciuto)

42 Mobile Communication Networks 8Updating the location database: dynamic strategies /In questo caso è un endpoint a decidere quando aggiornare il database in base al proprio stato di movimento /tale aggiornamento è eseguibile da una cella arbitraria. /In prima approssimazione si tende ad estendere le strategie statiche aggiungendo informazioni “che rappresentano il movimento”.

43 Mobile Communication Networks 8Organizzazione del location database /Si vogliono ottimizzare: W la quantità di memoria usata Wil numero di messaggi necessari. /Sono due criteri contrastanti per cui si segue un compromesso tra essi e si tiene conto anche della semplicità di implementazione

44 Mobile Communication Networks 8Organizzazione del location database cont. ID-to-address /Il sistema più pratico usa un approccio centralizzato memorizzando tutti gli abbinamenti ID-to-address in un unico nodo centrale: /Il metodo diviene rapidamente inutilizzabile al crescere del numero di endpoint. Il metodo non è fault-tolerant per la mancanza di replicazione /Si preferisce quindi distribuire il database nel network

45 Mobile Communication Networks 8Organizzazione del location database cont. /Il metodo consiste nel partizionare il network e allocare una parte del database in ciascuna partizione home /Il metodo è particolarmente adatto ai casi in cui ogni utente è registrato in un’area specifica detta home. Quando un endpoint si sposta si aggiorna il relativo home database per riflettere il cambiamento

46 Mobile Communication Networks 8Organizzazione del location database - esempi /Nei network PCS si usano due registri: 3Home Location Register (HLR) 3Visitor Location Register (VLR) Mobile IP scheme Cellular Digital Packet Data /Un metodo analogo viene usato nel Mobile IP scheme e nel Cellular Digital Packet Data (CDPD) gerarchici /I Metodi gerarchici adatti a problemi di grande dimensione hanno successo anche in questo caso

47 Mobile Communication Networks 8Location tracking nei PCS /Nei network PCS si hanno due standard: 3Nord-americano IS-41 3Europeo standard GSM /Entrambi usano partizionare l’area di servizio in location area e si basano su una gerachia a due livelli Wogni utente ha una entry nel HLR Wquando si muove ottiene un record temporaneo nel VLR che invia un messaggio di registrazione al HLR

48 Mobile Communication Networks 8Location tracking in Internet Mobile IP /E’ stato introdotto lo standard Mobile IP home networkhome agent care-of address WOgni endpoint mobile ha un indirizzo IP permanente su un home network su cui ha anche un home agent che opera come gestore di mobilità e che gestisce l’indirizzo corrente (care-of address) del nodo mobile foreign agent registra. WQuando l’ endpoint si muove usa un un indirizzo temporaneo di smistamento (care-of address) nel network “straniero” abbinato ad un foreign agent nel network visitato presso cui l’ endpoint si registra. Il care-of address non è altro che l’ IP del foreign agent.

49 Mobile Communication Networks 8Location tracking nei Pocket Radio Network flat /Se il network è flat tutti i nodi sono visibili tra loro e non occorrono meccanismi di location tracking. Essendo non scalabili essi richiedono forme di clusterizzazione Wogni nodo ha un indirizzo gerarchico formato dagli ID dei cluster incapsulati che lo contengono Address Server (AS) WVi sono Address Server (AS) in ogni cluster di livello zero che gestiscono gli indirizzi gerachici usati per il routing. WQuando un nodo vuole comm. con un altro nodo interroga AS del priprio cluster che può a sua volta rivolgersi ad altri AS

50 Mobile Communication Networks 8Route selection and forwarding /Sono tecniche che richiedono informazioni dettagliate su WStato corrente del network (interconnettività dei nodi e qualità dei link) sessione W la sessione (cioè rate di traffico, locazione degli endpoint..) /Questo allo scopo di di dirigere il traffico lungo cammini consistenti con il servizio richiesto e le restrizioni imposte dal network Wsi possono avere rerouting di traffico molto frequenti

51 Mobile Communication Networks 8Route selection and forwarding cont. /Come nei network wired, il tipo di route selection e le procedure di smistamento dipendono dalla tecnologia di switching sottostante WCircuit-based WPacket based W In parte dipende anche dalla mobilità delle switch

52 Mobile Communication Networks 8Route selection and forwarding cont. /In molti network cellulari le route vengono calcolate off-line e le chiamate vengono smistate tramite circuiti impostati lungo tali route /le procedure di handoff permettono ad una call di continuare anche quando un endpoint si sposta da una cella all’altra / In molti packet radio network le route vengono calcolate dalle switch stesse e il traffico viene smistato hop-by-hop ad ogni switch lungo una route. Le switch modificano le route in base a mutamenti percepiti nel network

53 Mobile Communication Networks 8Route selection: infrastruttura stazionaria /Il network può essere wireline o wireless - esso connette un insieme di base station con interfacce radio tramite le quali gli endpoint accedono al network W network cellulari i telecomunicazione Wnetwork ATM Winter-network con endpoint mobili /Il moto degli endpoint attiva modifiche nel routing, ma le modifiche vengono calcolate nella infrastruttura statica

54 Mobile Communication Networks 8Route selection: network cellulari (CTN) home /IS-41 e GSM hanno un comportamento simili: quando un endpoint migra (roams) in un’area di servizio esterna alla propria home, la sua posizione corrente nell’ HLR deve essere aggiornata affinché esso continui a ricevere chiamate MSC W Un MSC viene informato di ciò mediante una richiesta di registrazione MSC Wlo MSC notifica il VLR che a sua volta notifica l’ HLR della nuova locazione dell’ endpoint

55 Mobile Communication Networks 8Route selection: network cellulari (CTN) /quando un endpoint x vuole comunicare con un endpoint y la call e’ smistata tramite il network fisso a un MSC nell’area home di y. L’ MSC consulta l’ HLR di y e scopre la locazione del VLR di y estendendo quindi la call setup ad esso /nel caso che la base station corrente di y sia sconosciuta il VLR inizia l’operazione di paging tramite un MSC locale che effettua un broadcast della pagina a tutte la base station dell’area. La base station interessata risponde e l’MSC può completare l’instaurazione della call

56 Mobile Communication Networks 8Route selection: network cellulari - handoff /quando y si muove cambiando base station deve affiliarsi rapidamente con una nuova base station (handoff). Vi sono 4 tipi di handoff /Mobile-controlled /Network-controlled /Mobile-assisted /Soft

57 Mobile Communication Networks 8Mobile-controlled handoff /Gli endpoint mobili monitorizzano costantemente la qualità del segnale della base station e di quelle vicine e scegliendo come nuova base station quella che offre il segnale migliore (usando isteresi) 8Network-controlled handoff /è la base station a controllare la qualità del segnale degli endpoint. Quando esso scende sotto una certa soglia la base station invia una richiesta di handoff al MSC che chiede alle base station vicine di monitorare il segnale dell’endpoint e scegliendone una nuova tra quelle con buon livello di segnale

58 Mobile Communication Networks 8Mobile-assisted handoff (GSM, IS-41) /Sono la base station a chiedere agli endpoint mobili di monitorare costantemente la qualità del segnale ricevuto da un insieme specifico di base station vicine. /Le misure sono inviate alla base station che le smista al MSC. L’MSC stabilisce quando iniziare un handoff e quale base station diventerà la nuova base station di un endpoint.

59 Mobile Communication Networks 8Soft handoff (IS-95 digital CDMA) /Gli endpoint mobili possono affiliarsi simultaneamente a più base station dotate segnale di equivalente qualità. / In ricezione gli endpoint possono combinare i segnali ricevuti aumentando la probabilità di una decodifica positiva. /In trasmissione sono le base station che gestiscono una call di un endpoint che smistano il traffico da esso ricevuto estesa con un’informazione di qualità al MSC che seleziona lo stream di informazione di qualità migliore.

60 Implicazioni della Mobilità 8Riguardano aspetti generali e nuove prospettive di utulizzo di cui tener conto nello sviluppo di software. Tra essi /Ubiquitous Computing /Location Awareness /Application Awareness /Doze modeno-connection events /Doze mode management e no-connection events /Radio Awareness

61 Ubiquitous Computing 8Prospettato come “terzo paradigma” dopo i mainframe ed i personal computers. /Può essere visto come l’opposto della realtà virtuale che mette l’utente a contatto con un mondo virtuale generato a computer /L’ Ubiquitous Computing mette il computer in grado di operare nel mondo reale, in ogni situazione, all’aperto, in macchina, in fabbrica ecc.

62 Location Awareness 8Un sistema location-aware è un sistema che conosce la locazione di ogni unità mobile e che usa questa informazione per migliorare il proprio comportamento 8Livelli di astrazione /Location Transparent /Location Transparent: l’impatto che la mobilità ha sulle applicazioni è completamente nascosto /Location-Tolerant: /Location-Tolerant: astrazione intermedia, che permette alle applicazioni di reagire a conseguenze della mobilità che non possono essere filtrate /Location Aware /Location Aware: il livello applicativo stesso conosce la propria ubicazione ed usa direttamente questa informazione

63 Radio Awareness Broadcasting 8Si basa sul fatto che il Broadcasting non ha costi extra in una WLAN ridotta, o ha costi ridotti in network radio di maggiori dimensioni. Questo fatto offre la possibilità ad ogni utente di essere sempre informato su eventi rilevanti del network, indipendentemente dal posto in cui sta opera

64 Client-server in Mobile Environments 8Mobile Client-server Computing: Paradigmi /Mobile-aware adaptation /Modello client-server esteso /Accesso ai dati in ambiente mobile

65 Client-server in Mobile Environments 8Mobile-aware adaptation /il sistema client-server mobile deve essere in grado di reagire a cambiamenti rapidi nel network e nelle risorse locali durante l’ accesso a dati remoti, onde permettere all’applicazione un funzionamento corretto /Il rango di adattabilità adottabili va da Wlaisse-faire adaptation Wlaisse-faire adaptation : responsabilità dell’applicazione Wapplication-transparent adaptation Wapplication-transparent adaptation (del sistema) Wapplication-aware adaptation Wapplication-aware adaptation (intermedia)

66 Client-server in Mobile Environments 8Application transparent adaptation /Usata da molte applicazioni client-server che sono state sviluppate assumendo che l’ambiente di una applicazione non cambi (mobility unaware) ambiente stazionarioambiente mobile /Il metodo permette a queste applicazioni di operare anche in ambienti mobili. Il sistema nasconde le differenze tra ambiente stazionario ed ambiente mobile

67 Application Transparent Adaptation 8File system Proxy 8File system Proxy il fle system proxy nasconde la mobilità ed emula sui computer mobili i servizi del file server. CODA file system: logging / CODA file system: il proxy gestisce il funzionamento in modo disconnesso mediante logging delle operazioni eseguite durante la disconnessione.

68 Application Transparent Adaptation 8File system Proxy 8File system Proxy (cnt) /Disconnected Operations : Wil proxy gestisce il funzionamento in modo disconnesso operando un logging delle operazioni effettuate durante la disconnessione WEsse verranno rieseguite al momento della riconnessione. /Weakly Connected Operations: cache object or volume call-back Wil proxy pre-carica (pre-fetches) i dati dal server nella cache del client ed usa object or volume call-back per validarne il contenuto. Volume call-back è pessimistico

69 Application Transparent Adaptation 8File system Proxy(cnt) 8File system Proxy (cnt) /Isolation-only Transaction : WLe operazioni eseguite in modo disconnesso possono portare ad inconsistenze sui dati dovute ad azioni di più computer operanti sugli stessi dati in modo disconnesso Wla loro esecuzione è realizzata dal file system proxy che gestisce la consistenza in dipendenza dalle condizioni di connessione. failure atomicity W Al contrario delle transazioni tradizionali la failure atomicity non è garantita.

70 Application Transparent Adaptation 8Web Proxy 8Web Proxy (WebExpress) Vi sono due componenti tra un Web client e un Web server /The Client Side Intercepr (CSI) /The Server Side Intercepr (SSI) /Insieme eseguono ottimizzazioni per ridurre l’uso di banda e tempi di latenza /Caching : Wsia CSI che SSI operano caching di grafica e oggetti HTML. Se una URL si riferisce ad un oggetto in cache esso viene smistato all’istante Wla cache di SSI contiene risposte da web server usato.

71 Application Transparent Adaptation 8Web Proxy 8Web Proxy (cnt) /Differencing: W Il concetto consiste nel caching di oggetti base comuni sia sul CSI che sul SSI. Al ricevimento di una risposta il SSI calcola le differenze tra l’oggetto base e la risposta e manda le differenze al CSI che ricostruisce per immersione il risultato /Protocol Reduction: W ogni CSI si connette al rispettivo SSI con una singola connessione TCP/IP eliminando costi di riconnessione e “multiplexando” richieste/risposte /Header Reduction: W W HTTP è stateless: quindi ogni richiesta deve specificare le capability del browser.

72 Application Aware Adaptation 8permette alle applicazioni di reagire a cambiamenti di risorse mobili. Si realizza tramite collaborazione tra il sistema ed ogni applicazione 8Si divide in /Client-based Application Adaptation /Client-Server Application Adaptation /Proxy-based Application Adaptation

73 Application Aware Adaptation /Client-based Application Adaptation W W Solo le applicazioni in esecuzione sui clienti mobili reagiscono a cambiamenti nell’ambiente /Client-Server Application Adaptation W W sia le applicazioni sui clienti mobili che quelle sui server reagiscono a cambiamenti nell’ambiente /Proxy-based Application Adaptation W W Supporta adattamenti application-specific che avvengono solo sul server proxy del network fisso

74 Extended Client Server Model /Si base sull’esame dell’impatto che la mobilità ha sul modello client-server (modello client-server esteso) W W La limitazione di risorse computazionali del client può richiedere di eseguire sul server operazioni usualmente eseguite sul client W W Alternativamente, problemi di connessione possono richiedere al client di eseguire operazioni usualmente eseguite dal server thin clientarchitecture 3Un caso estremo viene chiamato thin client architecture full client architecture 3l’altro estremo full client architecture 3Flexible client architecture

75 Thin Client Architecture /Il sistema della Citrix corporation WPermette a diverse piattaforme remote di connettersi ad un terminal server Windows NT. Metaframe thin client Independent Computing Architecture protocol (ICA) WUn server chiamato Metaframe gira sotto WNT su un desktop e comunica con i thin client mediante un protocollo proprietario detto Independent Computing Architecture protocol (ICA) WMetaframe user interface WMetaframe esegue tutte le operazioni in modo remoto i client hanno solo la funzione di user interface

76 Thin Client Architecture /Il sistema della Citrix corporation è stato sperimentato in ambiente wireless dalla Motorola Il risultato di questa ricerca ha mostrato che i limiti di banda non riducono le performance dell’architettura poiché i clienti fanno un uso limitato della banda / Il risultato di questa ricerca ha mostrato che i limiti di banda non riducono le performance dell’architettura poiché i clienti fanno un uso limitato della banda

77 Full Client Architecture / l clienti mobili spesso si trovano in stato di “weak connectivity “ a causa di W W bassa bandwidth Wintermittenza delle comunicazioni e alta latenza disconnected mode W nei casi estremi i clienti devono operare in disconnected mode /La capacità di operare in modo disconnesso offre vantaggi anche quando la connessione è disponibile

78 Full Client Architecture / Il modo disconnesso ha i seguenti vantaggi W risparmio della carica delle batterie Wriduzione del carico sulla rete silenzio readio Win applicazioni militari permette il silenzio readio /L’ architettura full client permette di lavorare in modo disconnesso o debolmente connesso lightweight server / L’emulazione è eseguibile tramite un lightweight server risiedente sul client

79 Flexible Client Architecture / Generalizza entrambe le architetture thin e full client rilocando dinamicamente i ruoli di client e server eseguendo l’applicazione su uno o sull’altro Mobile objects W Mobile objects (o mibile agents) sono codice che viaggia liberamente sul network. Essi permettono di eseguire le funzionalità richieste sia su host mobili che stazionari. WCollaborative Groups: WCollaborative Groups: formati da un gruppo di user disconnessi dal resto del network

80 Flexible Client Architecture Application specific proxy: compute intensive / Application specific proxy: intermediario tra tra clienti e server per eseguire operazioni compute intensive. /Virtual mobility of servers: /Virtual mobility of servers: si replicano servizi sul network per migliorare l’ handoff di clienti mobili

81 Mobile Data Access Supporta lo smistamento di dati dal server e il mantenimento della consistenza dei dati in ambienti mobili e wireless. / Supporta lo smistamento di dati dal server e il mantenimento della consistenza dei dati in ambienti mobili e wireless. data delivery mode WL’accesso ai dati mobili è caratterizzabile dal data delivery mode che può essere di tre tipi: 3Server-push delivery 3Client-pull delivery 3Hybrid delivery

82 Mobile Data Access /Server data dissemination: W W Broadcast disks WIndexing on Air /Client Cache management WAutomated hoarding Wvaried granularity of cache coerence

83 Mobile Data Access Server data dissemination (Broadcast disk) / Server data dissemination (Broadcast disk) W In molte applicazioni (as. Web) il volume di scambio dati dal server al client è molto maggiore del flusso contrario. WInoltre il numero di clienti è molto elevato broadcasting W La soluzione consiste nell’ uso di broadcasting 3Broadcast disk: 3Broadcast disk: quando il server smista i dati in continuazione ai clienti, il canale di broadcast viene assimilato ad un disco da cui i clienti ottendono i dati.

84 Mobile Data Access Server data dissemination (Indexing on Air) / Server data dissemination (Indexing on Air) W Nel metodo push-based i server periodicamente smistano i dati più richiesti, in broadcast ai clienti. hot spot. WIl server può modificare dinamicamente il contenuto dello hot spot. W Il cliente è lazy (trasmette solo quando necessario). Gli indici sono strutturati per minimizzare: WIl query time: tempo tra issue-of-a-query e ricevimento della risposta WListening time: tempo di ascolto del canale

85 Mobile Data Access Client cache management: / Client cache management: si basa sul caching di dati acceduti frequentemente. Permette di gestire Wdisconnected mode e Wintermitted connected mode /la connettività debole rende costoso il mantenimeno coerente del contenuto della cache Hoarding /Il termine Hoarding indica tecniche di pre-fetching dei dati prima della disconnessione.

86 Mobile Data Access Automated Hoarding / Automated Hoarding. WCaching sul client prima di disconnessione /Varied granularity of Cache coerence Westensione di metodi client/server tradizionali ad ambienti mobile Cache invalidation reports / Cache invalidation reports dissemination Wapproccio all’invalidazione della cache basato sulla dissemination (Barbara & Imielinski). Periodicamente il server invia un report di invalidazione

87 Mobile Data Access Automated Hoarding distanza semantica. W Automated Hoarding. I files non locali vengono ‘cached’ sulla cache del client prima della disconnessione. Vi sono tre tecniche basate sulla misura della distanza semantica tra i files. WVaried granularity of Cache coerence: WVaried granularity of Cache coerence: estensione di metodi di consistenza in applicazioni client-server tradizionali: 3callback approach: i server inviano messagi di invalidation 3detection approach: i clent inviano query di validazione

88 Mobile Data Access Cache invalidation reports: / Cache invalidation reports: WInvece di richiedere al server la validazione di copie cached i clienti si pongono in ascolto di report di invalidazione in arrivo dai server. Tre metodi 3TS - broadcasting Time Stamps 3AT - Amnesic Terminals 3 SIG - SIGnatures

89 Wireless LAN 8Vi sono diverse proposte Standard. Le principali sono /IEEE /Bluetooth /Home RF /PAN

90 Wireless LAN

91 Lo Standard IEEE Lo Spettro Radio /Lo spettro delle radio-frequenze (RF) e` deviso in due tipi di bande: assegnate e libere. W le prime sone dedicate a grandi organizzazioni, W - le seconde sono sogette a regole ma prive di restrizioni e tasse

92 Lo Standard IEEE Spread Spectrum 8 Basato su un metodo che permette un buon impiego di ampiezze di banda limitata detto Spread Spectrum (SS) - esso garantisce comunicazioni affidabili anche in ambienti a rumore elevato

93 Lo Standard IEEE / Molti network wireless attuali seguono le specifiche dello standard IEEE per reti WLAN multi-hopping operanti nella banda di 2.4GHz. Lo standard europeo più vicino è lo ETSI (European Telecomm. Standard Institute) / I metodi di uso uniforme del canale classici: 3Time Division Multiple Access (TDMA) 3 Frequency division Multiple Access (FDMA) 3 Code Division Multiple Access (CDMA) /non fanno un uso efficiente della bandwidth di canale poiché richiedono allocazioni on demand

94 Lo Standard IEEE la tecnologia SS permette la massima data rate su un canale a banda limitata. 8Vi sono due tecniche implementative W Frequency Hopping Spread Spectrum (FHSS) W Direct Sequence Spread Spectrum (DSSS) (chiamata anche Direct-Sequence Modulation DSM)

95 IEEE FHSS 8Il metodo FHSS usa diversi canali di frequenza / Il trasmettitore invia un segnale su un canale per un breve periodo, saltando (hopping) poi in modo pseudo-random, su un altro canale di frequenza. / Il ricevitore deve seguire la stessa sequenza pseudo-random ripetendogli stessi salti del trasmettitore.

96 IEEE FHSS 8Vantaggi: / - non richiede una banda contigua / - semplice ed economico da realizzare 8Svantaggi: / - rende l' handower tra celle contigue difficile da coordinare

97 IEEE DSSS /Nel metodo DSSS, il trasmettitore sostituisce gli zeri e gli uno di un segnale digitale in banda base da trasmettere, con codici di lunghezza fissa, producendo un allargamento (spread) di banda di un’opportuna quantita' /Il ricevitore usa lo stesso codice del trasmettitore e mediante correlazione ricostruisce il segnale trasmesso.

98 IEEE DSSS 8Vantaggi : / miglior copertura a parita` di potenza irradiata ( piu' del 50% di FHSS) / miglior qualita` del segnale / handower piu' facile 8Svantaggi: / richiede una banda contigua

99 IEEE DSSS 8Network Multihop / La configurazione più semplice di un network wirless è composta da una unità mobile connessa ad una stazione di supporto a sua volta connessa ad una rete wired. Questa semplice configurazione è detta single hop. /La tecnologia multi-hop permette ad una radio di smistare pacchetti ad altre radio situate sul percorso verso la loro destinazione. /La tecnologia multi-hopping permette di limitare la potenza di emissione delle radio limitando il consumo delle batterie.

100 IEEE DSSS 8Architettura di un Wireless LAN multi hop /Le componenti generiche di una LAN radio sono: W Radio Modules WAccess Points WBridges WNetwork Adapters /Un network tipico è composto da W access point / repeater W radio node / radio end node

101 IEEE DSSS

102 CORB A Common Object Request Broker Architecture 8Cos’è CORBA /La specifica di un’architettura Object-Oriented per applicazioni distribuite 8A cosa serve /ad accedere a informazioni distribuite in ambito di applicazioni desktop /a trasformare programmi e sistemi esistenti in risorse di rete

103 CORB A Common Object Request Broker Architecture 8CORBA si basa su distributed object computing. 8CORBA rende possibile il riuso di software tramite elaborazioni ad oggetti distribuite 8I due ingredienti essenziali di CORBA sono quindi /integrazione di un objct-model con distributed computing /l’uso di un broker - intermediario che smista messaggi tra client e server

104 CORB A Common Object Request Broker Architecture 8Il broker ha la capacità di /scegliere i server più adatti a soddisfare una richiesta /separare l’interfaccia (vista dal cliente) dall’implementazione del server 8I principali meccanismi per elaborazioni distribuite in uso sono /Remote Procedure Call (RPC) /API specifiche di comunicazione per applicazioni in rete

105 MSM Meccanismi per lo Scambio dei Messaggi 8Si usano due pimitive Send e Receive e una classe message con una struttura del tipo typedef enum{NONE,TIMEOUT} Errortype; class Message { private: errorType ErrorReport; public: class portId{...}; class messagetype {...}; void send(OUT PortId p, OUT Message m); void Receive(OUT PortId p. IN Message m); };

106 MSM Meccanismi per lo Scambio dei Messaggi 8Send e Receive possono essere sincrone o asincrone, nel primo caso sono entrambe bloccanti, nel secondo Send è non bloccante, mentre receive può esserlo o no a seconda delle implementazioni. Tipo Send blocc. Receive blocc. Esempio Sincrono SI SI Occam Asincrono NO SI Mach Asincrono NO NO Charlotte

107 SR Send e Receive 8Una Receive bloccante non ha problemi in processi multi-thread. 8Essa puo’ attewndere all’infinito un messaggio destinato a non arrivare. Si ovvia a questi inconvenienti con timeout, dopo un certo tempo l’operazione subisce una terminazione forzata. 8Delivery failure - del tipo seguente:

108 DF Tipi di Delivery Failure /si perdono i messaggi (nei sender,receiver o gataway) /in network WAN si hanno duplicazioni o smistamenti fuori ordine e forti ritardi /in network LAN si hanno solo perdite (rare) /la rete si partiziona in sottoreti disconnessesi /un processore puo’ avere un guasto (fail). /Si suppone comunque di non avere data corruption (correzione di errore).

109 Azioni in caso di delivery failure 8i processi devono fornire meccanismi per ottenere un grado di affidabilita’ adeguato: ad esempio usare acknowledge positivi (messaggio ricevuto) /Request-reply protocol: tipico del client-server. La comunicazione e’ di solito sincrona e il cliente si blocca fino all’arrivo della risposta. /Un altro metodo si basa su tre primitive (Amoeba, Chorus, Mach..): DoOperation, GetRequest, SendReply

110 OSF/DCE Distributed Computing Environment 8Un insieme di tool software e servizi che semplificano la programmazione distribuita /DCE RPC: cuore del sistema facilita lo sviluppo delle applicazioni per l’alto livello di astrazione. /DCE Directory Service nmeccanismo reliable per associare nomi alle applicazioni. /DCE Security Service /DCE Distributed time service /DCE Threads /DCE Distributed File Service

111 RELIABILITY 8Il termine unreliable message significa letteralmente: “trasmettere un singolo messaggio senza richiesta di acknowledgement e/o meccanismi di retry”. 8Message Identifier: identificativo unico di un messaggio. E’ formato da due parti: /requestId generato sequezialmente in modo crescente /senderId identificativo del processo sender (es. una porta)

112 COMUNICAZIONI CLIENT-SERVER 8Il protocollo RPC: Si presenta in tre forme: /request protocol (R) - isi usa quando non e’ richiesto un valore di ritorno (tipo void). /Request-reply protocol (RR) - si richiede un risultato di ritorno, la risposta del server funge anche da ack. /request-reply-acknowledge reply (RRA) protocol - basato su tre messaggi: request reply ack. Quest’ultimo contiene il reqestId del reply message da validare

113 GROUP COMMUNICATION Si basa sul concetto di Multicast - un messaggio inviato da un processo ai processi membri di un gruppo. Utile per: /Fault tolerance basata su servizi replicati: un gruppo di server che eseguono lo stesso servizio. /Localizzazione di oggetti in servizi distribuiti /Servizi piu’ efficienti /Aggiornamenti multipli /Importante nei sistemi wireless

114 GROUP COMMUNICATION 8Atomicità Tutti i membri di un gruppo devono ricevere tutti i request message a loro inviati. /Atomic Multicast: invio di un messaggio che è ricevuto da tutti i membri del gruppo o da nessuno. 8Reliability /Reliable Multicast: metodo di trasmissione che cerca di raggiungere tutti i membri del gruppo senza garanzia di successo.

115 GROUP COMMUNICATION 8Ordering Riguarda l’ordine di ricevimento dei messaggi da parte dei membri di un gruppo. Nei multicast atomico e reliable si usano code FIFO di ordinamento dei messaggi. /Multicast totalmente ordinato: una serie di messaggi inviati a un gruppo e che devono raggiungere i membri del gruppo tutti nello stesso ordine.

116 CORBA (Un Esempio) 8Hello World Classico esempio introduttivo qui realizzato in forma client-server. /Versione C++: #include int main(int, char*[])  cout<< “Hello World!” << endl; return 0 

117 CORBA (Hello World) 8Hello World, versione Java: public class Greeter  public static void main (String args[])  System.out.println(“Hello World!”); 

118 CORBA (Hello World) 8Hello World in Corba /Codice IDL: interface Hello;  void say_hello();  /Un’interfaccia IDL equivale ad una classe astratta in C++ o ad un’interfaccia Java

119 CORBA (Hello World) 8Hello World in Corba (linguaggio C++) /Si deve prima tradurre il codice IDL in C++ con il compilatore IDL Widl Hello.idl (comando di attivazione) Wquesto comando crea quattro files Hello.h, Hello.cpp, Hello_skel.h, Hello_skel.cpp /Quindi si implementano server e client

120 CORBA (Hello World) 8Hello World in Corba (C++) /Implementazione del server: si crea una classe implementazione Hello_impl #include class Hello_impl: public POA_Hello; public PortableServer::RefCountServantBase  public: virtual void say_hello() throw(CORBA::SystemException);    ;

121 CORBA (Hello World) 8Questa classe eredita dallo skeleton POA_Hello, quindi si inlude Hello_skel.h 8Questa classe eredita dallo skeleton POA_Hello, quindi si include Hello_skel.h 8Hello_impl e’ classe derivata da POA_Hello 8Inoltre si devono implementare tutte le operazioni della interfaccia in IDL (qui solo say_hello). Hello_impl.cpp e’ quindi: #include void Hello_impl::say_hello() throw(CORBA::SystemException)  cout<< “Hello World!” << endl; 

122 CORBA (Hello World) 8Includiamo OB/CORBA.h che contiene le definizioni delle classi standard CORBA 8Infine includiamo la definizione della classe Hello_impl #include void Hello_impl::say_hello() throw(CORBA::SystemException)  cout<< “Hello World!” << endl; 

123 CORBA (Hello World) 8Si salvano quindi la class definition in Hello_impl.h e l’implementazione in Hello_impl.cpp 8Infine si scrive il programma server. Il trattamento delle eccezioni e’ semplificato e sdoppiato in due funzioni main() e run(). 8main() crea l’ ORB e chiama run()

124 CORBA (Hello World) #include int run(CORBA::ORB_ptr); int main(int argc,char* argv[])  int status = EXIT_SUCCESS; CORBA::ORB_init(argc, argv); status = run(orb); try  orb -> destroy(); 

125 CORBA (Hello World) catch(const CORBA::Exception&)  status = EXIT_FAILURE;  return status;  8la prima cosa che fa e’ inizializare ORB. Questa operazione richiede i parametri con cui il programma e’ stato attivato 8la funzione run() viene poi attivata 8il codice cattura e stampa tutte le eccezioni sollevate da ORB_init() o run() 8Se ORB e’ stato creato con successo viene anche distrutto 8viene restituito lo stato di ritorno

126 CORBA (Hello World) 8La funzione run() e’: int run(CORBA::ORB_ptr orb)  CORBA::Object_var poaObj= orb ->resolve_initial_references(“RootPOA”); PortableServer::POA::_var rootPoa = PortableServer::POA::_narrow(poaObj); PortableServer::POAManager_var manager = rootPoa -> the_POA Manager(); Hello_impl* helloImpl = new Hello_impl(); PortableServer::POA::ServantBase_var servant = helloImpl; 

127 CORBA (Hello World) 8La funzione run() (continuazione): Hello_var hello = helloImpl ->_this(); CORBA::String_var s = orb -> object_to_string(hello); const char* refFilw = “Hello.ref”; ofstream out(refFile); out << s << endl; out.close(); manager ->activate(); orb -> run(); return EXIT_SUCCESS; 

128 CORBA (Hello World) 8Implementazione del client: #include int run(CORBA::ORB_ptr); int main(int argc, char* argv[])  …// come il server 

129 CORBA (Hello World) 8Implementazione del client (continuazione): int run(CORBA::ORB_ptr orb);  const char* refFile = “Hello.ref”; ifstream in(refFile); char s[2048]; in >> s; CORBA::Object_var obj = orb -> string_to_object(s); Hello_var hello = Hello::_narrow(obj); hello -> say_hello(); return 0 

130 CORBA (Hello World) 8Implementazione del client (continuazione): int run(CORBA::ORB_ptr orb);  const char* refFile = “Hello.ref”; ifstream in(refFile); char s[2048]; in >> s; CORBA::Object_var obj = orb -> string_to_object(s); Hello_var hello = Hello::_narrow(obj); hello -> say_hello(); return 0 


Scaricare ppt "Massimo Ancona Sistemi Distribuiti. Un sistema distribuito (SD) è un insieme integrato di 8Hardware 3processori 3una struttura di rete 8Software 3componenti."

Presentazioni simili


Annunci Google