Rimando ai vari tutorial che ci sono sulla rete per la configurazione dei componenti.
|
|
- Giorgio Antonini
- 8 anni fa
- Visualizzazioni
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=" xmlns:spr=" 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=" targetnamespace=" xmlns:tns=" 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=" targetnamespace=" xmlns:tns=" 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=" public StringType hello(hellorequest request) return new StringType( service.hello() namespace=" 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=" [nome_progetto_web]/services/" /> <property name="targetnamespace" value=" /> 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 stefano.cazzola@innove.it 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 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
Dettaglif(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
DettagliInnanzitutto andiamo sul sito http://www.dropbox.com/ ed eseguiamo il download del programma cliccando su Download Dropbox.
Oggi parlerò di qualcosa che ha a che fare relativamente con la tecnica fotografica, ma che ci può dare una mano nella gestione dei nostri archivi digitali, soprattutto nel rapporto professionale con altre
DettagliModulo 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
Dettaglirisulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
DettagliIL MIO PRIMO SITO: NEWS
Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un
DettagliNUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
DettagliGHPPEditor è 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
DettagliTrascrizione completa della lezione Lezione 002
Trascrizione completa della lezione Lezione 002 Adam: Salve, il mio nome e Adam Kirin: E io sono Kirin. Adam: e noi siano contenti che vi siete sintonizzati su ChineseLearnOnline.com dove noi speriamo
DettagliModulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliIL BUDGET 04 LE SPESE DI REPARTO & GENERALI
IL BUDGET 04 LE SPESE DI REPARTO & GENERALI Eccoci ad un altra puntata del percorso di costruzione di un budget annuale: i visitatori del nostro sito www.controllogestionestrategico.it possono vedere alcuni
DettagliTale attività non è descritta in questa dispensa
Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa
DettagliIL MODELLO CICLICO BATTLEPLAN
www.previsioniborsa.net 3 Lezione METODO CICLICO IL MODELLO CICLICO BATTLEPLAN Questo modello ciclico teorico (vedi figura sotto) ci serve per pianificare la nostra operativita e prevedere quando il mercato
DettagliPulire IM. Non tutti sanno che solo una corretta e regolare pulizia nelle cartelle di IM, assicura un funzionamento longevo del programma
Pulire IM Non tutti sanno che solo una corretta e regolare pulizia nelle cartelle di IM, assicura un funzionamento longevo del programma Vediamo come fare questa pulizia attraverso due passaggi (teniamo
DettagliMINIGUIDA PER RISORSE SU CLASH OF CLANS
MINIGUIDA PER RISORSE SU CLASH OF CLANS Visto che le richieste in chat sono sempre maggiori ed è difficile riassumere in poche righe il sistema che utilizzo per fare risorse in poco tempo, ho pensato che
DettagliNote per scaricare e installare il software cliccando alla pagina DOWNLOAD del sito,
Come ben sapete, anch io,come voi, sono golosa di schemi,trovati in internet e nei giornali, e questo comporta, soprattutto per gli schemi virtuali, che devo cercare una soluzione per evitare che il mio
DettagliDovremmo a questo punto incominciare a vedere la suddivisione della nostra superficie.
Vediamo ancora come lavorare sulle superfici attraverso la loro parametrizzazione, e suddivisione progressiva. Alcune volte in Grasshopper ci sono diversi modi per fare le stesse cose. Abbiamo visto il
DettagliVisual basic base Lezione 01. L'ambiente di sviluppo
L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft
DettagliSENZA PAROLE. Illustrazione di Matteo Pericoli 2001
SENZA PAROLE Illustrazione di Matteo Pericoli 2001 Agente di viaggio. Vedo che ha deciso per la Transiberiana. Ottima scelta. Un viaggio difficile, ma che le darà enormi soddisfazioni. Cliente. Mi preoccupa
DettagliCome creare una pagina Fan su Facebook [GUIDA]
Come creare una pagina Fan su Facebook [GUIDA] Nonostante sia abbastanza semplice creare una pagina fan su Facebook non è ancora molto chiaro l intero procedimento. Ho quindi deciso di scrivere una guida
DettagliINTRODUZIONE I CICLI DI BORSA
www.previsioniborsa.net 1 lezione METODO CICLICO INTRODUZIONE Questo metodo e praticamente un riassunto in breve di anni di esperienza e di studi sull Analisi Tecnica di borsa con specializzazione in particolare
Dettagli3. Installare Wamp Server
E107 WEB SYSTEM Corso on line di progettazione siti dinamici: livello base R E A L I Z Z A Z I O N E D I 3. Installare Wamp Server By e107 Italian Team Sito web:http://www.e107italia.org Contatto: admin@e107italia.org
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
DettagliPRACTICAL 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
Dettagli2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato.-3 -- Finestra attiva o nuovo documento
1 Fortino Lugi STAMPA UNIONE OFFICE 2000 Vi sarà capitato sicuramente di ricevere lettere pubblicitarie indirizzate personalmente a voi; ovviamente quelle missive non sono state scritte a mano, ma utilizzando
DettagliManuale 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
DettagliPROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo
DettagliPLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana
PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana giugno 2011 PARLARE Livello MATERIALE PER L INTERVISTATORE 2 PLIDA Progetto Lingua Italiana Dante Alighieri
DettagliCOME ELIMINARE PARTI DEL TEMPLATE IN PAGINE SINGOLE
COME ELIMINARE PARTI DEL TEMPLATE IN PAGINE SINGOLE Con questa guida impareremo come eliminare delle singole zone del template che utilizziamo all'interno di una pagina specifica. Questo metodo torna utile
DettagliCome realizzare i disegni in Autocad partendo da un immagine
Come realizzare i disegni in Autocad partendo da un immagine L obbiettivo di questo articolo, è quello di poter avere a disposizione le linee di costruzione in qualsiasi scala, senza dover fare decine
DettagliInternet i vostri figli vi spiano! La PAROLA-CHIAVE: cacao Stralci di laboratorio multimediale
Internet i vostri figli vi spiano! La PAROLA-CHIAVE: cacao Stralci di laboratorio multimediale Ins: nel laboratorio del Libro avevamo detto che qui, nel laboratorio multimediale, avremmo cercato qualcosa
DettagliDispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliJava 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
DettagliCOMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015
COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 Vicenza, 3 giugno 2015 Gentile cliente, si ricorda che a partire dall aggiornamento PROFIS 2011.1 è stato automatizzato
DettagliINSTALLAZIONE 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
DettagliTRUCCHI PER GIMP - Elemento a colori in foto bianco e nero
TRUCCHI PER GIMP - Elemento a colori in foto bianco e nero Salve Prof. Cantaro come promesso le mando un altro articolo da poter inserire nelle sue guide. Questa volta però a differenza dell'ultima,ho
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliLet's start! File > New Project > Ruby > Ruby on Rails Application (events)
La nuova versione di Netbeans 6 consente di lavorare con Ruby On Rails, un potente e nuovissimo framework per lo sviluppo e la prototipazione di applicazioni web, che fa uso del design-pattern MVC (Model-View-Controller,
DettagliINTRODUZIONE AI CICLI
www.previsioniborsa.net INTRODUZIONE AI CICLI _COSA SONO E A COSA SERVONO I CICLI DI BORSA. Partiamo dalla definizione di ciclo economico visto l argomento che andremo a trattare. Che cos è un ciclo economico?
DettagliQuando 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
DettagliPer chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
DettagliLande Immortali: Riepilogo dello Stato di Avanzamento del Progetto
Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto Progetto a cura di Martino Michele Matricola: 0124000461 Miglio Stefano Matricola: 0124000462 Obiettivi Iniziali Si intende realizzare
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7
ITIS Mattei Sondrio Appunti veloci su moodle versione 2.7 Generalità Moodle è una piattaforma web per pubblicare corsi, creare test, depositare dispense ecc. Ci sono vari tipi di utenti che usano moodle:
DettagliDa dove nasce l idea dei video
Da dove nasce l idea dei video Per anni abbiamo incontrato i potenziali clienti presso le loro sedi, come la tradizione commerciale vuole. L incontro nasce con una telefonata che il consulente fa a chi
DettagliINSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)
INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine
DettagliServizio di Segnali Live A cura di Roberto e Giancarlo Griscenko
Servizio di Segnali Live A cura di Roberto e Giancarlo Griscenko Il servizio è attivo dal lunedì al venerdì sera dalle ore 10:00 alle ore 13:00 e dalle ore 18:00 alle ore 21:00 (ora italiana). Vengono
DettagliCome masterizzare dischi con Nero 11
Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento
DettagliConvertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
Dettagli[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina
[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina Creare cartelle per salvare il lavoro] Per iniziare dobbiamo imparare a gestire quello spazio bianco che diverrà la
DettagliCOME UTILIZZARE ARCHIVE-HOST
COME UTILIZZARE ARCHIVE-HOST Quando si costruisce un sito internet, può risultare utile avere a disposizione nella rete dello spazio di memoria personale in cui andare a caricare i files più disparati
DettagliGuida 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ò
DettagliUniversità per Stranieri di Siena Livello A1
Unità 20 Come scegliere il gestore telefonico CHIAVI In questa unità imparerai: a capire testi che danno informazioni sulla scelta del gestore telefonico parole relative alla scelta del gestore telefonico
DettagliIl funzionamento di prezzipazzi, registrazione e meccanismi
Prima di spiegare prezzipazzi come funziona, facciamo il punto per chi non lo conoscesse. Nell ultimo periodo si fa un gran parlare di prezzipazzi ( questo il sito ), sito che offre a prezzi veramente
DettagliCodifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
DettagliIl 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
DettagliPoi clichiamo su sistema
Come leggere file mkv o divx dal pc al vostro decoder, oppure semplicemente vedere le registrazioni fatte da altro decoder E2 Con immagine Black Hole e media player Da uno spunto di una guida di Matrix10
DettagliCOME FARE UNA RICHIESTA DI ASSISTENZA ON LINE (AOL)
COME FARE UNA RICHIESTA DI ASSISTENZA ON LINE (AOL) Cos è l AOL? Pag. 2 Come inviare una richiesta AOL Pag. 3 La risposta dell assistenza Pag. 5 Come rispondere ad una risposta AOL Pag. 7 Ulteriori nozioni
Dettaglifile:///c:/formazione/photoshop-webmaster-uffici/doc/guida-winzip.htm Guida a Winzip
Guida a Winzip Winzip è uno dei programmi più famosi per comprimere file rendendoli meno pesanti (in termini di Byte) e quindi proprio per questa sua caratteristica è uno dei programmi più usati su internet
DettagliBuongiorno vi ringrazio nuovamente per avermi invitato sono molto lieto di assistervi nella vendita della vostra casa
A ACQUISIZIONE INCARICO PRESENTAZIONE DA 1 MINUTO Buongiorno vi ringrazio nuovamente per avermi invitato sono molto lieto di assistervi nella vendita della vostra casa Posso dare un occhiata veloce alla
DettagliLaboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE
Programmare in Php con Xampp e NetBeans IDE NetBeans è un IDE ben noto ai programmatori Java. Con esso si possono infatti costruire applicazioni desktop professionali dotate di interfaccia grafica, applicazioni
DettagliCOME AVERE SUCCESSO SUL WEB?
Registro 3 COME AVERE SUCCESSO SUL WEB? Guida pratica per muovere con successo i primi passi nel web MISURAZIONE ED OBIETTIVI INDEX 3 7 13 Strumenti di controllo e analisi Perché faccio un sito web? Definisci
DettagliGB informazioni e freeware
GB informazioni e freeware Informazioni per PC, internet, software, freeware e tutorial Home Programmi Informazioni Passatempo Siti utili Aggiornamenti sito News Posizione nel sito : Home >> Informazioni
DettagliMOBILE 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
Dettagliwww.filoweb.it STAMPA UNIONE DI WORD
STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere
DettagliModulo didattico sulla misura di grandezze fisiche: la lunghezza
Modulo didattico sulla misura di grandezze fisiche: la lunghezza Lezione 1: Cosa significa confrontare due lunghezze? Attività n 1 DOMANDA N 1 : Nel vostro gruppo qual è la matita più lunga? DOMANDA N
DettagliInvio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
DettagliGuida informatica per l associazione #IDEA
Guida informatica per l associazione #IDEA Questa guida vi spiegherà come utilizzare al meglio gli strumenti informatici che utilizza l associazione #IDEA in modo da facilitare il coordinamento con tutti
DettagliMANUALE EDICOLA 04.05
MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliDizionario Italiano/Lingua dei segni italiana
DIZLIS 2.0 CTS IPSSS E. De Amicis Dizionario Italiano/Lingua dei segni italiana Un dizionario è un'opera che raccoglie, in modo ordinato secondo criteri anche variabili da un'opera all'altra, le parole
DettagliInformatica pratica. File e cartelle
Informatica pratica File e cartelle Riassunto della puntata precedente Abbiamo visto a cosa serve un word processor: Quali sono i suoi benefici rispetto alla macchina da scrivere tradizionale Quali sono
DettagliI TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.
I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?
DettagliTutorial sugli ambienti di sviluppo: Eclipse e NetBeans
Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans Prima di tutto va installato il compilatore, ottenibile scaricando ed installando MinGW o CygWin. MinGW: http://www.mingw.org/download.shtml CygWin:
DettagliCominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).
La barra multifunzione La barra multifunzione e il pulsante Microsoft Office Se avete lavorato per tanti anni con la suite da ufficio Office, questa nuova versione 2007 può disorientarvi davvero molto.
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliStatistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.
Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:
DettagliGUIDA INSERIMENTO ARTICOLI SUL BLOG PCFACTORY.IT
GUIDA INSERIMENTO ARTICOLI SUL BLOG PCFACTORY.IT Con questa guida non voglio insegnarvi a inserire degli articoli su un blog, ma solo mostrarvi come faccio io, quindi iniziamo: Fate il Login inserendo
DettagliCom'è definita la funzione composta
Tra le varie operazioni tra funzioni abbiamo introdotto la composizione di funzioni: lo scopo di questo articolo è definire la nozione di funzione composta e di spiegare come si calcola la composizione
DettagliLa prof.ssa SANDRA VANNINI svolge da diversi anni. questo percorso didattico sulle ARITMETICHE FINITE.
La prof.ssa SANDRA VANNINI svolge da diversi anni questo percorso didattico sulle ARITMETICHE FINITE. La documentazione qui riportata è ricavata dalla trascrizione dei lucidi che vengono prodotti dall
DettagliMigriamo da Joomla! 1.5 a 1.7
Migriamo da Joomla! 1.5 a 1.7 Valentina Bossini (ventus85) valentina@ventus85.com 1 Twitta sul Joomla Day! Canale ufficiale della Comunità Italiana di Joomla! http://twitter.com/joomlaitalia Hashtag ufficiale
DettagliINSTALLAZIONE JOOMLA
INSTALLAZIONE JOOMLA Moltissime volta mi capita (e penso capiti anche a voi) di dover prima di pubblicare un sito farlo vedere al cliente per l ok finale, o magari doverlo fare vedere, ma non avere ancora
DettagliAlla scoperta della nuova interfaccia di Office 2010
Alla scoperta della nuova interfaccia di Office 2010 Una delle novità più eclatanti della versione 2007 era la nuova interfaccia con la barra multifunzione. Office 2010 mantiene questa filosofia di interfaccia
DettagliCONSIGLI PER POTENZIARE L APPRENDIMENTO DELLA LINGUA
CONSIGLI PER POTENZIARE L APPRENDIMENTO DELLA LINGUA Possiamo descrivere le strategie di apprendimento di una lingua straniera come traguardi che uno studente si pone per misurare i progressi nell apprendimento
DettagliGuida 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
DettagliIL METODO PER IMPOSTARE E RISOLVERE I PROBLEMI DI FISICA (NB non ha nulla a che vedere con il metodo scientifico)
IL METODO PER IMPOSTARE E RISOLVERE I PROBLEMI DI FISICA (NB non ha nulla a che vedere con il metodo scientifico) [nota: Nel testo sono riportate tra virgolette alcune domande che insegnanti e studenti
DettagliApp-V Dynamic Suite Composition
App-V Dynamic Suite Composition di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione Con Microsoft Application Virtualization 4.5 è possibile utilizzare la Dynamic Suite Composition, cioè definire un
DettagliIl mio Garmin. Questo sconosciuto!
Il mio Garmin Questo sconosciuto! Cosa ci proponiamo stasera Presentarvi e illustrare I punti essenziali per utilizzare il programma Autoroute 2010 Come creare un percorso sul proprio PC, saltare i paesi,
DettagliSettaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.
I TEMI PREDEFINITI (TEMPLATE) Scelta del tema I temi predefiniti di wordpress sono la base di un sito che usa un utente che per ragioni pratiche o per incapacità non può creare un sito usando solo codice
DettagliFormattazione. ü 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
DettagliNell esempio riportato qui sopra è visibile la sfocatura intenzionale di una sola parte della foto
LE MASCHERE DI LIVELLO Provo a buttare giù un piccolo tutorial sulle maschere di livello, in quanto molti di voi mi hanno chiesto di poter avere qualche appunto scritto su di esse. Innanzitutto, cosa sono
DettagliIl puzzle di Einstein. di Davide Dellerba.
Il puzzle di Einstein di Davide Dellerba. Il puzzle di Einstein Prefazione Il puzzle di Einstein, conosciuto anche con il nome di puzzle Zebra, è un rompicapo logico. Si dice sia stato inventato da Albert
DettagliLE MEDIE MOBILI CENTRATE
www.previsioniborsa.net 2 lezione METODO CICLICO LE MEDIE MOBILI CENTRATE Siamo rimasti a come risolvere il precedente problema del ritardo sulle medie mobili Quindi cosa dobbiamo fare? Dobbiamo semplicemente
DettagliFile, 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
DettagliGuida NLite Integrare SP2, driver, aggiornamenti Microsoft, nel cd d installazione di Windows XP
Guida NLite Integrare SP2, driver, aggiornamenti Microsoft, nel cd d installazione di Windows XP Questa guida nasce dall esigenza di poter installare Windows Xp nei nuovi pc che hanno preinstallato Windows
Dettagli