REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente,

Slides:



Advertisements
Presentazioni simili
XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Advertisements

UNO STRUMENTO PER INTERAGIRE CON GLI UTENTI DELLE PAGINE WEB
Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Massimiliano Bosco – Aliware – Torino – Project 2003 Sviluppare Soluzioni EPM con Project Server (2/4)
PHP.
Utilizzare PHP 5 Corso Interazione Uomo – Macchina AA 2005/2006.
Sistema di gestione flussi documentali
Web Services.
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Connessione con MySQL.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
Web e HTTP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
Architettura del World Wide Web
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Introduzione a AJAX - Asynchronous Javascript And Xml
XML e la generazione di cataloghi multimediali F. Garzotto, L. Mainetti, P. Paolini Politecnico di Milano HOC - Hypermedia Open Center Dipartimento di.
Reti di Calcolatori IL LIVELLO APPLICAZIONI WEB e HTTP.
Presentazione a cura diSlide n.1 AVIPA 1. Presentazione generale dell'ambiente software Viterbo, 10 Dicembre 2008.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Elaborazione di Franco Grivet Chin
Introduzione ad ASP.net
Architettura Java/J2EE
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
Modulo 7 – reti informatiche u.d. 1 (syllabus – )
Elaborazioni server-side: dalle CGI al PHP
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati.
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
Amministrazione della rete: web server Apache
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
HTML I Form in HTML5.
L’architettura a strati
Corso di WebMaster Mercoledì 14 Novembre. Parte I – Introduzione al Corso Lezione 1: Presentazione Descrizione Breve del Corso Semplice Valutazione.
Lezione 8.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Accesso a basi di dati con ASP.
Java Enterprise Edition
Creato da Riccardo Nuzzone
Pagine ASP parte 3 I data base Stefano Schacherl.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
Introduzione a Javascript
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
MySQL Database Management System
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Laboratorio di Servizi Web - servlet - Ardissono 1 Chiarimenti su Servlet Note aggiuntive su architettura di applicazione web che usa Servlet per gestire.
Relatore: Prof. Ing. Stefano SalsanoLaureando: Flaminio Antonucci.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 1 – World Wide.
Lucia Melotti 1/14 Bologna, 7 luglio 2004 Aspetti di sicurezza nello scambio di messaggi XML tra un partner ebXML ed un Web Service di Lucia Melotti Relatore:
Servizi Internet Claudia Raibulet
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
Architetture software
+ Connettersi al web Nicolò Sordoni. + Verificare se lo smartphone è connesso Per poter accedere alla rete, è consigliato innanzitutto verificare se il.
Gestire i dati: download e salvataggio. L’importanza dei dati La quasi totalità delle applicazioni hala necessità di gestire varie funzionalità relative.
 REST API. REpresentational State Transfer  Termine introdotto nel 2000 nella tesi di dottorato di Roy Fielding (uno degli autori del protocollo HTTP)
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Transcript della presentazione:

REST Il paradigma REST è basato su un protocollo di comunicazione stateless, client-server, chacheable e scalabile, tipicamente HTTP (ma non necessariamente, in realtà). Elementi fondamentali di un Web Services basato sull'architettura REST: Risorse Rappresentazione delle risorse Operazioni sulle risorse

RISORSE Un servizio RESTful gestisce un insieme di risorse Esempio: nel nostro sistema di carSharing le risorse potranno essere gli utenti le auto, i viaggi Una risorsa può rappresentare una “collezione” di altre risorse Esempio: una risorsa potrà essere un insieme di viaggi che corrispondono a un criterio di ricerca

RISORSE Ogni risorsa è identificata attraverso un URL specifico Esempio: http://CarSharing.com/Car/List/{userId}/{first}/{last} Insieme auto di un utente http://CarSharing.com/Car/{carId} Singola auto Possiamo definire una regola generale nella definizione delle URL: usare pochi tipi di risorse scegliere i tipi di risorse tra concetti di basso livello,mentre concetti più complessi sono costruiti dal client mediante regole proprie.

Rappresentazioni Ciascuna risorsa può avere più rappresentazioni diverse Ad esempio la nostra applicazione potrebbe fornire una rappresentazione di un auto: in formato HTML per la visualizzazione da parte di una pagina web pdf per la stampa json per essere utilizzata da un altra applicazione.

Operazioni Nell’approccio REST si usa un numero limitato di operazioni per leggere o modificare lo stato delle risorse Le operazioni corrispondono ai “metodi” definiti nel protocollo HTTP Non tutte le operazioni sono disponibili su tutte le risorse operazione Metodo Http Creazione nuova risorsa idempotente: Sostituzione risorsa esistente PUT Modifica (valori) risorsa preesistente POST Cancellazione risorsa DELETE Accesso (visualizzazione, etc) alla risorsa GET

Richiesta HTTP Una richiesta HTTP contiene: l’URL della risorsa a cui è riferita l’operazione da effettuare (es. GET) informazioni aggiuntive (headers), ad esempio per indicare il tipo di rappresentazione richiesta per alcune operazioni, un “corpo” della richiesta (body); in particolare il body è presente nelle operazioni PUT e POST User-Agent: Mozilla/5.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate

Risposta HTTP Una risposta HTTP contiene: un codice numerico che indica l’esito dell’operazione (status) informazioni aggiuntive (headers); ad esempio, il tipo di rappresentazione restituito per alcune operazioni, un “corpo” della risposta (body) HTTP/1.1 200 OK X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA Content-Type: text/html <head> <title>JBoss RESTEasy Project</title> </head> <body> <h1>JBoss RESTEasy</h1> <p>JBoss RESTEasy is an open source implementation of the JAX-RS specification..

Satus HTTP Lo status è codificato su 3 cifre dove la prima cifra indica l'esito generale: 2xx: operazione eseguita con successo 3xx: redirezione (la risorsa desiderata si trova a un altro indirizzo) 4xx: errore da parte del client 5xx: errore interno al server

Formato Json JSON (JavaScript Object Notation) è un semplice formato per lo scambio di dati. Basato su due strutture: Un insieme di coppie nome/valore Un elenco ordinato di valori. Nella maggior parte dei linguaggi questo si realizza con un array, un vettore, un elenco o una sequenza. Queste sono strutture di dati universali. Virtualmente tutti i linguaggi di programmazione moderni li supportano in entrambe le forme.

Formato Json I tipi di dato supportati sono: Booleani Interi,reali,virgola mobile Stringhe Array Null Strutture formate dai parametri supportati. { "type": "menu", "value": "File", "items": [ {"value": "New", "action": "CreateNewDoc"}, {"value": "Open", "action": "OpenDoc"}, {"value": "Close", "action": "CloseDoc"} ] }

Architettura Server Il server dell'applicazione di carSharing, è basato sulla tecnologia REST implementata utilizzando il framework Jersey che aderisce alla JAX-RS che definisce i servizi mediante l'uso di annotazioni. Annotazion @Path Definisce il path della risorsa @GET,@PUT,@DELETE Specifica il tipo di richiesta http @Producer Specifica il tipo di risposta definita secondo MIME media types @Consumer Specifica il formato accettato definito secondo MIME media types @PathParam Associa i parametri al path @CookieParam Associa i parametri ai cookie @DefaultValue Definisce un valore di default in caso il parametro risulti assente.

Architettura Server Il server dell'applicazione di carSharing, offre i propri servizi come REST implementati utilizzando il framework Jersey che aderisce alla JAX-RS che definisce i servizi mediante l'uso di annotazioni. Annotazion @Path Definisce il path della risorsa @GET,@PUT,@DELETE Specifica il tipo di richiesta http @Producer Specifica il tipo di risposta definita secondo MIME media types @Consumer Specifica il formato accettato definito secondo MIME media types @PathParam Associa i parametri al path @CookieParam Associa i parametri ai cookie @DefaultValue Definisce un valore di default in caso il parametro risulti assente.

Architettura Server

DB

Contiene le risorse fornite agli utenti, tra le principali: Package Service Contiene le risorse fornite agli utenti, tra le principali: Risorsa Descrizione User/ Rappresenta un utente User/Feedback Rappresenta un feedback Trip/ Rappresenta un viaggio Trip/Passenger Rappresenta un passeggero di un trip Trip/List Rappresenta un acollezione di viaggi Car Rappresenta un auto Car/List Rappresenta una collezione di auto Notification Rappresenta una collezione di notifiche

Package DAO Si occupa dell'interfacciamento e della gestione del db: ConnectionManager: Si occupa della gestione delle connessioni al db, implementando il riciclo delle stesse gestite tramite un poll di connessioni libere, mediante il pattern singleton DataAccessObject: Realizza le query verso il db , utilizzando una connessione richiesta al connectionManager.

Package Package bean in questo package sono contenute classi che hanno scopo di contenitori di dati. Package Utility Qui vengono offerti dei servizi di supporto all'applicazione come conversione di immagini in stringhe per essere cosi trasportate mediante il protocollo http, gestione della memoria, ecc.. Package Configuration qui sono riposte informazioni di cofigurazione del server.

Json vs Xml Semplicità Json ha una grammatica molto più piccola di xml Ridondanza XML ha una ridondanza maggiore di JSON con conseguente aumento di peso Interoperabilità Json e Xml hanno lo stesso potenziale di interoperabilità. Xml attualmente è molto utilizzato ma Json inizia a farsi conoscere grazie alla facilità di conversione da Xml a Json e la presenza di librerie di parsing nella maggior parte dei linguaggi di programmazione.