Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... ·...

44
Service Oriented Architectures e Web Services Corso di Applicazioni Telematiche A.A. 2009-10 Prof. Simon Pietro Romano Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Transcript of Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... ·...

Page 1: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Service Oriented Architectures eWeb Services

Corso di Applicazioni TelematicheA.A. 2009-10

Prof. Simon Pietro Romano

Università degli Studi di Napoli Federico II

Facoltà di Ingegneria

Page 2: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Cos’è un Web Service?

• L’evoluzione delle tecnologie Internet ha due obiettivi principali:• soddisfare i bisogni degli utenti• integrare sistemi informativi eterogenei e sempre più

complessi• Web Service:• Web Service:

• componenti software distribuiti ed accoppiati in modo lasco

• forniscono un servizio ben definito• servizio inteso non necessariamente come un servizio finale,

ma come un componente indipendente che può essere usato per fornire un servizio finale

• sono accessibili da programmi mediante protocolli Internet standard

Page 3: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Web Services secondo il W3C

“Software applications identified by a URI, whose interface and bindings are capable ofbeing identified , described and discovered

“Software applications identified by a URI, whose interface and bindings are capable ofbeing identified , described and discoveredbeing identified , described and discoveredby XML artifacts and supports directinteractions with other software applicationsusing XML based messages via Internet-based protocls” (W3C).

being identified , described and discoveredby XML artifacts and supports directinteractions with other software applicationsusing XML based messages via Internet-based protocls” (W3C).

Page 4: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Web Service: definizioni

• Componenti per la programmazioneweb:• auto-contenuti, auto-descrittivi, modulari• possono essere, sempre tramite• possono essere, sempre tramite

interazioni basate sul web:• pubblicati• localizzati• invocati

Page 5: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Caratteristiche dei Web Service

• Riutilizzabili• Indipendenti da:

• piattaforma (Unix, Windows, Mac, …)

• implementazione (VB, C#, Java, ...)• architettura sottostante (.NET, J2EE, …)• architettura sottostante (.NET, J2EE, …)

• Accessibili mediante un’interfaccia standard auto-descrittiva

• Combinano opportunamente:• lo sviluppo basato sui componenti• gli standard web

Page 6: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Service Oriented Architecture (SOA)

• I WS si basano sulla cosiddetta Service Oriented Architecture (SOA)

• Tre componenti principali:1. Service Provider

• rende disponibile il servizio e pubblica il contratto che ne descrive l’interfaccia, tramite un’apposita entità detta ne descrive l’interfaccia, tramite un’apposita entità detta Broker

2. Service Requestor o Consumer• invia richieste al service broker; quest’ultimo cerca il

servizio compatibile3. Service Registry o Broker

• fornisce informazioni al consumer riguardo quale servizio utilizzare (ivi compresa la sua localizzazione)

Page 7: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Ricerca di un servizio

RegistroRichiesta al registro

Link verso il servizio

Descrizione

Scenario di richiesta di un servizio

Client

Service

Descrizione

Richiesta della descrizione del servizio

Descrizione del servizio

Invocazione del servizio

Chiamate

Risposte

Page 8: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

WS: non così nuovi…

• Sun RPC (Remote Procedure Call) �1985

• CORBA (Common Object Resource Broker) �1992

• DCE/RPC �1993

• Microsoft COM �1993

• Microsoft DCOM �1996

• Java RMI (Remote Method Invocation) � 1996

Page 9: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

…ma comunque diversi!

• Neutrali rispetto alla piattaforma• Basati su standard aperti• Interoperabili• Basati sull’impiego di componenti• Basati sull’impiego di componenti

software ampiamente diffusi• parser XML• server HTTP

Page 10: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

ServiceProvider

Service

Web Services: ruoli ed interazioni

ServiceRegistry

ServiceUserFind

Page 11: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

ServiceProvider

Comunicazione: HTTP

Dati: XML

Interazione: SOAP

Web Services: architettura

ServiceBroker

ServiceUser

UDDI/WSDL

Find

Page 12: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Web Services: scenario tipico di interazione

• Il Provider crea e definisce il servizio utilizzando illinguaggio WSDL (Web Services Description Language)

• Il Provider registra il servizio tramite UDDI (Universal Description Discovery and Integration)

• L’utente ‘trova’ il servizio effettuando una ricercanel registro UDDI

• L’applicazione utente:• si collega (‘binding’) al Web Service• invoca le operazioni da esso definite, tramite il

protocollo SOAP (Simple Object Access Protocol)

Page 13: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Stack di tecnologie per i web services

• UDDI (Universal Description, Discovery and Integration):

• le ‘pagine gialle’ dei servizi Web

• WSDL (Web Services Description Language):

• descrizione dei messaggiWSDL

UDDI

Emerging layers

• descrizione dei messaggi

• SOAP (Simple Object Access Protocol):

• protocollo per lo scambio di messaggi

• XML (eXtensible Markup Language):

• formato per lo scambio dei dati

Internet Protocols(HTTP, FTP, ...)

SOAP

WSDL

Page 14: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

DiscoveryDiscovery

Web Services: protocolli

WebWeb

UDDIUDDI

Find a ServiceFind a Service

http://yourservice.com

http://www.uddi.org

Link to discovery documentLink to discovery document

Let me talk to you (SOAP)Let me talk to you (SOAP)

How do we talk? (WSDL)How do we talk? (WSDL)

Web Web

ServiceService

WebWeb

Service Service

ConsumerConsumer

return service response (XML)return service response (XML)

http://yourservice.com/svc1

returnreturn serviceservice descriptionsdescriptions (XML)(XML)

http://yourservice.com/?WSDL

HTML with link to WSDLHTML with link to WSDL

Page 15: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Servizi di comunicazione e trasporto

SOAP

• Strato di trasporto:• XML è usato per descrivere la struttura dei

messaggi scambiati tra servizi Web

• Il messaggio è costituito da:• l’identificativo SOAP

HTTP

TCP/IP

Transport

• l’identificativo

• il destinatario

• una lista di argomenti eventuali

• il nome dell’operazione invocata

• una lista di valori di ritorno attesi

• altri parametri

Page 16: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Trasporto

• HTTP, con il metodo POST, è il più comune…

• …ma è possibile:• utilizzare HTTP, con il metodo GET

• adoperare altri protocolli ‘classici’• FTP• FTP

• SMTP

• adoperare altri protocolli di nuova generazione:• Jabber (XMPP)

• BEEP

Page 17: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

SOAP

• Un protocollo basato su XML e tipicamenteincapsulato in HTTP

• Costituito da:• un ‘involucro’ esterno per descrivere:

• ciò che c’è in un messaggio• ciò che c’è in un messaggio• come processare il messaggio

• un insieme di regole di codifica• per rappresentare istanze di tipi di dati definiti a livello

applicativo

• una convenzione per rappresentare chiamate a procedure remote, insieme alle relative risposte

Page 18: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Messaggio SOAP

• La struttura dei messaggi SOAP• la busta

• l’header

• Il corpo del messaggio

Busta SOAP <SOAP:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

</SOAP:Envelope>

Header SOAP <SOAP:Header><example:header xmlns:example="www.y.com"></example:header>

</SOAP:Header>

Corpo del messaggio SOAP

<SOAP:Body><example:body xmlns:example="www.y.com"></example:body>

</SOAP:Body>

Page 19: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Applicazione Client

Client SOAP

XML API HTTP API

HTTP

Schema della comunicazione SOAP

HTTP

Server SOAP

XML API HTTP API

Applicazione Server

Page 20: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Chiamata al metodo remoto

CLIENT

Stack

a=5

b=6

SERVER

Stack

a=5

b=6

SOAP SOAP

HTTP

XML

<a>5 </a>

<b>6 </b>

Page 21: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Invio del messaggio di risposta

CLIENT

Stack

Result=30

SERVER

Stack

Result = 30

SOAP SOAP

HTTP

XML

<Result>30

</Result>

Page 22: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Esempio di richiesta SOAPPOST /AT-WebServicesSample2/services/DayOfWeekPort HTTP/1.0

Content-Type: text/xml; charset=utf-8

Accept: application/soap+xml, application/dime, multipart/related, text/*

User-Agent: Axis/1.4

Host: localhost:8080

Cache-Control: no-cache

Pragma: no-cache

SOAPAction: "getdayofweek"

Content-Length: 304Content-Length: 304

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<date xsi:type="xsd:date">2010-04-12</date>

</soapenv:Body>

</soapenv:Envelope>

Page 23: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Esempio di risposta SOAP

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: text/xml;charset=utf-8

Date: Mon, 12 Apr 2010 08:56:35 GMT

Connection: close

<?xml version="1.0" encoding="utf-8" standalone="no"?><?xml version="1.0" encoding="utf-8" standalone="no"?>

<soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<dayOfWeek>OK ciccio...the day is a : Monday</dayOfWeek>

</soapenv:Body>

</soapenv:Envelope>

Page 24: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

WSDL• Documento XML che contiene la descrizione

dell’interazione client-server• Un documento WSDL completo deve dare due tipi

di informazioni:• Descrizione del servizio di livello applicativo (interfaccia

astratta)astratta)• Vocabolario• Messaggi• Interazioni

• Dettagli dipendenti dal protocollo specifico• quale protocollo di comunicazione usare:

• es. SOAP su HTTP• tipi di interazione su questo protocollo• endpoint (indirizzo di rete)

Page 25: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

WSDL: struttura

<wsdl:definition>

<wsdl:Types>…</wsdl:Types><wsdl:Message>…</wsdl:Message>

<wsdl:PortType>

<wsdl:Message>…</wsdl:Message>

<wsdl:Message>…</wsdl:Message>

<wsdl:PortType><wsdl:PortType>

• Tipi:• definizione dei tipi di dati del Web Service (uso di

XMLSchema)

• Messaggio:• definizione dei messaggi che fanno riferimento ai

tipi

• Tipo di porta:• insieme di operazioni (action) implementate da un

Web Service

</wsdl:definition>

<wsdl:Service>…</wsdl:Service>

<wsdl:Service>…</wsdl:Service>

<wsdl:Service>…</wsdl:Service>

<wsdl:PortType>…</wsdl:PortType>

<wsdl:Service>…</wsdl:Service>

<wsdl:PortType>…</wsdl:PortType>

<wsdl:PortType>…</wsdl:PortType>

<wsdl:Service>…</wsdl:Service>

<wsdl:Binding>…</wsdl:Binding>

Web Service• una porta è un punto di terminazione identificato in

maniera univoca da:• un identificativo (ad es: URL)• un binding

• Binding WSDL/SOAP:• un protocollo concreto d’accesso a una porta e un

formato dei messaggi e dei dati per questa porta

• Servizio:• una collezione di porte (le instanze delle porte

WSDL)

Page 26: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

WSDL in sintesi

Types Definizioni tipi di dati

Message Firme di richesta e risposta per ogni metodo (≈ IDL)

Port Type <servizio, protocollo> �operazionioperazioni

Operation metodo � messaggi

Binding Specifica del Protocollo e del formato dei dati

Service { Port � binding }

Port Indirizzo (≈ URL)

Page 27: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

WSDL: un esempio

Page 28: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

UDDI• Universal Description, Discovery and Integration

• insieme di specifiche che definiscono un modo per pubblicare e cercare servizi attraverso una repository centralizzata

• Obiettivo:• fornire un catalogo mondiale che permetta di ricercare i Servizi Web

in base allo stesso principio delle pagine gialle• Definizione delle informazioni da fornire per ciascun servizio e del tipo di

codificacodifica• API di ricerca ed aggiornamento che descrivono come si può accedere

alla repository ed aggiornare le informazioni

• La riuscita di UDDI richiede che i diversi fornitori di Servizi Web si accordino sulla definizione di criteri comuni e di determinate categorie di servizi• Operatori: Microsoft, IBM, SAP e HP

• Problematico…cfr. slide seguente!

Page 29: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

UDDI: un registro pubblico?

Page 30: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

UDDI: un sito di esempio ancora “vivo”

http://www.xmethods.com/ve2/index.po

Page 31: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Discovery – UDDI

UDDI RegistryInquiry

Publish

Page 32: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Discovery – UDDI

UDDI RegistryInquiry

Publish

Page 33: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

UDDI

Pagine biancheIdentità del fornitore, indirizzo fisico ed elettronico, qualificazioni che fanno riferimento a tassonomie

industriali standard

Le specifiche UDDI definiscono le tre parti costituenti il registry

Pagine gialle

Pagine verdi

La descrizione dei servizi offerti

Informazioni sui modelli di accesso al servizio e i differenti modelli di dati sottostanti

Page 34: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Servizi Business

• Si tratta generalmente di funzioni legate al commercio elettronico

• Riproduzione in un mondo virtuale delle transazioni commerciali del mondo reale• transazioni, contratti, fatturazione, pagamenti, ecc.

• I servizi Web Business mettono a disposizione • I servizi Web Business mettono a disposizione degli sviluppatori un insieme di specifiche che facilitano lo sviluppo di applicazioni Web per settori applicativi specifici

• Per quanto riguarda gli aspetti tecnici, la specifica di alcuni Servizi Business è iniziata prima delle attività di standardizzazione del W3C

Page 35: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Servizi Business

� ebXML e RosettaNet:

� per formalizzare un’infrastruttura completa per l’e-commerce

� BitzTalk di Microsoft:

� formalizzazione dello scambio elettronico dei documenti professionali (fatture, ordini, ecc.) tra applicazioni Web distribuite

� WSFL (Web Services Flow Language) di IBM, XLANG di Microsoft e WSCL (Web Services Conversation Language) di HP

� per la specifica della composizione di un’applicazione Web per

ebXMLRosettaNet

tpaML

ebXMLRosettaNet

tpaML

BizTalkBizTalk

� per la specifica della composizione di un’applicazione Web per l’esecuzione di processi business

� BPML (Business Process Modeling Language) e BPQL del consorzio BPMI:

� una parte delle specifiche copre la sincronizzazione dei processi business in diverse aziende (es: gestione delle relazioni con i clienti, logistica, ecc.)

� WSUI (Web Service User Interface) di Epicentric, WSXL (Web Services Experience Language) di IBM e WSIA (Web ServicesInteractive Applications) di OASIS:

� Gestione dell’accesso ai servizi Web

WSFL – XLANGBPMLBPQL

WSFL – XLANGBPMLBPQL

Servizi Business

WSUIWSXLWSIA

WSUIWSXLWSIA

Page 36: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Piattaforme di sviluppo e esercizio

• Web Service su piattaforma leggera• Server HTTP e Parser XML• Esempi: Apache SOAP, Apache Axis, SOAP::Lite (Perl),

PHPSOAP (PHP), WhiteMesa SOAP (C++), SOAP for ADA, Smalltalk Web Services

• Web Service su Application Server• Valori aggiunti: gestione dell’accesso concorrente, gestione delle • Valori aggiunti: gestione dell’accesso concorrente, gestione delle

transazioni, sicurezza e autenticazione, infrastrutture, tool di sviluppo

• Classificazione dei fornitori:• Basi di dati: DBMS tradizionale + infrastruttura XML per integrare

l’architettura UDDI/WSDL/SOAP: Oracle, IBM, Sybase• Middleware: BEA, Vitia, IBM, Progress• Sistemi operativi: SUN, IBM, Microsoft

Page 37: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Supporto Java per Web Services

• JAX-RPC (Java API for XML-RPC):

• è di fatto Java RMI (Remote Method Invocation) su SOAP

• fornisce un’interfaccia remota per lo scambio di messaggi SOAP in stile RPC

• SAAJ (SOAP API with Attachments for Java):

• è un’API che modella la struttura di un messaggio SOAP ed implementa alcune funzionalità del protocollo per la comunicazione

• JAXM (Java API for XML Messaging):

• è simile a JMS (Java Message Service)

• fornisce un’infrastruttura di messaging per spedire e ricevere messaggi SOAP

Page 38: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

SOAP Toolkit: API- vs Stub-based

• Un toolkit SOAP è un’API usata per spedire e ricevere messaggi SOAP

• Ci sono dozzine di SOAP toolkit in molti linguaggi:• Java, C e C++, C#, VB.NET, Perl, ecc.

• Un toolkit stub-based usa il tradizionale modello di programmazione basato su RPC:

• uno stub RPC per comunicare con un Web service• uno stub RPC per comunicare con un Web service• client-side si modella un Web service come un oggetto

(remoto) che espone dei metodi• JAX-RPC è lo standard stub-based di EJB 2.1

• Un toolkit API-based è usato per costruire messaggi SOAP (Envelope, Header, Body, ecc.) esplicitamente

• SAAJ è lo standard SOAP API in EJB 2.1

Page 39: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Modelli di programmazione JAX-RPC

1. Generated Stub

2. Dynamic Proxy

3. DII (Dynamic Invocation Interface)

Page 40: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Generated Stub

• Il toolkit JAX-RPC genera, in accordo con la descrizione WSDL:• l’interfaccia java RMI

• il relativo stub

• Interfaccia RMI e stub possono poi essere • Interfaccia RMI e stub possono poi essere pubblicati in un JNDI ENC (EnvironmentNaming Context)

• In questo modello lo stub è generato a deployment time

Page 41: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Dynamic Proxy

• Un dynamic proxy è usato nello stesso modo di generated stub, ma:• l’implementazione dello stub e l’interfaccia remota

sono generati dinamicamente, a run-time

• Come per il caso precedente, la generazione • Come per il caso precedente, la generazione dell’interfaccia remota avviene in accordo con il documento WSDL che descrive le interfacce come porte• ogni porta può avere una o più operazioni• Porte e operazioni sono analoghe, rispettivamente,

ad interfacce e metodi Java

Page 42: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

DII (Dynamic Invocation Interface)

• JAX-RPC supporta un’ulteriore API, ancora più dinamica, chiamata DII (Dynamic InvocationInterface)• DII permette di assemblare chiamate a metodi SOAP

dinamicamente, a run time• L’idea è la stessa di CORBA Dynamic Invocation

InterfaceInterface• JAX-RPC DII permette di:

• creare oggetti che rappresentano singole operazioni di Web Service, altrimenti modellati come metodi di un’interfaccia remota

• invocare tali operazioni senza la necessità di accedere ad una service factory o di usare uno stub e un’interfaccia remota

Page 43: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

AXIS: Apache eXtensible Interaction System

• Un SOAP Engine open source, caratterizzato da:• configurazione/deployment molto flessibili (file “.wsdd”)

• supporto per drop-in deployment (Java Web Service, JWS)

• supporto per tutti i tipi base• supporto per tutti i tipi base

• serializzazione/deserializzazione automatica di Java Bean e possibilità di definire serializer/deserializer“custom”

• RPC e message-based provider

• Supporto per WSDL (WSDL2Java, Java2WSDL)

• Trasporto: HTTP, JMS (stabili)

Page 44: Corso di Applicazioni Telematicheunina.stidue.net/Applicazioni Telematiche/Materiale... · (Universal Description Discovery and Integration) • L’utente ‘trova’ il servizio

Domande?

4444