Deployment ed invocazione dinamica di Web Services. Stefano Schivo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Deployment ed invocazione dinamica di Web Services. Stefano Schivo"

Transcript

1 Deployment ed invocazione dinamica di Web Services Stefano Schivo 15 settembre 2004

2 2

3 Indice 1 Introduzione Un primo esempio Gli standard per i Web Services XML - extensible Markup Language SOAP Simple Object Access Protocol WSDL Web Service Description Language UDDI Universal Description Discovery and Integration BPEL4WS Business Process Execution Language for Web Services Vantaggi e svantaggi dei Web Services Aggiungere dinamicità ai Web Services Stato dell arte Una nuova proposta Contributi apportati Tecnologie attuali Deployment di Web Services Borland Together Control Center Java WSDP BEA Systems WebLogic Server Confronto Invocazione di Web Services Sonic Software Stylus Studio Cape Clear Studio Developer Center Apache Axis Java WSDP Apache WSIF Confronto

4 4 3 AutoDeployer: deployment automatico di Web Services Architettura Funzionamento Esempio di utilizzo Confronto con gli altri tools DynamicInvoker: invocazione dinamica di Web Services senza creazione di stub Architettura Funzionamento Esempio di utilizzo Confronto con gli altri tools Conclusioni 61 Bibliografia 63 A Codice di AutoDeployer 67 B Codice di DynamicInvoker 79 Indice analitico 105

5 Capitolo 1 Introduzione Un Web Service è un interfaccia che descrive una collezione di operazioni accessibili attraverso una rete mediante messaggistica XML (v. [Hea01]). L accesso alle operazioni può essere visto come una chiamata a procedura remota totalmente asincrona: il programma interessato al servizio invia al Web Service una richiesta, in cui indica gli eventuali parametri, e ne ottiene una risposta. Questa verrà poi utilizzata per gli scopi dell applicazione. I passi principali da seguire per realizzare una chiamata a Web Service sono i seguenti: 1. Il Web Service stabilisce un formato per le richieste al proprio servizio e il tipo di risposta da esso generata (questo passo viene eseguito tipicamente una sola volta per ogni servizio) 2. Un applicazione effettua una richiesta del servizio attraverso la rete 3. Il Web Service esegue l azione richiesta e ne restituisce il risultato al chiamante 1.1 Un primo esempio Un esempio di Web Service può essere fornito dall ambito delle quotazioni di borsa. Supponiamo di voler diffondere il valore dei titoli scambiati in borsa in un dato momento. Decidiamo che al posto di esporre l intera lista dei titoli, ritorniamo ad ogni richiesta il valore del titolo dato. Vediamo come si concretizzano i passi precedentemente descritti nel caso del nostro esempio: 5

6 6 Capitolo 1. Introduzione 1. Decidiamo che ad una richiesta del tipo Dammi il valore delle azioni XYZ risponderemo con Il valore delle azioni è 4321 $ 2. Ad un applicazione servono le quotazioni di IBM. Ci spedisce quindi il messaggio Dammi il valore delle azioni IBM 3. Controllate le nostre fonti, inviamo il messaggio Il valore delle azioni è $ Uno schema per rappresentare le azioni sopra descritte e le entità coinvolte può essere quello di Figura 1.1. Publish Service Provider Bind Service Broker Find Service Client Figura 1.1: I ruoli e le operazioni in un Web Service. I tre rettangoli della figura rappresentano le tipiche entità che collaborano nella realizzazione delle tre fasi viste precedentemente: Service Broker ha il ruolo di diffondere le specifiche relative ai Web Services. Mantiene un registro in cui ad ogni servizio associa la sua descrizione. Queste saranno poi inviate agli utenti (Service Client) dei servizi. Service Provider è il fornitore del servizio. Una volta che il servizio è stato creato, lo pubblica sul Service Broker. Service Client è l utente del servizio. Dopo aver ottenuto dal Service Broker la descrizione del servizio, si mette in comunicazione con il Service Provider per ottenere risposta alle sue richieste.

7 Capitolo 1. Introduzione 7 Per poter realizzare in pratica questo progetto è necessario un modo per accordare fornitore e utente del servizio su alcuni parametri relativi allo scambio dei dati: principalmente, il formato dei messaggi e il mezzo di comunicazione utilizzato. Nei Web Services lo standard per rispondere a questa esigenza è XML. Basandosi su XML si definiscono infatti le operazioni e i formati dei messaggi per un Web Service, oltre ai protocolli di comunicazione. Gli stessi messaggi sono basati su XML. 1.2 Gli standard per i Web Services Possiamo vedere in Figura 1.2 lo stack di protocolli che interessano i Web Services [CKM + 03]. Gli strati sono organizzati (dal basso verso l alto) come segue: Transport and encoding Lo strato più in basso si preoccupa della trasmissione e della codifica dei messaggi. Questo compito viene assolto tramite SOAP (Simple Object Access Protocol, v ), un protocollo standard basato su XML. Quality of Service Fornisce la qualità del servizio, vale a dire: la sicurezza nelle comunicazioni, un sistema di messaggistica affidabile, il supporto per transazioni e coordinazione tra Web Services. Description Il compito di questo strato è far conoscere agli utenti le descrizioni dei Web Services. Questi sono descritti utilizzando WSDL (Web Service Description Language, v ). I documenti WSDL, come visto, vengono pubblicati su dei service broker: la specifica seguita per questi registri di servizi è tipicamente quella UDDI (Universal Description Discovery and Integration, v ). Il service broker viene in questo caso definito un UDDI registry. Business Processes Esistono due modi per creare un Web Service: fornire le funzionalità autonomamente, o creare una composizione di funzionalità offerte da diversi servizi individuali eventualmente distribuiti su più fornitori di servizi. In quest ultimo caso, ci si appoggia a BPEL4WS (Business Process Execution Language for Web Services. A volte, semplicemente BPEL, v ). Questo linguaggio fornisce un modo per definire la composizione di servizi nella forma di coreografie di Web Services. Per coreografia si intende l aggregazione di Web Services secondo certe regole di interazione.

8 8 Capitolo 1. Introduzione Figura 1.2: Lo stack dei Web Services. Per ognuno dei principali standard sopra nominati, segue ora una breve descrizione. Ricordiamo che tali standard sono i più diffusi e adottati per lo scopo, ma non i soli; ad esempio: ebxml [Dav01], BPM [Joh03] XML - extensible Markup Language Questo linguaggio è stato definito dal W3C (World Wide Web Consortium) poiché si sentiva la necessità di un formato uniforme e indipendente dalle piattaforme per descrivere dati che potessero essere anche strutturati. Il tutto doveva essere pensato in modo che un applicazione potesse poi usare facilmente questo formato. Da queste specifiche è nato XML: extensible Markup Language, un linguaggio di denotazione estensibile. Le caratteristiche principali sono: ˆ i dati sono strutturati ad albero ˆ un documento XML, essendo nient altro che una sequenza di caratteri, può essere facilmente spedito su una rete. La X di XML indica che un altra delle caratteristiche fondamentali di XML è l estensibilità: infatti, molti linguaggi di descrizione dei dati ed in particolare, WSDL e SOAP sono basati su XML.

9 Capitolo 1. Introduzione 9 Vediamo ora brevemente un esempio di documento XML: <?xml version= 1.0 encoding= ISO ?> <book title= My book > <chapter title= Chapter 1 > <paragraph> My only paragraph </paragraph> </chapter> <chapter title= Chapter 2 > <paragraph> Oh what a cool paragraph </paragraph> <paragraph> Another cool paragraph </paragraph> </chapter> </book> Grazie alla strutturazione ad albero del documento, si intuisce facilmente che ci si trova di fronte ad un libro dal titolo My book, contenente due capitoli: Chapter 1 e Chapter 2. Il primo capitolo contiene un solo paragrafo: My only paragraph, mentre il secondo ne contiene 2: Oh what a cool paragraph e Another cool paragraph. La prima riga del documento serve solo a specificare che si tratta di un documento XML. Ovviamente, anche XML ha alcuni difetti, ecco i principali: ˆ non vengono distinti esplicitamente tipi di dato diversi (intero, booleano, stringa..) ˆ tutti i dati sono rappresentati come caratteri: ciò aumenta la dimensione del documento e costringe ad un continuo lavoro di conversione (es. intero carattere, carattere intero) ˆ nonostante gli sforzi fatti, un documento XML non è immediatamente leggibile da un essere umano Per ulteriori informazioni su XML, e in generale sugli standard basati su XML, riferiamo a e

10 10 Capitolo 1. Introduzione SOAP Simple Object Access Protocol L acronimo SOAP significa Simple Object Access Protocol, ossia semplice protocollo (basato su XML) per l accesso ad oggetti. Un messaggio SOAP contiene una definizione di documento XML che può essere usata per lo scambio di informazioni strutturate tra pari in sistema distribuito decentralizzato. Un messaggio SOAP è strutturato in tre parti: Envelope L elemento più esterno di un messaggio SOAP. Contiene zero o più Header e un Body Header Se presente, è il primo figlio di Envelope. Può contenere informazioni relative all applicazione (autenticazione, pagamento... ) Body Contiene il messaggio vero e proprio Una caratteristica fondamentale che SOAP eredita da XML è l indipendenza dalle architetture hardware e software: è anche grazie a questa proprietà che il protocollo si sta diffondendo come mezzo di comunicazione tra applicazioni. Altri punti di forza sono la semplicità e l estensibilità, che consentono un uso efficace del protocollo per gli scopi specifici delle applicazioni. SOAP viene tipicamente utilizzato su HTTP, ma niente impedisce di inviare messaggi SOAP all interno di (tramite le estensioni MIME) o attraverso altri protocolli di comunicazione. Di seguito vediamo un esempio di messaggio SOAP: si tratta di una richiesta per il Web Service visto nella Sezione 1.1. <env:envelope xmlns:env= > <env:body> <m:getstockprice env:encodingstyle= xmlns:m= > <StockSymbol> IBM </StockSymbol> </m:getstockprice> </env:body> </env:envelope>

11 Capitolo 1. Introduzione 11 Prestando particolare attenzione alle parti evidenziate del messaggio si possono estrapolare queste informazioni: ˆ Si richiede una quotazione di borsa (tramite l operazione getstockprice) ˆ Il simbolo di cui si richiede la quotazione è IBM Una possibile risposta alla richiesta precedente è questa: <env:envelope xmlns:env= > <env:body> <m:getstockpriceresponse env:encodingstyle= xmlns:m= > <Price> 123 </Price> <Currency> Dollar </Currency> </m:getstockpriceresponse> </env:body> </env:envelope> Ci si rende immediatamente conto che: ˆ Questo è il ritorno di una chiamata alla funzione getstockprice (infatti l elemento principale del messaggio contenuto in Body si chiama getstockpriceresponse) ˆ Il valore delle azioni (Price) è 123 ˆ La valuta in cui il valore è espresso (Currency) è Dollar Per ulteriori informazioni su SOAP i riferimenti sono : [Gla01a], [Sid02a], [Sid02b] WSDL Web Service Description Language Per poter ottenere una risposta, la richiesta SOAP a un Web Service deve essere inviata nel formato e all indirizzo attesi dal Web Service. Le informazioni

12 12 Capitolo 1. Introduzione per poter invocare correttamente un Web Service sono contenute nel documento WSDL ad esso associato. L acronimo WSDL significa Web Service Description Language, ossia linguaggio per la descrizione di Web Services. In un documento WSDL si specificano la locazione fisica e le operazioni disponibili per il servizio descritto. I principali tag XML che compongono una descrizione WSDL sono: <types> All interno di questo elemento vengono definiti i tipi di dato complessi utilizzati dal Web Service, servendosi della stessa sintassi degli schemi XML <message> Serve ad indicare di quali parti è composto un messaggio. Le parti hanno lo stesso ruolo dei parametri delle funzioni <porttype> Raggruppa le operation disponibili per il Web Service, elencando per ognuna quali message ne fanno parte. Il porttype può essere visto come una libreria di funzioni (nei linguaggi imperativi) o come una classe (nei linguaggi ad oggetti) <binding> Raggruppa un insieme di operation e gli assegna un tipo di binding (che indica un porttype) <operation> Specifica quali sono i message di input e di output per la funzione che rappresenta <service> Raccoglie tutte le port del Web Service <port> Rappresenta una singola implementazione del Web Service: contiene un binding e un indirizzo di rete (al quale le richieste verranno inviate) Vediamo ora la descrizione in WSDL del servizio di esempio: <?xml version= 1.0 encoding= UTF-8?> <wsdl:definitions targetnamespace= StockPricesNS xmlns:apachesoap= xmlns:impl= StockPricesNS xmlns:intf= StockPricesNS xmlns:soapenc= xmlns:tns1= xmlns:wsdl= xmlns:wsdlsoap= xmlns:xsd= >

13 Capitolo 1. Introduzione 13 <wsdl:types> <schema targetnamespace= xmlns= > <import namespace= /> <complextype name= StockPrice > <sequence> <element name= currency nillable= true type= xsd:string /> <element name= price type= xsd:float /> </sequence> </complextype> </schema> </wsdl:types> <wsdl:message name= getstockpriceresponse > <wsdl:part name= getstockpricereturn type= tns1:stockprice /> </wsdl:message> <wsdl:message name= getstockpricerequest > <wsdl:part name= in0 type= xsd:string /> </wsdl:message> <wsdl:porttype name= StockPrices > <wsdl:operation name= getstockprice parameterorder= in0 > <wsdl:input message= impl:getstockpricerequest name= getstockpricerequest /> <wsdl:output message= impl:getstockpriceresponse name= getstockpriceresponse /> </wsdl:operation> </wsdl:porttype> <wsdl:binding name= StockPricesSoapBinding type= impl:stockprices > <wsdlsoap:binding style= rpc transport= /> <wsdl:operation name= getstockprice > <wsdlsoap:operation soapaction= /> <wsdl:input name= getstockpricerequest >

14 14 Capitolo 1. Introduzione <wsdlsoap:body encodingstyle= namespace= StockPricesNS use= encoded /> </wsdl:input> <wsdl:output name= getstockpriceresponse > <wsdlsoap:body encodingstyle= namespace= StockPricesNS use= encoded /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name= StockPricesService > <wsdl:port binding= impl:stockpricessoapbinding name= StockPrices > <wsdlsoap:address location= /> </wsdl:port> </wsdl:service> </wsdl:definitions> Leggendo il documento dall alto verso il basso, possiamo estrapolare queste informazioni: ˆ Viene definito un unico tipo complesso, StockPrice, fatto da una sequenza di una stringa (Currency) e un intero (Price) ˆ Si definiscono due messaggi: uno per la richiesta, con un unica parte di tipo stringa (getstockpricerequest) e uno per la risposta, la cui unica parte è di tipo StockPrice (getstockpriceresponse) ˆ Il porttype che viene definito, StockPrices, raccoglie la sola operazione getstockprice, i cui messaggi di input/output sono rispettivamente getstockpricerequest e getstockpriceresponse ˆ il binding StockPricesSoapBinding usa HTTP come protocollo di trasmissione e definisce le impostazioni dei messaggi per accedere l operazione getstockprice ˆ Il servizio StockPricesService è accessibile all indirizzo

15 Capitolo 1. Introduzione 15 ed offre come operazioni quelle del binding StockPricesSoapBinding Per ulteriori informazioni su WSDL riferiamo a [Sid01], [Gla01b] UDDI Universal Description Discovery and Integration Una volta creata la descrizione di un Web Service, rimane il problema di come far giungere agli utenti questa descrizione. Tipicamente, si agisce in tre direzioni [Jud02]: Direct publication Il Service Provider invia direttamente al Client il documento WSDL che descrive il Web Service Static discovery Il Client possiede la descrizione WSDL ottenuta per direct publication, e la rende disponibile ad un applicazione a tempo di esecuzione Dynamic discovery Il Client può venire a conoscenza del Web Service anche a tempo di esecuzione, tramite un registro UDDI UDDI (Universal Description Discovery and Integration) è un directory service, dove le aziende possono registrare i propri Web Services e cercarne altri. Un registro UDDI contiene informazioni riguardanti un insieme di Web Services, tra le quali anche la loro descrizione WSDL, e i dati in esso contenuti sono accessibili tramite SOAP. UDDI è stato proposto per fornire uno standard attraverso il quale le aziende potessero raggiungere i clienti e i partner con le informazioni riguardanti i propri prodotti e servizi. Inoltre, con la specifica UDDI si risolvono questi problemi: ˆ rendere possibile trovare facilmente l azienda cercata tra le milioni presenti online; ˆ raggiungere nuovi clienti e migliorare l accesso per quelli attuali; ˆ descrivere servizi e processi di business in una maniera unica, aperta e sicura Per informazioni su UDDI, rimandiamo a

16 16 Capitolo 1. Introduzione BPEL4WS Business Process Execution Language for Web Services Il significato della sigla BPEL4WS è Business Process Execution Language for Web Services. Questo linguaggio (spesso chiamato semplicemente BPEL) definisce un modo per creare composizioni di servizi in forma di business process. BPEL supporta una forma di composizione di servizi orientata al processo: ogni composizione BPEL è un insieme di operazioni (workflow, o processo) che interagisce con un insieme di Web Services per ottenere un particolare risultato. I servizi con cui un processo BPEL interagisce sono detti partners. L interazione con i partners avviene tramite l invocazione di operazioni attraverso le rispettive interfacce (cfr. Figura 1.3, [CKM + 03]). Figura 1.3: Interazioni di un processo BPEL con due partners. I cerchi rappresentano Web Services, le frecce rappresentano scambi di messaggi. È possibile trovare ulteriori informazioni su BPEL e la composizione di servizi in generale in [CKM + 03]. 1.3 Vantaggi e svantaggi dei Web Services Il vantaggio principale derivante dall uso dei Web Services rispetto ad una modalità più tradizionale per l RPC (quale ad esempio Java RMI, v. [Sun04]) è dovuto all utilizzo di protocolli standard basati su XML: da questo linguag-

17 Capitolo 1. Introduzione 17 gio i Web Services ereditano infatti la possibilità di essere utilizzati su ogni piattaforma hardware e software. Generalmente, il punto debole di un architettura distribuita che conti sull omogeneità degli ambienti tecnologici è l eterogeneità dei sistemi di informazione. Il modello orientato ai servizi che i Web Services implementano risponde alla necessità di integrare sistemi eterogenei: questo avviene grazie all utilizzo di protocolli indipendenti dalle architetture. Un altro concetto fondamentale dei Web Services è la ridondanza di implementazioni. Questa consente di avere più Web Services che offrono lo stesso servizio, in modo tale da poter essere utilizzati in maniera intercambiabile (per esempio, si può preferire un Web Service ad un altro se quest ultimo non è momentaneamente disponibile). Un esempio di applicazione che sfrutti la ridondanza di implementazioni è Weather on the fly (progetto per l esame di Sistemi Distribuiti: programmazione, Università degli Studi di Trento, a.a , Stefano Schivo, David Zancarli, Fabio Accordini), un programma che riporta la situazione meteorologica di un aeroporto scelto dall utente, basandosi su due fornitori diversi per lo stesso servizio. Un importante qualità dei Web Services è la trasparenza: l utente che accede ad un Web Service non conosce (perché per lui irrilevante) quale tipo di implementazione questo servizio utilizzi, o su quale architettura sia basato. L eredità di XML porta con sè anche i tipici problemi del linguaggio di markup, il più evidente dei quali è il calo delle prestazioni dovuto ai tag XML che dobbiamo spedire assieme ai dati importanti e alle operazioni necessarie per la gestione di questi tag. Molti Web Services si affidano a HTTP per il trasporto dei messaggi: questo protocollo purtroppo non garantisce la consegna (Cfr. [Ste01]) e questo risulta in un calo dell affidabilità di quei Web Services. Grossi problemi nei Web Services si riscontrano nella coordinazione e nella gestione delle transazioni. Una proposta di soluzione a tali questioni è data in [CKM + 03]. Per quanto riguarda la sicurezza, i Web Services ne sono quasi privi: il problema è dovuto al fatto che attualmente SOAP non ha alcun supporto per la sicurezza. Poter ovviare a questo difetto è molto importante, in quanto consentirà una maggior fiducia da parte degli utenti finali. Per una discussione più approfondita sulla qualità del servizio dei Web Services e su possibili rimedi ai difetti qui discussi, riferiamo a [Raj].

18 18 Capitolo 1. Introduzione 1.4 Aggiungere dinamicità ai Web Services Come per tutte le nuove tecnologie, una caratteristica essenziale per arrivare al successo è la facilità di accesso. Nel caso dei Web Services, l esigenza è duale per le due parti in gioco: sviluppatore: poter creare facilmente un Web Service utente: poter invocare facilmente un Web Service Con creare un Web Service (che a volte indicheremo con deployment di un Web Service) intendiamo l esecuzione di queste operazioni: ˆ aggiungere all applicazione che svolge il lavoro vero e proprio del Web Service, del codice (detto skeleton) il cui compito è mappare le richieste SOAP su opportune operazioni dell applicazione ˆ unire il tutto in un package ˆ effettuare il deployment del package: ossia, depositare il package in un Web Container, un applicazione che consentirà la comunicazione tra il Web Service e l esterno Dal punto di vista degli sviluppatori, può risultare molto utile poter trasformare con poco sforzo la propria applicazione in un Web Service funzionante. Infatti, uno sviluppatore si può trovare a dover esporre le funzionalità dell applicazione come Web Service in due occasioni: 1. Quando ha già sviluppato un applicazione e ne vuole esportare alcune funzionalità come operazioni di Web Service 2. Quando deve realizzare un applicazione mirata fin dall inizio ad agire come Web Service Nel primo caso, lo sviluppatore vorrebbe apportare il minor numero possibile di modifiche al codice. Per fare questo, è necessaria una modalità di deployment di Web Services che richieda un intervento minimo da parte dell utente in termini di configurazione del deployment, e (sperabilmente) nullo in termini di intervento sul codice dell applicazione. Nel secondo caso, il desiderio è evitare di complicare la fase di progettazione. Il modo più semplice per ottenere ciò è fare in modo che il deployment avvenga ad applicazione completamente sviluppata, e senza apportare modifiche al codice. Un sistema di deployment di Web Services che consenta di sviluppare applicazioni autonome e solo successivamente decidere di esporne le funzionalità

19 Capitolo 1. Introduzione 19 come Web Servicefaciliterà l adozione e la praticabilità del serivce oriented computing. In un articolo lungimirante, Dion Almaer [Alm02, pag. 2] scrive: at some point we will just think, I want this as a Web service, and it will happen Il nostro scopo è realizzare questa visione: è quindi necessario un modo rapido e facile da usare per trasformare un applicazione in un Web Service. Dal punto di vista degli utenti (intesi sia come persone fisiche che come applicazioni che si appoggiano a Web Services), una delle caratteristiche fondamentali di un applicazione deve essere la facilità d uso. Per poter raggiungere il maggior numero di consumatori, un Web Service dovrebbe seguire queste desiderata: serve quindi un modo per permettere agli utenti di invocare Web Services senza dover leggere per proprio conto una definizione WSDL e sperabilmente, senza essere costretti a costruire un applicazione ad hoc per ogni Web Service a cui si voglia accedere. Un invocazione di questo tipo non necessita della creazione di un applicazione apposita per accedere ad ogni Web Service, ma consente di invocare un qualsiasi servizio la cui descrizione WSDL sia nota a tempo di esecuzione, e verrà d ora in poi definita come invocazione dinamica. 1.5 Stato dell arte È attualmente possibile effettuare il deployment automatico di un Web Service, ma questo tipicamente richiede un certo intervento da parte dell utente. La tendenza contraria, ovvero evitare all utente noiose complicazioni dovute alla scelta di svariati parametri per la configurazione, è riscontrabile in casi sporadici. Se da un lato questo comportamento diffuso consente una maggior personalizzazione del deployment, dall altro riduce l usabilità dell applicazione che effettua il deployment. Ricordiamo che uno dei punti fondamentali che l ipotetico sviluppatore poneva come condizione era proprio la riduzione al minimo dell intervento da parte dell utente. Per quanto riguarda l invocazione di Web Services, è disponibile un discreto numero di applicazioni che la offre (ad es. Sonic Software Stylus Studio, Cape Clear Studio Developer Center); ma poche tra queste forniscono un servizio veramente utile per l utente. In particolare, veramente poche (se non nessuna) sono le soluzioni che prevedono una invocazione dinamica di Web Services: ossia, l invocazione di Web Services che non richieda la creazione di stub (applicazioni a cui appoggiarsi e che permettono la comunicazione con

20 20 Capitolo 1. Introduzione uno specifico Web Service), ma che riesca ad interagire con un Web Service basandosi semplicemente sulla sua descrizione WSDL. 1.6 Una nuova proposta Ciò che proponiamo come risposta alle richieste analizzate nella sezione 1.4 è una libreria che permette sia di effettuare il deployment di un Web Service in modo automatico, sia di invocare un qualsiasi Web Service senza dover generare del codice ad hoc. Ciò che è stato realizzato consiste di una libreria Java costituita da due parti principali: ˆ AutoDeployer: provvede al deployment automatico di un Web Service dato il package che lo implementa ˆ DynamicInvoker: invoca dinamicamente un Web Service data la sua descrizione in WSDL e i dati in input Il resto della tesi è organizzato nel modo seguente: Capitolo 2: descrizione e valutazione delle tecnologie attualmente disponibili per il deployment e l invocazione di Web Services; Capitolo 3: descrizione del software che consente il deployment di un Web Service (AutoDeployer), confrontandola con le soluzioni del capitolo 2; Capitolo 4: descrizione del software che provvede all invocazione dinamica di Web Services (DynamicInvoker), seguita da un paragone con le applicazioni esistenti; Capitolo 5: presentazione di conclusioni e valutazione del possibile impatto dalla libreria nel mondo dei Web Services. 1.7 Contributi apportati L introduzione dei due nuovi tool AutoDeployer e DynamicInvoker consente agli sviluppatori di impiegare i Web Services con maggior facilità, promuovendo così l uso di questa tecnologia diffusa ormai su larga scala. Il tool AutoDeployer consente di aggiungere ad un applicazione funzionante un interfaccia per operare come Web Service. La sua caratteristica principale è la facilità d uso: la configurazione del deployment avviene

21 Capitolo 1. Introduzione 21 tramite l aggiunta di tag tipo JavaDoc ai commenti del codice; mentre il deployment vero e proprio viene eseguito semplicemente invocando il tool. DynamicInvoker permette l invocazione di Web Services senza la creazione di stub, e restituendo dei risultati facilmente leggibili dall utente. Questo è reso possibile appoggiandosi alle funzionalità delle librerie Apache Axis e Apache WSIF. Ciò che è richiesto per effettuare un invocazione è la descrizione WSDL del Web Service, il nome dell operazione richiesta e i parametri di input. I due tool hanno come ulteriore punto di forza il fatto di essere completamente open source e basati su librerie open source. In questo modo, si possono ottenere caratteristiche paragonabili ai tool commerciali senza dover pagare per utilizzarle.

22 22 Capitolo 1. Introduzione

23 Capitolo 2 Tecnologie attuali Effettuare il deployment (v. definizione a pag. 18) di un Web Service significa aggiungere all applicazione del codice di supporto che le consenta di comunicare con l esterno attraverso messaggi SOAP, tramite i quali riceverà le richieste e invierà i risultati delle operazioni. Invocare un Web Service significa inviargli un messaggio SOAP contenente una richiesta di esecuzione di un operazione e i dati di input necessari. Quello che il Web Service ritornerà sarà un altro messaggio SOAP, contenente il risultato dell operazione richiesta. Per invocazione dinamica di un Web Service si intende l invocazione di un Web Service che non preveda la creazione di un apposito stub (un programma helper che provvede alla comunicazione con il Web Service). Quindi, per effettuare un invocazione dinamica le informazioni sul Web Service devono essere individuate a tempo di esecuzione (e cioè dinamicamente). 2.1 Deployment di Web Services Vediamo ora tre applicazioni commerciali rappresentative dello stato dell arte che offrono come servizio anche il deployment automatico di Web Services Borland Together Control Center Borland Software Corporation fornisce agli sviluppatori un prodotto per la progettazione, Borland Together Control Center. La funzionalità principale di questa applicazione è quella di facilitare il design e lo sviluppo di software tramite l assistenza nella fase di creazione di diagrammi UML e durante il loro mantenimento. 23

24 24 Capitolo 2. Tecnologie attuali Il deployment di Web Services è fornito tramite una interfaccia verso le funzionalità di Apache SOAP. Questa interfaccia permette di definire direttamente all interno del codice, tramite dei commenti in stile JavaDoc, quali sono i metodi di una classe che andranno esportati come operazioni di Web Service. Possiamo vedere in Figura 2.1 Borland Together Control Center in azione. Figura 2.1: Borland Together Control Center utilizzato nel deployment di un semplice Web Service. Un esempio di utilizzo delle funzionalità di deployment di Borland Together Control Center è descritto in [Cor02] Java WSDP 1.4 Java WSDP racchiude al suo interno un insieme di librerie il cui scopo è facilitare lo sviluppo di Web Services, a patto di basarsi sulla piattaforma Java. Le funzionalità principali e le novità rispetto alle versioni precedenti sono descritte in [Mah04]. I componenti principali di Java WSDP sono questi: Java Architecture for XML Binding (JAXB) fornisce un mappaggio standard tra XML e Java Java API for XML Processing (JAXP) consente la gestione di documenti XML usando DOM, SAX o XSLT

25 Capitolo 2. Tecnologie attuali 25 Java API for XML Registries (JAXR) permette l accesso a registri XML, come ad esempio UDDI Java API for XML-based RPC (JAX-RPC) garantisce lo sviluppo di Web Services basati su SOAP completamente interoperabili e portabili. È su questa libreria che ci si deve appoggiare per effettuare il deployment automatico di Web Services. Tra i punti di forza principali di Java WSDP c è la possibilità di interazione con diversi Web Containers (Sun Java System Application Server Platform Edition 8 quello ufficialmente raccomandato, Sun Java System Web Server 6.1, Tomcat 5.0 for Java WSDP, e, tramite la creazione di opportuni script, anche un qualsiasi altro Web Container). Vediamo come in questo caso si debba procedere per effettuare il deployment di un Web Service: ˆ l utente prepara un file.war contenente le classi che comporranno il Web Service assieme ad un file in cui descrive le sue intenzioni (quali funzioni esportare, quale classe implementa il Web Service, ecc... ) e passa il tutto al tool wsdeploy ˆ wsdeploy si occupa di creare un file.war pronto per essere depositato nel Web Container ˆ a questo punto, è sufficiente effettuare il deployment del file.war secondo le modalità previste dal Web Container utilizzato. L intero processo viene tipicamente automatizzato con l uso di un buildfile per Apache Ant 1. Nell installazione del Web Container consigliato (Sun Java System Application Server Platform Edition 8) esiste anche un applicazione dotata di interfaccia grafica utente, deploytool (v. Figura 2.2), che permette di eseguire i passi sopra descritti in maniera più user-friendly BEA Systems WebLogic Server Il server WebLogic non è altro che un Web Container, in cui è possibile depositare Web Services. In questo caso, per consentire il deployment di un Web Service viene fornito all utente un insieme di task Ant. Sono possibili due approcci all uso di questi task: 1 La documentazione per Apache Ant è disponibile in [Apa04]. Per una spiegazione del funzionamento di Ant e un esempio di utilizzo, vedere [Lou02].

26 26 Capitolo 2. Tecnologie attuali Figura 2.2: Finestra del wizard per il deployment di un Web Service in deploytool.

27 Capitolo 2. Tecnologie attuali 27 ˆ usare il task servicegen, che si occupa di effettuare tutti i passi necessari alla generazione di un Web Service per il server WebLogic, e produce il file.ear pronto per essere collocato sul server ˆ usare una serie di task che permettono un maggior controllo sul processo di deployment del Web Service Il task servicegen agisce tramite introspection (una tecnica usata per esaminare i dati e i metodi contenuti in una classe Java) delle classi, considerando ogni metodo pubblico come un operazione per il Web Service (a volte ciò non è quello che l utente intendeva). Successivamente, crea un deployment descriptor in cui sono contenute le informazioni raccolte nella fase precedente. Il task si occupa poi di creare le eventuali classi per la serializzazione/deserializzazione di tipi Java non built-in. Infine, crea un file.ear pronto per il deployment sul Web Container. L alternativa a questo procedimento è l uso di task separati. Si può scegliere in questo caso se partire da classi Java o da uno schema XML. Sostanzialmente, si tratta di eseguire gli stessi passi di servicegen, ma con la possibilità di un maggior intervento da parte dell utente. È possibile trovare in [Sys04b] e [Sys04a] una più completa descrizione di questi task, e del loro uso per il deployment di Web Services Confronto Andiamo a confrontare i differenti approcci al deployment di Web Services visti finora. Definiamo innanzitutto i parametri sui quali ci baseremo per valutare i tool: Linguaggio unico Se il tool permette il deployment di Web Services scritti in un solo linguaggio, oppure se tende ad essere indipendente dal linguaggio File di configurazione Se viene richiesto un file in cui l utente deve scrivere le opzioni per il deployment, o se queste vengono dedotte dal codice sorgente Operazioni selezionabili Se l utente può specificare quali metodi della classe che implementa il Web Service devono essere esportati, o se le operazioni vengono scelte automaticamente Il fatto che si possa usare un linguaggio qualsiasi è un aspetto positivo (anche se nel caso di Java, il linguaggio è multipiattaforma): infatti, una

28 28 Capitolo 2. Tecnologie attuali delle proprietà migliori dei Web Services è l indipendenza da linguaggi di programmazione e piattaforme software/hardware. La necessità di un file di configurazione permette tipicamente di avere a disposizione una maggior quantità di scelte su cui l utente possa intervenire, a scapito di richiedere una maggior conoscenza dei Web Services per poter impostare appropriatamente queste opzioni. Viceversa, se il tool deduce le impostazioni direttamente dalla forma della classe che implementa il Web Service, l utente deve compiere meno lavoro e non gli viene richiesta una conoscenza particolarmente approfondita dei Web Services, ma il deployment del Web Service è scarsamente configurabile. Dare all utente la possibilità di selezionare i metodi della classe che vuole destinare a diventare operazioni del Web Service è particolarmente importante, perché aumenta il controllo da parte dell utente sul processo di deployment, senza per questo richiedere particolari sforzi o conoscenze. Questa opzione è importante anche per il fatto che spesso la classe che implementa il Web Service non era inizialmente pensata per questo scopo, quindi è facile aspettarsi che non tutte le funzioni della classe siano da considerarsi come possibili operazioni per un Web Service. Vediamo riassunte nella tab. 2.1 le valutazioni sui tool per il deployment di Web Services. Nome Tool Linguaggio File Operazioni unico configurazione selezionabili Borland Together No No Sì Control Center Java WSDP Java Sì Sì BEA Systems Java Sì No WebLogic Server Tabella 2.1: Services. Confronto tra i tool per il deployment automatico di Web

29 Capitolo 2. Tecnologie attuali Invocazione di Web Services Vedremo in questa sezione alcuni tool (in parte commerciali e in parte liberamente utilizzabili) che consentono l invocazione di Web Services Sonic Software Stylus Studio Sonic Software Corporation ha prodotto un tool il cui scopo è il trattamento di Web Services e di documenti XML in generale: Stylus Studio. Tramite questo tool si può anche interrogare un registro UDDI per cercare un Web Service. L invocazione di un Web Service avviene in modo estremamente semplice: si scrive nell apposita barra l indirizzo del file contenente la descrizione WSDL del Web Service e l applicazione genera l elenco delle operazioni disponibili. A quel punto, l utente seleziona un operazione dalla lista e gli viene mostrata la richiesta SOAP così come verrà spedita. Dopo aver inserito i valori di input, l utente li sottomette e, dopo qualche istante, può verificare la risposta ottenuta dal Web Service sia in forma di albero in stile DOM che come documento XML formattato (v. Figura 2.3). Nonostante la sostanziale semplicità dell applicazione (la risposta del Web Service non viene trattata in alcun modo per renderla maggiormente comprensibile all utente), è possibile trovare due aspetti positivi per Stylus Studio: ˆ è particolarmente intuitivo da utilizzare ˆ i Web Services vengono invocati senza creare degli stub ad hoc Cape Clear Studio Developer Center Cape Clear offre il tool omonimo rivolto alla creazione di Web Services, con supporto per la gestione di descrizioni WSDL. Oltre a ciò, viene fornita anche la creazione di interfacce verso l utente in forma di client Java o di pagina web. Il funzionamento di questo tool è decisamente più complicato del precedente e nonostante ciò il suo uso risulta semplice: questo grazie ad una progettazione molto più attenta dell applicazione. Per invocare un Web Service è sufficiente possederne la descrizione WSDL: da questa Cape Clear Studio Developer Center consente di creare degli stub sia in forma di pagine JSP, sia in forma di semplici applicazioni Java. Per generare il client web è sufficiente invocare il comando che ha questa etichetta, seguito dal deployment

30 30 Capitolo 2. Tecnologie attuali Figura 2.3: Finestra principale di Stylus Studio, dopo l invocazione di un Web Service.

31 Capitolo 2. Tecnologie attuali 31 del client sul server e dalla sua esecuzione. A questo punto, puntando il browser sulla pagina iniziale del web client, ci appare l elenco delle operazioni del Web Service; scegliendone una, viene costruita una maschera di input, nella quale immettiamo i dati richiesti dall operazione. Dopo aver cliccato su Invoke e aver atteso qualche istante, possiamo consultare il risultato dell invocazione rappresentato in forma di albero. Possiamo vedere in Figura 2.4 l applicazione al lavoro. Figura 2.4: Finestra principale di Cape Clear Studio durante la generazione di un Web Service client.

32 32 Capitolo 2. Tecnologie attuali Apache Axis La libreria Apache Axis contiene al suo interno il tool WSDL2Java, che, data in input la locazione della descrizione WSDL di un Web Service, restituisce come output un package di classi che l utente può usare come stub per l invocazione di quel Web Service. Ecco un esempio di utilizzo di WSDL2Java: usando la descrizione WSDL del servizio sulle quotazioni di borsa (v. Sezione 1.2.3) e scrivendo su una shell un comando come questo: java org.apache.axis.wsdl.wsdl2java si ottiene un package nel quale sono contenuti i file ˆ StockPrices.java ˆ StockPricesService.java ˆ StockPricesServiceLocator.java ˆ StockPricesSoapBindingStub.java Grazie a queste classi, è possibile creare un applicazione per accedere al servizio. Tale applicazione dovrà utilizzare la classe StockPricesServiceLocator per ottenere uno stub (di tipo StockPricesSoapBindingStub) verso il Web Service. Tramite quell oggetto si potrà accedere alle operazioni del Web Service. Le risposte saranno automaticamente tradotte in opportuni oggetti Java, dando l illusione di aver a che fare con normali invocazioni di funzione. Ecco una semplice classe che consente l invocazione del Web Service: 1 public class S t o c k P r i c e s T e s t e r { 2 public static void main ( S t r i n g [ ] args ) 3 throws Exception { 4 5 // Crea l a c l a s s e che permette 6 // d i accedere a l s e r v i z i o 7 S t o c k P r i c e s S e r v i c e s e r v i c e = 8 new S t o c k P r i c e s S e r v i c e L o c a t o r ( ) ; 9 10 // Ottiene uno s t u b per i l s e r v i z i o

33 Capitolo 2. Tecnologie attuali S t o c k P r i c e s sp = s e r v i c e. g e t S t o c k P r i c e s ( ) ; // Esegue l a chiamata 14 System. out. p r i n t l n ( "Price of IBM stocks = " + 15 sp. g e t S t o c k P r i c e ( "IBM" ) ) ; 16 } 17 } La documentazione di Apache Axis è presente in [doc04]. Un esempio sull utilizzo di Apache Axis sia nella fase di deployment, che nella fase di invocazione di un semplice Web Service è disponibile in [Alm02] Java WSDP 1.4 Le librerie che compongono Java WSDP permettono anche di invocare un Web Service. Grazie al tool wscompile, data la descrizione WSDL di un Web Service, è possibile generare delle classi wrapper che facilitano all utente la creazione di uno stub per il Web Service. Ciò che si richiede per portare a compimento l incarico è la descrizione WSDL del Web Service e un file di configurazione in XML nel quale vengono specificate le opzioni. Il funzionamento e l utilizzo sono molto simili a quelli appena visti per WSDL2Java. Sulla creazione di stub e proxy, vedere [Mic99], [Mic03] Apache WSIF L acronimo WSIF sta per Web Service Invocation Framework. Come si intuisce dal nome, l obiettivo di questa libreria è proprio l invocazione di Web Services. A differenza delle due librerie viste sopra, Apache WSIF rende possibile l invocazione di Web Services senza l uso di stub: infatti, una delle sue funzioni principali è quella di creare un modello di un Web Service data la sua rappresentazione WSDL. Grazie a questa caratteristica, è possibile sviluppare un applicazione per l invocazione di Web Services senza l uso di stub. Il nostro tool DynamicInvoker è stato realizzato appunto basandosi sulle funzionalità offerte da WSIF. La documentazione di WSIF è presente in [doc03]. Esempi dell uso di WSIF per l invocazione di Web Services, accompagnati da spiegazioni generali sul funzionamento della libreria sono reperibili in: [Alm02], [Hag01], [Fre02], [Muk01], [MS01]

34 34 Capitolo 2. Tecnologie attuali Confronto Definiamo ora i parametri secondo i quali valuteremo le soluzioni viste finora. Tool Se si tratta di un tool (e quindi di un applicazione pronta per l utente finale), o di una libreria (e quindi di un insieme di funzionalità per semplificare la vita degli sviluppatori) Uso di stub Se per invocare un Web Service ci si deve appoggiare alla creazione di stub Richiede informazioni aggiuntive Se vengono richieste altre informazioni oltre alla descrizione del Web Service (e, ovviamente, i dati di input per l operazione richiesta) Interfaccia grafica Se si possono usare le funzionalità del tool tramite un interfaccia grafica utente Chiaramente, la creazione di stub aumenta le prestazioni a tempo di esecuzione, ma se si devono invocare molti Web Services, si arriva a consumare molto spazio per gli stub. Ci sono anche delle situazioni in cui non si conosce la descrizione WSDL del Web Service fino a tempo di esecuzione, e in quei casi sarebbe necessario creare degli stub al volo. Più conveniente, sia in termini di velocità che in termini di spazio occupato, in situazioni come queste è l invocazione diretta del Web Service senza l utilizzo di intermediari. Un tool per l invocazione di Web Services provvede a leggere tutte le informazioni necessarie dal documento WSDL, o ha bisogno di altre informazioni (magari scritte in un apposito file di configurazione)? Se questo è il caso, la conoscenza del Web Service richiesta all utente affinché l invocazione giunga a buon fine aumenta. Un utente che voglia invocare un Web Service non deve porsi domande tecniche come: Quale porttype devo usare?, o Quale mappaggio di tipi devo considerare?. Infine, vale la pena sottolineare che un tool che offra una via d accesso di facile utilizzo ai Web Services potrà godere di una maggior diffusione tra gli utenti meno esperti (e quindi più bisognosi di un aiuto per invocare Web Services). Vediamo in tabella 2.2 una comparazione tra i 5 tool visti in questa sezione.

35 Capitolo 2. Tecnologie attuali 35 Nome Tool Tool Uso di Richiede info. Interfaccia stub aggiuntive grafica Sonic Software Sì No No Sì Stylus Studio Cape Clear Studio Sì Sì No Sì Developer Center Apache Axis No Sì Sì No Java WSDP 1.4 No Sì Sì No Apache WSIF No No No No Tabella 2.2: Services. Confronto tra i tool per il deployment automatico di Web

36 36 Capitolo 2. Tecnologie attuali

37 Capitolo 3 AutoDeployer: deployment automatico di Web Services AutoDeployer è un tool per il deployment automatico di Web Services. Per la definizione di deployment di Web Services, Cfr. Sezione 1.4. Le principali caratteristiche positive del tool sono: Facilità di utilizzo : le operazioni da effettuare per eseguire un deployment sono facilmente eseguibili, anche da utenti con poca familiarità con i Web Services Velocità : il tempo necessario per la completa esecuzione di un deployment è dell ordine dei secondi Operazioni selezionabili : l utente può selezionare quali operazioni dell applicazione saranno accessibili dall interfaccia del Web Service semplicemente indicandole all interno del codice con speciali commenti Nessuna modifica al codice dell applicazione : l applicazione di cui si vuole il deployment non verrà modificata in alcun modo per quanto riguarda il suo funzionamento. Come detto, l unico intervento sui sorgenti consiste nella scrittura di commenti speciali per configurare il deployment. 3.1 Architettura Il tool è composto da un buildfile per Apache Ant e da una classe Java, DocletXTractor. Apache Ant è un tool per la compilazione basato su Java 37

38 38 Capitolo 3. AutoDeployer [Apa04]. I buildfile per Apache Ant contengono una descrizione su come e in che ordine devono essere eseguite le operazioni (task) necessarie alla compilazione di un progetto. Oltre alla compilazione propriamente detta, si può richiedere l esecuzione di varie altre operazioni. Nel nostro caso, il buildfile viene utilizzato per eseguire automaticamente una serie di azioni il cui scopo è la realizzazione di un interfaccia per fare funzionare un applicazione come Web Service. La classe DocletXTractor viene richiamata dall interno del buildfile come un task Ant. Per ottenere questo, la si fa ereditare da XJavadocTask, la classe base per la creazione di un task Ant che utilizzi la gestione dei tag in stile JavaDoc. La parte variabile di ogni deployment è generata da questa classe sotto forma di file di configurazione: i dati in esso contenuti sono estratti dai tag JavaDoc presenti nei commenti delle classi del package. Grazie a queste informazioni, i tool necessari al deployment del Web Service vengono invocati con i parametri corretti. Per i sistemi operativi Windows è stato realizzato il file autodeployer.bat, che permette di aumentare ulteriormente l automazione. Un file con le stesse funzionalità può essere realizzato con facilità per Linux/Unix, tramite uno script di shell. In Figura 3.1 è possibile vedere un diagramma delle classi utilizzate in AutoDeployer XJavaDocTask DocletXTractor +start() Figura 3.1: Diagramma delle classi per AutoDeployer.

39 Capitolo 3. AutoDeployer Funzionamento Per poter eseguire correttamente il tool AutoDeployer devono essere soddisfatte le seguenti condizioni: 1. Ponendo che: ˆ <WebServiceToolsHome> è il percorso per la directory dove è installato AutoDeployer; ˆ <XDocletHome> è il percorso in cui è installata la libreria XDoclet ˆ <AxisHome> è il percorso dove è installata la libreria Apache Axis le variabili di ambiente devono essere impostate come segue: ˆ PATH deve contenere il percorso <WebServiceToolsHome>/bin ˆ WEB SERVICE TOOLS HOME deve essere impostata a <WebServiceToolsHome> ˆ CLASSPATH deve contenere: la libreria XJavaDoc (file xjavadoc-x.x.x.jar) la libreria XDoclet (i file nella directory <XDocletHome>/lib) la libreria Apache Axis (i file nella directory <AxisHome>/lib) i file mail.jar e j2ee.jar (fanno parte della distribuzione di Java 2 Enterprise Edition e sono necessari al funzionamento di Apache Axis) il file <WebServiceToolsHome>/lib/webServiceTools.jar 2. Il contenuto del file di configurazione <WebServiceToolsHome>/build. properties deve rispecchiare le impostazioni del Web Container Jakarta Tomcat 3. Apache Ant deve essere correttamente configurato e funzionante 4. Il Web Container Jakarta Tomcat deve essere avviato e Apache Axis deve essere presente nella directory webapps di Tomcat e funzionante Ecco la sequenza delle azioni che vengono eseguite una volta ottenuto dall utente il nome del package di cui viene richiesto il deployment come Web Service 1 (il codice è disponibile nell Appendice A): 1 È possibile per l utente passare anche più di un package alla volta

40 40 Capitolo 3. AutoDeployer ˆ dal buildfile viene lanciato il task DocletXTractor, che provvede ad analizzare il codice sorgente delle classi contenute nel package. Tra queste classi deve essercene una contenente tra i propri commenti il Questa verrà considerata come la classe che implementa il Web Service; ˆ i metodi della classe presa in considerazione che contengono tra i loro commenti il verranno considerati come operazioni del Web Service; ˆ le informazioni fin qui raccolte vengono scritte da DocletXTractor in un file di configurazione per il deployment; ˆ grazie alle informazioni contenute nel file di configurazione, tramite delle opportune invocazioni ai tools Java2WSDL e WSDL2Java (entrambi appartenenti alla libreria Apache Axis), vengono generate le classi che fungeranno da interfaccia tra il Web Service e l esterno; ˆ dopo aver compilato le nuove classi, si provvede a copiare il risultato in una directory appartenente al CLASSPATH di Axis 2 ; ˆ tramite il tool AdminClient (sempre di Apache Axis), si effettua la registrazione del Web Service nel server di Axis. In Figura 3.2 è possibile vedere un diagramma che schematizza il funzionamento di AutoDeployer 2 Tipicamente, <TomcatHome>/webapps/axis/WEB-INF/classes

41 Capitolo 3. AutoDeployer 41 buildfile DocletXTractor package input File configurazione Java2WSDL WSDL2Java documento WSDL package ws deploy.wsdd javac AdminClient invoca tag JavaDoc scrive info per deployment configurazione deployment invoca implementazione Web Service crea invoca interfaccia WS crea crea invoca impostazioni deployment deployment Figura 3.2: Sequenza delle operazioni eseguite durante il deployment di un Web Service.

42 42 Capitolo 3. AutoDeployer 3.3 Esempio di utilizzo Tornando all esempio iniziale (Sezione 1.1), si supponga che uno sviluppatore voglia creare il Web Service descritto. Segue una possibile implementazione dell applicazione: package stockprices; Classe StockPricesImpl /** * Questa è la classe principale per il web service, * e lo dichiariamo con questo tag: name= StockPrices */ public class StockPricesImpl { /** * Esportiamo questa funzione, quindi aggiungiamo */ public StockPrice getstockprice(string symbol) { return new StockPrice(123.4f, Dollar ); } } /** * Questa funzione non sarà esportata, quindi * non avrà nessun tag */ public int mypersonalfunction(string s) { return 43; } Classe StockPrices package stockprices; /** * Questa classe implementa il tipo complesso * usato nella classe StockPricesImpl

43 Capitolo 3. AutoDeployer 43 */ public class StockPrice { private float price = 0; private String currency = null; public StockPrice() { } public StockPrice(float price, String currency) { this.price = price; this.currency = currency; } public void setprice(float price) { this.price = price; } public float getprice() { return this.price; } public void setcurrency(string currency) { this.currency = currency; } } public String getcurrency() { return this.currency; } Sono stati evidenziati i tag necessari per comunicare a DocletXTractor che la classe StockPricesImpl implementa un Web Service di nome StockPrices e che la funzione da esportare è getstockprice. Quello che lo sviluppatore deve fare ora per trasformare questa applicazione in un Web Service è scrivere in una finestra di shell, dal percorso in cui risiede il package stockprices, il comando autodeployer stockprices A questo punto entrerà in azione AutoDeployer, che eseguirà il deployment del Web Service. Durante l esecuzione appariranno dei messaggi che

44 44 Capitolo 3. AutoDeployer spiegheranno man mano i passi in via di esecuzione. Alla fine, se tutto è andato per il verso giusto, Ant riporterà il messaggio BUILD SUCCESSFUL. Per verificare che il deployment abbia avuto successo, è sufficiente digitare in un browser l indirizzo >/axis/services/stockprices?wsdl per visualizzare la descrizione WSDL del Web Service. Nelle Figure 3.3 e 3.4 è possibile vedere l esecuzione di autodeployer e il WSDL del Web Service risultante. Nel prossimo capitolo si potrà usare il tool DynamicInvoker per invocare il Web Service appena generato. Figura 3.3: Risultato dell esecuzione di autodeployer sull esempio.

45 Capitolo 3. AutoDeployer 45 Figura 3.4: Descrizione WSDL risultante dal deployment del Web Service dell esempio.

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti 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

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

Dettagli

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1 G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O A T I C _W E B Rev. 2.1 1 1. ISCRIZIONE Le modalità di iscrizione sono due: Iscrizione volontaria Iscrizione su invito del Moderatore

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2. www.gestim.it

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2. www.gestim.it Il software di gestione immobiliare più facile da usare Modulo Web v5.2 www.gestim.it Introduzione Il Modulo Web è un componente di Gestim che permette di pubblicare in automatico gli annunci sul sito

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

1) GESTIONE DELLE POSTAZIONI REMOTE

1) GESTIONE DELLE POSTAZIONI REMOTE IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo

Dettagli

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Presentazione di Cedac Software

Presentazione di Cedac Software Agenda Presentazione di Cedac Software SOA ed ESB Analisi di un caso studio Esempi Q&A Presentazione di Cedac Software 1 2 Presentazione di Cedac Software S.r.l. Divisione Software Azienda nata nel 1994

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività Prerequisiti Mon Ami 000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività L opzione Centri di costo è disponibile per le versioni Contabilità o Azienda Pro. Introduzione

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

Dettagli

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com Addition è un applicativo Web che sfrutta le potenzialità offerte da IBM Lotus Domino per gestire documenti e processi aziendali in modo collaborativo, integrato e sicuro. www.xdatanet.com Personalizzazione,

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Sommario Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Introduzione.................................................................................. 1 SOAP........................................................................................

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo 01595 Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo INDICE DESCRIZIONE DEL SOFTWARE DI INTERFACCIAMENTO CON I SISTEMI GESTIONALI (ART. 01595) 2 Le

Dettagli

Una piattaforma per la negoziazione di servizi business to business attraverso la rete Internet

Una piattaforma per la negoziazione di servizi business to business attraverso la rete Internet Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in Ingegneria Gestionale della Logistica e della Produzione Una piattaforma per la negoziazione di servizi business to

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client

Dettagli

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta. Configurazione Account di posta dell Università di Ferrara con il Eudora email Eudora email può

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Sequence Diagram e Collaboration Diagram

Sequence Diagram e Collaboration Diagram Sequence Diagram e Collaboration Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Sommario Interaction

Dettagli

Java Web Services. Uso di Eclipse e Apache Axis

Java Web Services. Uso di Eclipse e Apache Axis Java Web Services Uso di Eclipse e Apache Axis 1 Gli strumenti utili per iniziare Axis (Web Service tool) Eclipse (IDE di sviluppo) Tomcat (servlet/jsp container) N.B. Eclipse e Tomcat possono essere sostituiti

Dettagli

File, Modifica, Visualizza, Strumenti, Messaggio

File, Modifica, Visualizza, Strumenti, Messaggio Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Il modello veneto di Bilancio Sociale Avis

Il modello veneto di Bilancio Sociale Avis Il modello veneto di Bilancio Sociale Avis Le organizzazioni di volontariato ritengono essenziale la legalità e la trasparenza in tutta la loro attività e particolarmente nella raccolta e nell uso corretto

Dettagli

Panoramica: che cosa è necessario

Panoramica: che cosa è necessario Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo

Dettagli

Guida alla compilazione on-line delle domande di Dote Scuola A.S. 2013-2014 - per le Famiglie INDICE

Guida alla compilazione on-line delle domande di Dote Scuola A.S. 2013-2014 - per le Famiglie INDICE Guida alla compilazione on-line delle domande di Dote Scuola A.S. 2013-2014 - per le Famiglie INDICE Introduzione... 2 Riconoscimento del soggetto richiedente da parte del sistema... 2 Elenco dei servizi

Dettagli

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici tesi di laurea Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici Anno Accademico 2008/2009 relatore Ch.mo prof. Porfirio Tramontana Ch.mo prof. Annarita Fasolino candidato

Dettagli

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

Introduzione. Installare EMAS Logo Generator

Introduzione. Installare EMAS Logo Generator EMAS Logo Generator Indice Introduzione... 3 Installare EMAS Logo Generator... 3 Disinstallare EMAS Logo Generator... 4 Schermata iniziale... 5 Creare il Logo... 7 Impostazioni... 7 Colore...8 Lingua del

Dettagli

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013] MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire

Dettagli

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere

Dettagli

Ministero del Lavoro e delle Politiche Sociali

Ministero del Lavoro e delle Politiche Sociali Ministero del Lavoro e delle Politiche Sociali Prospetto Informativo on-line Standard tecnici del sistema informativo per l invio telematico del Prospetto Informativo Documento: UNIPI.StandardTecnici Revisione

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

PROCEDURE DI FIRMA PER I PIP PRESENTATI NEI BANDI APPRENDISTATO

PROCEDURE DI FIRMA PER I PIP PRESENTATI NEI BANDI APPRENDISTATO PROCEDURE DI FIRMA PER I PIP PRESENTATI NEI BANDI APPRENDISTATO 1 - INTRODUZIONE Scopo del presente documento è descrivere le procedure attuabili per la firma dei PIP presentati nei bandi apprendistato

Dettagli

Modulo InWEB di InFarmaClick. Specifiche tecniche per l interfacciamento con i software gestionali di farmacia. Livello API 2005.

Modulo InWEB di InFarmaClick. Specifiche tecniche per l interfacciamento con i software gestionali di farmacia. Livello API 2005. 1 di 10 Progetto Specifiche tecniche per l interfacciamento con i software gestionali di farmacia Livello API 2005001 MODULO MD-DOC05-INFARMA REVISIONE MODULO Rev 0 del 05/02/02 EMESSO DA: Bottaioli A

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Manuale Utente Amministrazione Trasparente GA

Manuale Utente Amministrazione Trasparente GA Manuale Utente GA IDENTIFICATIVO DOCUMENTO MU_AMMINISTRAZIONETRASPARENTE-GA_1.0 Versione 1.0 Data edizione 03.05.2013 1 Albo Pretorio On Line TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione

Dettagli

Seminario di Sistemi Distribuiti RPC su SOAP

Seminario di Sistemi Distribuiti RPC su SOAP Seminario di Sistemi Distribuiti RPC su SOAP Massimiliano Vivian [777775] Massimiliano Vivian 1 Introduzione La comunicazione delle informazioni è l elemento fondamentale per lo sviluppo dei sistemi. SOAP

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

INSERIMENTO DATI BASILARI

INSERIMENTO DATI BASILARI PASSO PASSO. Questo applicativo software nasce con l idea di essere molto semplice da usare. Di fatto lo è ed infatti non dispone di un help in linea all interno dello stesso. Tuttavia ci sentiamo in dovere

Dettagli

COMUNIC@CTION INVIO SMS

COMUNIC@CTION INVIO SMS S I G e s t S.r.l S e d e l e g a l e : V i a d e l F o r n o 3 19125 L a S p e z i a T e l e f o n o 0187/284510/15 - F a x 0187/525519 P a r t i t a I V A 01223450113 COMUNIC@CTION INVIO SMS GUIDA ALL

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

PowerPoint 2007 Le funzioni

PowerPoint 2007 Le funzioni PowerPoint 2007 Le funzioni Introduzione Cos è un ipertesto L' ipertesto è un testo organizzato in link, o collegamenti ad altre parti del testo e/o altri testi, in modo da consentire all utente di scegliere

Dettagli

Il modello di ottimizzazione SAM

Il modello di ottimizzazione SAM Il modello di ottimizzazione control, optimize, grow Il modello di ottimizzazione Il modello di ottimizzazione è allineato con il modello di ottimizzazione dell infrastruttura e fornisce un framework per

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

Guida alla compilazione on-line delle domande di Dote Scuola A.S. 2014-2015 - per le Famiglie INDICE

Guida alla compilazione on-line delle domande di Dote Scuola A.S. 2014-2015 - per le Famiglie INDICE Guida alla compilazione on-line delle domande di Dote Scuola A.S. 2014-2015 - per le Famiglie INDICE Introduzione... 2 Riconoscimento del soggetto richiedente da parte del sistema... 2 Elenco dei servizi

Dettagli

CONTENT MANAGEMENT SYSTEM

CONTENT MANAGEMENT SYSTEM CONTENT MANAGEMENT SYSTEM P-2 PARLARE IN MULTICANALE Creare un portale complesso e ricco di informazioni continuamente aggiornate, disponibile su più canali (web, mobile, iphone, ipad) richiede competenze

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo. Pag. 1 di 5 6FRSR analizzare problemi complessi riguardanti la gestione di un sito interattivo proponendo soluzioni adeguate e facilmente utilizzabili da una utenza poco informatizzata. 2ELHWWLYL GD UDJJLXQJHUH

Dettagli

L amministratore di dominio

L amministratore di dominio L amministratore di dominio Netbuilder consente ai suoi clienti di gestire autonomamente le caselle del proprio dominio nel rispetto dei vincoli contrattuali. Ciò è reso possibile dall esistenza di un

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

ESERCITAZIONE Semplice creazione di un sito Internet

ESERCITAZIONE Semplice creazione di un sito Internet ESERCITAZIONE Semplice creazione di un sito Internet Sistemi e Tecnologie Informatiche - Prof. Gregorio Cosentino 1 Internet Una rete globale che connette milioni di computer in tutto il mondo, anarchica

Dettagli

Progetto ittorario Anno scol. 2013-2014

Progetto ittorario Anno scol. 2013-2014 PROGETTO ittorario Scopo: Creazione di una pagina web che mostri l orario di un docente, della classe della materia o dell aula a discrezione dell utente. Sviluppatori: Progetto sviluppato dalla classe

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

CREAZIONE DI UN AZIENDA

CREAZIONE DI UN AZIENDA CREAZIONE DI UN AZIENDA La creazione di un azienda in Businesspass avviene tramite la funzione Aziende Apertura azienda ; dalla medesima sarà possibile richiamare le aziende precedentemente create per

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

<utente> <nome>mario</nome> <cognome>rossi</cognome> <saldo>1230</saldo> </utente> Tag di chiusura dato. Tag di apertura

<utente> <nome>mario</nome> <cognome>rossi</cognome> <saldo>1230</saldo> </utente> Tag di chiusura dato. Tag di apertura Interoperabilità e linguaggio XML Nel laboratorio precedente abbiamo visto come tramite BPMN sia possibile istruire un sistema informatico a gestire i flussi di attività. Si tratta però di attività interne

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA Fornitore: Publisys Prodotto: Intranet Provincia di Potenza http://www.provincia.potenza.it/intranet Indice 1. Introduzione... 3 2. I servizi dell Intranet...

Dettagli

Formattazione. ü Introduzione

Formattazione. ü Introduzione Formattazione ü Introduzione Abbiamo fatto un bel po' di lavoro con Mathematica, vero? Abbiamo visto come creare, valutare, semplificare, disegnare, programmare, cucinare, pescare, ed anche come sfilare

Dettagli

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1 Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ Versione 1.1 Autore Antonio Barbieri, antonio.barbieri@gmail.com Data inizio compilazione 11 maggio 2009 Data revisione 14 maggio 2009 Sommario

Dettagli

Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015]

Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015] Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Premessa... 2 Fase di Login... 2 Menù principale... 2 Anagrafica clienti...

Dettagli

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF Come da disposizioni di inizio stagione, alcune Delegazioni provinciali hanno richiesto la trasmissione dei referti arbitrali solo tramite fax o tramite mail.

Dettagli

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Installazione & Configurazione Php e MySQL su Mac Os X. Php Installazione & Configurazione Php e MySQL su Mac Os X Php PHP è un linguaggio di scripting interpretato, con licenza Open Source, originariamente concepito per la realizzazione di pagine web dinamiche.

Dettagli

DOCFINDERWEB SERVICE E CLIENT

DOCFINDERWEB SERVICE E CLIENT DOCFINDERWEB SERVICE E CLIENT Specifiche tecniche di interfacciamento al Web Service esposto da DocPortal Versione : 1 Data : 10/03/2014 Redatto da: Approvato da: RICCARDO ROMAGNOLI CLAUDIO CAPRARA Categoria:

Dettagli

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

Configurazione di Outlook Express

Configurazione di Outlook Express OUTLOOK Outlook Express è il client di posta elettronica sviluppato da Microsoft, preinstallato su sistemi operativi Windows a partire da Windows 98 fino all'uscita di Windows XP. Con l'arrivo di Windows

Dettagli

Configurare TPTP in Eclipse e testare un applicazione

Configurare TPTP in Eclipse e testare un applicazione Configurare TPTP in Eclipse e testare un applicazione Questa guida concentra la sua attenzione sul tool TPTP (Test & Performance Tools Platform) presente nell ambiente di sviluppo Eclipse. Verrà descritta

Dettagli