Web services

download Web services

If you can't read please download the document

  • date post

    25-May-2015
  • Category

    Technology

  • view

    2.081
  • download

    0

Embed Size (px)

Transcript of Web services

  • 1. I Web Services e il protocollo SOAPche ne alla baseNelson FirmaniDipartimento di Ingegneria Elettrica Universit di LAquila, AQ 67040, Italy PremessaScopo del documento dare una panoramica sui Web Services e sulle diverse tecnologie connesse.Il livello di dettaglio sufficiente per la realizzazione di un semplice servizio web.Dopo una breve illustrazione dellevoluzione dellarchitettura web si introduce: Il modello dei Web Services Il protocollo SOAP che ne alla base Realizzazione mediante il toolkit Apache Axis 1.1 di un semplice servizio web Last update: 30/04/20021

2. Architettura della Prima Generazione Web RPCInternet SQL HTTPHTTPWebWebApplicationClient Server Backend Servers ClientMiddle tier Backend Web/HTTP ServerBrowserDocumentistatici http Applicazione CGI, PHPDBMS ISAPI,Odbc, rpcRPC NSAPI Sistemi legacyArchitettura a tre livelli (browser, Application Server,DB) Client: Browser di prima generazione (senza supporto di applet e scripting) Application Server: Web server con estensioni CGI (Perl, shell, ...) Comunicazione tra webserver e backend attraverso ODBC, SQL, RPC . HTTP come protocollo di comunicazione tra client e serverla logica applicativa concentrata allinterno dello strato intermedio.La presentazione viene realizzata ridisegnando tutta la pagina del browser ad ogni interazione conlutente. 2 3. Architettura della Seconda Generazione WebClient WebServer tierApplicationServer tier Backend tierWeb/HTTP Server Documenti staticiBrowser iiop, orpc, rmi iiop, orpc, rmi CGI, PHP ISAPI, NSAPI httpServlet Browser Application server Applet, (contenitore di oggetti) Active JSP, ASP DBMS EJBApplicazioneCORBA DB ad oggettiJavabeanCOM iiop, orpc, rmiDCOMSistemi legacyArchitettura a pi livelli (three-tier o multi-tier) Client (Browser delle ultime generazioni uso di Applet Java e Dynamic HTML) Un certo numero di Application Server Distribuiti (Business Logic + Data Access Logic) HTTP come protocollo di comunicazione tra browser e web-server Comunicazione tra application server e backend attraverso: IIOP (Internet-Inter-ORB-Protocol) come CORBA (fig. 1.1)3 4. ORPC (Object Remote Procedure Call) come COM diventati DCOM e poi COM+ (Microsoft) (fig. 1.2) RMI (Remote Method Invocation comunque basato su IIOP ) e poi con EJB (Enterprise Java Bean) la Sun microsystem salita ad un ulteriore livello di astrazione nella progettazione di sistemi distribuiti (fig. 1.3) la presentazione pu essere realizzata senza ridisegnare tutta la pagina del browser, grazie alla comunicazione attraverso Applet (Sun microsystem) e ActiveX (Microsoft) Contenitore di oggetti che si occupa di aspetti di integrazione e di infrastruttura come concorrenza, sicurezza, disponibilit, scalabilit, gestione, eterogeneit. (ad esempio EJB container) Oggetti/componenti destinati alla logica dellapplicazione e allinterazione con lesterno ( presentazione, accesso ai dati)Figura 1.1 Modello client server DCOM Figura 1.2 Modello client server CORBA Figura 1.3 Architettura J2EE 4 5. Architettura della Terza Generazione Webwww.acquisti.com Firewall Documenti staticiSistemiLegacyHtml, dhtml,Applet, Oggetti CORBAJavascript Bean Bean Web Extension: CGI, PHP, JSP, ASP, Servlet FirewallHTTP/HTTPSDBMSHTTP/HTTPS SOAP Html, Wml BussinesTowe bBussines se ce r vi Documenti staticiDBMS Firewallwww.spedisci.comWeb Extension:CGI, PHP, JSP,ASP,ServletNascono i Web Services basati sui nuovi standard: SOAP e XML.Attorno a SOAP e XML nascono tutta una serie di strumenti analoghi a CORBA, ma basati su HTTP quindifirewall friendly.Miglioramento di scalabilit e performance: distribuzione dei server component su sistemi diversiAffidabilit: replicazione dei server componentFlessibilit: Le modifiche ad un componente non richiedono modifiche agli altri componenti. 5 6. I Web ServicesI web services rappresentano un nuovo tipo di applicazioni aventi come caratteristica primaria la capacit dipoter essere pubblicati, localizzati ed invocati dal web.Requisito fondamentale per un Web Services che sia utilizzabile da unapplicazione client scritta in unqualsiasi linguaggio, mediante qualsiasi strumento di sviluppo, e che giri su qualsiasi piattaforma.realizzando cos lindipendenza dellapplicazione dal protocollo di trasporto e dalla piattaforma diimplementazione (interoperabilit).Questo tipo di architetture consentono notevoli passi avanti verso il sogno della connettivit globaleessi infatti permettono lintegrazione di tutte le applicazioni esistenti sul web senza dover procedere ad unrestyling di parti di codice.Lesecuzione di questi servizi basati sul web necessita di numerosi componenti posti sui vari computer.(Sistemi distribuiti) . Attualmente le pi note tecnologie per lattivazione remota di procedure sono DCOM,CORBA, IIOP e EJB. Tutti questi meccanismi sono accomunati da molti aspetti simili, ma esistono altrecaratteristiche che li rendono incompatibili. In estrema sintesi, ciascuna di queste metodologie sembra esserebuona per effettuare comunicazioni tra server omogenei (ovvero che utilizzano la stessa tecnologia, e, inalcuni casi, lo stesso produttore), ma altrettanto inadeguata quando sinstaurano delle comunicazioni client-server, soprattutto se la comunicazione avviene via Internet, a causa della stretta corrispondenza che questetecnologie esigono tra client e server. DCOM e IIOP (EJB comunque basato su IIOP), infatti, oltre a nonpoter comunicare fra di loro se non tramite lutilizzo di appositi bridge, sono tutti poco adatti ad attraversarefirewall (per politiche di security, viene bloccato dai firewall il passaggio di stream binari da porte TCP/IP).Riassumendo, alcuni dei principali aspetti che risultano essere problematici nel campo dellattualeprogrammazione distribuita sul web sono: protocolli eterogenei che faticano a comunicare; protocolli che non funzionano bene attraverso i firewall.SOAP (Simple Object Access Protocol) rappresenta una soluzione a questi problemi. SOAP fornisce unmeccanismo punto-punto, semplice e leggero, per scambiare informazioni tipizzate e strutturate in unambiente distribuito utilizzando XML.Lo standard SOAP non introduce nuovi concetti in quanto si basa su tecnologia gi esistente: Attualmente utilizza il protocollo HTTP come protocollo di trasporto di messaggi richiesta/rispostaHTTP sembra essere un ottimo mezzo di trasporto per le chiamate a procedure remote su internetperch semplice, flessibile, indipendente dalla piattaforma ed basato su testo quindi non assoggettato alle intercettazioni dei firewall e per di pi, quasi tutti i Web Browser ed i Server losupportano in modo nativo. Si basa su XML per rappresentare le informazioni. Questo garantisce ricchezza espressiva,estendibilit, portabilit e facilit di comprensione.Quindi il modello dei Web Services si affianca alle tradizionali architetture a componenti (CORBA,COM+,EJB), permettendo di esporre componenti gi esistenti verso nuovi client, scritti magari con linguaggi diversied operanti su architetture diverse.Ma non solo lobiettivo finale dei Web Services quello di poter creare software (client o un web serviceclient nel senso che rappresenta un servizio per altri ma per assolvere il servizio richiesto lui stesso pu/devefare richiesta di servizi ad altri webservice) in grado di scoprire, accedere, integrare e richiamare in mododinamico e senza alcun intervento umano, nuovi servizi offerti da aziende non note.6 7. Lo scenario di un webservice il seguente:Il servizio pubblicato in unadirectory di serviziIl client cerca idettagli sulservizio in unadirectory di servizi Il client interagisce con il servizioIl client di un servizio Web deve rintracciare unapplicazione o un elemento funzionale di un programma chesi trova nella rete. A questo scopo, interroga un registro UDDI, effettuando una ricerca per nome, categoria,identificativo o specifiche, e ottiene informazioni sulla posizione di un documento WSDL, nel quale sonoindicate le modalit per mettersi in contatto con il servizio Web richiesto e il formato dei messaggi di richiestasotto forma di schema XML. Il client, a sua volta, creer un messaggio SOAP conforme allo schema XMLtrovato nel documento WSDL e invier una richiesta allhost che dispone del servizio.Per fare questo il modello dei Web Services utilizza un set base di protocolli disponibili ovunque.(permettendo cos linteroperabilit tra piattaforme molto diverse e mantenendo comunque la possibilit diutilizzare protocolli pi avanzati e specializzati per effettuare compiti specifici.)Riassumendo i protocolli alla base del modello dei Web Services sono: UDDI (per la pubblicazione e al ricerca dei WebService) WSDL (per al descrizione e la formalizzazione del servizio offerto) SOAP (per lo scambio dei dati e linvocazione di procedure remote) HTTP (per il trasporto) XML (per la codifica dei dati e dei protocolli)UDDI (Universal Description,Discovery, Integration) un servizio basato su XML che permette agli utentidei Web services di localizzarli una sorta di pagine gialle dei Web services. Senza UDDI, due applicazionipotrebbero comunicare solo se gi si conoscessero, conoscessero i servizi offerti e la loro localizzazione;UDDI fornisce un database distribuito su cui si possono registrare le aziende ed i servizi da loro esposti.Linterrogazione del database pu essere fatta con il browser (ad esempio su uddi.microsoft.com) o attraversoUDDI API che forniscono ai programmatori un modo semplice per interagire con i dati archiviati in unregistro UDDI. Le API UDDI consistono di tre parti principali: Inquiry, per permettere agli utenti di effettuare ricerche allinterno del registro. Publishing, per permettere ai publisher di inserire, modificare, cancellare informazioni rispetto aipropri servizi. Replication, riservate alla comunicazione server-to-server per la gestione dei registri. 7 8. Durante la fase di Inquery (richiesta) ci si puo muovere per Busines, Service o tModel.La BusinessEntity rappresenta lazienda che ha servizi da offrire e quind