2003-2004Reti di Calcolatori1 Il modello Client/Server La comunicazione Sun RPC Possibilità di invocare una procedura non locale operazione che interessa.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Il livello di trasporto
Architetture dei sistemi distribuiti Prof
PHP.
Programmazione con socket
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
Massa Laura Mela Enrica
1 Reti di Calcolatori Esercitazione 5 Implementazione del TFTP tramite RPC Copyright © by D. Romagnoli & C. Salati Alma Mater Studiorum - Universita'
Giuseppe Fabio Fortugno.
Programmazione Procedurale in Linguaggio C++
Come programmare servizi di rete?
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Remote file access sulla grid e metodi di interconnesione di rete M. Donatelli, A.Ghiselli e G.Mirabelli Infn-Grid network 24 maggio 2001.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Struttura dei sistemi operativi (panoramica)
INTRODUZIONE AD OMNET++
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
nome: sequenza di caratteri usata per denotare un oggetto
memoria gestita staticamente:
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Sistemi Operativi GESTIONE DEI PROCESSI.
Reti di Calcolatori IL LIVELLO RETE.
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Fondamenti di Informatica1 Realizzazione software Due fasi: 1. Specifica dell'algoritmo 1.a Definizione dei dati 1.b Definizione della modalità della loro.
I File.
Espressioni condizionali
Reti di Calcolatori1 Il modello Client/Server La comunicazione Se sintetizziamo uno scenario completo possiamo identificare diverse interfacce.
Reti di Calcolatori Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore.
Reti di Calcolatori1 Il modello Client/Server Lo Standard OSI OSI (open system interconnection) è soprattutto uno standard di interconnessione.
Le funzioni a tempo di esecuzione
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Guida IIS 6 A cura di Nicola Del Re.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Il modello di riferimento OSI
Unità Didattica 3 Linguaggio C
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
L’architettura a strati
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Servizio di newsgroup con replicazione dei server Studente: Letizia Cheng Cheng Sun Matricola: Reti di Calcolatori LS – Prof. A. Corradi A.A. 2003/2004.
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 -Socket library Ernesto Damiani Lezione 1.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Servizi Internet Claudia Raibulet
Corso di Reti di Calcolatori LS Progetto di un server FTP in grado di coordinarsi con altri mirror per garantire QoS di Marco Buccione.
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
GESTIONE RETI TCP/IP l troubleshooting è necessario per risolvere molti problemi che si possono verificare all'interno di una rete, una delle aspirazioni.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
Transcript della presentazione:

Reti di Calcolatori1 Il modello Client/Server La comunicazione Sun RPC Possibilità di invocare una procedura non locale operazione che interessa un nodo remoto e ne richiede un servizio RPC – Remote Procedure Call

Reti di Calcolatori2 Il modello Client/Server Sun RPC Proprietà e Requisiti Eterogeneità:dati diversi su macchine diverse semantica diversa del modello locale esteso in modo remoto Efficienza: implementazioni efficienti del modello reti locali ad elevata velocità di trasferimento dati Autenticazione: controllo di accesso da parte di utenti autorizzati Possibilità di invocare una procedura non locale operazione che interessa un nodo remoto e ne richiede un servizio Il supporto scambia messaggi per consentire identificazione dei messaggi di chiamata e risposta identificazione unica della procedura remota autenticazione del chiamante e del servitore amministrazione della rete e gestione di alcuni tipi di errori dovuti alla distribuzione implementazione errata errori dell'utente roll-over (ritorno indietro)

Reti di Calcolatori3 Il modello Client/Server Sun RPC Proprietà e Requisiti Il meccanismo RPC deve gestire i seguenti eventi anomali: incongruenze di protocollo RPC incongruenze fra versioni di programmi errori di protocollo (ad esempio parametri errati) autenticazione fallita sulla procedura remota e identificazione del motivo del rifiuto dell'accesso altre ragioni per cui la procedura remota non viene chiamata o eseguita

Reti di Calcolatori4 Il modello Client/Server Sun RPC Semantica di Interazione A fronte di possibilità di guasto, il cliente può controllare o meno il servizio maybe at least once (SUN RPC) at most once exactly once Per il parallelismo e la sincronizzazione possibile operazioni per il servitore sequenziali (SUN RPC) paralleli operazioni per il cliente sincrone(SUN RPC) asincrone

Reti di Calcolatori5 Il modello Client/Server Sun RPC Implementazione RPC meccanismo classificabile in due categorie secondo il grado di trasparenza Open Network Computing (Sun Microsystems) Network Computing Architecture (Apollo) Open Network Computing (ONC) chiamata RPC Sun (diversa dalla locale) primitiva callrpc() parametri necessari nome del nodo remoto identificatore della procedura da eseguire specifiche di trasformazione degli argomenti (eXternal Data Representation XDR)

Reti di Calcolatori6 Il modello Client/Server Sun RPC Implementazione ONC Il meccanismo usa una tecnica nota come wrapping: uso una chiamata callrpc() il programmatore sa che sta facendo una rpc non cè trasparenza

Reti di Calcolatori7 Il modello Client/Server Sun RPC Network Computing Architecture (NCA) Ai due lati della comunicazione, client e server routines stub per ottenere la trasparenza Chiamate locali allo stub: g li stub sono forniti dall'implementazione generati automaticamente Le parti di programma sono "del tutto" inalterate ci si dirige verso lo stub che nasconde le operazioni

Reti di Calcolatori8 Il modello Client/Server Sun RPC In Unix Le RPC sfruttano i servizi delle socket sia TCP per stream servizi con connessione sia UDP per datagrammi (default SUN) servizi senza connessione attesa del risultato e previste ritrasmissioni

Reti di Calcolatori9 Il modello Client/Server Sun RPC Un programma contiene più procedure remote che possono essere invocate Sono previste versioni multiple delle procedure Un unico argomento in ingresso ed in uscita per ogni invocazione Semantica e controllo concorrenza mutua esclusione garantita nell'ambito di un programma: una sola invocazione per volta Semantica e affidabilità Uso di protocollo UDP Semantica at-least-once Vengono fatte un numero a default di ritrasmissioni dopo un intervallo di time-out (in genere 4 secondi) Non si prevede alcuna concorrenza a default nell'ambito dello stesso programma server Possibilità di deadlock ==> se un server in RPC richiede, a sua volta, un servizio al programma chiamante

Reti di Calcolatori10 Il modello Client/Server Sun RPC Naming Messaggio RPC deve contenere per la identificazione globale numero di programma numero di versione numero di procedura Numeri di programma (32 bit) 0 - 1FFFFFFFh predefinito Sun Applicazioned'interesse comune h - 3FFFFFFFh definibile dall'utente Applicazioni debug dei nuovi servizi h - 5FFFFFFFh riservato alle applicazioni Per generare dinamicamente numeri di programma Altri gruppi riservati per estensioni notare: 32 bit per il numero di programma ma ci sono solo 16 bit di porte Aggancio DINAMICO gestito direttamente da RPC Autenticazione sicurezza ==> identificazione del client presso il server e viceversa sia in chiamata sia in risposta

Reti di Calcolatori11 Il modello Client/Server Sun RPC Controllo degli Accessi Null authentication UNIX authentication: modalità UNIX struct auth_unix { unsigned int stamp; char machine[255]; unsigned int uid; unsigned int gid; unsigned int gids[16]; }; La struttura del controllore è Null authentication Problemi - identificazione troppo legata a UNIX - non universalità dell'identificazione legata a UID e GID - mancanza di un controllore passato al partner Data Encryption Standard authentication - client come stringa di caratteri netname - identificazione unica del cliente - controllore tempo del sistema client cifrato

Reti di Calcolatori12 Il modello Client/Server Sun RPC Servizi Standard Routine di libreria RPC Descrizione rnusers() Fornisce il numero di utenti di un nodo rusers() Fornisce informazioni sugli utenti di un nodo havedisk() Determina se un nodo ha un'unità disco rstat() Ottiene dati sulle prestazioni verso un nodo rwall() Invia al nodo un messaggio getmaster() Ottiene il nome del nodo master per NIS getrpcport() Ottiene informazioni riguardo agli indirizzi TCP legati ai servizi RPC yppasswd() Aggiorna la parola d'accesso in NIS Esempi di Numeri di programma noti portmap100000(port mapper) rstat100002(demone rstad) rusers100002(demone rusersd) nfs100003(demone nfsd)

Reti di Calcolatori13 Il modello Client/Server Sun RPC Il Port mapper Per gestire il mapping delle applicazioni sulle porte è necessario usufruire di un servizio standard che si occupa di questa allocazione dinamica Lavora sulla porta 111 e si occupa del dispatching delle porte

Reti di Calcolatori14 Il modello Client/Server Sun RPC Il Port mapper Il port mapper abilita due gestori di trasporto propri uno per UDP ed uno per TCP con due socket legate allo stesso numero di porta (111) Il port mapper gestisce la tabella identifica il numero di porta associato ad un qualsiasi programma allocazione dinamica dei servizi sui nodi Il port mapper registra i servizi sul nodo e offre procedure per ottenere informazioni; gestisce le seguenti operazioni: Inserimento di un servizio Eliminazione di un servizio Corrispondenza associazione astratta e porta Intera lista di corrispondenza Supporto all'esecuzione remota port mapper utilizza a default solo il trasporto UDP (perché i servizi sono molto brevi) Questi servizi possono essere invocati sia da locale sia da nodi (e clienti) remoti

Reti di Calcolatori15 Il modello Client/Server Sun RPC Gestione del servizio: Il gestore del trasporto

Reti di Calcolatori16 Il modello Client/Server Sun RPC Un esempio di Broadcast: getTime()

Reti di Calcolatori17 Il modello Client/Server Sun RPC Un esempio di Broadcast: getTime()

Reti di Calcolatori18 Il modello Client/Server Sun RPC La gestione dei parametri I paramteri delle funzioni devono essere gestiti in automatico dalle stub è necessario definire degli strumenti descrittivi affinché le stub vengano generate in modo corretto Linguaggio dichiarativo di specifica dei dati e della interazione per RPC due sottoinsiemi di definizioni 1. definizioni di tipi di dati definizioni XDR per generare le definizioni in C e le relative funzioni per la conversione in XDR 2. definizioni delle specifiche di protocollo RPC definizioni di programmi RPC per il protocollo RPC (identificazione del servizio e parametri di chiamata) Esempio: /* definizioni XDR */ const MAXNAMELEN=256; const MAXSTRLEN=255; struct r_arg { string filename ; int start; int length;}; struct w_arg { string filename ; opaque block<>; int start;}; struct r_res { int errno; int reads; opaque block<>;}; struct w_res { int errno; int writes;}; /* definizione di programma RPC */ program ESEMPIO { version ESEMPIOV { int PING(int)=1; r_res READ(r_arg)=2; w_res WRITE(w_arg)=3;}=1; }=0x ;

Reti di Calcolatori19 Il modello Client/Server Sun RPC Definizione XDR XDR descrive solo tipi da tradurre in C nessuna ridondanza della codifica Dichiarazioni di tipi atomici del linguaggio C con aggiunte bool due valori: TRUE e FALSE tradotto nel tipo bool_t string con due utilizzi con specifica del numero massimo di caratteri lunghezza arbitraria con string nome ; tradotto inchar *nome; string cognome<>; tradotto inchar *cognome; Diverse funzioni XDR generate dal compilatore per gestire la conversione (xdr_string()) opaque una sequenza di bytes senza un tipo di appartenenza (con o senza la massima lunghezza) opaque buffer ;tradotto da RPCGEN in struct {u_int buffer_len; char *buffer_val; } buffer; opaque file<>;tradotto da RPCGEN in struct {u_int file_len; char *file_val; } file;

Reti di Calcolatori20 Il modello Client/Server Sun RPC Definizione XDR Dichiarazioni di tipi semplici Analoga alla dichiarazione in linguaggio C simple-declaration: type-ident variable-ident colortype color;tradotto da RPCGEN in colortype color; Dichiarazione di vettori a lunghezza fissa fixed-array-declaration: type-ident variable-ident "[" value "]" colortype palette[8]; tradotto da RPCGEN in colortype palette[8]; Dichiarazione vettori a lunghezza variabile variable-array-declaration: type-ident variable-ident " è possibile specificare la lunghezza massima del vettore oppure lasciare la lunghezza arbitraria int heights ;tradotto da RPCGEN in struct{u_int heights_len; int *heights_val;}widths; Ci sono inoltre: Dichiarazione di tipi puntatori come supporto offerto al trasferimento di strutture recursive Definizione di tipi struttura Definizione di tipi unione Definizione di tipi enumerazione Definizione di tipi costante Definizione di tipi non standard

Reti di Calcolatori21 Il modello Client/Server Sun RPC Definizione Programmi RPC specifiche di protocollo RPC identificatore unico del servizio offerto modalità d'accesso alla procedura mediante i parametri di chiamata e di risposta program-definition: "program" program-ident "{ version-list "}" "=" value version-list: version "; version ";" version-list version: "version" version-ident "{ procedure-list "}" "=" value procedure-list: procedure ";" procedure ";" procedure-list procedure: type-ident procedure-ident "(" type-ident ")" "=" value il compilatore, genera le due procedure stub

Reti di Calcolatori22 Il modello Client/Server Sun RPC vs Java RMI La infrastruttura Java consente di ottenere riferimenti ad oggetti remoti e richiedere operazioni ad oggetti che non sono residenti localmente Il fatto di avere Java e le classi rende necessario integrare il concetto di classi e di riferimenti remoti Un oggetto Java può riferire oggetti remoti solo se questi hanno predefinito una interfaccia Remota Dalla parte cliente, un proxy capace di portare le richieste dall'altra parte Dalla parte server, uno stub che passa la richiesta al remoteObject Se si passa un oggetto che possiede una InterfacciaRemota, si passa un riferimento e si creano skeleton e stub La generazione degli skeleton e stub può avvenire automaticamente Uso normale: richiesta ad un gestore di nomi Sistema di Binding: un Registry per ogni nodo che registra le possibilità di servizio locale e che risponde alle richieste remote Trasporto: uso di unica connessione TCP tra nodi per trasportare richieste e operazioni efficienza, sicurezza??? ;