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 3 La risposta 4 2
Definizione dei WEB SERVICES WEB indica una tecnologia che ha come supporto HTTP, le funzionalità dei Web services sono distribuite praticamente in tutte le aziende, senza creare ulteriori problemi di tecnologia. Services questo termine è affine al significato ricoperto dalla lettera s della parola ASP (Application Service Provider). Quest ultimo offre i propri prodotti senza doverli installare, ma sotto forma di servizi di solito tramite Web. I servizi Web s attengono a un paradigma di questo tipo: offrendo un servizio agli sviluppatori o alle applicazioni piuttosto che limitarsi al tradizionale ambiente HTTP. WEB SERVICES : soluzione che garantisce la comunicazione mediante Internet da un applicazione all altra. 5 Altre definizioni (webservices.org) I web services sono funzioni offerte attraverso protocolli standard che hanno le seguenti caratteristiche : Encapsulated L implementazione della funzione non è visibile all esterno Loosely coupled Il cambiamento dell implementazione di una funzione non richiede il cambiamento della funzione che la invoca Contracted Esistono descrizioni pubbliche delle funzioni che consentono a tutti di avere servizi erogati 6 3
Web services by W3C I web services sono definibili come una soluzione per permettere la comunicazione tra applicazioni in ambito internet. L idea su cui si basano è quella di fornire un linguaggio e una piattaforma di accesso comune a sistemi differenti. I web services sono una combinazione di diversi standard tecnologici. I web services sono basati su standard aperti (XML; HTTP, SMTP, SOAP etc.) che permettono a chiunque di utilizzarli. 7 Services Oriented Architecture 8 4
Attori ed Operazioni Service Provider Il fornitore del servizio implementa il servizio stesso e lo rende disponibile su Internet Service Requestor Il consumatore del servizio utilizza un servizio esistente aprendo una connessione di rete, inviando una richiesta XML e ricevendo una risposta XML Service Registry Il registro di servizi fornisce un posto centralizzato dove gli sviluppatori possono pubblicare nuovi servizi o trovare quelli esistenti 9 Artefatti Descrizione del servizio Contiene dettagli circa: l interfaccia del servizio (operazioni e parametri) l implementazione del servizio(localizzazione e invocazione) Implementazione del servizio Modulo software reso disponibile dal fornitore su una piattaforma accessibile via Web Applicazione client Software implementato dal richiedente che utilizza le funzionalità messe a disposizione da un WS e le invoca a runtime 10 5
Web Services Scenario Il provider carica e definisce il servizio con WSDL (web services description language) Il provider registra il servizio in UDDI (Universal Description Discovery and Integration) L utente cerca il servizio interrogando il registro UDDI L utente si collega all applicazione del web service ed invoca le sue operazioni via SOAP (Simple Object Access Protocol) 11 Web services Architecture 12 6
Protocolli Service Transport Questo livello è responsabile del trasporto dei messaggi tra le applicazioni. XML Messaging Questo livello è responsabile della codifica dei messaggi in un formato XML comune inmodo tale che I messaggi possano essere compresi da entrambi i comunicanti. Service Description Questo livello è responsabile della della descrizione dell interfaccia pubblica del servizio. Service Discovery Questo livello centralizza i servizi in un registro comune e fornisce gli strumenti per pubblicare/scoprire in servizi in modo facile e intuitivo. 13 Esempio 14 7
Infrastructure Elements 15 Web Services Protocol Stack 16 8
Caratteristiche dei Web Services A Web Service is a platform and implementation independent software component that can be: Described Using a service description language Published To a registry of services Discovered Through a standard mechanism (at run time or design time) Invoked Through an Application Programming Interface (API) Composed With other services 17 web services perché? Web Services: Yet Another Distributed Computing Technology? I can use RMI, CORBA, and many other technologies What makes Web services special? Platform& Language independent (use standard XML language) Web Services Architectures is specified and standardized by W3C Use of HTTP for transmitting messages (less troubles with firewalls.) 18 9
Soap essential (1) SOAP è un protocollo basato su XML per scambiare informazioni tra computer. 1. Specifica dell envelope SOAP come incapsulare e trasferire i dati tra computer 2. Regole per la codifica dei dati come codificare in XML i vari tipi di dati delle varie piattaforme (XML-Schema) 3. Convenzioni per RPC come utilizzare SOAP per effettuare una RPC 19 SOAP essential (II) 20 10
WSDL Essential WSDL è una specifica che definisce come descrivere i web services in una grammatica XML comune WSDL descrive quattro informazioni critiche: 1. L interfaccia che descrive tutte le funzioni pubbliche disponibili 2. Il tipo di dati di tutti i messaggi di richiesta e di risposta 3. Le informazioni necessarie sul protocollo usato per il trasporto 4. Le informazioni necessarie per localizzare il servizio in questione 21 UDDI Essential UDDI è: una specifica tecnica per costruire una directory distribuita di (businness e) web services. I dati sono memorizzati in un formato XML predefinito, e sono acceduti e manipolati tramite API predefinite. una implementazione operativa e pienamente funzionante delle specifiche di cui al punto 1 (by Microsoft & IBM: Cloud Registry) Tipo di dati: Green pages: informazioni generali su una compagnia Yellow pages: informazioni generali sui servizi offerti White pages: informazioni tecniche su uno specifico servizio 22 11