RPC based middleware

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "RPC based middleware"

Transcript

1 RPC based middleware

2 Introduzione Componente Applicazione SW WIRE PROTOCOL Componente Applicazione SW SOAP APPLICAZIONE RPC Wire Protocol: protocollo visto a livello applicazione SW Le componenti SW girano su SO differenti, possono essere sono sviluppate in LP differenti, etc.. REST AJAX SOCKET HTTP

3 RPC classico RPC è tipo di comunicazione intraprocesso che consente ad un processo A, che gira su una macchina locale, di attivare una procedura che gira su una macchina remota Supporto per l amministrazione/gestione del meccanismo fornito da un middleware At compile time (generation of additional SW) At runt time (SW support)

4 RPC run time architecture RPC Client Calling procedure Server Called procedure result parameters LPC parameters result LPC Stub Skeleton Request message Reply message Network

5 Esempio: RPC

6 RPC Ampiamente usato in ambito industriale per implementare architetture client/server Tecnica/tecnologia per l integrazione e l interoperabilità di applicazioni

7 Interoperabilità Lo scambio di dati fra client e server residenti su piattaforme diverse (HW/OS) richiede particolare attenzione Byte order (little vs big endian) Strutture dati (tabelle, alberi,..) devono essere resi unidimensionali Ciò può essere fatto usando, ad esempio, una rappresentazione esterna neutra Marshalling /Un-marshalling Serialization /De-serialitazion

8 External Data Representation Consideriamo N sistemi che usano N diverse rappresentazioni interne (N=4 nell esempio) Come questi sistemi possono scambiarsi dati? A B C D A B C D A B C D A B C D Naïve: sono necessarie N(N-1) trasformazioni di rappresentazione dei dati Rappresentazione intermedia: 2N trasfomazioni

9 IDL Interface Definition Language Consente di definire un interfaccia astratta come insieme di operazioni (nome, parametri in /parametri out) Generazioni automatica di stub e skelethon (incaricati tra l altro delle operazioni di (un)marshalling) INTERFACE Servizio

10 Semantica della RPC RPC è un protocollo uno-a-uno La semantica di base è la semantica MAYBE Se la chiamata fallisce (server fallisce, time-out), allora la procedura potrebbe essere stata eseguita, ma potrebbe anche non esserlo

11 Semantica della RPC At least-once. La procedura viene eseguita una volta se il server non fallisce, ma può essere eseguita più di una volta in caso di crash del server (retry until succeed) At most-once. In caso di crash del server, la procedura viene eseguita al più una volta Per implementarle sono necessari meccanismi opportuni (contatori, message ID, filtri, etc.) Excatly-once semantic (Transactional RPC)

12 Semantica della RPC (a) Normal case (b) server crash after execution (c) server crash before execution Maybe (no guarantee at all) At least once (retry until succeed) At most once (report failure immediately) Exactly once

13 Accoppiamento forte L impiego delle RPC da luogo a sistemi fortemente accoppiati Sia il server che il client devono conoscersi ed essere attivi nello stesso istante di tempo (synchronous calls)

14 RPC sincrona

15 RPC asincrona

16 Esempi di RPC Sun-RPC DCE DCOM,ACTIVE-X XML-RPC

17 Esempio: Sun-RPC Fornisce un linguaggio di definizione di interfacce, detto XDR language Compilatore: rpcgen Supporto per autentizazione Ogni richiesta contiene le credenziali dell utente che fa girare il programma

18 Sun-RPC/XDR Usato per definire l interfaccia del servizio attraverso la definizione di un insieme di procedure L interfaccia è identificata mediante un program number ed un version number forniti da un autorità centrale Questi numeri sono inviati in ogni messaggio di richiesta

19 XDR-Esempio const MAX = 1000; typedef int FileIdentifier; typedef int FilePointer; typedef int Length; struct Data { int length; char buffer[max]; }; struct writeargs{ FileIdentifier f; FilePointer position; Data data; }; struct readargs{ FileIdentifier f; FilePointer position; Length length; }; program FILEREADWRITE { version VERSION{ void WRITE(writeargs)=1; Data READ(readargs)=2; }=2; } = 9999; Program number Version number Procedure number

20 Sun-RPC/portmapper

21

22 DCE Distributed Computing Environment Sviluppato dalla Open Software Foundation (OSF) fondata nel 1988 (DEC,Apollo,Bull,HP,IBM,Nixdorf,Siemens) Idea chiave: aggiungere il software DCE ai computer esistenti al fine di supportare lo sviluppo di applicazioni distribuite Oltre al middleware RPC fornisce altri servizi Security Service, Time service, Directory Service

23 DCE/Directory Service

24 Sviluppo applicazioni

25 RPC over Internet Mappata su HTTP (GET,POST) Sincrono Asincrono funzione di callback Di fatto due formati per i messaggi JSON (Java Simple Object Notation) XML

26 Tool utili per il debugging

27 JSON JSON è basato su due strutture dati: Oggetto = insieme di coppie nome/valore (array associativo). {"city":"rome", "lat":" ", "long":" } Array = Elenco ordinato di valori. [12,"lat","long ]

28 JSONP GET f(json data). <javasxcript scr=xxx&callback=f>. Protocollo usato in javascript che Consente di wrappare un oggetto json con una funzione di callback Supera il cross-domain problem

29 Esempio Features geolookup conditions forecast formati = JSON, XML KEY/FEATURE FEATURE/[ /[FEATURE ]/q/ ]/q/query QUERY.FORMAT

30 Esempio ID univoco JSONP.

31 Chrome Developer tool Esempio: demo

32 Esempio: codice

33 Altro esempio

34 RPC asincrona: AJAX Sicurezza: Cross domain non è consentito

35 XML-RPC XML-based Remote Procedure Call Specifica sviluppata nel 1998 Trasporta messaggi XML tramite il protocollo HTTP (POST) Firewall friendly E indipendente dal linguaggio di programmazione Supporta un insieme minimo di tipi (comuni a tutti i moderni linguaggi),.. ma non estendibile

36 XML-RPC La specifica consiste di tre parti Data Model Struttura messaggio di richiesta Struttura messaggio di risposta

37 XML in pillole XML (extensible Markup Language) è un linguaggio derivato dal linguaggio SGML (Standard Generalized Markup Language), da cui deriva anche HTML. In questi linguaggi, il concetto chiave è quello di Markup (annotazione) mediante cui si specificano aspetti dei dati. In XML il markup definisce la struttura logica del dato (mentre in HTML, solo l apparenza)

38 XML in pillole Un documento XML ha struttura ad albero I dati appaiono in elementi che, oltre a contenere il dato vero e proprio in codifica testuale (ex. ASCII), contengono annotazioni sotto forma di TAG di descrizione della struttura del dato ed, opzionalmente, coppie attributo-valore

39 Esempio titolo autore Il Signore degli Anelli, di John Ronald Reuel Tolkien, Bompiani. editore

40 XML Libro Titolo Autore Editore Elementi <libro> <titolo> Il Signore degli Anelli </titolo> <autore> John R. R. Tolkien </autore> <editore> Bompiani </editore> </libro> Questo documento è formato da 4 elementi perché? Esercizio : scrivere il contenuto in un file.xml ed aprirlo con Firefox

41 <titolo> Il Signore degli Anelli </titolo> Elementi ed attributi Dati Tag Attributo (meta-info su elemento) <titolo numero-pagine= 345 > Il Signore degli Anelli </titolo>

42 Documenti ben formati Unico elemento di massimo livello (root) I tag di chiusura devono seguire l'ordine inverso dei rispettivi tag di apertura Valori degli attributi: devono sempre essere racchiusi tra singoli o doppi apici

43 Documenti validi Documento che rispetta una grammatica (struttura del documento) Esistono due soluzioni Document Type Definition Più semplice, meno potente XML Schema Più potente, più complessa

44 Correttezza sintattica e Validazione Documento XML Check Sintattico Grammatica Check Semantico

45 XML-RPC Data Model Scalari Strutture Array

46 Tipi scalari Tag Type Example <i4> or <int> four-byte signed integer -12 <boolean> 0 (false) or 1 (true) 1 <string> string hello world <double> double-precision signed floating point number <datetime.iso8601> date/time T09:30:00 <base64> base64-encoded binary ew91ignhbid0ihjlywqgdghpcye=

47 Tipo Struct <struct> <member> <name>lowerbound</name> <value><i4>18</i4></value> </member> <member> <name>upperbound</name> <value><i4>139</i4></value> </member> </struct>

48 Array <array> <data> <value><i4>12</i4></value> <value><string>egypt</string></value> <value><boolean>0</boolean></value> <value><i4>-31</i4></value> </data> </array>

49 Struttura messaggio di richiesta Elemento root: methodcall Ogni elemento root contiene un elemento MethodName ed uno params L elemento MethodName contiene il nome della procedura da chiamare L elemento params contiene l elenco dei parametri della procedura

50 <?xml version="1.0"?> <methodcall> <methodname>master</methodname> <params> <param> <value><i4>123</i4></value> </param> <param> <value><double>12.3</double></value> </param> </params> </methodcall> Esempio

51 <?xml version="1.0"?> <methodcall> <methodname>psd</methodname> <params> <param> <value><i4>123</i4></value> </param> <param> <value><double>12.3</double></value> </param> </params> </methodcall> Esempio methodname PSD params param value param value methodcall i4 123 double 12.3

52 <?xml version="1.0"?> <methodcall> <methodname>psd</methodname> <params> <param> <value><i4>123</i4></value> </param> <param> <value><double>12.3</double></value> </param> </params> </methodcall> methodcall Esempio methodname PSD params param value param value methodcall i4 123 double 12.3 methodname params param i4 param double

53 XML è veicolato da HTTP

54 Esempio richiesta completa POST /xmlrpc HTTP 1.0 User-Agent: Host: Content-type: text/xml Content-length:.. <?xml version= 1.0?> <methodcall> <methodname>areacerchio</methodname> <params><param><value><double>12.2</double></value><param><params> </methodcall>

55 Messaggio di risposta Può contenere la risposta (un singolo parametro) oppure indicare il fallimento con una stringa di diagnosi

56 Esempio risposta <?xml version="1.0"?> <methodresponse> <params> <param> <value><i4>1</i4></value> </param> </params> </methodresponse>

57 Messaggio di fault <?xml version="1.0"?> <methodresponse> <fault> <value> <struct> <member> <name>faultcode</name> <value><int>4</int></value> </member> <member> <name>faultstring</name> <value><string>too many parameters.</string></value> </member> </struct> </value> </fault> </methodresponse>

58 Semantica Chiamate sincrone La richiesta è bloccante. Il chiamante viene bloccato finchè non riceve il documento XML di risposta L indirizzo del destinatario ( end-point ) è quello della connessione HTTP Stateless Non ci sono meccanismi nativi per propagare lo stato fra due chiamate consecutive allo stesso end-point Lo stato dovrebbe essere inviato come parametro di una chiamata

59 Esempio: Flickr Flickr

XML-RPC. Giuseppe Della Penna Università degli Studi di L Aquila.

XML-RPC. Giuseppe Della Penna Università degli Studi di L Aquila. Giuseppe Della Penna Università degli Studi di L Aquila Giuseppe.DellaPenna@univaq.it http://www.di.univaq.it/gdellape Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica

Dettagli

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1 Applicazioni distribuite e sistemi ad oggetti distribuiti RPC RMI - Web Services 1 Complessità delle applicazioni distribuite La scrittura di applicazioni distribuite basate sull utilizzo di protocolli

Dettagli

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON XML JSON Argomenti 2 Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati XML Data Model JSON 3 XML XML extensible Markup Language 4 Modello di dati XML Nato

Dettagli

Approfondimento. Web Services

Approfondimento. Web Services Approfondimento Web Services Esame di Programmazione per il Web Fedele Ladisa INDICE Capitolo 1. Introduzione 1.1 Introduzione ai Web Services 1.2 Architettura dei Web Services 1.3 Stack protocollare di

Dettagli

Comunicazione fra oggetti distribuiti

Comunicazione fra oggetti distribuiti Comunicazione fra oggetti distribuiti RMI RPC invocazione di metodo remoto - gli oggetti remoti ricevono le RMI interfaccia remota meccanismo per la comunicazione cliente servente come primitiva di un

Dettagli

Internet of Things & Wireless Sensor Networks

Internet of Things & Wireless Sensor Networks Internet of Things & Wireless Sensor Networks Protocols for IoT Ing. Luca Davoli Wireless Ad-hoc Sensor Network Laboratory WASNLab davoli@ce.unipr.it This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

Dettagli

Principi di progettazione di sistemi distribuiti

Principi di progettazione di sistemi distribuiti Principi di progettazione di sistemi distribuiti Rappresentazione esterna dei dati Marshalling e unmarshalling Esemplificazione con Corba e Java Rappresentazione esterna dei dati Problema: un oggetto deve

Dettagli

Chiamata remota di metodi

Chiamata remota di metodi Chiamata remota di metodi Architettura di Java RMI Esecuzione di una Java RMI Architettura di RMI client server Stub & Skeleton Stub & Skeleton Remote Reference Remote Reference Trasporto Ciascun livello

Dettagli

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer Distributed Object C o m p utin g "!$#&% ')(+*,#&-).0/2143657*98:.;8

Dettagli

Invocazione remota. Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. Distributed Systems: Concepts and Design, fifth edition. Pearson, 2012.

Invocazione remota. Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. Distributed Systems: Concepts and Design, fifth edition. Pearson, 2012. Luca Cabibbo Architettura dei Sistemi Software dispensa asw430 marzo 2017 Knowing a failure has occurred is more important than the actual failure. K. Kjos 1 - Fonti Coulouris, G., Dollimore, J., Kindberg,

Dettagli

Remote Procedure Call

Remote Procedure Call Remote Procedure Call Concetti generali e principi di progettazione Architettura (schema concettuale) pack args client APPLICATION LEVEL local call local return suspended execution STUB unpack results

Dettagli

Seminario di Sistemi Distribuiti RPC su SOAP

Seminario di Sistemi Distribuiti RPC su SOAP Seminario di Sistemi Distribuiti RPC su SOAP Massimiliano Vivian [777775] Massimiliano Vivian 1 Introduzione La comunicazione delle informazioni è l elemento fondamentale per lo sviluppo dei sistemi. SOAP

Dettagli

Web Service Architecture

Web Service Architecture Giuseppe Della Penna Università degli Studi di L Aquila dellapenna@di.univaq.it http://dellapenna.univaq.it Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica

Dettagli

JSON for Linked Data JSON-LD

JSON for Linked Data JSON-LD JSON for Linked Data JSON-LD Giuseppe Santaniello Giuseppe Pietravalle Web Semantico A.A. 2015/2016 Linked Data Insiemi di dati interconnessi sul Web Esempio: DBpedia DBpedia contiene i dati di Wikipedia

Dettagli

Oggetti Distribuiti e Java RMI

Oggetti Distribuiti e Java RMI Oggetti Distribuiti e Java RMI Oggetti Locali - Oggetti Distribuiti Oggetti Locali: sono oggetti i cui metodi possono essere invocati solo da un processo locale, cioè da un processo in esecuzione sulla

Dettagli

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA CORBA ( Common Object Request Broker Architecture ) consiste in un insieme di specifiche promosse e curate da OMG (Object Management Group). L OMG è un consorzio internazionale no-profit di industrie nel

Dettagli

7. Progetto di Applicazioni Distribuite

7. Progetto di Applicazioni Distribuite 7. Progetto di Applicazioni Distribuite Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Progetto di Applicazioni Distribuite 1 / 35 Sommario 1 Sistemi

Dettagli

Chiamate a Procedure Remote

Chiamate a Procedure Remote FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Corso di Sistemi Distribuiti Anno Accademico 2012/2013 Relazione sullo sviluppo di Chiamate a Procedure Remote

Dettagli

TESI DI LAUREA IN INFORMATICA

TESI DI LAUREA IN INFORMATICA UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II TESI DI LAUREA IN INFORMATICA UNA WEB APPLICATION SU INFRASTRUTTURA PER IL PROGETTO DAME Tutor Accademico: Dott.ssa Anna Corazza Tutor Aziendale: Dott. Massimo

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Lo strato di applicazione in Internet

Lo strato di applicazione in Internet Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

istituito l'xml Working Group nell'ambito del W3C che nel dicembre 97 pubblica delle Proposed Recomendation

istituito l'xml Working Group nell'ambito del W3C che nel dicembre 97 pubblica delle Proposed Recomendation http://xml.html.it/guide/leggi/58/guida-xml-di-base/ INTRODUZIONE extensible Markup Language (XML) = metalinguaggio di markup, cioè un linguaggio che permette di definire altri linguaggi di markup non

Dettagli

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Sapienza Università di Roma corso di laurea in Ingegneria informatica e automatica Linguaggi e tecnologie per il Web a.a. 2017/2018 Parte 6 JSON, Web Storage API, funzioni JavaScript e user script Riccardo

Dettagli

Web services. 25/01/10 Web services

Web services. 25/01/10 Web services Web services Tecnologia per il computing distribuito standard W3C non dissimile da RMI, CORBA, EJB... Relazione con il Web Websites for humans, Web Services for software :-) un Web service ha un indirizzo

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

Breve Introduzione a XML

Breve Introduzione a XML Origini! XML (extensible Markup Language) deriva da SGML (Standard Generalized Markup Language).! Sia con XML che con SGML è possibile definire linguaggi di markup specifici per vari domini, come la finanza

Dettagli

Tecnologie informatiche multimediali

Tecnologie informatiche multimediali Università degli Studi di Ferrara Facoltà di Lettere e Filosofia Corso di Laurea in «Scienze e Tecnologie della Comunicazione» aa 2011-2012 Tecnologie informatiche multimediali Prof. Giorgio Poletti giorgio.poletti@unife.it

Dettagli

BASI LINGUAGGIO. Programmazione Web 1

BASI LINGUAGGIO. Programmazione Web 1 BASI LINGUAGGIO Programmazione Web 1 Commen0 Riga singola // This is a comment Riga mul8pla /* This is a sec8on of mul8line comments which will not be interpreted */ Programmazione Web 2 Istruzioni Un

Dettagli

Interoperabilità e cooperazione applicativa tra sistemi informativi

Interoperabilità e cooperazione applicativa tra sistemi informativi Interoperabilità e cooperazione applicativa tra sistemi informativi Michele Ruta Dipartimento di Ingegneria Elettrica e dell Informazione Politecnico di Bari 1di 29 Indice Introduzione ai Port Community

Dettagli

RDF. Resource Description Framework

RDF. Resource Description Framework RDF Resource Description Framework 1 Sommario 1) Cos è l RDF RDF Model and Syntax RDF Schema 2) Il data model RDF definizione di risorsa, proprietà e statement esempio 1 esempio 2 2 3) Combinazione RDF

Dettagli

CORBA & DCOM. Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola. La Object Management Architecture

CORBA & DCOM. Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola. La Object Management Architecture CORBA & DCOM Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Sommario La Object Management Architecture CORBA La programmazione di applicazioni CORBA in Java CORBA vs. RMI DCOM

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione Evoluzione del Web Direzioni di sviluppo del web a) Multimedialità b) Dinamicità delle pagine e interattività c) Accessibilità d) Separazione del contenuto dalla forma di visualizzazione e) Web semantico

Dettagli

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Basi di Dati Architetture Client/Server D B M G Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta l intelligenza

Dettagli

Piattaforme Software Distribuite. Roberto Beraldi

Piattaforme Software Distribuite. Roberto Beraldi Piattaforme Software Distribuite Roberto Beraldi Programma Applicazioni oggi Cloud computing Python Javascript Php Mobile app(cenni) Esame Progetto individuale Scritto Introduzione Ecosistema applicazioni

Dettagli

D B M G Il linguaggio HTML

D B M G Il linguaggio HTML Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form @2011 Politecnico di Torino 1 Concetti

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

Dettagli

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

Dettagli

AJAX. Asynchronous JavaScript and XML

AJAX. Asynchronous JavaScript and XML AJAX Asynchronous JavaScript and XML AJAX Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA INGEGNERIA DELLA CONOSCENZA E SISTEMI ESPERTI (a.a. 2010-2011) MODULO 1 Parte I 1.4 CLIPS: C Language Integrated Production System Introduzione all'ambiente CLIPS. Claudia

Dettagli

Linguaggi di Markup. Violetta Lonati. Dipartimento Scienze dell Informazione Università degli Studi di Milano

Linguaggi di Markup. Violetta Lonati. Dipartimento Scienze dell Informazione Università degli Studi di Milano Linguaggi di Markup Violetta Lonati a Dipartimento Scienze dell Informazione Università degli Studi di Milano a E garantito il permesso di copiare, distribuire e/o modificare i materiali cont enuti in

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Architetture di rete. 4. Le applicazioni di rete

Architetture di rete. 4. Le applicazioni di rete Architetture di rete 4. Le applicazioni di rete Introduzione L avvento di tecnologie (hw, sw, protocolli) di rete avanzate ha permesso la nascita di architetture software molto evolute che permettono lo

Dettagli

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC. tesi di laurea Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Luca Anniciello candidato Gianluca

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

Dettagli

ARCHITETTURA DI UN DBMS

ARCHITETTURA DI UN DBMS ARCHITETTURA DI UN DBMS Modelli di dati Un approccio con basi di dati fornisce un certo livello di astrazione dei dati Nasconde i dettagli sulla memorizzazione dei dati stessi Un modello dei dati fornisce

Dettagli

@2011 Politecnico di Torino 1

@2011 Politecnico di Torino 1 Concetti di base Programmazione Web Il linguaggio HTML HTML consente di annotare un testo per contrassegnare le parti che lo compongono Le annotazioni sono realizzate tramite i "tag" Visualizzare documenti

Dettagli

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni C#: Strumento Principe per.net Primo linguaggio orientato alle componenti della famiglia C/C++ Tutto è DAVVERO un oggetto

Dettagli

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO Standard tecnici Gli standard tecnici di riferimento adottati sono conformi alle specifiche e alle raccomandazioni emanate dai principali

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

Laboratorio di RETI DI CALCOLATORI

Laboratorio di RETI DI CALCOLATORI Laboratorio di RETI DI CALCOLATORI A.A. 2009-2010 I WEB SERVICES Carlo Mastroianni Laboratorio di Reti di Calcolatori - Orario lunedì, 11:30-13:30, aula 40B mercoledì, 10:00-11:30, laboratorio settimo

Dettagli

Introduzione. RPCs. Fonti:

Introduzione. RPCs. Fonti: RPCs Fonti: 1. Coulouris G.F., Dollimore J.B. and Kindberg T. (1994). Distributed Systems, Concepts and Design. Addison-Wesley (2nd ed.) 2. Tanenbaum, A.S. (1995). Distributed Operating Systems. Prentice-Hall.

Dettagli

Concetti base programmazione. Antonio Gallo

Concetti base programmazione. Antonio Gallo Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Web Services Web Services: SOAP vs. RESTful 2 diversi.pi di Web Services I Web Services SOAP sono quelli classici Si basano

Dettagli

Client e Server comunicano tramite il protocollo SOAP.

Client e Server comunicano tramite il protocollo SOAP. In questo tutorial implementeremo un semplice SOAP web service in PHP che un client Java richiamerà. In questo modo mostreremo l'interoperabilità fra linguaggi diversi che SOAP permette di avere. La struttura

Dettagli

Reti (già Reti di Calcolatori )

Reti (già Reti di Calcolatori ) Reti (già Reti di Calcolatori ) Cenni di Socket Programming Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Socket API Programmazione dei socket Obiettivo:imparare

Dettagli

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

Dettagli

Lezione 8 Il networking. Mauro Piccolo piccolo@di.unito.it

Lezione 8 Il networking. Mauro Piccolo piccolo@di.unito.it Lezione 8 Il networking Mauro Piccolo piccolo@di.unito.it Classificazione delle reti Ampiezza Local Area Network Metropolitan Area Networ Wide Area Network Proprieta' Reti aperte e reti chiuse Topologia

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Macchina Astratta: struttura e realizzazione.

Macchina Astratta: struttura e realizzazione. Macchina Astratta: struttura e realizzazione. Sommario Macchina Astratta e l interprete di Macchina Hight e Low Level Languages Implementazione di un Linguaggio Macchina Intermedia Gerarchia di Macchine

Dettagli

Oreste Signore, <oreste@w3.org> Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa

Oreste Signore, <oreste@w3.org> Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa http://www.w3c.it/education/2012/upra/basicinternet/#(1) 1 of 16 Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa Master in Comunicazione

Dettagli

Introduzione. Java HTTP. G. Prencipe

Introduzione. Java HTTP. G. Prencipe Java html e http G. Prencipe prencipe@di.unipi.it Introduzione Tutte le comunicazioni tra client e server Web avvengono mediate il (HyperText Transfer Protocol, attualmente alla versione 1.1), che è un

Dettagli

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni IIndice Capitolo 1 Da dove partiamo: pagine web statiche 1 1.1 Principi di base.............................. 1 1.1.1 Il paradigma client-server.................... 1 1.1.2 Ipertesto, multimedia, ipermedia................

Dettagli

Introduzione alla rete Internet

Introduzione alla rete Internet Introduzione alla rete Internet Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ INTRODUZIONE A INTERNET - 1 Internet: nomenclatura Host: calcolatore collegato a Internet ogni host

Dettagli

L XML è un linguaggio di markup aperto e basato su testo che fornisce informazioni di tipo strutturale e semantico relative ai dati veri e propri.

L XML è un linguaggio di markup aperto e basato su testo che fornisce informazioni di tipo strutturale e semantico relative ai dati veri e propri. L XML è un linguaggio di markup aperto e basato su testo che fornisce informazioni di tipo strutturale e semantico relative ai dati veri e propri. L XML è stato ottimizzato per il Web, diventando potente

Dettagli

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

fornitore di servizi utente all interazione tra utenti e sistemi

fornitore di servizi utente all interazione tra utenti e sistemi WEB SERVICES Successo del Web Negli anni passati il Web ha avuto un enorme successo principalmente per due motivi: Semplicità: Ubiquità Per un fornitore di servizi è semplice raggiungere un numero molto

Dettagli

Tito Flagella - Il protocollo HTTP

Tito Flagella - Il protocollo HTTP Tito Flagella - tito@link.it Il protocollo HTTP Il protocollo HTTP È il protocollo standard tramite il quale i server Web rispondono alle richieste dei client (inizialmente i browser); È basato su un modello

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Introduzione alla programmazione Android. Emanuel Di Nardo

Introduzione alla programmazione Android. Emanuel Di Nardo Introduzione alla programmazione Android 1 Emanuel Di Nardo emanuel.dinardo@gmail.com Architettura di base Insieme software composto da: Sistema operativo Middleware Applicazioni di base Utilizzo del linguaggio

Dettagli

Programmazione di servizi web SOAP

Programmazione di servizi web SOAP Luca Cabibbo Architettura dei Sistemi Software Programmazione di servizi web SOAP dispensa asw860 marzo 2017 What is elegance? Soap and water! Cecil Beaton 1 - Fonti The Java EE 7 Tutorial https://docs.oracle.com/javaee/7/tutorial/

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5 Ricerca e ordinamento su array di oggetti Corso di Programmazione 2 Esercitazione 5 Sommario Ricercare in array di oggetti Interfaccia comparable Ordinare array di oggetti Problema Come ordinare, ricercare

Dettagli

Reti di Calcolatori ed Internet. Reti di Calcolatori ed Internet. Reti di Calcolatori. Reti di Calcolatori. Architettura dei Servizi di Rete

Reti di Calcolatori ed Internet. Reti di Calcolatori ed Internet. Reti di Calcolatori. Reti di Calcolatori. Architettura dei Servizi di Rete Reti di Calcolatori ed Internet Reti di Calcolatori ed Internet Corso di Informatica Generale (Roberto BASILI) Teramo, 13 Dicembre, 2000 Architettura dei Servizi di Rete Collegamenti Internet ed i Servizi

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

Dettagli

Linguaggi per il Web: XML

Linguaggi per il Web: XML Linguaggi per il Web: XML Piero Fraternali Sara Comai Politecnico di Milano XML http://w3c.org/xml/ -- http://www.microsoft.com/xml/ extended Markup Language Formato di file proposto dal W3C per distribuire

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

Interazione fra applicazioni

Interazione fra applicazioni WEB SERVICES Successo del Web Negli anni passati il Web ha avuto un enorme successo principalmente per due motivi: Semplicità: Ubiquità Per un fornitore di servizi è semplice raggiungere un numero molto

Dettagli

Progetto Web Math. prof. Roberto Fuligni. Istituto Tecnico Tecnologico Giacomo Fauser - Novara

Progetto Web Math. prof. Roberto Fuligni. Istituto Tecnico Tecnologico Giacomo Fauser - Novara Progetto Web Math prof. Roberto Fuligni Istituto Tecnico Tecnologico Giacomo Fauser - Novara Web Math Applicazione di rete per la rappresentazione grafica di funzioni matematiche Architettura client/server

Dettagli

Enterprise @pplication Integration Software S.r.l.

Enterprise @pplication Integration Software S.r.l. SAP rel.1.0 : SAP State: Final Date: 03-27-200 Enterprise @pplication Integration Software S.r.l. Sede legale: Via Cola di Rienzo 212-00192 Rome - Italy Tel. +39.06.6864226 Sede operativa: viale Regina

Dettagli

Laboratorio di sistemi interattivi. Struttura di un applicazione Java-XML. Lezione 12: Java & XML

Laboratorio di sistemi interattivi. Struttura di un applicazione Java-XML. Lezione 12: Java & XML Laboratorio di sistemi interattivi Lezione 12: Java & XML 1 Struttura di un applicazione Java-XML Parser analizza il contenuto di un file XML Produce eventi in corrispondenza delle diverse componenti Eventi

Dettagli

Docente. Il Corso. Obiettivi PROGRAMMAZIONE PER IL WEB. Alessandro Bianchi. Presentazione del Corso per l a.a. 2014-15. Sviluppare

Docente. Il Corso. Obiettivi PROGRAMMAZIONE PER IL WEB. Alessandro Bianchi. Presentazione del Corso per l a.a. 2014-15. Sviluppare Docente PROGRAMMAZIONE PER IL WEB Presentazione del Corso per l a.a. 2014-15 Alessandro Bianchi Dipartimento di Informatica V piano Tel. 080 544 2283 E-mail alessandro.bianchi@uniba.it Orario di ricevimento:

Dettagli

IV Indice I comandi e la sintassi dei linguaggi formali Proposte di variazione sul tema Le stringhe Tipi di dato Operazioni co

IV Indice I comandi e la sintassi dei linguaggi formali Proposte di variazione sul tema Le stringhe Tipi di dato Operazioni co Indice Introduzione... IX A chi si rivolge questo libro...x Requisiti per la lettura...x Struttura del libro...x Presentazione dei capitoli...xi Programmi presentati nel libro... XII Credits... XII Software...

Dettagli

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche Mariarosaria Napolitano Architettura TCP/IP Corso di: Laboratorio di tecnologie informatiche e telematiche Contesto e Prerequisiti Contesto E' rivolto agli studenti del V anno degli Istituti Tecnici Industriali

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

Dettagli

Esonero di Informatica I. Ingegneria Medica

Esonero di Informatica I. Ingegneria Medica Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Dettagli

Modelli e strumenti per la generazione automatica di codice

Modelli e strumenti per la generazione automatica di codice tesi di laurea Anno Accademico 2005-2006 relatore Ch.mo prof. Porfirio Tramontana candidato Valerio Lombardi Matr. 534/237 Contesto e Contributo Fusione tra il mondo della modellazione e della programmazione

Dettagli

BASI LINGUAGGIO. Programmazione Web 1

BASI LINGUAGGIO. Programmazione Web 1 BASI LINGUAGGIO Programmazione Web 1 Commen0 Riga singola // This is a comment Riga mul8pla /* This is a sec8on of mul8line comments which will not be interpreted */ Programmazione Web 2 Istruzioni Un

Dettagli

Web Services Dogane LINEE GUIDA

Web Services Dogane LINEE GUIDA Web Services Dogane LINEE GUIDA Pagina 1 di 17 Indice Indice... 2 1. INTRODUZIONE... 3 2. TEST FUNZIONALI SUI WEB SERVICES... 8 3. SICUREZZA... 14 4. FIRMA... 14 5. TRASFORMAZIONE CERTIFICATO DI FIRMA...

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 00-PRIME PAGINE 2-07-2003 10:04 Pagina V Indice Prefazione XI PARTE PRIMA INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 1 Capitolo 1 Le ragioni di tanto interesse 3 1.1 Enterprise in J2EE 3 Definizione

Dettagli