Tecnologie per e-service

Slides:



Advertisements
Presentazioni simili
EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Reti informatiche: Introduzione AICA © 2005.
Advertisements

Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Web Services Mario Arrigoni Neri.
Architetture dei sistemi distribuiti Prof
MAPPE CONCETTUALI Sergio Capone ITP
La sinergia tra Office SharePoint Portal Server 2003 e Content Management Server 2002 Walter Cipolleschi.
Consumare Web Service Andrea Saltarello
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
SOAP (Simple Object Access Protocol)
Web Services.
Java Enterprise Edition (JEE)
P. Sanna 1 I web services TICO Corso di laurea in Informatica Università di Pisa a.a Pierluigi Sanna.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
Università degli Studi di Modena e Reggio Emilia Facoltà dIngegneria - sede di Modena Corso di Laurea in Ingegneria Informatica Interoperabilità di componenti.
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
Pernici Barbara Politecnico di Milano Master Universitario di II livello in Tecnologia dell'Informazione.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Domenico Presenza Dimostratore MAIS per il dominio turistico Presentazione specifiche dei prototipi (R8.2.4) Milano – 17 Novembre 2004.
Progetto realizzato da: Francesco Seccia Matr Marco Spinelli Matr
ICT (Information and Communication Technology):
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.
Integrazione di una piattaforma IPTV in un’architettura SOA
L'innovazione Tecnologica Per Il Federalismo Efficiente Roma 30 Giugno 2005 Sistema Pubblico di Cooperazione Applicativa.
SOA…overview La parola d’ordine delle situazioni di sviluppo applicativo odierne è integrazione. Le applicazioni sviluppate si trovano a condividere flussi.
IL SISTEMA INFORMATICO e IL SISTEMA INFORMATIVO
IL SISTEMA INFORMATICO e IL SISTEMA INFORMATIVO
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
IL CLOUD COMPUTING: portabilità o privacy?
JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Modelli ed Applicazioni di Reti di Calcolatori L-S Anno Accademico Università degli Studi di Bologna Ing. Fabio Tarantino –
Architettura Java/J2EE
1 L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online Reti di Calcolatori LS Nuzzi Nicola Mat
Applicazioni mobile Better Software 2009 Massimiliano Zani Sms Italia.
1 Internet e nuove tecnologie Anno Accademico Prof. Flavio De Paoli Dott. Marco Loregian.
Corso di Informatica per Giurisprudenza Lezione 7
Modulo 7 – reti informatiche u.d. 1 (syllabus – )
La vita cittadina entra nel Sito del Comune. Lo Strumento La Città Virtuale si propone come uno strumento di contatto e interfaccia con i cittadini, le.
POSTA ELETTRONICA PER GLI STUDENTI DI ECONOMIA POSTA SU HOST b Host e terminali La base dati dei messaggi risiede sul mainframeLa base dati dei messaggi.
Progetto di Reti di Calcolatori L-S Orchestrazione di servizi WEB
BROKER SERVER Progetto di Ingegneria del Web 2008 Alessio Bianchi Andrea Gambitta Giuseppe Siracusano.
Elaborazioni server-side: dalle CGI al PHP
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.
Corso di Web Services A A Domenico Rosaci 1. Introduzione
EM 09 INTERNET … UN PO DI STORIA. EM 09 Nasce per garantire comunicazioni efficienti … Tra le sedi delle forze armate americane Tra le sedi delle forze.
Applicazione Web Informatica Abacus Informatica Classe VIA 2008/2009 N.Ceccon INF (01) Revisione 4.0 settembre 2008.
Web Information Systems Prof
Distributed System ( )7 TCP/IP four-layer model.
Università degli Studi di Bologna FACOLTA’ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica I web services come soluzione per l’interoperabilità.
EDIFACT Framework Architecture Acceleratore di soluzioni basate su EDIFACT
Java Enterprise Edition
Creato da Riccardo Nuzzone
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
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.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
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
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Business Process Management Orchestrazione di Web Service basata su standard BPEL per la realizzazione di un servizio di tour operator Università degli.
Informatica Lezione 8 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Tecnologie in movimento
Architetture software
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Framework di sicurezza della piattaforma OCP (Identity & Access Management) Smart Cities and Communities and Social Innovation Bando MIUR D.D. 391/Ric.
Competenze Informatiche Avanzate
Transcript della presentazione:

Tecnologie per e-service Web services

Sommario Web service Service oriented architecture SOAP UDDI WSDL

Virtual Enterprise: Scenario

Conseguenze Si possono... I servizi vanno da ...dare in outsourcing „servizi“ (es. dove non si è competitivi) ...offrire „servizi“ (es. Guadagnare con funzioni e servizi effettuate per altri) I servizi vanno da ...funzioni semplici... ...a processi di business completi, cioè funzioni complesse

Contesto Introduzione SOC Service-Oriented Computing Realizzare applicazioni distribuite collaborative inter aziendali Servizi: “Component capable of performing a task” (W3C) Qualcosa che ha dei parametri in ingresso ed in uscita Realizzazione tramite architettura SOA

O.K., Ma come accedere ai servizi? I firewalls sono ostacoli per l‘accesso ai servizi Ampia varietà di linguaggi di programmazione, paradigmi di programmazione, ambienti, ... rendono difficile l‘orchestrazione Serve un meccanismo di invocazione generale!

Web services Servizi che possono essere chiamati da altri programmi in rete Decentralizzazione dell’elaborazione (Sun, 1990) Def: Web Service: raccolta di funzioni packaged e pubblicate in rete per essere utilizzate da altri programmi client i dati vengono scambiati tra le applicazioni in maniera standardizzata (testuale attraverso XML)

Vantaggi interfacciamento a un web service di un partner: non è necessario conoscere niente di quello che sta dal suo lato, si devono esclusivamente chiedere a lui i parametri per connettersi a quel particolare web service che serve senza preoccuparsi della piattaforma hardware, del linguaggio di programmazione o del pacchetto applicativo usato.

Esempio B2C Prenotazioni aeree Si vuole prenotare un viaggio con soggiorno in albergo Situazione tradizionale Airline.com HTTP Server Hotel.com HTTP Server Client

Problemi L’utente deve più volte interagire con i server e cercare di trovare la combinazione giusta di voli A/R e alberghi Tempo perso Processo a volte lungo Interfacce web non standard Problemi di comunicazione

Soluzione web services Fornire all’utente un servizio Web Input: Intervallo di arrivo, partenza Categoria di albergo (tipo di stanza etc. etc.) Output Prenotazione Booking Web server

Soluzione web services Al posto del HTTP server della compagnia aerea Web Server Input Data e luogo di partenza Data e luogo di arrivo Output Schedule costi Airline.com Web Server

Soluzione Web Services Al posto del HTTP server dell’hotel Web Server Input Data di arrivo Data di partenza Tipo di stanza Output Tipologia di stanza costi Hotel.com Web Server

Soluzione Web Services Airline.com Web Server Booking Web server Hotel.com HTTP Server

Soluzione Web Service Il booking web server cerca un primo possibile schedule dialogando con il web server della compagnia aerea In base allo schedule il web server dialoga con l’hotel per trovare la stanza Se non esiste soluzione si cambia schedule e così via Al client finale solo due tipi di risposta Schedule e la prenotazione Impossibile completare il servizio.

Vantaggi L’utente vede solo i risultati finali Interoperabilità I web server dialogano usando degli standard Automazione La comunicazione è automatica Generalità Il server booking può dialogare con QUALSIASI web server di compagnie aeree e hotel che realizzino l’interfaccia descritta precedentemente.

Problematiche Linguaggi di descrizione delle interfacce e del comportamento di un servizio rivolto a chi realizza e pubblica il servizio Rivolto a chi lo cerca e utilizza; Componenti per la memorizzazione e il reperimento di servizi Interrogabili secondo diversi criteri Linguaggi di specifica per la conversazione tra diversi servizi Linguaggi di specifica di composizione di servizi a valore aggiunto partendo da servizi di base Per ogni problema sono stati proposti diversi standard

Ciclo di vita I 4 problemi indicati precedentemente rispecchiano il seguente ciclo di vita

Service Oriented Architecture (SOA)

Ingredienti Descrizione servizi (WSDL) Archivio servizi (registry, UDDI) Meccanismi di invocazione (SOAP)

WSDL

Come definire nuovi servizi? Riferimenti a modelli definiti da altri (= tModels) ...ma se voglio pubblicare i miei servizi es. Semplici funzioni utili a altri o processi di business completi che offro a altri ...senza creare uno standard! Abbiamo bisogno di un linguaggio per secificare i servizi e descrivere come gli altri possono collegarsi a esso! WSDL (Web Services Description Language)

WSDL Ingredients Supports Port Type Operation How to invoke Formats & Protocols Input & Output Binding Message How to encode Implements Provides Port Service

Port Types: Graphical Representation Request -Response o2 o2 Solicit -Response pt o3 One-Way o4 Notification

Rendere disponibili i servizi Binding Formats & Protocols How to invoke How to encode Message Operation Port Type Input & Output Supports (Widely Accepted) Abstract Service How To Do Business With Me 1. 3. What Business You Can Do With Me 2. Port Service Implements Provides

WSDL WSDL propone una struttura in cui: l’entità types permette di definire un tipo di dato utilizzato nel resto della descrizione; l’entità message i messaggi trasmessi; l’entità portType definisce un servizio in termini di operazioni (operation) messe a disposizione; l’entità port ridefinisce le operation di una portType legandole ad una particolare tecnologia di comunicazione; l’entità service definisce il Web Service realmente fruibile come insieme di port.

WSDL - message <message name="CalcolaICIRequest"> <part name="sup" type="float" /> <part name="tipo" type="string" /> </message> <message name="CalcolaICIResponse"> <part name="risultato" type="float" />

WSDL portType e operation <portType name="pRagioneria"> <operation name="CalcolaICI"> <input message="CalcolaICIRequest" /> <output message="CalcolaICIResponse" /> </operation> </portType>

WSDL - binding <!-- estratto dal file WSDL del servizio Ragioneria--> <binding name="RagioneriaHttpGet" type="pRagioneria"> <http:binding verb="GET" /> <operation name="CalcolaICI"> <http:operation location="/CalcolaICI" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="risultato" /> </output> </operation> </binding> <binding name="RagioneriaHttpPost" type="pRagioneria"> <http:binding verb="POST" /> <mime:content type="application/x-www-form- urlencoded" />

Rendere disponibili i servizi Binding Formats & Protocols How to invoke How to encode Message Operation Port Type Input & Output Supports (Widely Accepted) Abstract Service How To Do Business With Me 1. 3. What Business You Can Do With Me 2. Port Service Implements Provides

Tipi di documenti WSDL

Struttura WSDL

UDDI

Repositories e registries systems storing and managing e-Service specifications e-service providers Alcune iniziative UDDI

UDDI (Universal Description, Discovery & Integration) accesso alla descrizione di servizi, di tipologie di servizi e di fornitori di servizi secondo una struttura dati ben definita; astrazione dalla tecnologia utilizzata nella realizzazione del servizio; la ricerca di un servizio secondo differenti chiavi di ricerca (tassonomie) Ricerca sia da utente che da programma Repository disponibile globalmente UDDI (Universal Description, Discovery & Integration)

Business Registrations How UDDI Works Marketplaces, search engines, and business apps query the registry to discover services at other companies 3. SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services 1. Businesses populate the registry with descriptions of the services they support 2. Service Type Registrations Business uses this data to facilitate easier integration with each other over the Web 4. Business Registrations UDDI

How to do business with me Registry Data White Pages Who am I? Businesses register public information about themselves Yellow Pages What do I offer? Green Pages How to do business with me Standards bodies, Programmers, Businesses register information about their Service Types („tModels“) Service Type Registrations

Standard: UDDI metodologia di ricerca possiede una forte analogia con quella offerta dagli elenchi telefonici Struttura del registro pagine bianche Nome azienda Descrizione testuale del servizio Lista multi lingua del servizio Dati di contatto Nome, numero di telefono, web site … Identificatori conosciuti

Standard: UDDI Registro pagine gialle Categorie di Business 3 tassonomie standard nella versione 1.0 Industria: Prodotti/servizi Localizazione geografica Coppie nome, valore per associazione con le pagine bianche possibile eseguire ricerche basate su: l’ambito in cui si colloca il servizio; la localizzazione geografica dei fornitori; l’ambito in cui si colloca il fornitore del servizio.

Standard: UDDI Modello nidificato Pagine verdi Insieme di informazioni che le aziende usano per descrivere come sia possibile fare e-commerce insieme Create sulla base delle informazioni legate alla tecnologia Possibile trovare informazioni legate alla tipologia del servizio secondo criteri legati alla tipologia di invocazione, ai protocolli utilizzati e alle caratteristiche tecniche del servizio. Modello nidificato Processi di business Descrizione del servizio Informazioni sulla comunicazione I Servizi possono essere organizzati come un albero

tModel

Example of a Registration Frank Leymann businessEntity TB993… Frank‘s Flowershop www.Frank-Flower.com “Flowers for the world!“ contacts businessServices identifierBag categoryBag +49-7031-163998 Boeblingen, Germany Frank@ibm.com businessService Key Name Description BindingTemplates 23T701e54683nf… Online catalog “Website where you can … keyedReference DFE-2B… DUNS 45231 EE123… NAICS 02417 BindingTemplate 5E2D412E5-44EE-… http://www.flowers.de/flowerCat tModelInstanceDetails tModelKeys tModelInstanceInfo 4453D6FC-223C-3ED0… http://www.rosetta.net/catalogPIP

Registry Operation queries IBM Ariba other UDDI.org other Microsoft Peer nodes (websites) Companies register with any node Registrations replicated on a daily basis Complete set of “registered” records available at all nodes Common set of SOAP APIs supported by all nodes Compliance enforced by business contract queries IBM Ariba other UDDI.org other Microsoft

Architettura generale UDDI

SOAP

SOAP: Simple Object Access Protocol Fornire un (Object) RPC su Internet Interoperabilità tra un ampio numero di programi su un ampio numero di piattaforme Differenti linguaggi e paradigmi di programmazione, e di ambienti operativi Rendere i programmi esistenti disponibili a un numero elevato di utenti Utilizzare ove possibile la tecnologia esistente Uso di HTTP e XML („XML as HTTP payload“) HTTP come RPC transport XML come RPC encoding scheme Nessuna API SOAP speciale, nessun ORB SOAP

HTTP POST: Invoking Code POST /myFunctions/reverse HTTP/1.1 Host: www.Frank-Leymann.com Content-Type: text/plain Content-Length: 12  Hello, World A simple RPC Client Server Run Program 200 OK Content-Type: text/plain Content-Length: 12   dlroW ,olleH

Tunneling The Firewall RMI Client HTTP IIOP

Approfondimenti

Example <?xml version="1.0"?> <definitions name="StockQuote" xmlns:tns=http://leymann.com/stockquote.wsdl xmlns:xsd="http://leymann.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name="GetLastTradePriceRequest"> <part name="tickerSymbol" element="xsd:string"/> <part name="time" element="xsd:timeInstant"/> </message> <message name="GetLastTradePriceResponse"> <part name="result" type="xsd:float"/> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="GetLastTradePriceRequest"/> <output message="GetLastTradePriceResponse"/> </operation> </portType> ...

Example <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://leymann.com/GetLastTradePrice"/> <input> <soap:body use="encoded" namespace="http://leymann.com/stockquote" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> </output> ...

Example <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding"> <soap:address location="http://leymann.com/stockquote"/> </port> </service>

SOAP Request/Response Structure Object ID (Which object?) Status Code (Did it work?) Interface ID (Which interface?) Extension Headers (What has been forgotten to be build into the protocol?) Endpoint Reference Method ID (Which method?) Parameter (Out and inout parms) Extension Headers (What has been forgotten to be build into the protocol?) Parameter (In and inout parms)

SOAP Endpoint Reference 209.111.234.34 IP Host Address 80 TCP Port No /StockServer/getLastTradePrice Object Endpoint ID POST /StockServer HTTP/1.1 Host: 209.111.234.34 Content-Type: text/xml; charset=„utf-8“ Content-Length: nnnn <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> ... 

A Simple SOAP RPC Method Name Input Parameter POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8„ Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <tickerSymbol>DIS</ tickerSymbol > </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Method Name Input Parameter

A Simple SOAP Response Standard Suffix HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8„ Content-Length: nnnn  <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Standard Suffix

SOAP Header Protocol Extensions POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8„ Content-Length: nnnn SOAPAction: „Some-URI“  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Header> <t:Transaction xmlns:t="some-URI, SOAP-ENV:mustUnderstand="1"> 5 </t:Transaction> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DEF</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Protocol Extensions

Bibliografia Conallen, Building Web Applications with UML, Addison Wesley Professional; 2nd edition (October, 2002, vers. Ital. Nov. 2003) P. Plebani, Web service: tecnologie e piattaforme. Rapporto Fondazione Tronchetti Provera, 2002