MokaByte 71- Febbraio 2003 
Corso di Java Web Services
I parte: l'architettura
di
Massimiliano Bigatti

I servizi Web sono per certi versi ancora una materia in fase di definizione. Le sue tecnologie di base sono in continua evoluzione e specifiche complementari nascono con una certa frequenza. Non è chiaro cosa andrà a formare la definizione precisa dei servizi Web, mentre si ha qualche idea sulle tecnologie che sono già affermate. Sicuramente non esiste una sola definizione di servizio Web ma quella che riteniamo più precisa è la seguente:

“Un componente riutilizzabile che può essere richiamato attraverso tecnologie Internet e che dialoga in XML”.

Questa definizione implica diverse cose ed apre a possibili interessanti scenari d’utilizzo. Si noti che la definizione non fa riferimento ad alcuno standard specifico, fatta eccezione per XML ed Internet.


Servizi e componenti
Un servizio Web è un componente software che svolge un determinato servizio. Può occuparsi di eseguire una determinata elaborazione oppure di scatenare processi complessi in una rete aziendale. Un esempio di semplice componente è quello che forniti due numeri ne restituisce la somma. Un caso più complesso è un servizio bancario per disporre il pagamento di bonifici. Un qualsiasi componente remoto che svolga una qualsivoglia funzione può essere considerato un servizio.
Questo aspetto fa emergere una certa similitudine con i componenti remoti nella classica programmazione distribuita. Tecnologie quali Java RMI, CORBA e DCOM sono standard che consentono l’implementazione di sistemi a più livelli. Possono essere dunque considerati anche questi servizi Web? La risposta è no, in quanto queste tecnologie utilizzano una comunicazione di filo (il protocollo a basso livello) binario e non XML.
Inoltre, queste tecnologie consentono ed incoraggiano una granularità applicativa minore rispetto ai servizi Web. Quest’ultimi sono pensati per esporre servizi più a “grana grossa” (coarse-grained), mentre le tecnologie di programmazione distribuita di cui sopra possono venir utilizzate per strutturare componenti più a “grana-fine” (fine-grained). In definitiva i servizi Web espongono poche e semplici funzioni ad alto livello, i componenti remoti possono esporre chiamate a basso livello legate all’implementazione del programma. In questo senso, l’astrazione dei servizi Web è maggiore.

 

Internet
I servizi Web dialogano ed operano attraverso protocolli utilizzati in Internet. Questa scelta è stata adottata per più motivazioni: per prima cosa, il successo di Internet ha decretato una diffusione enorme dei suoi standard, sia a livello di supporto del software e dell’hardware disponibile in azienda, sia nelle competenze e conoscienze tecniche degli operatori del settore.
Utilizzare i protocolli di Internet vuole dire riutilizzare le infrastrutture esistenti e dunque ridurre le problematiche di integrazione.
Sebbene si parli di protocolli Internet in generale, lo standard più affermato per veicolare il dialogo con i servizi Web è il protocollo HTTP. Come si vedrà, le specifiche tecniche del protocollo di comunicazione più affermato, SOAP, predilogono questo standard, anche se la porta è aperta anche ad SMTP ed FTP.
Il fatto di utilizzare Internet per la comunicazione apre anche la connettività potenziale ad una rete globale di possibili utilizzatori. Esporre un servizio Web su Internet equivale a proporne l’utilizzo a tutti quanti abbiano una connessione di rete, un enorme bacino di utenza per potenziali acquirenti di servizi.
Inoltre i protocolli Internet hanno il vantaggio di passare agevolmente attraverso i firewall. Uno degli elementi che ha sempre frenato l’adozione di tecnologie quali Java RMI e CORBA per la comunicazione tra diverse imprese ed in generale in Internet è la necessità di configurazioni particolari di firewall per consentire il passaggio delle comunicazioni basate su questi standard.
Sia il fornitore del servizio che il fruitore, avrebbero dovuto modificare la configurazione di questi dispositivi di sicurezza per garantire il passaggio dei dati di comunicazione. Questa necessità si trova però spesso in antitesi con le necessità di sicurezza delle aziende. I servizi Web, utilizzando protocolli già consentiti dai firewall non hanno questo tipo di problematica.
Inoltre, è bene notare che classiche tecnologie di programmazione distribuita, richiedono elementi infrastrutturali aggiuntivi con i relativi costi di acquisizione e manutenzione. CORBA, ad esempio, richiede un broker, un componente che si occupi di coordinare la comunicazione tra gli oggetti distribuiti.

 

XML
Per finire, i servizi Web comunicano le loro informazioni in XML, il che porta numerosi vantaggi ed anche qualche svantaggio.
Per prima cosa, XML ha il vantaggio di essere nato per consentire la comunicazione tra diverse piattaforme. Questo significa che un blocco XML prodotto da un programma Java su Solaris può essere letto da un programma C su Windows. Oppure da un palmare. Oppure da un programma COBOL su un Mainframe.
Lo standard XML risolve già, a livello di informazione, tutte quelle problematiche di integrazione con sistemi eterogenei. Non è necessario preoccuparsi di problematiche di encoding diversi, oppure della formattazione delle informazioni. Un blocco XML ha lo stesso contenuto su tutte le diverse piattaforme.
Inoltre, XML ha la particolarità di essere un protocollo testuale (e non binario, come quello utilizzato in RMI o CORBA) quindi facilmente leggibile dall’essere umano. Questo è un vantaggio in fase di debug dell’applicazione in quanto il valore dei singoli campi è immediatamente visibile ma ha lo svantaggio di richiedere più potenza di elaborazione rispetto a protocolli binari, più vicini alla macchina. Si consideri però che un minimo di astrazione è necessario anche per ottenere l’interoperabilità.
Per finire, come i protocolli Internet, anche XML sta ottenendo un’ottima accettazione da parte dell’industra informatica che si traduce nella disponibilità di strumenti di sviluppo e controllo e nella conoscenza della comunità.

 

Novità o evoluzione?
I servizi Web sono dunque la riproposizione in chiave moderna - o Internet/XML della vecchia programmazione distribuita? In gran parte la risposta è si. Non ci troviamo davanti a tecnologie rivoluzionarie ma piuttosto ad una evoluzione realizzata per ovviare alle problematiche che sono sorte con le classiche soluzioni di programmazione distribuita.
Una evoluzione che però non è partita, come spesso accade, dalla base già esistente in quanto, a parte i concetti astratti, non è stato mantenuto alcuno standard esistente. La motivazione è da ricercarsi anche in aspetti strategici: da una parte, il mondo proprietario di Microsoft ha sempre desiderato imporre DCOM come protocollo universale di comunicazione, ma purtroppo nella sua visione l’universalità di DCOM si sarebbe dovuta realizzare con la presenza del solo Windows su tutti i computer del mondo (anche sui mainframe?). Dall’altra parte CORBA, sviluppato da un consorzio come standard e non come prodotto, ha avuto una accettazione soprattutto nel mondo Unix, in contrapposizione con DCOM che ha avuto uno sviluppo maggiore sui sistemi Windows. Sebbene siano a disposizione prodotti per l’integrazione dei due mondi, le problematiche infrastrutturali hanno posto sempre un freno all’adozione di queste tecnologie.
Alcuni ritengono, inoltre ,che Microsoft fosse alla ricerca di qualche cosa di nuovo per promuovere .NET che, se avesse mantenuto il livello attuale di utilizzo di tecnologie proprietarie (DCOM) non avrebbe riscosso un grande successo con gli sviluppatori. Da qui la nascita di SOAP e dei servizi Web che comunque ha come risultante la possibilità di liberarsi dal vincolo di utilizzare DCOM per parlare con sistemi Microsoft.
Java, dal canto suo, ha sviluppato uno standard di programmazione distribuita proprietaria, invece che rivolgersi ai protocolli esistenti, frammentando ulteriormente il mercato. C’è comunque da riconoscere che RMI si è evoluto nel tempo supportando il protocollo di comunicazione IIOP di CORBA di fatto rendendo la piattaforma Java una ulteriore piattaforma abilitata a CORBA.
Si noterà, comunque, come molte tecnologie dei servizi Web riprendano concetti già sviluppati nelle classiche tecnologie per la programmazione distribuita, ad esempio in ambito dei registri di servizi Web.

 

Registri di servizi Web
Il tipico flusso di lavoro di un servizio Web non è però limitato al solo protocollo di trasporto XML/Internet accennato sopra. La visione completa coinvolge ulteriori componenti: i registri di servizi.
Questi elementi rispondono sostanzialmente alla domanda: “Come fanno i singoli potenziali utilizzatori di servizi Web a sapere quali e quanti servizi sono disponibili e come accedere a questi?”.
I registri di servizi non sono quindi altro che una sorta di pagine gialle elettroniche che catalogano, ordinano e rendono disponibili per ricerche, gli elenchi di servizi Web disponibili sul mercato. Inoltre, consentono di scaricare la documentazione tecnica dei servizi che consente agli utilizzatori di implementare i client che ne vogliono fare uso.
I registri sono per forza di cose entità a livello mondiale: il Web di fatto annulla i limiti delle nazioni e dei continenti consentendo, almeno al livello tecnico, l’interoperabilità tra entità anche enormenente distanti tra di loro.
Vista l’enorme potenziale quantità di informazione (si immagini un elenco dei più disparati servizi, forniti da società disseminate in tutto il mondo), è d’obbligo un meccanismo di ricerca fortemente basato sulla tassonomia, cioè sulla catalogazione precisa delle informazioni.
Ma le informazioni tecniche non sono le uniche presenti nei registri: anche informazioni puramente commerciali, come indirizzo, numero di telefono ed indirizzo e-mail possono essere pubblicate e successivamente estrapolate al fine di instaurare un contatto commerciale tra due parti.

 

Flusso di lavoro
La sequenza tipica delle operazioni nel mondo dei servizi Web prevede dunque una serie di passaggi che iniziano dal registro dei servizi e terminano con il protocollo di comunicazione.
In particolare, uno scenario abbastanza completo ed orientato all’integrazione B2B è il seguente (in seguito si vedranno esempi completi anche non indirizzati al B2B):

  • la società A desidera fornire attraverso Internet un servizio, ricerca dunque nel registro la tipologia di servizio che vuole offrire. Se non esiste una tipologia conforme o se quelle trovate non dovessero soddisfarla, ne può creare una ad hoc;
  • con lo schema che formalizza la definizione del servizio alla mano, il reparto IT prepara una implementazione del servizio;
  • il servizio viene pubblicato sul registro in modo che possa essere trovato dai potenziali clienti;
  • a questo punto la società B, in cerca proprio del servizio offerto dalla società A, decide di eseguire una ricerca nel registro dei servizi Web;
  • il servizio viene trovato e con esso la sua descrizione formale;
  • le due società si incontrano e stipulano un accordo di fornitura di servizi attraverso il Web firmando un contratto. Questa fase è gestita a livello umano ed in effetti non sembra plausibile pensare anche in un futuro più o meno prossimo che siano, anche per questo aspetto, le macchine ad occuparsene.
  • il cliente integra il servizio Web all’interno del proprio sistema informativo;
  • a regime, viene utilizzata una comunicazione XML attraverso Internet per far dialogare in modo automatico i processi delle due aziende.

Questo flusso operativo sposta (in parte) il modo di fare affari, tra le persone alle macchine, rendendo possibile la comunicazione diretta tra i sistemi informatici di due diverse aziende.

 

Alcuni esempi
Per capire meglio come funzionano e quali sono le potenzialità dei servizi Web, si vedrà ora qualche esempio sia nell’ambito B2B (Business to Business) e B2C (Business to Consumer) che all’interno delle quattro mura dell’azienda.

 

Business on-line
Un possibile scenario in ambito B2B potrebbe essere quello dove un’azienda ha la necessità di approvigionarsi di materie prime dai suoi fornitori. Si consideri ad esempio le ipotetiche aziende Tondini Riuniti S.p.A. e Costruzioni S.p.A.
La Tondini Riuniti è una società che vende tondini d’acciaio per l’edilizia e vuole aprire nuovi sbocchi al proprio business sul Web. In particolare vuole mettere a disposizione dei suoi potenziali clienti un modo per potersi approvigionare senza implicare i costi di una tipica gestione ordini/fatturazione. Il reparto IT della Tondini studia dunque un servizio Web che consente ai clienti di eseguire le ordinazioni del materiale su Internet. Per costruire il componente, si rivolge ad un registro di servizi Web e scarica la descrizione di servizio che più si adatta alla sua tipologia applicativa. A questo punto entra in gioco la Costruzioni S.p.A., che desidera instaurare un rapporto di affari che gli consenta di agevolare il più possibile le ordinazioni di tondini per l’edilizia in modo da minimizzare le giacenze di magazzino riducendo i costi di stoccaggio e massimizzando i profitti.
La Costruzioni ricerca su Internet un fornitore di tondini abilitato ai servizi Web e trova la Tondini Riuniti. Scarica la descrizione tecnica del servizio Web ed implementa un programma in grado di comunicare con il servizio.
A questo punto, integra il programma di accesso al servizio nel proprio sistema informativo, in modo da eseguire un riordino quando la giacenza di magazzino arriva a livello minimo definito.

 

Raccolta dati
Un altro scenario dove possono essere utilizzati i servizi Web, potrebbe essere nell’industria, ad esempio per la raccolta dati. La natura basata su messaggi dei servizi Web ne rende una possibile alternativa per l’implementazione di questo tipo di sistemi.
Si immagini un’applicazione in campo ambientale. Centrali di raccolta dati sulla qualità dell’aria poste in centri nevralgici della città potrebbe essere dotata di sensori collegati ad un micro-computer. Da qui, un’applicazione J2ME (Java2 Micro Edition) potrebbe, ad ogni intervallo di tempo prestabilito, ad esempio ogni ora, inviare i dati alla centrale. Le informazioni, codificate in XML, raggiungerebbero poi tramite una connessione Internet o tramite SMS, la centrale di raccolta dati. Qui, un unico servizio Web di raccolta delle informazioni, fungerebbe da concentratore, passando le informazioni al programma server che si occuperà di eseguire le elaborazioni statistiche necessarie ed a memorizzare le informazioni nel database centrale dell’applicazione.

 

Integrazione di sistemi
Un’ulteriore applicazione dei servizi Web, questa volta all’interno dell’azienda è il loro uso per problematiche di integrazione (EAI - Enterprise Application Integration). Tipicamente, l’infrastruttura IT che si è evoluta nel tempo, è composta da applicazioni distribuite su piattaforme eterogenee. Programmi COBOL su mainframe spesso costituiscono gli oggetti di business che la presentazione utente ed applicazioni di terze parti devono interfacciare. Spesso ci si scontra con la necessità di portare sul Web le applicazioni sviluppate su mainframe e le soluzioni di intergrazione con l’host che sono state applicate in passato sono molteplici. Tipicamente i prodotti commerciali di integrazione hanno sempre proposto un insieme di API proprietarie: con i servizi Web nasce l’opportunità di integrare il mainframe con standard non proprietari. E’ possibile dunque pensare all’integrazione dei programmi COBOL in XML su HTTP, magari utilizzando un gateway sul lato server. A questo punto, le applicazioni sono in grado di accedere ai programmi in modo agevole, magari passando attraverso un registro di servizi interno per l’individuazione del componente da richiamare.
Il disaccoppiamento che può realizzarsi utilizzando un XML indipendente dalla natura e conformazione dei componenti, può portare ad una maggiore facilità di reingegnerizzazione del lato mainframe, quando questa possa effettivamente diventare un’opzione. A questo punto lo sviluppatore dell’applicazione non è costretto ad imparare l’API di uno specifico prodotto di integrazione ma può rifarsi ad un più aperto insieme di specifiche.

 

Shopping palmare
In un mondo (ed un paese - il nostro) dove la diffusione dei telefoni cellulari ha raggiunto negli ultimi anni traguardi considerevoli, non è difficile immaginare la diffusione di dispositivi che siano la convergenza degli attuali telefonini e dei computer palmari. Questi dispositivi, anche se dotati di capacità di elaborazione e memoria limitati, possono offrire potenzialità enormi. Ad esempio, un utente potrebbe dedicarsi allo shopping stando comodamente seduto in treno.
Sullo schermo del suo palmare potrebbe accedere ad un catalogo di prodotti, riempire il suo carrello della spesa e poi ingaggiare un servizio Web per l’inoltro dell’ordine. La meccanica sarebbe molto simile a quanto ad oggi in essere nei siti Web di acquisto on-line ma la limitata disponibilità di spazio del palmare non consentirebbe l’accesso allo stesso sito Web utilizzato con un normale browser. Ecco che un programma apposito potrebbe essere più adeguato, anche se, in entrambi i casi, all’atto dell’ordine - con la necessità di accedere al sistema informativo aziendale - potrebbe ad ogni modo essere richiamato un servizio Web.

 

Agenzia viaggi virtuale
Un’ultimo scenario è una citazione di un caso d’uso di un prodotto di HP, sicuramente in anticipo sui tempi, chiamato eSpeak. Questa infrastruttura, concettualmente simile ai servizi Web, si spingeva ancora oltre, prospettando l’integrazione di una serie di servizi e lasciando al software un certo grado di libertà nella scelta dei componenti da integrare.
In questo scenario (trasposto per l’Italia), il signor Rossi desidera fare un viaggio in Sardegna per le vacanze estive. Si connette ad Internet e accede al sito web di un’agenzia di viaggi virtuale. Qui inserisce la data di partenza, quella di ritorno ed una serie di altre opzioni, come il numero di stelle dell’albergo o la cilindrata della macchina a noleggio che desidera trovare sul luogo.
A questo punto, il software di backend del sito Web, comincia ad eseguire una serie di richieste ai servizi Web di diversi fornitori. Interpella il registro dei servizi ed identifica le società che offrono traghetti per le isole o che affittano macchine in Sardegna. Contatta Sardinia Ferries e suoi concorrenti per verificare la disponibilità del traghetto ed il costo. Confronta i prezzi e sceglie il meno caro ma che risponda alle richieste di qualità del cliente. Verifica la disponibilità dell’albergo, che abbia le caratteristiche richieste e che abbia una stanza libera vista mare per due persone (il signor Rossi vuole fare una vacanza con la moglie). Il back-end del sito va avanti così fino a raccogliere tutte le informazioni necessarie per organizzare il viaggio. Una volta completato il lavoro, presenta al signor Rossi le possibili opzioni. A lui non rimane altro che sceglierne una e dare il numero di carta di credito per il pagamento.
Una volta ottenuti gli estremi, il servizio Web si occupa di formalizzare gli ordini a tutte le parti prenotando i vari beni o servizi richiesti. Ovviamente, nel fare questo, il servizio Web si occuperà, nel caso di eventuali errori, di applicare un rollback distribuito su tutte le parti interessate.
Scenario interessante ma riassumibile così: azzardato allora, impraticabile ancora ad oggi. In un futuro lontano probabile.

 

Ricerca delle informazioni
Un’altra applicazione dei servizi Web può essere quella relativa alla ricerca delle informazioni strutturate su Internet. Un’applicazione di ricerca potrebbe conoscere le interfacce XML di vari servizi quali la tracciabilità delle spedizioni tramite i corrieri (come UPS), oppure la visualizzazione di mappe anche per costruire percorsi. Oppure potrebbe collegarsi ad un servizio per conoscere in tempo reale la programmazione dei film nei cinema della città, o collegarsi ai servizi delle compagnie aeree per conoscere i voli disponibili per raggiungere un determinato luogo. Fantascienza? Realtà per gli utenti di Apple: la nuova versione del sistema operativo dei Macintosh, Mac OS X 10.2 dispone di uno strumento di ricerca così strutturato (figura 1)


Figura 1 –
L’interfaccia utente di Sherlock

Il programma consente queste particolari ricerche strutturate che hanno la particolarità di non chiamare motori di ricerca tradizionali come Google, ma di accedere a servizi Web specifici per la distribuzione di quelle particolari informazioni.
Altri di questi scenari proposti sono concreti e magari sono stati già realizzati. Ad esempio, nel settore bancario, l’integrazione del mainframe tramite XML è una soluzione che è già stata adottata nel recente passato. Anche se alcune volte non sono stati utilizzati i protocolli affermati per i servizi Web ma è stata sviluppata una soluzione proprietaria, gli elementi di base dei servizi Web (Internet ed XML) sono stati utilizzati.
Altri scenari sono più futuribili: ad oggi i palmari wireless non sono sicuramente un fenomeno di massa che giustifica il costo per la creazione e la manutenzione di servizi Web a loro uso e consumo.
Altri scenari ancora sono molto futuribili: il caso dell’agenzia di viaggi è molto complesso ed oltre alla difficoltà di implementare una logica applicativa di orchestrazione così delicata sembrano maggiori le difficoltà di carattere organizzativo che nascono quando vengono coinvolte un così grande numero di interlocutori.
Ad ogni modo, queste sono le potenzialità, la cui realizzazione è più o meno vicina, che offrono i servizi Web.
Tutti gli scenari, comunque, sono tecnicamente realizzabili anche con strumenti tradizionali, anche se la loro effettiva implementazione può essere frenata dalle problematiche ad esse legate.

 

Java e servizi Web
Da più parti si sente accostare ai Web Services la piattaforma Java, con differenti buone ragioni.
Per prima cosa, la base dei Web Services è Internet ed XML. Queste due tecnologie si sposano molto bene con la piattaforma Java (gli statunitensi dicono che Java ha un “natural-fit”). Per quanto riguarda Internet, Java è nato per interagire con esso e sebbene abbia, per certi versi, “migrato”, dal client - con le Applet, al server, con la piattaforma J2EE (Java 2 Enterprise Edition) ha sempre mantenuto un forte legame con Internet e le sue tecnologie. Un package di base di Java, presente fin dalla versione 1.0 è java.net e dispone di classi per dialogare attraverso le socket e trattare con gli URL. Al di sopra di questo, Java ha poi sviluppato tutta una serie di tecnologie a più alto livello come JavaMail, per il supporto della posta Internet e dei protocolli relativi, le tecnologie server quali Servlet e JSP (Java Server Pages) per l’estensione dei Web Server, la tecnologia EJB (Enterprise JavaBeans) per portare le applicazioni enterprise su Internet.
Inoltre Java ha una forte convergenza con XML in quanto se il primo è considerato il linguaggio “portabile” (o almeno il più portabile ad oggi disponibile), il secondo consente le informazioni portabili. Java ed XML sono dunque il connubio che consente di rendere portabile tutta l’applicazione.
Da qualche parte si sente dire che XML da solo potrebbe essere la soluzione per realizzare applicazioni portabili, ma c’è da considerare che, sebbene l’informazione XML sia in effetti indipendente dalla piattaforma, tutte le volte che questa raggiunge un computer, ha la necessità di essere elaborata. Se il programma che la interpreta non è realizzato in Java, questo dovrà essere reimplementato su tutte le diverse piattaforme.
In secondo luogo è bene chiarire che le tecnologie alla base dei servizi Web non prevedono standard per la realizzazione della logica applicativa dei componenti, e probabilmente non la prevederranno neanche in futuro. Questo perché i servizi Web non sono altro che una “facciata” (facade) per componenti applicativi già esistenti.
Chiarito questo aspetto, appare ovvio che la piattaforma ad oggi più affermata per l’implementazione dei servizi di business su Internet, J2EE, sia una candidata eccellente all’implementazione dei servizi Web.
Implementare i servizi come componenti EJB, consente di sfruttare la piattaforma migliore per la realizzazione dei servizi sul server e permette poi la loro presentazione all’esterno come servizi Web.

 

Java Web Services Developer Pack
La SUN ha raccolto le proprie tecnologie a supporto dei servizi Web all’interno del JWSDP (Java Web Services Developer Pack). Questo insieme di tecnologie è un toolkit organico che ruota attorno ad una versione “personalizzata” di Tomcat. Precisamente, le tecnologie presenti all’interno del JWSDP sono:

  • Java API for XML Messaging (JAXM);
  • Soap with Attachments API for Java (SAAJ);
  • Java API for XML Processing (JAXP);
  • Java API for XML Registries (JAXR);
  • Java API for XML-based RPC (JAX-RPC);
  • JavaServer PagesTM Standard Tag Library (JSTL);
  • Tomcat;
  • Ant;
  • strumenti di amministrazione, gestione e deploy delle Web Application;
  • Registry Server UDDI.


Tramite questa distribuzione di SUN è possibile sperimentare e sviluppare con praticamente tutte le tecnologie di base dei servizi Web, come SOAP, WSDL ed UDDI.
Il software è scaricabile dall’indirizzo http://java.sun.com/webservices.

 

Non solo JWSDP
Altri strumenti degni di nota sono Apache Axis, l’implementazione open source del consorzio Apache nata dalle ceneri dell’implementazione di SOAP di IBM donata diverso tempo fa proprio al consorzio Apache. Il particolare interessante di Axis è il fatto che supporta lo standard in via di definizione JWS (Java Web Service) che consente di creare servizi Web senza codifica ma inserendo alcuni metatag (simili a quelli utilizzati in Javadoc) di definizione all’interno del codice che implementa il servizio.
Nella forma più semplice, è possibile creare una semplice classe Java, rinominarla con l’estensione .jws, copiarla sotto Tomcat per fare in modo che il runtime di Axis la riconosca e gli crei intorno un’infrastruttura dinamica che consente di esporre la classe come servizio Web.
Un altro strumento interessante è il Borland Web Services Developer Kit che non è altro che Axis con l’aggiunta di wizard visuali che semplificano molto l’approccio allo sviluppo dei servizi Web.
Axis è scaricabile all’indirizzo: http://xml.apache.org/axis/index.html, mentre il suo predecessore Apache SOAP è disponibile a: http://xml.apache.org/soap/index.html.

MokaByte® è un marchio registrato da MokaByte s.r.l. 
Java®, Jini® e tutti i nomi derivati sono marchi registrati da Sun Microsystems.
Tutti i diritti riservati. E' vietata la riproduzione anche parziale.
Per comunicazioni inviare una mail a info@mokabyte.it