CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti. Le Socket

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CdL MAGISTRALE in INFORMATICA A.A. 2014-2015. corso di Sistemi Distribuiti. Le Socket"

Transcript

1 CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti 6. Strumenti per l IPC : dalle socket a RPC/RMI Prof. S.Pizzutilo Le Socket Una socket è una astrazione software rappresentante un punto terminale di interfacciamento per la comunicazione in rete. Mediante tale astrazione software è cioè possibile creare e rappresentare un terminale (interfaccia) di connessione con una semplice chiamata di funzione, al cui valore di ritorno viene associato un nome. In seguito, attraverso la manipolazione di tale entità, con altre funzioni correlate (primitive), si potrà stabilire una connessione vera e propria con entità dello stesso tipo, consentendo la comunicazione in rete. Esempio di comunicazione connection-oriented usando le socket CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - 1

2 Relazione tra protocolli, applicazioni e API socket Agli inizi degli anni 80, l ARPA con l Università di Berkeley crea un'interfaccia per far comunicare applicazioni che giravano su macchine UNIX connesse in rete. Fu deciso anche di adoperare per quanto possibile il sistema di chiamate a funzioni esistente in UNIX e di aggiungere un nuovo sistema di chiamate per supportare le funzioni TCP/IP. Il risultato fu una interfaccia socket BSD (Berkeley Software Distribution) UNIX. Nel 1991 la Microsoft decise di definire un'api (Application Program Interface) standard per applicazioni TCP/IP in ambiente Windows. Applicazione Socket API Implementazione dei protocolli (S.O.) Applicazione Socket API TCP TCP IP HOST canale IP canale Es: ethernet Router IP HOST Una Socket: una visione di insieme Una socket è un dispositivo software che consente la comunicazione (trasferimento di dati) tra due processi su internet in una LAN Æ Interfaccia indipendente dalla rete Æ Uso di un astrazione unica per i nodi comunicanti Æ Schema di naming a due livelli Processo utente Socket system call Protocollo di trasporto e di rete (TCP/IP) kernel Gestore di data link (ethernet) CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti 2

3 Una Socket: una visione di insieme Ø Nel gergo socket uno dei processi che comunicano è chiamato Server (il receiver) e l altro Client (il sender). Ø Tra i due processi il server è quello che ha controllo maggiore, poiché è il processo che inizialmente crea la socket. Ø Più client possono comunicare attraverso la stessa socket, ma solo un server può essere associato ad una definita socket. Il fatto che un programma agisca come client o come server determina un differente uso delle API Socket Il Client(il sender) ha bisogno di conoscere l indirizzo del server (ma non il viceversa) Il Server (il receiver) può apprendere informazioni sull indirizzo del client una volta stabilita la connessione CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - Le famiglie di Socket Esistono varie famiglie di socket. Ogni famiglia : riunisce le socket che utilizzano gli stessi protocolli (Protocol Family) sottostanti, supporta un sottoinsieme di stili di comunicazione e possiede un proprio formato di indirizzamento (Address Family) Alcuni esempi di famiglie Ø Unix Domain socket: file in una directory di un computer local host. Consentono il trasferimento di dati tra processi sulla stessa macchina Unix Ø Internet socket (AF_INET): consentono il trasferimento di dati tra processi posti su macchine remote connesse tramite una LAN CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - 3

4 I tipi di Socket Il tipo di una socket definisce una modalità di comunicazione che una socket usa per inviare dati: q Streaming Socket (SOCK_STREAM): Fornisce una connessione sequenziale, affidabile e full-duplex. Il protocollo TCP supporta questo tipo di socket. q Datagram socket (SOCK_DGRAM): Supporta i datagrammi (privo di connessione, messaggi inaffidabili di una lunghezza massima prefissata). Il protocollo UDP supporta questo tipo di socket AF_INET + SOCK_STREAM determineranno una connessione TCP, AF_INET + SOCK_DGRAM determineranno una trasmissione UDP CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - Socket, Protocolli e Porte su un singolo host Una socket che usa la famiglia di protocolli TCP/IP è univocamente determinata da un indirizzo internet, un protocollo di comunicazione (TCP o UDP) e un numero di porta Applicazioni Socket TCP Applicazioni Socket UDP Porte TCP TCP UDP Porte UDP IP Sockets bound to ports Host Descriptor reference CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - 4

5 Programmazione socket Il client deve contattare il server Il programma server deve essere in esecuzione come processo di background. Il programma server deve avere una porta (socket) che dia il benvenuto al contatto iniziale stabilito da un processo client in esecuzione. Durante l handshake a tre vie il TCP server crea un nuova socket (di connessione) dedicata a quel particolare client Il client contatta il server tramite: la creazione di una socket locale; la specifica di un indirizzo del processo server (IP, numero di porta relativi al processo); Dopo la creazione della socket nel client, TCP avvia un handshake a tre vie (tre messaggi di SYNC e ACK) e stabilisce una connessione TCP con il server. CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - Esempio 1: Primitive BSD UNIX per gestire la comunicazione mediante socket s = socket (domain, type, protocol) bind (s, addr, addr_len) (S) connect (s, server_addr, server_addrlen) (S) listen(s, backlog) (C) snew=accept(s,client_addr,client_addrlen)(c) nbytes = read(snew, buffer, amount) write(s, message, msg_lenght) (C/S) (C/S) (C/S) Stream type amount =recvfrom(s, buffer, sender_addr)(c/s) sendto (s, msg, receiver_addr) (C/S) datagram type CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - 5

6 Esempio2 : Interazione TCP Client/Server con WSA Le Windows Sockets API (WSA) sono una specifica estensione delle socket BSD UNIX elaborata per l'ambiente operativo Microsoft Windows. STREAM SOCKET Server 1. (Inizializzare una WSA Winsock API), 2. Creare una socket, 3. Assegnare un local address alla socket, 4. Settare la socket all ascolto, 5. Iterativamente (processo di background): a. Accettare una nuova connessione, b. Inviare e ricevere dati, c. Chiudere la connessione. Client 1. (Inizializzare una WSA) 2. Creare una Socket 3. Connettersi al server 4. Inviare e ricevere dati 5. Chiudere la connessione BSD Sockets used for datagrams Sending a message Receiving a message s = socket(af_inet, SOCK_DGRAM, 0) s = socket(af_inet, SOCK_DGRAM, 0) bind(s, ClientAddress) sendto(s, "message", ServerAddress) bind(s, ServerAddress) amount = recvfrom(s, buffer, from) ServerAddress and ClientAddress are socket addresses Tratto da: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers

7 Esempio2 : Interazione UDP Client/Server con WSA DATAGRAM SOCKET Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local address alla socket 4. Iterativamente: a. Inviare e ricevere dati b. Chiudere la connessione Client 1. (Inizializzare una WSA) 2. Creare una Socket 3. Inviare e ricevere dati 4. Chiudere la connessione CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti - BSD Sockets used for streams Requesting a connection Listening and accepting a connection s = socket(af_inet, SOCK_STREAM,0) connect(s, ServerAddress) write(s, "message", length) s = socket(af_inet, SOCK_STREAM,0) bind(s, ServerAddress); listen(s,5); snew = accept(s, ClientAddress); n = read(snew, buffer, amount) ServerAddress and ClientAddress are socket addresses Tratto da : Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers

8 Da message passing a procedure call ü L IPC basato sui messaggi consente due operazioni: Ø Send (messaggio) la dimensione del messaggio può essere fissa o variabile Ø Receive (messaggio) ü Se P e Q vogliono comunicare, hanno bisogno di: q stabilire un canale di comunicazione fra di loro, fisicamente (es. memoria condivisa, bus hardware) logicamente (es. proprietà logiche) q scambiare messaggi per mezzo di send e receive Encoding e decoding dei messaggi Conservazione della semantica dei messaggi tra sistemi disomogenei Nodo A Nodo B buffer messaggio encoding Messaggio codificato I valori dei puntatori perdono il loro significato quando sono trasferiti da uno spazio degli indirizzi di un processo ad un altro. Oggetti diversi di un programma occupano spazio di memoria diverso a seconda delle architetture messaggio decoding Messaggio codificato buffer Tagged representation : nel messaggio vengono codificati il tipo ed il valore degli oggetti Untagged representation : il messaggio contiene solo il valore dell oggetto senza alcuna specifica del tipo. Presuppone che il programma ricevente sappia decodificare i dati ricevuti. 8

9 Istruzioni di chiamata a procedura locale ü ü L istruzione di chiamata ( Call ) è un istruzione di salto, il cui operando è l indirizzo della prima istruzione della procedura, detto entry-point address L istruzione di ritorno ( Return ), al termine della esecuzione della procedura chiamata, è una istruzione di salto alla procedura chiamante, alla istruzione che segue immediatamente la istruzione di call: Necessità di conservare l indirizzo di tale istruzione, detto return address main. call A.. call A Proc A call B... return Proc B... return Il return address può essere conservato in: Registri o locazioni di memoria Difficoltà nel chiamare un altra procedura all interno di quella chiamata (procedure nidificate) Locazione di memoria associata alla procedura L istruzione di return è una istruzione di salto alla locazione di memoria che conserva l indirizzo della istruzione della procedura chiamante È possibile la nidificazione delle procedure Stack È possibile sia la nidificazione delle procedure che la ricorsività (abilità di una procedura a chiamare se stessa) Passaggio dei parametri tra procedure Ø La procedura chiamante può passare alla procedura chiamata dei valori detti parametri (o argomenti o dati ). Ø La procedura chiamata fornisce dei parametri ( o risultati) alla procedura chiamante. La procedura chiamante pone i parametri nello stack, prima di effettuare la chiamata (trasmissione per valore), da dove vengono letti dalla procedura chiamata. La procedura chiamante pone gli indirizzi dei parametri nello stack (trasmissione per indirizzo o referenza), la procedura chiamata legge gli indirizzi per accedere ai valori e modificarli o calcolarne di nuovi. Trasmissione per copia/ripristino : il client pone i parametri nello stack,, il server li legge dallo stack e, dopo il calcolo, pone i risultati nuovamente nello stack, il client legge dallo stack i dati inviati dal server e ricopia i dati in memoria sovrascrivendo i parametri precedentemente trasmessi. 9

10 I protocolli per la comunicazione tra processi remoti Le caratteristiche principali di un DCE (Distributed Computing Environment) sono: p. Un tool di rappresentazione dei dati indipendente dalla macchina (per permettere a macchine diverse di scambiarsi i dati), p. un protocollo per specificare responsabilità a basso livello del client e del server durante la comunicazione, p. un compilatore di protocollo che generi le componenti necessarie alla comunicazione, p. servizi di autenticazione per migliorare la sicurezza, p. servizi di naming di rete, p. servizio di DFS (Distributed File System) per eliminare ridondanza di files. Client Risposta Richiesta Client Richiesta Risposta Richiesta Server Client Risposta RPC (Remote Procedure Call) L'RPC permette la chiamata di procedure esterne che risiedono su diversi spazi di indirizzi in modo simile ad una chiamata locale. u Gli argomenti e i valori di ritorno sono automaticamente impacchettati e inviati dalle procedure locali a quelle esterne, in modo da mantenere la semantica delle chiamate delle procedure remote simile a quella delle chiamate locali. u L'RPC è stato progettato per la creazione di applicazioni distribuite su ambienti eterogenei, quindi l attività di marshalling dei dati è fondamentale : i parametri trasmessi tra le procedure in RPC devono essere impacchettati in un formato canonico indipendente dall'architettura prima di essere passati alle procedure remote. u Una tipica applicazione RPC è costituita da un client ed un server che comunicano tra loro per mezzo dei rispettivi stub che si occupano di convertire i dati dal formato della macchina a quello generale e viceversa. 10

11 RPC (Remote Procedure Call) L RPC opera a livello di sessione del modello ISO-OSI, utilizzando l XDR a livello di presentazione come modo di rappresentazione dei dati. In una chiamata a procedura remota il chiamante (client) e il chiamato (server) interagiscono nel seguente modo: Il client esegue una chiamata ad una funzione disponibile server e si blocca sino a che non ottiene il risultato. Un processo di gestione delle RPC raccoglie i valori dei parametri, forma un messaggio (stub) e lo invia al server remoto. Il kernel del server riceve la richiesta, spacchetta i parametri, invoca la procedura e invia indietro la risposta al client. Procedura Chiamante Procedure call e RPC Chiamata a procedura locale argomenti Procedura Chiamata risultato La differenza fra una call locale ed una remota consiste nello spazio di indirizzi su cui le procedure operano. argomenti messaggio Chiamata a procedura remota risultati risultati argomenti Il processo client effettua una call richiesta messaggio messaggio locale allo stub del client ; lo stub la risposta messaggio risposta richiesta intercetta insieme ai suoi argomenti, RETE lo impacchetta e genera un trap al kernel del client con il messaggio di richiesta. Questo viene inviato sulla rete dal kernel della macchina client utilizzando un protocollo di trasmissione (TCP,UDP,...), raggiungendo così lo stub del server. Il kernel della macchina server lo riceve, lo spacchetta e lo trasforma in una call locale al processo server. I risultati vengono inseriti nel messaggio di risposta, che lo stub del server invia sulla rete allo stub del client con lo stesso meccanismo. Client Processo Chiamante Client Stub Server Processo Chiamato Server Stub 11

12 Marshalling dei dati Lo stub contiene l interfaccia di comunicazione e i dati. Gli stub possono essere generati automaticamente da un compilatore di protocollo e sono trasparenti all utente. Il client stub ed il server stub si occuperanno di: Ø Risolvere problemi riguardanti la diversa rappresentazione dei dati (big endian, little endian), implementando meccanismi di marshalling in un formato canonico (XDR). Ø Il passaggio dei parametri puntatore: al server viene passato il dato e non il puntatore, questo sarà memorizzato in una locazione del server e creato un puntatore alla locazione (tecnica del copia / ripristino). Standard di Network Computing OpenNetworkComputing RPC (Sun, AT&T, Novell, Netwise) Application Programs NFS NIS REX NLM RPC Transport Level Interface XDR Socket Low level network protocols (TCP, UDP, OSI, SPX/IPX) OpenSoftwareFoundation NCS/NCA RPC (HP, Apollo, IBM, DEC, Microsoft) Application Programs Location Broker Global Local RPC NDR Low level network protocols (TCP, UDP, OSI, SPX/IPX) 12

13 ONC-RPC binding ü Tutto il meccanismo avviene dopo che fra il client ed il server è stata creata una connessione (binding), che viene realizzata, durante l esecuzione del client, da un istruzione della RPC che crea un handle (un puntatore al CLIENT). ü La clnt_create() restituisce un puntatore ad un indirizzo che contiene la posizione del server. Questa viene individuata da un servizio del sistema server (il portmapper) che conserva il numero di porta di connessione su cui il processo server si è registrato ed è in ascolto (1). ü Una volta che il client ottiene il numero di porta del server (2) inviando anche l indirizzo dove ricevere le risposte, apre una connessione, che resta aperta (3) fino a quando non viene invocata la funzione clnt_destroy() che la chiude. Client Programma client Server Portmapper porte di com. Programma Server Il binding (cont.) RETE ü Fino a quando la connessione resta aperta, il client può invocare tutti i servizi del server (send). ü Durante una richiesta il client resta in attesa della risposta (blocked). ü Il processo server invece è sempre in attesa (in receive) e si attiva solo quando riceve una richiesta di servizio (messaggio) sulla porta di ascolto. Allora invoca la procedura richiesta e, dopo averla eseguita, assembla la risposta. Quindi la invia (send) al client, che a questo punto può riprendere la sua esecuzione, e si rimette in receive. Macchina client programma client attesa... Call rpc() con richiesta return() con risposta Macchina server demone del servizio in ascolto invoca il servizio chiamata alla procedura Return() risultato esecuzione della proc. richiesta esaurita costruzione della risposta demone del servizio in ascolto 13

14 Higher level RPC Esistono due modi per utilizzare il meccanismo RPC: ad alto livello (Higher level RPC) ed a basso livello (Lower level RPC). Nell' Higher level RPC la specifica dei tipi di dati che si passano e l identificazione della procedura server remota è a carico del programmatore che genera manualmente gli stub (per il server e per il client). Ø Per la specifica dei tipi di dati si definisce un file header che verrà incluso sia nel codice client che nel codice server. Ø Per comunicare al portmapper la registrazione del programma server si usa l'istruzione Register_rpc( ) in cui sono specificate le procedure contenute e le versioni corrispondenti; sono anche specificati i filtri di codifica e decodifica (XDR). In questo modo il portmapper assegna una porta al programma server e invia informazioni ai client circa gli indirizzi assegnati al programma server. Ø Dopo il Register_rpc( ), il server, con il comando Svc_run( ), si mette in ascolto sulla socket e aspetta le richieste del client. Con questa procedura il server verifica l'indirizzo e la versione del client, una volta accettata la sua richiesta. Ø Il client deve solo richiamare una RPC con il comando Callrpc( ). Questo comando contiene il numero di porta dell'host remoto, il numero di programma e di versione settando il canale di comunicazione I/O per l'esecuzione in remoto della procedura richiesta. Lower level RPC Nel Lower level RPC non è invece necessario inserire nel codice server e client i protocolli di trasmissione perché le relative funzioni sono implementate negli stub del server e del client. Ø Gli stub vengono generati automaticamente dal compilatore di protocollo con il comando RPCGEN nomefile.x. Ø Il file nomefile.x si scrive in un linguaggio simile al C, l RPCL (RPC Language) che fornisce le primitive per la definizione dei dati e delle procedure delle RPC. Ø Si definiscono i tipi di dati utilizzati ( se non predefiniti), ed alcune informazioni proprie delle RPC quali il nome del programma, un numero e una versione di programma per i prototipi delle funzioni remote. 14

15 Lower level ONC-RPC Specifiche RPC nomefile.x RPCGEN supporta entrambi i protocolli di trasmissione (TCP e UDP), permette più flessibilità nella stesura del codice client con un piccolo aumento di tempo di esecuzione dovuto ad una maggiore complessità dei programmi generati. Oltre agli stub (nomefile_clnt.c e nomefile_svc.c) viene generato anche un file header (nomefile.h) da far condividere al client e al server e un file contenente i filtri (contenuti in una libreria RPC) per la comunicazione tra i due processi (nomefile_xdr.c). Client stub nomefile_clnt.c Header nomefile.h RPCGEN Filtri XDR nomefile_xdr.c Server stub nomefile_svc.c Compilatore C Compilatore C Compilatore C Nel file nomefile_xdr.c sono specificate le procedure di conversione del formato dei dati, affinchè i processi client e server possano comunicare ( Marshalling dei dati). Questo perché client e server devono comunicare usando una rappresentazione di dati indipendente dalla macchina. Ø La compilazione del client avviene linkando il codice sorgente della procedura client (nomefile_client.c) con lo stub del client ed il filtro XDR e generando così l eseguibile client. Client stub nomefile_clnt.o Linker Programma client nome_client.o Compilatore C Client eseguibile nome_client Filtri XDR nomefile_xdr.o Server stub nomefile_server.o Linker Programma server nome_server.o Compilatore C Ø La compilazione del server avviene linkando il codice sorgente della procedura server (nomefile_server.c) con lo stub del server ed il filtro XDR, generando così l eseguibile server. Programma client nome_client.c Server eseguibile Nome_server Programma server nome_server.c Il marshalling dei dati Il trasferimento dei dati tra i due processi (client e server) richiede la codifica e la decodifica del messaggio stesso. E questa l operazione che viene conosciuta come marshalling dei dati nei sistemi RPC. Nello standard ONC-RPC la codifica e la decodifica sono eseguite tramite dei filtri XDR (External Data Representation), i quali operano delle conversioni di tipo sugli argomenti delle procedure. Nel file nomefile_xdr.c sono contenute le definizioni dei tipi e delle costanti che vengono utilizzati. Tale file è generato sulla base di ciò che è specificato nel file nomefile.x. Tipicamente le operazioni di marshalling sono: 1. acquisizione degli argomenti dal processo client, o dei risultati dal processo server, che formeranno i dati del messaggio da inviare al processo remoto, 2. codifica dei dati del messaggio passati dal mittente, 3. decodifica dei dati del messaggio sulla macchina ricevente. L'ordine e il metodo di rappresentazione usati per i risultati e gli argomenti devono essere conosciuti sia dal client che dal server. Il processo di marshalling deve riflettere le strutture di tutti i tipi di dati usati nel programma oggetto, includere i tipi di primitive, i tipi strutturati ed i tipi definiti dall'utente. Un buon sistema RPC può generare codice marshalling in linea per ogni chiamata remota, in tal modo l'utente è sollevato dallo scrivere le proprie procedure di marshalling. Ma in pratica è difficile realizzare questo metodo di RPC perché così si dovrebbe generare una grande quantità di codice per manipolare tutti i tipi possibili di dati. 15

16 Esempio di applicazione ONC-RPC (realizzato da :Cozzolongo Giovanni e Spina Maria Antonietta) I due processi possono risiedere su macchine separate o essere situate sulla stessa postazione. Questo comunque non inficia sul buon funzionamento del sistema perché all avvio del processo client sarà necessario specificare il nome dell Host su cui è attivo il processo server, e le RPC trattano i due casi allo stesso modo. Al processo server sono affidati tutti i compiti relativi alla elaborazione dei dati; al processo client sono invece affidati i compiti relativi alla interfaccia con l utente. Ricerca.x rpcgen %#define DATABASE "archivio.txt" %#define HELP "help.txt" %#define MAXSTR 130 struct LINEA { string CORRENTE<MAXSTR>; int TROVATO; }; program ANALIZZA{ version ANALIZZAV{ LINEA ANALIZZA_GH (LINEA) =1; int APRIARCHIVIO (LINEA) =2; LINEA LEGGITESTO (LINEA) =3; }=1; }=0x ; Ricerca.h Ricerca_svc.c Ricerca_clnt.c Ricerca_xdr.c Server.c #include <rpc/rpc.h> #include <stdio.h> Client.c #include <stdlib.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include "ricerca.h" #include <string.h> /* dichiarazioni delle funzioni RPC */ #include <rpc/rpc.h> LINEA *analizza_gh_1(linea *gh); #include "ricerca.h" int *apriarchivio_1(linea *testo); void menu(char *); /* interfaccia utente*/ LINEA *leggitesto_1(linea *testo); void analisi(char *); /* ricerca nell'archivio */ /* procedura locale */ void elenca (char *,char *); /* visualizza l'archivio int */ ricerca(linea *gh); void chiamata (char *); /* crea l'handle e verifica FILE la presenza *fp=null; del server */ void stampa(char *,char); /* stampa i messaggi di FILE output *hp=null; */ static LINEA *result=null; CLIENT *cl=null; /* variabile che contiene l'handle per la comunicazione RPC */ /* MAIN *****/ main (argc,argv) int argc; char *argv[]; { char *server; server = (char *)malloc (sizeof (char *)); if (argc!=2) LINEA *tempgh=null; /* definizione di analizza_gh_1 */ LINEA *analizza_gh_1(gh) LINEA *gh; { if (!tempgh) {.. { fprintf(stderr,"sintassi: %s server \ninserire nome del server:\t", argv[0]); scanf("%s",server); } else (strcpy(server,argv[1]));... RPC sincrono ed asincrono 2-12 a) Interconnessione tra client e server nell RPC tradizionale b) L interazione mediante un RPC asincrono 16

17 Dalla chiamata a procedura alla invocazione di metodi (O-O) Ad esempio RMI RMI è il meccanismo fornito da Java per invocare metodi di oggetti distribuiti su macchine virtuali diverse sparse sulla rete. Con l'rmi è possibile passare e ritornare oggetti in modo trasparente durante una chiamata a un metodo oltre che tipi di dati predefiniti.. RMI consente al programmatore di scrivere solo una volta il codice per implementare un oggetto che sarà immediatamente visibile sia al client (tramite la sua interfaccia) che al server (sul quale è implementato).. RMI permette sulle applicazioni distribuite l uso di thread da parte di un server RMI per garantire la gestione ottimale della concorrenza tra oggetti distribuiti. Java Remote Object Invocation (RMI) Java RMI permette di eseguire classi di funzioni remote usando la stessa semantica delle function call locali Local Machine (Client) Remote Machine (Server) SampleServer remoteobject; int s; s = remoteobject.sum(1,2); 1,2 3 public int sum(int a,int b) { return a + b; } System.out.println(s); 17

18 Remote Method Invocation RMI richiede l utilizzo esclusivo di Java come linguaggio di sviluppo e consiste in: un operazione di LOCALIZZAZIONE DI OGGETTI REMOTI mediante meccanismi di REGITRY degli oggetti, Un operazione di COMUNICAZIONE con gli oggetti remoti mediante funzioni di INVOCAZIONE dei metodi appartenenti ad oggetti remoti da parte dei client, Un operazione di CARICAMENTO delle definizioni delle CLASSI degli oggetti remoti: (Dynamic Code Loading) possibilità di scaricare il bytecode di una classe se la classe non è definita nella virtual machine del ricevente, mantenendo la definizione dei tipi e il loro comportamento Perche RMI? L obiettivo è di permettere ad una applicazione in esecuzione su una macchina locale di invocare i metodi di un oggetto in esecuzione su un altro computer. Si definisce client il programma chiamante che ottiene riferimento all oggetto remoto, server il programma che crea gli oggetti remoti. Tali applicazioni sono anche denominate distributed object application. Quali vantaggi? miglioramento delle prestazione complessive semplicità nella gestione delle risorse distribuite incremento della potenza operativa Ad es: suddivisione di una computazione pesante in procedure più piccole, eseguite tutte su macchine diverse diminuendo in tal modo il tempo complessivo di esecuzione Componenti base dell RMI Client (Interfaccia) Server (Implementazione) Stub Skeleton Remote Reference Layer Remote Reference Layer Transport Layer (Connessione TCP/IP) Un client è dotato dell'interfaccia dei metodi disponibili sul server remoto, ma tutta l'implementazione è lasciata sul lato server. Nel programma client i dettagli dell'implementazione dei metodi remoti sono quindi invisibili. Ciò che realmente collega il client e il server in un sistema RMI è una connessione stratificata, trasparente agli sviluppatori, effettuata dal sottosistema RMI delle due macchine virtuali coinvolte. 18

19 Lo Stub e lo Skeleton RMI Client Stub call skeleton RMI Server return Il client invoca un metodo remoto sul proprio stub. Lo stub è responsabile della spedizione del call remoto allo skeleton del server. Lo stub apre una socket con il server, facendo il marshalling (serializzazione) dei parametri ed inviando allo skeleton del server un data stream. Lo skeleton del server contiene un metodo per ricevere i remote call dai client, per deserializzare (unmarshalling) i parametri ed invocare l implementazione dell oggetto remoto (a lui locale). Architettura generale di RMI Remote Machine Il server deve innanzitutto registrarsi (bind ad un registry) Il client cerca il nome del server nel registry per stabilire i riferimenti remoti. Lo Stub serializza i parametri verso lo skeleton sul server localizzato. Lo Skeleton invoca il metodo remoto (locale al server) e serializza il risultato verso il client stub. RMI Server skeleton return call stub RMI Client bind Registry lookup Local Machine 19

20 Architettura di RMI La struttura di un applicazione RMI è organizzata in strati orizzontali sovrapposti Simulazione locale sul client RMI Client Stubs Java Virtual Machine RMI Server Skeleton Oggetto reale eseguito sul server Il primo livello di questa connessione stratificata è rappresentato dagli stub (lato client) e gli skeleton (loto server) ai quali si riferiscono rispettivamente il client e il server senza occuparsi di ulteriori dettagli di più basso livello. Remote Reference Layer Transport Layer Connessione virtuale Connessione fisica Remote Reference Layer Transport Layer A loro volta gli stub e gli skeleton d e m a n d a n o l'esecuzione di ciascuna a t t i v i t à a l l o s t r a t o immediatamente sottostante: il remote reference layer (RRL) che gestisce i riferimenti delle variabili agli oggetti remoti, usando la connessione TCP/IP del Transport layer sottostante. Architettura di RMI Ø Lo strato più alto è costituito da applicazioni (client e server) eseguite dalla Java Virtual Machine. Ø Lo stub e lo skeleton forniscono la rappresentazione dell oggetto remoto: lo stub gestisce la simulazione locale sul client e, agendo come proxy, consente la comunicazione con l oggetto remoto; lo skeleton invece consente l esecuzione dell oggetto remoto sul server. Ø Il client esegue i metodi dell oggetto remoto in modo del tutto analogo alla chiamata locale: ris = OggettoRemoto. nomemetodo (par1, par2,..) senza preoccuparsi dei dettagli della comunicazione. 20

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi Prof. S.Pizzutilo Elementi

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Creare una applicazione Winsock di base

Creare una applicazione Winsock di base Creare una applicazione Winsock di base Usiamo le API Winsock incluse in Creare un progetto per una Socket Windows (in Dev C++) Selezionare la file New Projects Selezionare Empty Project Salvare

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

Dettagli

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute DNS: Domain Name System I name DNS Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP ( bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

Modulo 11. Il livello trasporto ed il protocollo TCP Indice Pagina 1 di 14 Il livello trasporto ed il protocollo TCP Indice servizi del livello trasporto multiplexing/demultiplexing trasporto senza connesione: UDP principi del trasferimento dati affidabile trasporto

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol) ARP (Address Resolution Protocol) Il routing Indirizzo IP della stazione mittente conosce: - il proprio indirizzo (IP e MAC) - la netmask (cioè la subnet) - l indirizzo IP del default gateway, il router

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Il World Wide Web: nozioni introduttive

Il World Wide Web: nozioni introduttive Il World Wide Web: nozioni introduttive Dott. Nicole NOVIELLI novielli@di.uniba.it http://www.di.uniba.it/intint/people/nicole.html Cos è Internet! Acronimo di "interconnected networks" ("reti interconnesse")!

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Routing (instradamento) in Internet Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Stub AS: istituzione piccola Multihomed AS: grande istituzione (nessun ( transito Transit AS: provider

Dettagli

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless La configurazione degli indirizzi IP Configurazione statica, con DHCP, e stateless 1 Parametri essenziali per una stazione IP Parametri obbligatori Indirizzo IP Netmask Parametri formalmente non obbligatori,

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Le caratteristiche di interoperabilità del Terrapack 32 M

Le caratteristiche di interoperabilità del Terrapack 32 M I T P E l e t t r o n i c a Le caratteristiche di interoperabilità del Terrapack 32 M M. Guerriero*, V. Ferrara**, L. de Santis*** * ITP Elettronica ** Dipartimento di Ingegneria Elettronica Univ. La Sapienza

Dettagli

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi I semestre 03/04 Inidirizzi IP e Nomi di Dominio Domain Name System Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

DNS (Domain Name System) Gruppo Linux

DNS (Domain Name System) Gruppo Linux DNS (Domain Name System) Gruppo Linux Luca Sozio Matteo Giordano Vincenzo Sgaramella Enrico Palmerini DNS (Domain Name System) Ci sono due modi per identificare un host nella rete: - Attraverso un hostname

Dettagli

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer Servizi DNS - SMTP FTP - TELNET Programmi Outlook Express Internet Explorer 72 DNS Poiché riferirsi a una risorsa (sia essa un host oppure l'indirizzo di posta elettronica di un utente) utilizzando un

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi.

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi. I server di stampa vengono utilizzati per collegare le stampanti alle reti. In tal modo, più utenti possono accedere alle stampanti dalle proprie workstation, condividendo sofisticate e costose risorse.

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Interfaccia Web per customizzare l interfaccia dei terminali e

Interfaccia Web per customizzare l interfaccia dei terminali e SIP - Session Initiation Protocol Il protocollo SIP (RFC 2543) è un protocollo di segnalazione e controllo in architettura peer-to-peer che opera al livello delle applicazioni e quindi sviluppato per stabilire

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette.

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

Dettagli

APPLICAZIONI SU PIU FILE

APPLICAZIONI SU PIU FILE APPLICAZIONI SU PIU FILE Serve poter sviluppare applicazioni su piú file: - alcune funzioni e alcune definizioni di dati in un file - altre funzioni e dati in file diversi Perché?? 1. Se il programma è

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it)

SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it) SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it) In una rete TCP/IP, se un computer (A) deve inoltrare una richiesta ad un altro computer (B) attraverso la rete locale, lo dovrà

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 Sistemi Web-Based - Terminologia Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 CLIENT: il client è il programma che richiede un servizio a un computer collegato in

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Lezione 15 File System

Lezione 15 File System Lezione 15 File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2014/2015 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

PRESENTAZIONE DI UN SMS AL GATEWAY

PRESENTAZIONE DI UN SMS AL GATEWAY Interfaccia Full Ascii Con questa interfaccia è possibile inviare i dati al Server utilizzando solo caratteri Ascii rappresentabili e solo i valori che cambiano tra un sms e l altro, mantenendo la connessione

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Questo documento è allegato al libro Elettrotecnica, Elettronica, Telecomunicazioni e Automazione di

Questo documento è allegato al libro Elettrotecnica, Elettronica, Telecomunicazioni e Automazione di Questo documento è allegato al libro Elettrotecnica, Elettronica, Telecomunicazioni e Automazione di Trapa L., IBN Editore, a cui si può fare riferimento per maggiori approfondimenti. Altri argomenti correlati

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

IL LIVELLO APPLICAZIONI DNS, SNMP e SMTP

IL LIVELLO APPLICAZIONI DNS, SNMP e SMTP Reti di Calcolatori IL LIVELLO APPLICAZIONI DNS, SNMP e SMTP D. Talia RETI DI CALCOLATORI - UNICAL 6-1 Applicazioni di Rete Domain Name System (DNS) Simple Network Manag. Protocol (SNMP) Posta elettronica

Dettagli

Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL)

Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL) Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Integrazione di servizi: Enterprise Service Bus (ESB) e Business Process Execution Language (BPEL) Corso di Sistemi Distribuiti Stefano

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp.

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. Symbolic Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. La nostra mission è di rendere disponibili soluzioni avanzate per la sicurezza

Dettagli

NAS 208 WebDAV Un'alternativa sicura per la condivisione di file su FTP

NAS 208 WebDAV Un'alternativa sicura per la condivisione di file su FTP NAS 208 WebDAV Un'alternativa sicura per la condivisione di file su FTP Eseguire il collegamento al NAS tramite WebDAV A S U S T O R C O L L E G E OBIETTIVI DEL CORSO Al termine di questo corso si dovrebbe

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ Classi ed oggetti. Classi derivate, ereditarietà e polimorfismo. Template Capitoli 12, 13, 14 Luis Joyannes Aguilar. Fondamenti di Programmazione in C++. Algoritmi,

Dettagli

Architettura di un sistema informatico 1 CONCETTI GENERALI

Architettura di un sistema informatico 1 CONCETTI GENERALI Architettura di un sistema informatico Realizzata dal Dott. Dino Feragalli 1 CONCETTI GENERALI 1.1 Obiettivi Il seguente progetto vuole descrivere l amministrazione dell ITC (Information Tecnology end

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica L uso delle funzioni in C++ Claudio De Stefano - Corso di Fondamenti di Informatica 1 Funzioni Nel C++ è possibile scomporre problemi complessi in moduli più semplici

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

Socket per TCP: Fondamenti

Socket per TCP: Fondamenti Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Appunti di Antonio Bernardo

Appunti di Antonio Bernardo Internet Appunti di Antonio Bernardo Cos è Internet Internet può essere vista come una rete logica di enorme complessità, appoggiata a strutture fisiche e collegamenti di vario tipo (fibre ottiche, cavi

Dettagli

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it Introduzione ai Device Drivers in Linux E.Mumolo, DEEI mumolo@units.it 1 Device Drivers Moduli software che gestiscono le periferiche attraverso il file system Tutte le periferiche sono viste come file

Dettagli

Serduino - SERRA CON ARDUINO

Serduino - SERRA CON ARDUINO Serduino - SERRA CON ARDUINO 1 Componenti Facchini Riccardo (responsabile parte hardware) Guglielmetti Andrea (responsabile parte software) Laurenti Lorenzo (progettazione hardware) Rigolli Andrea (reparto

Dettagli

DNS: Domain Name System

DNS: Domain Name System DNS: Domain Name System Persone: molte mezzi di identificazione: " CF, nome, # Passaporto Host, router Internet: " Indirizzi IP (32 bit) usati per indirizzare i datagrammi IP " Nome, es., gaia.cs.umass.edu

Dettagli

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Configurazione avanzata di IBM SPSS Modeler Entity Analytics Configurazione avanzata di IBM SPSS Modeler Entity Analytics Introduzione I destinatari di questa guida sono gli amministratori di sistema che configurano IBM SPSS Modeler Entity Analytics (EA) in modo

Dettagli