Dettagli sul servizio Web Auction

Il servizio Web è stato sviluppato per offrire un altro metodo per interagire con il database degli articoli utilizzato dall'applicazione Auction, utilizzando XML. Gli utenti del servizio Web Auction possono aggiungere ed eliminare gli articoli nel database, nonché visualizzare informazioni su uno o su tutti gli articoli correnti in Auction.

Un servizio Web è un insieme di funzioni di applicazione correlate che possono essere pubblicate, individuate e richiamate su Internet. I servizi Web consentono alle applicazioni in esecuzione su piattaforme diverse e sviluppate in linguaggi diversi di interoperare utilizzando componenti basati su XML.

Esistono due approcci allo sviluppo dei servizi Web: top-down e bottom-up. Con l'approccio top-down, un servizio Web si basa sull'interfaccia del servizio Web e sui tipi XML definiti nei file WSDL (Web Services Description Language) e XSD (XML Schema Definition). Lo sviluppatore, quindi, modifica l'implementazione della struttura da interfacciare con la logica business. Con l'approccio bottom-up, il servizio Web viene creato sulla base della logica business esistente nei Java bean o negli EJB. I file WSDL ed XSD vengono generati per descrivere l'interfaccia del servizio Web risultante. L'approccio top-down consente maggiore controllo sull'interfaccia del servizio Web e sui tipi XML utilizzati e rappresenta l'approccio consigliato.

Il servizio Web Auction è stato sviluppato utilizzando un approccio top-down, con la definizione, innanzitutto, dei file WSDL ed XSD. Il file WSDL definisce quale interfaccia viene esposta, quali operazioni vengono richiamate e quali messaggi vengono inviati durante queste operazioni. Il file WSDL fa riferimento al file XSD per l'esatta definizione di questi messaggi.

Per l'applicazione Servizi Web di elenco Auction, le operazioni forniscono queste funzioni:

  • Aggiunta di un articolo al catalogo
  • Rimozione di un articolo dal catalogo
  • Visualizzazione delle informazioni relative a uno specifico articolo
  • Visualizzazione di un elenco di tutti gli articoli presenti nel catalogo
Il seguente diagramma illustra le fasi di sviluppo del servizio Web. Nelle sezioni di questo documento vengono descritti i due componenti principali nel codice del servizio Web fornito con l'esempio Auction. Il secondo componente, la stuttura di bean Java, contiene tre elementi differenti che vengono sviluppati tutti utilizzando una procedura guidata. Poiché questi elementi vengono generati contemporaneamente e verificati insieme come un'unica unità, vengono descritti insieme.

Nelle seguenti sezioni verrà illustrato come sono stati creati questi componenti chiave dell'applicazione e qual è il loro significato nello sviluppo dell'esempio Auction:

Definizione dei file WSDL ed XSD con gli editor WSDL e XSD

L'interfaccia del servizio Web e i tipi XML definiti nei file WSDL (Web Services Description Language) ed XSD (XML Schema Definition) descrivono quale sarà l'aspetto del servizio Web e come funzionerà attraverso la definizione degli elementi e delle azioni associate.

Quando il servizio Web Auction è stato sviluppato, è stato creato un nuovo file XSD utilizzando l'editor di schema XML per definire i tipi di schema XML passati al servizio Web.

Successivamente, è stato creato un nuovo file WSDL utilizzando la procedura guidata Nuovo file WSDL, che crea un file WSDL della struttura utilizzando lo stile predefinito e un letterale documento. Questa è la scelta consigliata da Web Services Interoperability Organization (WS-I). WS-I è un'organizzazione di standard industriali aperti che pubblica linee guida per linguaggi e piattaforme per assicurare l'interoperatività tra i servizi Web di vendor diversi.

Una volta creato, il file WSDL è stato modificato utilizzando l'editor WSDL. Nuove operazioni, messaggi ed elementi vengono creati nel file WSDL, insieme a un binding appena generato. L'editor WSDL è associato all'editor di XML, che può essere aperto dall'editor WSDL in modo che gli elementi del file WSDL possano fare riferimento ai tipi di schema XML definiti nel file XSD, come mostrato nella seguente screen capture.

 

Generazione della struttura del bean Java con la procedura guidata Servizi Web

La struttura del bean Java viene creata dai file WSDL e XSD utilizzando la procedura guidata Servizi Web. La procedura guidata Servizi Web genera codice Java sulla base del modello di programmazione JAX-RPC. I descrittori di distribuzione del servizio Web vengono generati sulla base della specifica Web Services for J2EE.

Oltre alla creazione del servizio Web, la procedura guidata è stata utilizzata anche per creare due altri elementi:

  • Il proxy Java: un proxy è un client del servizio Web che consente al client di comunicare con il fornitore del servizio.
  • Un JSP di esempio: il JSP di esempio è un file JavaServer Pages che interagisce con il client del servizio Web per scopi di verifica.

Creare il proxy Java e il file JSP di esempio contemporaneamente al servizio Web rende più semplice eseguire la verifica di tutti gli elementi del servizio Web.

Dopo aver creato il servizio Web, il file di implementazione della struttura Java generata si è aperto nell'editor Java, che contiene l'interfaccia necessaria per i metodi, come definito nel file WSDL. A questo punto, lo sviluppatore ha modificato il file di implementazione della struttura per accedere alla logica business di back-end.

Il JSP di esempio generato è un file di base e funzionale, con il contenuto organizzato in tre frame. Il frame di sinistra contiene un elenco di tutti i metodi disponibili con cui l'utente può interagire. Facendo clic su uno di questi metodi, si visualizza un'area di input nel frame in alto a destra. Dopo aver immesso l'input nel modulo, facendo clic sul pulsante Richiama ha richiamato il metodo per elaborare l'input e visualizzare il risultato nel frame in basso a destra.

Per il servizio Auction Web, sono state apportate modifiche al JSP di esempio per creare un'interfaccia più interessante da un punto di vista visivo; inoltre, è stato aggiunto supporto per la gestione delle matrici, in quanto l'operazione che restituisce un elenco di tutti gli elementi nel database, restituisce una matrice.