Web 2.0 e Web Services nell'era dei Social Network. Snal: un caso di studio

Documenti analoghi
Progetto e sviluppo di un applicazione Android per il controllo di reti di sensori senza filo

Realizzazione di un software per la gestione di apparecchiature biomedicali Anno Accademico 2010/2011

Testing black box di web service: sperimentazione su di un servizio senza stato

Analisi di strumenti e tecniche per lo sviluppo di applicazioni Ajax.

La porta di comunicazione

Metodi e Tecniche per il Riuso di componenti in Applicazioni Android

Testing di applicazioni flex: uso dello strumento FlexUnit

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2013/2014

Realizzazione di un sistema a supporto del testing automatico di Rich Internet Applications

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

Architetture di rete. 4. Le applicazioni di rete

Tecnologie e applicazioni web JSON Web Token (JWT)

Android. Android e Rest

Realizzazione di interazioni sincrone e asincrone tra applicazioni Web 2.0

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

Strumenti per l automazione del testing di applicazioni web Javascript-based

Comune di Venezia Scheda descrittiva del programma Hub di autenticazione SPID

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded

Un architettura orientata ai servizi per la localizzazione di dispositivi mobili

Progetto e realizzazione di una libreria per la comunicazione sicura di. dati sui fallimenti in ambiente Android. Anno Accademico 2011/2012

Tesi di Laurea: Uno strumento per l estrazione di sessioni utente per applicazioni web JavaScript-based Anno Accademico: 2005/2006

MODULI COMPETENZE UNITA di APPRENDIMENTO

Tesi di laurea: Realizzazione di Strumenti per la valutazione di accessibilità di pagine Web

Specifiche di interfaccia applicativa per l invio delle pratiche protesti

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

Servizi REST. Fielding, R.T. Architectural Styles and the Design of Network-based Software Architectures. PhD Thesis, 2000.

Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi provenienti da sensori

Università degli Studi di Napoli Federico II

Strumento e tecnica a supporto del crash testing automatico di applicazioni mobili basato sul sistema operativo Android Anno Accademico 2010/2011

Servizi REST. Fielding, R.T. Architectural Styles and the Design of Networkbased Software Architectures. PhD Thesis, 2000.

Trasformazione di modelli di progetto : soluzioni basate su XSLT

TESI DI LAUREA IN INFORMATICA

TELEGRAM BOT (UNA INTRODUZIONE) Giuseppe Augiero. 11 gennaio Area della Ricerca di Pisa

Uno Strumento per la ricerca di campi Output e Etichetta in pagine Client

Sicurezza Informatica. Il Protocollo OAuth. Anno Accademico 2010/2011. Luca Mancini. Riccardo Queri

UNIVERSITY OF CAGLIARI

Internet of Things & Wireless Sensor Networks

Applicazione software per la classificazione, guidata da query Xpath, di pagine equivalenti ai fini del testing

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

Casi di studio sulla migrazione di applicazioni web verso servizi REST Anno Accademico 2008/2009

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

SMS Gateway - Specifiche WS. Specifica Tecnica

Progetto di Applicazioni Software

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Facilitare l interazione con le altre componenti dei sistemi informativi aziendali e non, grazie all utilizzo di web service nella nuova gestione

Tecniche di riuso del software: applicazione ad un caso di studio reale

DESCRIZIONE PROFILI PROFESSIONALI

Architetture Client/Server e World Wide Web

Indice Prefazione 1 Il diritto e la società dell informazione La società dell informazione Un nuovo paradigma soc

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

INNOVATION COMPANY. Accoglienza tramite Assistente Virtuale

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

Applicazioni distribuite e sistemi ad oggetti distribuiti

Programmazione modulare

Open Data Roma Capitale Apps4Roma

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

L integrazione di mail in un sistema automatico di distribuzione di ontologie: Ontology Mail Manager

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


TCL PAD: UN EDITOR DI TESTO ESTENDIBILE, INCORPORABILE E CON INTERFACCE DI TEXT-PROCESSING

Rapporto tecnico Nuovo Portale CNR

Un architettura per la cooperazione di applicazioni: un approccio basato sulla migrazione di applicazioni Legacy

insiel Centri di Servizio Territoriali Opportunità e sfide Il modello INSIEL INSIEL S.P.A. Forum PA 8 maggio 2006

Sviluppo e manutenzione di un applicazione CAD tramite le WPF e l MV-VM

IBMi Next Step. IBMi Next Step: Strumenti moderni per lo sviluppatore. IBM Client Center 6 Dicembre 2016 Segrate (MI)

L Affidabilità dei Sistemi di Input-Output ad Elevate Prestazioni

Applicativi regionali centralizzati per la Sanità - AURA Archivio Unitario Regionale degli Assistiti

UNIVERSITA' CA' FOSCARI DI VENEZIA. Facoltà di Scienze MM.FF.NN. - Dipartimento di Informatica Tesi di Laurea Triennale

Allegato 1 Descrizione profili professionali

Progetto e sviluppo di un applicazione per il pilotaggio remoto di reti

Studio e implementazione di un Profilo SAML per Trait based Identity Management System nel Session Initiation Protocol

Senior Backend Developer

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Lo Standard OPC. Materiale Didattico: Dispense OPC UA Inglese e Italiano Esercizio Client OPC UA Java (stampare il file word e portarlo a lezione!

Tecnologie dei Sistemi di Automazione

Introduzione alla Programmazione per il Web

Sintesi e sperimentazione di un modello di propagazione sonora per l analisi di reti di sensori sottomarine

Laboratorio Progettazione Web Modello di applicazione Web

SOA case study. Un esempio di progetto SOA. Le esperienze maturate sul campo. organizzato da:

Si consideri il protocollo applicativo FTP e lo scambio di messaggi sulla connessione TCP di segnalazione mostrato in figura.

cover #PHONES Architettura Componente Chat IFM Group Maggio 2017 Numero Documento: PH0050/01

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:

LABORATORIO di Reti di Calcolatori

GIS e Geo WEB: piattaforme e architetture. Docente: Cristoforo Abbattista

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

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi

Alma Mater Studiorum- Università di Bologna. Progettazione ed Implementazione di un Hidden TCP Proxy

Prof. Pagani corrado SISTEMI INFORMATIVI E DATABASE

Servizi di interscambio dati e cooperazione applicativa Guida alla gestione dei servizi web Mipaaf

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

Architettura Client-Server. In a nutshell

Tecnologia dell Informazione

Solution Integrator 18/06/16.

Introduzione a Internet e World Wide Web

WISPLAB Software, la soluzione ideale per gli operatori delle telecomunicazioni.

Progetto d esame. La logica di gioco. Tecnologie e applicazioni web, a.a 2017/2018. Fase di posizionamento

Tesi di Laurea Triennale in Ingegneria Informatica REALIZZAZIONE DI UN APPLICATIVO PER LA GESTIONE DI FOGLI DI LAVORO INTEGRATO IN OUTLOOK 2010

Transcript:

tesi di laurea Web 2.0 e Web Services nell'era dei Social Network. Snal: un caso di 2010/2011 relatore Ch.mo prof. Porfirio Tramontana candidato Marcello Roerhssen di Cammerata Matr. 534/001550

Problematiche affrontate: Dimostrare che i Social Network possono essere veri e propri Web Services Sviluppare un Web Service in grado di astrarre le interazioni con i Social Network

Il punto sui Web Services Protocolli esistenti: SOAP Il messaggio è imbustato in XML Estensibile e decentralizzato XML-RPC Rest Usa XML per lo scambio di messaggi Consente di effettuare una chiamata come se fosse locale Le funzionalità sono divise in Risorse accessibili tramite URI Stateless, Cachable a livelli

Un Esempio di Web Service SOAP: Amazon AWS Mostriamo un esempio di Web Service prendendo in considerazione uno dei più famosi fornitori di servizio: AMAZON AWS Protocollo di comunicazione: SOAP Sicurezza garantita da firma digitale e da certificati di sicurezza X.509 Normale SOAP envelope <DescribeDBInstancesResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/"> <DescribeDBInstancesResult> <DBInstances> <DBInstance>I-f8n42</DBInstance> <DBInstance>I-f8n43</DBInstance> <DBInstance>I-f8n44</DBInstance> <DBInstances> </DescribeDBInstancesResult> <ResponseMetadata> <RequestId>946cda70-c3f1-11de-807a- 79c03c55f7d4</RequestId> </ResponseMetadata> </DescribeDBInstancesResponse> SOAP envelope di AWS

Social Network e Web Services FLICK Utilizza, come protocollo, sia Rest che XML-RPC a seconda dei parametri passati Utilizza OAuth per l'autenticazione I formati di risposta possono essere sia XML che JSON a seconda dei parametri passati jsonflickrapi({ "stat": "ok", "blogs": { "blog": [{ "id" : "73", "name" : "Bloxus test", "needspassword" : "0", "url" : "http://remote.bloxus.com/" }] ) TWITTER Utilizza OAuth per l'autenticazione Restituisce risposte in JSON Le API core di Twitter sono utilizzate dagli stessi sviluppatori nel sito www.twitter.com TwitterJsonApi({ "completed_in":0.088, "max_id":114000917262643200, "max_id_str":"114000917262643200", "page":1, "query":"%40twitterapi+%40anywhere", "refresh_url":"?since_id=114000917262643200&q= %40twitterapi%20%40anywhere", "results"[], "results_per_page":15, "since_id":0, "since_id_str":"0" })

Facebook come Web Service Utilizza il protocollo RESTful Utilizza OAuth per l'autenticazione Le risposte sono di tipo json Ogni oggetto di risposta appartiene ad un grapho, cioè ogni oggetto è legato agli altri appartenenti al dominio API di Facebook. Prima di poter essere utilizzata, una applicazione deve essere autorizzata dall'utente Le risposte fornite sono Json { "id": "1565911306", "name": "Marcello Roehrssen", "username": "marcello2", "first_name": "Marcello", "last_name": "Roehrssen", "link": "http://www.facebook.com/marcel lo2", "gender": male, "locale": it_it }

Web Service tramite Thrift Cos'è Thrift : una software library un insieme di strumenti di generazione di codice Come nasce: sviluppato da Facebook per accelerare lo sviluppo di web-services efficienti e scalabili. Cosa consente di fare Il suo obiettivo primario è quello di consentire una comunicazione efficiente ed affidabile attraverso linguaggi di programmazione differenti astraendo quelle porzioni di codice proprietarie di ogni linguaggio, che tendono a richiedere la maggior manutenzione Stack di comunicazione di Thrift: Tipi: Nasce dalla necessità che uno sviluppatore possa essere in grado di scambiare oggetti più o meno complessi in maniera del tutto trasparente. Se un programmatore java vuole scambiare un oggetto di tipo List<T> non deve scrivere codice di controllo e non deve entrare nei sottolivelli che non gli competono. Trasporto: il livello di trasporto dovrebbe essere anch'esso del tutto trasparente. Lo sviluppatore non deve interessarsi del fatto che il protocollo di trasporto sia implementato tramite Filesystem, socket o TCP Protocollo: al fine della comunicazione non è importante neanche che lo sviluppatore conosca il protocollo di trasporto, Esso può essere implementato tramite XML, o protocollo binario senza che il developer se ne renda conto. Processors: Deve essere possibile che gli sviluppatori implementino le chiamate RPC come meglio credono. Unico vincolo deve essere l'interfaccia del servizio definito nell' IDL.

Sistemi a confronto SOAP. XML-based. Progettato per i servizi web tramite HTTP, comporta un eccessivo overhead sul parsing dell' XML. CORBA. Relativamente completo, eccessivamente sovradimensionato. Comporta l'installazione di software ingombrante. COM. Strettamente legato al software, sopratutto nei Client Windows. Non è una soluzione completamente aperta. Thrift. Prevede la distribuzione della libreria al client velocità di scrittura portabilità alta

Progettazione e sviluppo di SNAL Requisiti funzionali: Gestire una grossa base di utenti appartenenti ad un network di applicazioni presenti su Facebook Garantire operazioni fondamentali: GET Check Insert Delete L'utente deve avere queste caratterstiche fondamentali: Nome completo, data di nascita, localizzazione geografica, relazione sentimentale, grado di Dovrà essere possibile effettuare statistiche su gli utenti iscritti Scelte progettuali Utilizzo di istanze Amazon EC2. Questo garantisce la velocità nella comunicazione e la sicurezza del servizio. Utilizzo di AAS e di ELB. Garantiremo la scalabilità del servizio in base al carico. Utilizzo di Thrift. Ciò garantirà l'accesso al servizio in maniera semplice generando il codice di comunicazione per il Server. Per consentire l'accesso al servizio di applicazioni differenti è necessario che ogni applicazione sia identificata univocamente.

SNAL: Servizio Web Di seguito un estratto dell'idl da cui poi Thrift genererà il codice sorgente del servizio service Snal { void insert(1:long userid, 2:access_token ac) throws (1:InvalidUser ouch), bool check(1:long userid) throws (1:InvalidUser ouch), void remove(1:long userid) throws (1:InvalidUser ouch), User get(1:long userid) throws (1:InvalidUser ouch) } Interfaccia Thrift Codice generato

Conclusioni Il mondo dei Web Services si è arricchito di un nuovo aspetto: i Social Network Thrift solleva gli sviluppatori dall'onere di scrivere codice di controllo nei Web Services. Il developer dovrà solo implementare la logica di business Sviluppi futuri Creare un web sempre più user-centered Ogni web application avrebbe indubbi vantaggi dall'utilizzo dei Social Network come servizi Web