Rimando ai vari tutorial che ci sono sulla rete per la configurazione dei componenti.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Rimando ai vari tutorial che ci sono sulla rete per la configurazione dei componenti."

Transcript

1 Questo è un tutorial BASICO, scritto pensando anche a chi non ha mai avuto a che fare con lo sviluppo di Wss. Per questo motivo le definizioni di alcuni concetti potrebbero essere approssimative in quanto ho privilegiato la chiarezza alla correttezza formale. Inoltre io stesso non sono un esperto di questi argomenti. Ancora un ultimo avviso: io sono un fan dei layer nelle applicazioni, e quindi tendo tendo a suddividerle. Nessuna eccezione in questo tutorial. Infatti quello che troverete qui, sono due progetti: un progetto web che conterrà tutti i file di configurazione e la definizione del WS un progetto libreria che conterrà tutte le implementazioni necessarie Perchè questo articolo? Ultimamente mi sono trovato a dover affrontare lo sviluppo di un web service, cosa che mi era capitata solo una volta in precedenza. Inoltre, mentre nella precedente occasione ho potuto utilizzare un approccio contract last, questa volta era indispensabile utilizzare l'approccio inverso contractfirst (questo per motivi architetturali). C'è una grande differenza fra i due approcci, e il passaggio da uno all'altro comporta un radicale cambiamento nel modo di pensare al servizio. Con un approccio contract last si pensa come un classico programmatore in termini di moduli, classi, metodi delegando poi a qualche tool esterno, come ad esempio Axis2, la pubblicazione del servizio (vedremo appena sotto cosa pubblicazione significa). Al contrario, con l'approccio contract first la vostra prima preoccupazione deve essere la pubblicazione. Quindi, cosa ci serve per pubblicare un WS? Un WSDL! Un WSDL è in effetti un contratto che descrive interamente il servizio in termini di tipi (richieste e risposte) e operazioni. Questa è la via più formale di sviluppare un WS. Sfortunatamente, come spesso succede, è anche la più complicata. Inoltre è necessario tenere a mente che un servizio è la sua definizione, non la sua implementazione. In altri termini, il focus primario in questo caso è l'interfaccia di comunicazione fra il mondo e il nostro servizio. Più avanti in questo articolo, supporrò una fondamentale differenza fra i termini metodo e operazione: un metodo è relativo ad una classe, un'operazione ad un WS. Devo dire che ho trovato piuttosto duro il passaggio da un approccio all'altro, per questo ho deciso di scrivere questo articolo, pensando che sia un argomento che merita di essere ben descritto. Questo è il perchè, ora passiamo al cosa. Quello che ci serve Eclipse Ganymede java 1.6 Maven Apache Tomcat XJC eclipse plugin (tool di generazione di classi a partire da un XSD) SoapUI (il plugin per eclipse mi ha creato parecchi problemi, ho optato quindi per la versione stand alone) Rimando ai vari tutorial che ci sono sulla rete per la configurazione dei componenti. Perchè Spring WS? Approaching WS development thinking at the contract, means defining its WSDL and then develop the code (java, C#,...) to fullfill the requests. L'approccio contract first, come visto, impone che si pensi prima al contratto che all'implementazione; significa che bisogna prima definire il WSDL e quindi pensare

2 all'implementazione (java, C#,...) che soddisfi le richieste. Ma un file WSDL + abbastanza complicato e certamente di non istantanea comprensione. Spring WS aiuta molto in questo, in quanto ci permette di pensare in termini di XSD piuttosto che di WSDL. In altri termini, ci si può concentrare nella definizione dei tipi, Inoltre, devo dire che trovo Spring un framework davvero valido. L'ho conosciuto nell'ultimo mese per fare sicurezza (Spring Security); da lì ho conosciuto Springbeans e il contenitore IoC. Quindi ho visto anche l'aop. Ora come ora, il mo progetto (nato come semplice servizio contract last con Axis2) è diventato un progetto che si basa quasi interamente su Spring utilizzando security, beans, aop e ws. Cosa vogliamo costruire? Quello che intendiamo sviluppare in questo articolo è un WS che esponga due operazioni 1. Hello(): che risponda con hello! 2. HelloTo(string): che risponda con hello + string Creazione di un nuovo progetto web Creare un nuovo progetto Selezionare Maven Maven project Siete liberi di mettere i nomi che volete al progetto, ma selezionate spring ws archetype come archetipo. Creazione del progetto libreria Come prima create un nuovo progetto. Siete sempre liberi di mettere i nomi che volete, ma selezionate come archetipo maven archetypequickstart. Usando Maven, aggiungete a questo la dipendenza al pacchetto spring ws (consiglio il jar completo). Sempre con Maven referenziate il progetto libreria all'interno del progetto web. Implementazione Abbiamo creato la struttura base dei nostri progetti. Visto che stiamo utilizzando un approccio contract first, cominciamo dal progetto web. If we look at the content of the WEB INF folder, we can see that along with web.xml there is one more file: spring ws servlet.xml. Se osserviamo il contenuto della cartella WEB INF, possiamo vedere che assieme al classico web.xml, c'è un altro file (lo ha messo Maven): spring ws servlet.xml Apriamo questi due file. In web.xml notiamo che è definita una servlet chiamata spring ws che mappa tutti i percorsi. Possiamo anche chiudere web.xml, non ci servirà più (può essere modificato, per esempio per far sì che la servlet risponda solo su alcuni percorsi, ma non è questo il nostro scopo al momento). The second is an empty XML file, except for the root element <schema> and the namespace definition. Il secondo è un file xml vuoto, a parte per il tag radice <schema> che contiene la definizione del namespace. Il nome del file qui è importante, in quanto per convezione deve essere [nome servlet] servlet.xml (in realtà, è possibile cambiare questa convenzione aggiungendo qualcosa al web.xml, ma nemmeno questo è il nostro scopo)

3 Questo file è il context della servlet e sarà usato più avanti per istanziare i vari oggetti e collegarli tra loro all'interno del'ioc container di Spring. Ci preoccuperemo di editare questo file una volta che avremo definito il servizio e implementato le classi necessarie. Adesso, la domanda che dobbiamo porci è: Cosa vogliamo che il nostro servizio faccia? Cosa deve esporre al mondo e come il mondo può comunicare con lui? Come già detto, il WS deve esporre due operazioni: Hello HelloTo(string) La definizione di un servizio gira tutta intorno a requests e responses (uso i termini inglesi in quanto sono termini tecnici riconosciuti a livello internazionale). Adesso dirò una cosa che dovrete dimenticare subito, ma è giusto per farmi capire da chi non ha mai visto un WS: una request ad un WS è assimilabile alla chiamata di un metodo di una classe in OOP. La request viaggerà sulla rete, tipicamente con il protocollo SOAP, e sarà qualcosa di simile a questo: <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:spr="http://www.innove.it/life/spring ws annotations"> <soapenv:header/> <soapenv:body> <spr:hellorequest/> </soapenv:body> </soapenv:envelope> Come già detto, vogliamo un servizio con due operazioni: segnifica che dobbiamo creare due request. Per prima cosa, creiamo la loro descrizione in XSD. Creiamo il file tutorial.xsd nella cartella WEB INF ed editiamolo subito per apportare una modifica e poi aggiungere le nostre request. Inizialmente il notro file sarà qualcosa di simile a questo: <?xml version="1.0" encoding="utf-8"?> <schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.example.org/tutorial" xmlns:tns="http://www.example.org/tutorial" elementformdefault="qualified"> </schema> Dobbiamo cambiare il namespace di destinazione. Suppongo che il namespace sia ws annotations (è una scelta assolutamente arbitraria) Il risultato sarà: <?xml version="1.0" encoding="utf-8"?> <schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.innove.it/life/spring-ws-annotations" xmlns:tns="http://www.innove.it/life/spring-ws-annotations" elementformdefault="qualified">

4 </schema> Adesso aggiungiamo la definizione delle nostre request: la prima sarà vuota, la seconda conterrà un elemento (una stringa nella fattispecie) <element name="hellorequest"> <complextype></complextype> </element> <element name="hellotorequest"> <complextype> <all> <element name="to" type="string"></element> </all> </complextype> </element> Grazie a Spring, questo è tutto ciò che ci è richieste per creare il contratto del WS (sembra banale, me pensate ad un WS reale: quante operazioni dovrà esporre?) Possiamo quindi cominciare a pensare all'impementazione. Le prime cose da implementare sono le nostre request (vanno implementate perchè poi noi lavoreremo con un linguaggio di programmazione, quindi anche lui deve conoscere la loro struttura). Possiamo farlo a mano, ma consiglio di usare il plugin XJC per Eclipse in quanto le classi vanno annotate in una maniera particolare. Una volta installato il plugin (molto semplice. Scaricare il jar, copiarlo nella cartella plugin e riavviare Eclipse) possiamo generare le classi cliccando col destro sul nostro file.xsd e selezionando JAXB 2.1 Run XJC : ci sarà richiesto la cartella dove generare i file e il loro package. Supponiamo di scegliere la cartella del sorgente del progetto libreria e come package it.innove.life.tutorials.spring.ws.schema. Osserviamo adesso il progetto libreria: potete notare che sono state create delle classi nel package specificato: due di loro implementano in linguaggio Java i tipi definiti nell'xsd. Adesso che abbiamo considerato le request, dobbiamo considerare le response. Entrambe le operazioni danno come response una stringa. Sfortunatamente, Jaxb non riesce a serializzare java.lang.string in quanto non presenta le annotazioni necessarie. Dobbiamo quindi creare un wrapper alla classe String package it.innove.life.tutorials.spring.ws.types; import javax.xml.bind.annotation.xmlaccesstype; import javax.xml.bind.annotation.xmlaccessortype; import javax.xml.bind.annotation.xmlelement; import javax.xml.bind.annotation.xmlrootelement; /** stefano public class private String value;

5 public StringType() public StringType(String value) this.setvalue(value); public void setvalue(string value) this.value = value; public String getvalue() return value; Non c'è molto da dire su questa classe: solo, date un occhio alle annotazioni. Procediamo con l'implementazione dei restanti oggetti. Per prima cosa, l'implementazione del servizio package it.innove.life.tutorials.spring.ws.services; /** stefano * */ public class HelloService public String hello() return "hello!"; public String helloto(string to) return "hello " + to; Niente da dire. Fa quello che ci si aspetta che faccia. Adesso siamo alla parte centrale: gli endpoint. Questo sono gli autentici punti di comunicazione fra il contratto e l'implementazione del nostro servizio. Parliamo un attimo degli endpoint. Per ogni request deve esistere un endpoint (li potete vedere come handlers). L'implementazione del servizio non sarà mai chiamata direttamente, ma sarà responsabilità degli endpoint di instradare la richiesta al servizio adatto. Inoltre, ogni endpoint è mappato per una particolare request, e quindi la molteplicità fra request e endpoint è 1:1. E' responsabilità di Spring mappare le request sugli endpoint. In generale, quindi, ci dovrebbe essere una classe endpoint per ogni singola request. Ma, visto che usiamo Spring WS con le annotazioni, possiamo rilassare questo vincolo ottenendo che le request hanno una molteplicità 1:1 con i metodi (cosicchè una classe può mappare più endpoint). Diamo innanzitutto uno sguardo al codice che commenteremo poi.

6 package it.innove.life.tutorials.spring.ws.endpoints; import it.innove.life.tutorials.spring.ws.schema.hellorequest; import it.innove.life.tutorials.spring.ws.schema.hellotorequest; import it.innove.life.tutorials.spring.ws.services.helloservice; import it.innove.life.tutorials.spring.ws.types.stringtype; import org.springframework.ws.server.endpoint.annotation.endpoint; import org.springframework.ws.server.endpoint.annotation.payloadroot; /** stefano * public class HelloServiceEndpoint private HelloService service; HelloServiceEndpoint(HelloService service) this.service = namespace="http://www.innove.it/life/spring-ws-annotations") public StringType hello(hellorequest request) return new StringType( service.hello() namespace="http://www.innove.it/life/spring-ws-annotations") public StringType helloto(hellotorequest request) return new StringType( service.helloto(request.getto())); Tre cose importanti da notare: 1. tutti i metodi ritornano dei POJO annotati secondo JAXB 2. La classe è annotata questo dice a Spring che deve guardare all'interno della classe per ricercare gli endpoint 3. I metodi sono annotati I parametri corrispondono rispettivamente ai nomi dei tipi definiti nell'xsd e al targetnamespace sempre dell'xsd. Ci siamo quasi! Abbiamo implementato tutto quello che ci serve (veramente manca una cosa, ma la vedremo dopo in quanto qui non riuscirei a spiegare perchè ci sia l'esigenza di estendere una classe di Spring). Focalizziamoci ora sul servlet context. Quindi ritorniamo al progetto libreria e apriamo il file spring ws servlet.xml. Stiamo per popolare il contesto e il contenitore IoC di Spring, collegando tra loro gli oggetti in modo da costruire il contesto della servlet. Faremo qui un uso pesante degli Spring beans: se non conoscete l'argomento, raccomando che leggiate la documentazione e che facciate qualche test. Questo argomento è troppo importante per

7 poterne parlare qui in poche parole. Procediamo passo passo. La prima cosa da aggiungere è la definizione dell'implementazione del servizio: <bean id="helloservice" class="it.innove.life.tutorials.spring.ws.services.helloservice" /> Niente da dire. Tenete a mente l'id del bean perchè sarà referenziato più sotto. Passo successivo, dobbiamo predisporre il meccanismo di marshalling <bean id="marshaller" class="org.springframework.oxm.jaxb.jaxb2marshaller"> <property name="classestobebound"> <list> <value>it.innove.life.tutorials.spring.ws.schema.hellorequest</value> <value>it.innove.life.tutorials.spring.ws.schema.hellotorequest</value <value>it.innove.life.tutorials.spring.ws.types.stringtype</value> </list> </property> Vale la pena di spendere due parole su questo. Stiamo instanziando un oggetto responsabile del [un]marshalling, basato su Jaxb e lo stiamo istruendo sui tipi di cui deve occuparsi. Dovrete aggiungere qui tutti i tipi che saranno oggetto di marshalling (serializzazione e deserializzazione per essere chiari) Finora abbiamo creato due oggetti che vivono di vita propria. Adesso dobbiamo cominciare a mettere insieme i pezzi. Definiamo l'endpoint (ne abbiamo solo uno) <bean id="helloserviceendpoint" class="it.innove.life.tutorials.spring.ws.endpoints.helloserviceendpoint"> <constructor-arg ref="helloservice" /> Notate che il costruttore è invocato passandogli come parametro l'implementazione del servizio. Andiamo avanti col puzzle <bean id="helloserviceendpointadapter" class="org.springframework.ws.server.endpoint.adapter.genericmarshallingmethode dnpointadapter"> <constructor-arg ref="marshaller" /> This bean calls the methods on the endpoint and needs to know the marshaller to delegate the serialization / deserialization of objects. Questo bean è responsabile delle chiamate agli endpoint, ma ha necessità di conoscere che meccanismo di marshalling utilizzare. Quindi <bean

8 class="org.springframework.ws.server.endpoint.mapping.payloadrootannotationmeth odendpointmapping" /> This object enables Spring to use code annotations (Spring will search the beans to find the classes annotated and he will use them to map requests). Questo oggetto abilita le annotazioni di Spring WS (Spring cercherà all'interno dei bean le classi annotate e le userà per mappare le request). Vedete la luce in fondo al tunnel? Non è né un miraggio né un treno. Un ultimo sforzo. Non abbiamo mai parlato WSDL, avete notato? Questo perchè Spring è in grado di generarlo automaticamente, ma deve essere istruito allo scopo. Dobbiamo definire altri due bean <bean id="schema" class="org.springframework.xml.xsd.simplexsdschema"> <property name="xsd" value="/web-inf/tutorial.xsd" /> <bean id="contract" class="org.springframework.ws.wsdl.wsdl11.defaultwsdl11definition"> <property name="schema" ref="schema" /> <property name="porttypename" value="tutorial" /> <property name="locationuri" value="http://localhost:8080/ [nome_progetto_web]/services/" /> <property name="targetnamespace" value="http://www.innove.it/life/spring-wsannotations/contract" /> Il primo definisce il nostro schema XSD. Il secondo definisce la classe responsabile della generazione del WSDL. Osservate l'id del bean: quello sarà il nome del WSDL. In parole povere, una volta pubblicato il servizio su Tomcat, il WSDL sarà accessibile all'url id].wsdl E' praticamente tutto, ma manca ancora quella cosa che avevo lasciato volutamente indietro. Se provate ad eseguire il progetto così com'è andrete incontro ad un errore a runtime. Il problema sta nella definizione del bean helloserviceendpointadapter. Dopo un bel po' di ricerche su web, ho trovato la soluzione sul forum della SpringCommunity. Sfortunatamente però non riesco più a ritrovarlo e non posso citare come merita l'autore della soluzione. Se per caso lo scoprite, fatemelo sapere. La soluzione è estendere una classe di Spring package it.innove.life.tutorials.spring.ws.marshalling.endpoints.adapters; import org.springframework.oxm.marshaller; import org.springframework.ws.server.endpoint.methodendpoint; import org.springframework.ws.server.endpoint.adapter.marshallingmethodendpointadapter; import org.springframework.ws.server.endpoint.annotation.payloadroot; public class PayloadMarshallingMethodEndpointAdapter extends MarshallingMethodEndpointAdapter public PayloadMarshallingMethodEndpointAdapter(Marshaller marshaller) super(marshaller);

9 @Override protected boolean supportsinternal(methodendpoint methodendpoint) return methodendpoint.getmethod().isannotationpresent(payloadroot.class); e sostituite quindi la classe specificata nel bean helloserviceendpointadapter con questa. Adesso è veramente tutto. Spero vi possa essere utile. Stefano Note Nel codice sorgente allegato, i file e le classi potrebber chiamarsi in maniera differente Infine, voglio sottolineare che questo tutorial nasce dall'esperienza accumulata solo nell'ultima settimana, quando mi sono scontrato con molti tutorial ma tutti davano per contate molte cose e quindi sono stati per difficili da digerire. Voglio dire che sto ancora imparando anch'io e sono solo agli inizi; di conseguenza alcuni concetti potrebbero essere formalmente non del tutto corretti (o non corretti e basta...) nonostante che l'esempio sia funzionante. Qualsiasi correzione, osservazione, precisazione sarà molto gradita. Per maggiori informazioni (e spiegazioni più profonde) su Spring e Spring WS vi rimando al sito ufficiale dal quale è liberamente scaricabile tutta la documentazione

Spring WS Sviluppare WebService in Java

Spring WS Sviluppare WebService in Java Spring WS Sviluppare WebService in Java 1.1 Introduzione Nell ambito della programmazione Java è particolarmente utile avere una certa familiarità con i WebService e la tecnologia che li supporta. In particolare

Dettagli

PRACTICAL DEVELOPMENT OF A WEB SERVICE

PRACTICAL DEVELOPMENT OF A WEB SERVICE PRACTICAL DEVELOPMENT OF A WEB SERVICE 1 JAX-WS 2.0 Java API for XML Web Services Specifica basata su annotazioni Applicata su classi ed interfacce in modo da definire e gestire automaticamente il protocollo

Dettagli

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Web Services Web Services: SOAP vs. RESTful 2 diversi.pi di Web Services I Web Services SOAP sono quelli classici Si basano

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

JUG Ancona Italy Spring Framework

JUG Ancona Italy Spring Framework JUG Ancona Italy Spring Framework Andrea Del Bene Jug Marche Spring: perché e nato e perché lo voglio imparare? Quando si decide di investire in un nuova tecnologia è indispensabile capire il valore aggiunto

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY 1 Sommario 1. INTRODUZIONE... 3 2. GET METAIO... 4 2.1. PREREQUISITI... 4 2.2. INTALLAZIONE... 4 2.3. PROGETTI ESEMPLIFICATIVI... 4 3. USARE

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

1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org

1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org 1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org Prefazione. Da Hello World a Hello World Wide Web. Hello World è la prima frase stampata a video dal primo programma di esempio scritto

Dettagli

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Web service Hello world con Visual Studio 2012 Si tratta di un semplice esempio di web service, infatti come tutti I programmi

Dettagli

JUG Ancona Italy. Andrea Del Bene. Jug Marche

JUG Ancona Italy. Andrea Del Bene. Jug Marche JUG Ancona Italy SpringMVC AndreaDelBene JugMarche Cos'èSpringMVC? Spring MVC è il sotto-framework di Spring che permetti di servirsi del Framework Spring per realizzare applicazioni web. Possiamo quindi

Dettagli

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

Dettagli

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4 Introduzione Salve a tuttiù Mi presento mi chiamo Vincenzo Acinapura e studio ingegneria informatica,

Dettagli

Appendice D. D. Web Services

Appendice D. D. Web Services D. D.1 : cosa sono I cosiddetti sono diventati uno degli argomenti più attuali nel panorama dello sviluppo in ambiente Internet. Posti al centro delle più recenti strategie di aziende del calibro di IBM,

Dettagli

DESIGN PATTERNS Parte 5. Facade Strategy Composite Interpreter

DESIGN PATTERNS Parte 5. Facade Strategy Composite Interpreter DESIGN PATTERNS Parte 5 Facade Strategy Composite Interpreter FACADE Per proteggere la nostra applicazione sfruttando il Protect Variation possiamo usare il pattern Facade. Questo pattern è ottimo per

Dettagli

2. Creazione di moduli per Drupal: un tutorial.

2. Creazione di moduli per Drupal: un tutorial. Pubblicato da Drupal Italia (www.drupalitalia.org) per gentile concessione di Antonio Santomarco Capitolo 2. 2. Creazione di moduli per Drupal: un tutorial. 2.1. Introduzione. Come detto in precedenza,

Dettagli

Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte.

Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte. Corso html 5. Di Roberto Abutzu. `***********` Ottava parte: I link, seconda parte. `**********` I link, seconda parte. Continuiamo la parte che completerà la trattazione dei link, andando ad operare direttamente

Dettagli

SOAP e Web Services. SOAP: introduzione

SOAP e Web Services. SOAP: introduzione SOAP e Web Services 1 SOAP: introduzione Attualmente le applicazioni distribuite rappresentano una grossa parte della produzione software. Inoltre lo sviluppo di Internet e delle Intranet rende utile creare

Dettagli

RESTful Web Service. Andrea Pinazzi. 10 Maggio 2010

RESTful Web Service. Andrea Pinazzi. 10 Maggio 2010 RESTful Web Service Andrea Pinazzi 10 Maggio 2010 Che cos è REST? REST, Representational State Transfer, è uno stile architetturale per sistemi software distribuiti. Il termine è stato introdotto e definito

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

JAVA SERVLET: I filtri

JAVA SERVLET: I filtri JAVA SERVLET: I filtri INTRODUZIONE Quest oggi vedremo una particolarità delle servlet che è stata introdotta nelle servlet API versione 2.3. I filtri sono un potente meccanismo che è in grado di fare

Dettagli

AXIS2 Quick Start Pagina 1 AXIS2 QUICK START

AXIS2 Quick Start Pagina 1 AXIS2 QUICK START AXIS2 Quick Start Pagina 1 1. Introduzione AXIS2 QUICK START Apache-Axis2 implementa le API di JAX-WS (javax.jws.*) per semplificare lo sviluppo e la distribuzione di Java Web Services (JWS) basati sul

Dettagli

Quando lanciamo il programma, ci si presenterà la maschera iniziale dove decideremo cosa vogliamo fare.

Quando lanciamo il programma, ci si presenterà la maschera iniziale dove decideremo cosa vogliamo fare. SOFTWARE CELTX Con questo tutorial cercheremo di capire, e sfruttare, le potenzialità del software CELTX, il software free per la scrittura delle sceneggiature. Intanto diciamo che non è solo un software

Dettagli

Tutorial web Application

Tutorial web Application Tutorial web Application Installazione della JDK: Java viene distribuito con la jdk e il jre acronimi di Java Development Kit e Java Runtime Environment rispettivamente. La jdk è l'ambiente di sviluppo

Dettagli

Breve introduzione al Javadoc

Breve introduzione al Javadoc Premessa Javadoc è uno strumento che permette di documentare i sorgenti di un programma all interno dei sorgenti stessi. Anziché scrivere la documentazione di un programma in un file separato, il programmatore

Dettagli

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages 1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB.

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Web Server TOMCAT Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13 Parte 13 Documentazione - AA. 2012/13 [Frida Kahlo Nucleus Of Creation, 1945] 13.1 13.2 Documentazione La documentazione in campo informatico, comprende il materiale utile alla comprensione delle caratteristiche

Dettagli

EJB Components. Leonardo Mariani Esercitazione di Sistemi Distribuiti. Oggetti Distribuiti

EJB Components. Leonardo Mariani Esercitazione di Sistemi Distribuiti. Oggetti Distribuiti EJB Components Leonardo Mariani Esercitazione di Sistemi Distribuiti 1 Oggetti Distribuiti 2 Middleware Esplicito 3 Middleware Implicito 4 Tipica Applicazione J2EE 1/2 5 Tipica Applicazione J2EE 2/2 6

Dettagli

Introduzione ai connettori

Introduzione ai connettori Luca Cabibbo Architetture Software Dispensa ASW 810 ottobre 2014 Le relazioni tra elementi sono ciò che dà valore aggiunto ai sistemi. Eberhardt Rechtin 1 -Fonti [Shaw] Mary Shaw, Procedure Calls are the

Dettagli

Spinelli Raffaele. SISI on cluster

Spinelli Raffaele. SISI on cluster Spinelli Raffaele SISI on cluster Introduzione SISI - Scalable Intermediary Software Infrastructure, è un framework per sviluppare e fare deploy di Edge Service. SISI è basato su Apache e mod_perl Grazie

Dettagli

Scuola 8.0. Lavagna interattiva e software Open Source

Scuola 8.0. Lavagna interattiva e software Open Source Scuola 8.0 Lavagna interattiva e software Open Source Intervento di Emiliano Pancaldi INTRODUZIONE Queste slides (diapositive) hanno lo scopo di richiamare alla memoria le diverse informazioni che vi ho

Dettagli

Portal e Portlet ClassLoader. Mancini Marco

Portal e Portlet ClassLoader. Mancini Marco Portal e Portlet ClassLoader Mancini Marco Project Manager, 3F Consulting s.r.l. Classloading in liferay Tre differenti classpath: Global classpath, tutte le librerie presenti nella nostra JVM, e nelle

Dettagli

Primi passi con Apache Tomcat. L application server dell Apache group

Primi passi con Apache Tomcat. L application server dell Apache group Primi passi con Apache Tomcat L application server dell Apache group 2 J2EE Direttive Sun Microsystem Che cos è un application server EJB Maggiori application server open source 3 Tomcat Open Source e

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

Dettagli

Client e Server comunicano tramite il protocollo SOAP.

Client e Server comunicano tramite il protocollo SOAP. In questo tutorial implementeremo un semplice SOAP web service in PHP che un client Java richiamerà. In questo modo mostreremo l'interoperabilità fra linguaggi diversi che SOAP permette di avere. La struttura

Dettagli

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1 Gli XML Web Service Prof. Mauro Giacomini Medica 2008/2009 1 Definizioni i i i Componente.NET che risponde a richieste HTTP formattate tramite la sintassi SOAP. Gestori HTTP che intercettano richieste

Dettagli

Per qualsiasi tipo di informazione rimando all'help online di eclipse: ECLIPSE HELP DOCUMENTATION: http://help.eclipse.org/help33/index.

Per qualsiasi tipo di informazione rimando all'help online di eclipse: ECLIPSE HELP DOCUMENTATION: http://help.eclipse.org/help33/index. Utilizzo del compilatore e del modellatore propri del Rational S.A. Per qualsiasi tipo di informazione rimando all'help online di eclipse: ECLIPSE HELP DOCUMENTATION: http://help.eclipse.org/help33/index.jsp

Dettagli

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare

Dettagli

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL)

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Pag. 1/12 Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Prendiamo in esame un qualsiasi progetto NetBeans tra quelli studiati che fa uso di un database

Dettagli

Introduzione all uso di Eclipse

Introduzione all uso di Eclipse Introduzione all uso di Eclipse Daniela Micucci Programmazione Outline Eclipse: concetti generali Definire un workspace Creare un project Importare un file Utilizzo 1 Introduzione Eclipse è un ambiente

Dettagli

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Autore: Prof. Agostino Sorbara ITIS M. M. Milano Polistena (RC) In questa lezione introduciamo alcuni strumenti che Java rende disponibili per la creazione di interfacce utente a manipolazione diretta, dette anche WYSISYG (what you see is what you get), con un elevato

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

INF-1: Specifiche Tecniche di Interfaccia

INF-1: Specifiche Tecniche di Interfaccia INF-1: Specifiche tecniche di Interfaccia INF-1: Specifiche Tecniche di Interfaccia Versione 1.1 Nome doc.: INF-1 Specifiche Interfaccia v1.0.doc Edizione: 1.0 Data emissione: 12/1/2007 INDICE Modifiche

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Corso Online. We Train Italy info@wetrainitaly.it

Corso Online. We Train Italy info@wetrainitaly.it Corso Online Programmatore Java New Edition We Train Italy info@wetrainitaly.it Programma Generale del Corso Programmatore Java New Edition 1. Introduzione al corso Java da 0 al web Presentazione del corso

Dettagli

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk

Dettagli

STATO IMPLEMENTAZIONE ONVIF SU TELECAMERE MUNDUS SECURUS

STATO IMPLEMENTAZIONE ONVIF SU TELECAMERE MUNDUS SECURUS IMPLEMENTAZIONE ONVIF SU TELECAMERE MUNDUS SECURUS 1. Ambiente di sviluppo Sono stati analizzati diversi linguaggi e framework differenti utilizzabili per implementare i WebServices ONVIF. Il risultato

Dettagli

INSTALLAZIONE JOOMLA SU SPAZIO WEB FREE ALTERVISTA

INSTALLAZIONE JOOMLA SU SPAZIO WEB FREE ALTERVISTA INSTALLAZIONE JOOMLA SU SPAZIO WEB FREE ALTERVISTA Questa vuole essere una breve tutorial su come installare Joomla su uno spazio Web gratuito, in particolare faremo riferimento ai sottodomini gratuitamente

Dettagli

Laboratorio di RETI DI CALCOLATORI

Laboratorio di RETI DI CALCOLATORI Laboratorio di RETI DI CALCOLATORI A.A. 2009-2010 I WEB SERVICES Carlo Mastroianni Laboratorio di Reti di Calcolatori - Orario lunedì, 11:30-13:30, aula 40B mercoledì, 10:00-11:30, laboratorio settimo

Dettagli

Programmazione di Web Services

Programmazione di Web Services Luca Cabibbo Architetture Software Programmazione di Web Services Dispensa ASW 860 ottobre 2014 La scelta tra architetture può ben dipendere da quali sono gli svantaggi che il cliente può gestire meglio.

Dettagli

Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat

Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat Laboratorio di Tecnologie Web HTML: Introduzione Dott. Stefano Burigat www.dimi.uniud.it/burigat File HTML e tag Un file HTML non è nient'altro che un puro file di testo al cui interno sono presenti delle

Dettagli

INSTALLARE L AMBIENTE DI SVILUPPO PER JOOMLA 2.5

INSTALLARE L AMBIENTE DI SVILUPPO PER JOOMLA 2.5 INSTALLARE L AMBIENTE DI SVILUPPO PER JOOMLA 2.5 Si sa che un IDE è sicuramente uno strumento molto comodo (ormai indispensabile) per poter creare le proprie applicazioni in PHP e Joomla. Eclipse con PDT

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Framework per il Modello 2 it.unibas.pinco versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Scrivere un fake mailer in Visual Basic. La parte della guida di Lord Shinva sulle Fake Mail

Scrivere un fake mailer in Visual Basic. La parte della guida di Lord Shinva sulle Fake Mail Scrivere un fake mailer in Visual Basic Tutti noi, all'inizio abbiamo letto la famosa guida all'hacking di Lord Shinva. Altra cosa certa è che tutti noi sappiamo la quasi inutilità di questa guida... La

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

Dettagli

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD

Utilizzare il NetBeans GUI Builder. Dott. Ing. M. Banci, PhD Utilizzare il NetBeans GUI Builder Dott. Ing. M. Banci, PhD Lavorare con i Beans Queste slide ci guidano nel processo di creazione di un bean pattern nel progetto NetBeans 15 Giugno 2007 Esercitazione

Dettagli

Web Services Dogane LINEE GUIDA

Web Services Dogane LINEE GUIDA Web Services Dogane LINEE GUIDA Pagina 1 di 17 Indice Indice... 2 1. INTRODUZIONE... 3 2. TEST FUNZIONALI SUI WEB SERVICES... 8 3. SICUREZZA... 14 4. FIRMA... 14 5. TRASFORMAZIONE CERTIFICATO DI FIRMA...

Dettagli

Manuale SDK di OpenSPCoop2 i. Manuale SDK di OpenSPCoop2

Manuale SDK di OpenSPCoop2 i. Manuale SDK di OpenSPCoop2 i Manuale SDK di OpenSPCoop2 ii Copyright 2005-2013 Link.it srl iii Indice 1 Introduzione 1 2 La Personalizzazione del Protocollo di Cooperazione 1 3 Il Software Development Kit 2 3.1 Gestione dei payload.................................................

Dettagli

AOP Static Code Programming

AOP Static Code Programming AOP Static Code Programming I concetti dell' Aspect Oriented Programming sono sempre stati spunto di tante nuove idee che ho proposto alla web community, questa volta ripropongo una variante in termini

Dettagli

SPECIFICHE TECNICHE INTEGRAZIONE SERVIZI MUDE

SPECIFICHE TECNICHE INTEGRAZIONE SERVIZI MUDE Pag. 1 di 11 VERIFICHE E APPROVAZIONI VERSIONE REDAZIONE CONTROLLO AUTORIZZAZIONE APPROVAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA V01 Mauro Pavese 17/05/12 Mauro Pavese 29/11/2012 STATO DELLE VARIAZIONI

Dettagli

Corso di Laurea in Informatica Reti e Sicurezza Informatica

Corso di Laurea in Informatica Reti e Sicurezza Informatica Corso di Laurea in Informatica Reti e Sicurezza Informatica Esercitazione 6 Autenticazione in Tomcat per lo sviluppo di Web Service. In questo documento si presentano i meccanismi fondamentali che consentono

Dettagli

Ambienti di programmazione.net Lezione n. 1

Ambienti di programmazione.net Lezione n. 1 Il Framework Redistribuitable Package e il Framework Sdk (Software Development Kit) 1.1 Italian Presentazione del corso Con l avvento della piattaforma applicativa.net Microsoft è riuscita a portare un

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

1 SAP Netweaver e Adobe BlazeDS http://desvino.altervista.org. Framework Flex

1 SAP Netweaver e Adobe BlazeDS http://desvino.altervista.org. Framework Flex 1 SAP Netweaver e Adobe BlazeDS http://desvino.altervista.org J2EE e Adobe BlazeDS Java EE è una piattaforma completa per lo sviluppo di applicazioni enterprise; Adobe Flex è leader nel mondo delle RIA

Dettagli

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3 Introduzione alle annotation di Hibernate3 a cura di Lucio Benfante Hibernate Hibernate è un framework che realizza un object/relational mapping (ORM) fra oggetti Java e strutture di un database relazionale

Dettagli

JAX-WS. Java API for XML Web Services. Massimo Martinelli Massimo.Martinelli@isti.cnr.it

JAX-WS. Java API for XML Web Services. Massimo Martinelli Massimo.Martinelli@isti.cnr.it 29/05/2010, Area Ricerca CNR, Pisa JAX-WS Java API for XML Web Services Massimo Martinelli Massimo.Martinelli@isti.cnr.it Consiglio Nazionale delle Ricerche - CNR Istituto di Scienza e Tecnologie della

Dettagli

Programmazione LAB 18-19

Programmazione LAB 18-19 Universita di Pisa CdL in Ingegneria Informatica Programmazione LAB 18-19 http://www.iet.unipi.it/m.cimino/prg/ Mario G.C.A. Cimino Dipartimento di Ingegneria dell Informazione Idee di progetto 2 of 19

Dettagli

DUAL BOOT WINDOWS-LINUX.

DUAL BOOT WINDOWS-LINUX. DUAL BOOT WINDOWS-LINUX. Realizzato da Jona Lelmi Nickname PyLinx Iniziato il giorno 5 Luglio 2010 - terminato il giorno 8 Luglio 2010 email autore: jona.jona@ymail.com Canale Youtube http://www.youtube.com/user/pylinx

Dettagli

JOOMLA & I PROJECT BUILD AUTOMATION

JOOMLA & I PROJECT BUILD AUTOMATION JOOMLA & I PROJECT BUILD AUTOMATION by www.isapp.it Luglio 2013 Autori Giampaolo Losito Antonio Di Girolamo 1 SOMMARIO Prefazione... 3 Requisiti... 3 Un Project Build Automation... 3 Glossario dei termini...

Dettagli

3 Come Configurare il Vostro Server per lanciare Programmi Java CGI (forma abbreviata) 5

3 Come Configurare il Vostro Server per lanciare Programmi Java CGI (forma abbreviata) 5 Java CGI HOWTO di David H. Silber dhs@orbits.com v0.4, 18 Novembre 1996 Questo HOWTO spiega come configurare il vostro server per accogliere programmi CGI scritti in Java e come utilizzare Java per scrivere

Dettagli

UNIVERSITA' DEGLI STUDI DI CATANIA Corso di Laurea in Informatica. Computer Forensics (a.a. 2013/2014) Prof. S. Battiato

UNIVERSITA' DEGLI STUDI DI CATANIA Corso di Laurea in Informatica. Computer Forensics (a.a. 2013/2014) Prof. S. Battiato UNIVERSITA' DEGLI STUDI DI CATANIA Corso di Laurea in Informatica Computer Forensics (a.a. 2013/2014) Prof. S. Battiato Plugin Imagej "Search Image from Flickr" Salvatore Mameli (matricola M01/000153)

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

JUG Ancona Italy. Google Web Toolkit. Giovanni Baleani Programmatore Java. Filippetti S.r.l.

JUG Ancona Italy. Google Web Toolkit. Giovanni Baleani Programmatore Java. Filippetti S.r.l. JUG Ancona Italy Google Web Toolkit Giovanni Baleani Programmatore Java Filippetti S.r.l. AJAX e GWT - AJAX: Tecnologia emergente, tra le prime applicazione ajax ci sono proprio gmail e google calendar.

Dettagli

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet 1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso

Dettagli

Architettura Connettore Alfresco Share

Architettura Connettore Alfresco Share Direzione Sistemi Informativi Portale e Orientamento Allegato n. 2 al Capitolato Tecnico Indice Architettura Connettore Alfresco Share 1. Architettura del Connettore... 3 1.1 Componente ESB... 4 1.2 COMPONENTE

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Lezione 5 Dott. Alessandro Roncato 08/11/2011 Riassunto Pattern Singleton Pattern Plolimorfismo Classi e Interfacce 2 Ereditarietà multipla In Java una classe può estendere

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

Office Web Components in programmi C# da http://escher07.altervista.org

Office Web Components in programmi C# da http://escher07.altervista.org Office Web Components in programmi C# da http://escher07.altervista.org Generalità L obiettivo è realizzare un programma C# che utilizzando il componente Web Pivot permetta di ottenere un risultato come

Dettagli

Web services. 25/01/10 Web services

Web services. 25/01/10 Web services Web services Tecnologia per il computing distribuito standard W3C non dissimile da RMI, CORBA, EJB... Relazione con il Web Websites for humans, Web Services for software :-) un Web service ha un indirizzo

Dettagli

Web Services. Scoperta del servizio UDDI. Descrizione del servizio WSDL. Accesso al servizio SOAP XML. Starto di comunicazione HTTP

Web Services. Scoperta del servizio UDDI. Descrizione del servizio WSDL. Accesso al servizio SOAP XML. Starto di comunicazione HTTP Web Services I web services servono a rendere interoperabili le applicazioni e favoriscono la loro integrazione. I servizi web sono applicazioni software che possono essere scoperte, descritte e usate

Dettagli

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di sistemi Prima Web Application JSP [Java] Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File

Dettagli

Telematica II 5. Esercitazione/Laboratorio 1

Telematica II 5. Esercitazione/Laboratorio 1 IDE Ambiente di sviluppo IDE - Integrated Development Environment Telematica II 5. Esercitazione/Laboratorio 1 e un Ambiente di Sviluppo Integrato che consente di creare in modo semplice progetti composti

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

Struttura progetto Phonegap/Cordova. Antonio Gallo info@laboratoriolibero.com

Struttura progetto Phonegap/Cordova. Antonio Gallo info@laboratoriolibero.com Struttura progetto Phonegap/Cordova Antonio Gallo info@laboratoriolibero.com 1 Creazione app Per creare una nuova app con cordova entrare nella cartella dei vostri progetti e premere shift + tasto destro.

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli