In questo articolo vengono analizzati alcuni scenari

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "In questo articolo vengono analizzati alcuni scenari"

Transcript

1 Gestione di una coda di mail in architettura SOA con WCF L invio di è una funzionalità molto diffusa nelle applicazioni moderne e la gestione di più applicazioni che devono inviare è una condizione presente in molte aziende. di Omar Venturi In questo articolo vengono analizzati alcuni scenari relativi ad applicazioni che inviano agli utenti e vengono descritti i passaggi principali per realizzare un servizio centralizzato con gestione di una coda. Vengono esaminate alcune delle caratteristiche dell architettura SOA (Service Oriented Architecure) e delle API di WCF (Windows Communication Foundation), evidenziando gli aspetti che semplificano lo sviluppo e la gestione della comunicazione tra applicazioni e servizi. L articolo è di livello introduttivo e si rivolge a chi, pur conoscendo la programmazione ad oggetti, conosce poco il modello architetturale SOA e la tecnologia WCF di Microsoft; l obiettivo è di guidare il lettore nella progettazione, nella realizzazione, ma soprattutto nella comprensione di una soluzione reale che utilizza questi strumenti. Nella trattazione si vedrà il percorso ipotetico affrontato da alcuni sviluppatori che, discutendo Omar Venturi Si occupa di progettazione e sviluppo di soluzioni E-Learning e Cross Media Publishing con tecnologie Microsoft.NET. Lavora come Project Manager per ONION S.p.A. società di servizi IT con sedi a Brescia, Milano e Torino. Laureato presso l Università degli studi di Milano in Tecnologie per la società dell informazione. È MPC (Microsoft Certified Professional) dal 1999 e MCSD (Microsoft Certified Solution Developer) dal delle soluzioni adottate nelle loro applicazioni per l invio delle , ne evidenziano le problematiche, le analizzano, progettano una soluzione comune per sostituire quelle esistenti ed infine la realizzano, soffermandosi sugli aspetti più importanti ed utilizzando esempi del mondo reale. L invio di è una funzionalità molto diffusa nelle applicazioni moderne (si pensi ad esempio ad un sito web che invia una mail agli utenti al termine del processo di registrazione) e la gestione di più applicazioni che devono inviare , spesso implementando soluzioni differenti, è una condizione presente in molte aziende. In particolare, le caratteristiche comuni di tali applicazioni sono: La mail rappresenta un punto all interno di un flusso di lavoro fondamentale per il completamento di un attività complessa (registrazione utenti, ordini, segnalazioni di eventi, etc); È indispensabile poter verificare se e quando la mail è stata inviata; La presenza di soluzioni diverse per ciascuna applicazione può rappresentare un costo da ridurre. Spesso le applicazioni si appoggiano a componenti esterni per l invio della mail, oppure sfruttano le funzionalità più semplici messe a disposizione dai framework applicativi. Inoltre, benché le code siano uno strumento per migliorare l affidabilità dell invio 8

2 SOA con WCF della mail, non sempre le applicazioni le utilizzano; talvolta perché si ritiene troppo onerosa l integrazione, talvolta perché il componente o il framework non le supporta. Iniziamo quindi analizzando il caso della Software Meraviglioso S.p.A., software house specializzata nella realizzazione di applicazioni web-oriented. Software Meraviglioso è un azienda organizzata in molte aree, ognuna composta da più gruppi di lavoro. Tutti i gruppi hanno sviluppato almeno una volta un progetto per il quale è stato necessario inviare mail agli utenti e ciascun team è soddisfatto della soluzione implementata. Il problema Davanti alla macchinetta del caffè un giorno si sono incontrati Claudio, Luisa e Matthew (appartenenti a tre gruppi di lavoro differenti) e chiacchierando si sono accorti che: Il progetto di Claudio utilizza un componente COM chiamato SuperMail che supporta le code ed ha un prezzo di 300$; Il progetto di Luisa, più recente, utilizza un componente open source chiamato YourPostman; è disponibile la versione 0.95 per.net e la versione 0.98 per Java (quella utilizzata da Luisa). La documentazione è buona ed il componente è freeware. Il supporto per le code sarà implementato con il prossimo rilascio; Il progetto di Matthew utilizza invece il client SMTP presente nel namespace System.Net.Mail del framework.net. Questo componente non offre supporto nativo per le code, ma il gruppo di Matthew doveva realizzare velocemente la funzionalità di invio di password dimenticata (si erano proprio dimenticati di implementarla!) ed hanno deciso che questa era la soluzione migliore; avrebbero pensato successivamente alla gestione delle code. Nessun problema funzionale quindi, tutto il software gira che è una meraviglia, però tre gruppi diversi hanno implementato tre soluzioni diverse per lo stesso problema e, immaginano i nostri amici, è probabile che anche gli altri team abbiano adottato soluzioni diverse. Mentre i nostri tornano alle loro scrivanie, fermiamoci un momento a pensare alla situazione appena descritta. Le casistiche analizzate non evidenziano problematiche tecnologiche; è vero che qualche mail talvolta non arriva a destinazione (Matthew e Luisa hanno preferito non parlare di questo), ma tutto sommato questo non rappresenta un grosso problema per le loro applicazioni. Il problema è invece l adozione di soluzioni differenti per coprire le stesse esigenze, con conseguente aumento dei costi sia in fase di sviluppo che in quella di manutenzione. Inoltre, ogni scenario presenta problematiche specifiche che proviamo a riassumere: l utilizzo di componenti esterni è certamente una buona soluzione poiché garantisce il riuso del software. Tuttavia questa soluzione impone dei vincoli sulla tecnologia utilizzata. Il progetto di Claudio utilizza un componente COM, il progetto di Luisa una classe Java ed il progetto di Matthew una classe del framework.net: il progetto ed i suoi componenti devono utilizzare la stessa tecnologia; i componenti che non supportano le code scaricano la responsabilità dell invio della mail sull applica- FIGURA 1 - La soluzione è ospitata all'interno di due servizi Windows 9

3 zione stessa. Cosa succede se il server di mail restituisce un errore durante l invio? il codice infrastrutturale per l utilizzo dei componenti non può essere riutilizzato: istanziare ed utilizzare il componente COM richiede codice differente rispetto a quello del componente.net o Java; implementare le funzionalità di invio di per un progetto ha un costo che si ripete per ogni progetto, con un valore diverso in funzione della soluzione adottata. Un servizio! Ecco quello di cui abbiamo bisogno! esclama ad alta voce Luisa e l indomani si confronta con i suoi colleghi per valutare gli impatti che questa soluzione comporta sulle applicazioni esistenti. Luisa spiega che il loro problema è comune e facilmente risolvibile; la maggior parte delle applicazioni presenti in azienda necessita di inviare una mail e tutti implementano una soluzione diversa, con diverse tecnologie. Non risparmieremmo tempo se in azienda fosse disponibile un sistema in grado di registrare le mail che le nostre applicazioni devono inviare gestendo le code ed offrendo anche meccanismi per il controllo degli errori, della pianificazione delle spedizioni e dei log? Le nostre applicazioni vedrebbero l invio della mail come un servizio esterno, FIGURA 2 - Il diagramma delle classi della soluzione senza preoccuparsi di quale componente è utilizzato o di come è gestita la coda. Certo, però non vedo vantaggi rispetto a quello che ho implementato ribatte Claudio attualmente sto utilizzando SuperMail e non mi preoccupo di come lui gestisce le code. Semplicemente la mia applicazione crea un istanza dell oggetto SuperMail.Message, gli assegna i valori corretti e quindi chiama il metodo Send. Più facile di così!. Prova a pensare, interviene Matthew a cosa succederebbe se utilizzassi il tuo componente in altri progetti e fra un po volessi passare alla nuova versione, magari per.net o Python. Dovresti sicuramente modificare le parti di codice che utilizzano SuperMail, poiché i tuoi progetti referenziano direttamente il componente. Se, come suggerisce Luisa, utilizzassimo un servizio esterno, le nostre applicazioni non sarebbero più dipendenti dalla tecnologia del componente per l invio delle mail, che potrebbe quindi essere aggiornato in maniera indipendente. Beh, è un bel vantaggio, ma devo modificare tutto quello che ho già scritto? chiede Claudio. No, risponde Luisa, le applicazioni esistenti possono continuare con la soluzione attuale oppure passare gradualmente alla nuova soluzione; dipende dal rapporto tra costi e benefici. Questo è un altro dei vantaggi offerti dall architettura SOA: è possibile gestire gli aggiornamenti in base alle proprie esigenze. Quelli della Software Meraviglioso si mettono quindi al lavoro ed iniziano a progettare l architettura della soluzione. L architettura ed il modello I nostri bravi sviluppatori (che in questo momento stanno ricoprendo il ruolo di architetti) hanno pensato di ospitare la soluzione all interno di due servizi Windows, come mostrato in Figura 1: MailQueue_Service: è responsabile della scrittura e della lettura dei messaggi dalla coda. Le applicazioni che hanno bisogno di inviare accedono a questo servizio utilizzando due interfacce, delle quali parleremo tra poco. Queste due interfacce sono l unico punto pubblico del servizio. MailQueue_Sender: è il servizio responsabile di estrarre un messaggio dalla coda e di inviarlo al mail server configurato per quel messaggio (le mail possono essere inviate utilizzando server 10

4 SOA con WCF differenti). Anche se questo servizio colloquia direttamente con MailQueue_Service, è stato disaccoppiato e caricato in un servizio diverso e la comunicazione tra i due avviene attraverso una terza interfaccia. In questo modo è possibile sospendere il servizio che invia le mail (ad esempio per manutenzione del server di mail), continuando a registrare le mail nella coda. Introdotta l architettura, vediamo ora il modello: le classi utilizzate per modellare il dominio sono semplici ed intuitive. Oltre alla classe principale Messaggio, sono state definite altre classi che permettono alle applicazioni di controllare il messaggio da inviare. Innanzitutto ogni applicazione ha la possibilità di definire quale server SMTP utilizzare per l invio dei messaggi (le applicazioni autorizzate all invio dei messaggi sono registrate nel sistema), inoltre è possibile specificare, per ogni messaggio, un insieme di caratteristiche che influiscono direttamente sul posizionamento del messaggio nella coda. Cosa? Le applicazioni possono controllare direttamente la posizione del messaggio nella coda? chiede Claudio sorpreso di questo strano comportamento, Non è esatto risponde Matthew giustificando la scelta, Le applicazioni non possono definire la posizione del messaggio, ma per rendere più flessibile l applicazione possono richiedere che il messaggio sia inviato in uno specifico istante temporale usando la proprietà Planning oppure che venga inviato secondo una schedulazione predefinita, usando la classe MessageSchedule. Nel database i messaggi sono sempre memorizzati in tabella secondo l ordine d inserimento, ma da questa tabella sono recuperati in ordine crescente rispetto alla data di invio richiesta. Comunque continua Matthew in genere un applicazione non richiede che lo stesso messaggio sia inviato più volte. Se i messaggi non contengono né una pianificazione, né uno scheduling, la coda si comporta come una classica FIFO: il primo messaggio inserito è il primo inviato. Abbiamo deciso di aggiungere queste funzionalità per rendere più flessibile il servizio. In Figura 2 è presentato il diagramma delle classi della soluzione. La classe MessageEnvelope (la busta) rappresenta la radice del modello e contiene una o più istanze delle altre classi: contiene un istanza di Message (il messaggio) che a sua volta può contenere delle istanze di MessageSchedule (le regole di schedulazione). La busta può contenere inoltre degli allegati (MessageAttachmentBuffered) ed i parametri di connessione al server (ApplicationConfiguration). Infine, partendo dalla classe MessageStatus, la busta può accedere all elenco di eventi legati al messaggio, relativamente all invio (MessageAttempt) o alle operazioni effettuate su di esso, come la creazione o eventualmente la modifica (MessageHistory). Analizziamo un po più in dettaglio le interfacce. L interfaccia IMailQueueWriter prevede solo il metodo AddMessage(): questo è il metodo principale che permette di registrare un messaggio nella coda. La chiamata a questo metodo prevede due parametri: un istanza della classe Message e la chiave dell applicazione mittente (quest ultima impedisce che applicazioni non registrate possano inviare messaggi). Per scelta architetturale, si è deciso che per allegare documenti alla mail è necessario utilizzare un in- FIGURA 3 - Schema del database utilizzato per memorizzare i messaggi 11

5 terfaccia differente (IMailQueueAttachmentWriter). Come si vedrà meglio tra poco, i metodi definiti in queste interfacce possono essere attivati inviando dei messaggi SOAP a determinate URL. WCF controlla queste URL e può gestire indirizzi e protocolli differenti per ciascuna di esse; in questo modo si possono controllare separatamente le chiamate che inviano un semplice messaggio (poche decine di KB) da quelle che trasferiscono megabyte. È possibile ad esempio configurare il servizio affinché la dimensione dei messaggi non superi i 100 KB mentre quella degli allegati non superi i 20 MB. La terza interfaccia, IMailQueueReader, è utilizzata esclusivamente dal servizio MailQueue_Sender che ad intervalli regolari interroga la coda chiamando il metodo NextMessageToSend() il quale restituisce un oggetto di tipo MessageEnvelope. Come descritto poco sopra, questo oggetto contiene tutte le informazioni necessarie ad inviare la mail. Dopo aver ottenuto la risposta dal server (positiva o negativa che sia), MailQueue_Sender registra l esito dell invio utilizzando il metodo SetResponse(). Se l esito è negativo, il metodo NextMessageToSend() restituirà nuovamente il messaggio per un nuovo tentativo; è possibile controllare il numero di tentativi di invio cui un messaggio può essere sottoposto tramite la LISTATO 1 - Versione molto semplice della classe Message public class Message private int _id; private int _attempts; private string _subject; private string _body; private string[] _to; private DateTime[] _planning; public Message( string Subject, string Body, string To, string From, DateTime DispatchDate) _id = -1; _attempts = int.maxvalue; _subject = Subject; _body = Body; _to = new string[] To; _planning = new DateTime[] DispatchDate; proprietà Attempts della classe Message. La prima classe con WCF Abbiamo definito l architettura della soluzione, abbiamo descritto le classi e sappiamo quali relazioni esistono tra loro; possiamo iniziare a scrivere la classe Message. Il Listato 1 contiene una versione molto semplice di questa classe dove, per brevità, sono stati omessi alcuni campi. È stato inoltre definito un semplice costruttore (attenzione a questo aspetto, lo approfondiremo nel paragrafo Messaggi ed oggetti) che dovrebbe garantire la creazione di istanze coerenti con la nostra logica. Torniamo dai nostri amici ai quali si è aggiunto Giorgio, un giovane sviluppatore che sta partecipando insieme a loro ad un brainstorming. Giorgio sta cercando di capire quello che avviene dietro le quinte quando un applicazione si collega al servizio e crea un istanza della classe Message. Ha capito che Message, definita in MailQueue_Service, deve in qualche modo essere resa disponibile anche alla sua applicazione affinchè questa possa crearne un istanza. Ascoltiamolo: in effetti non è affatto banale che la mia applicazione possa istanziare una classe della quale non possiede la definizione. La classe Message è definita nel servizio, ma la mia applicazione deve comunque essere in grado di crearla. Inoltre, una volta passata l istanza al servizio, la mia applicazione non deve più occuparsi di come il messaggio venga inviato, giusto? Esatto Giorgio, risponde Matthew, hai compreso l aspetto fondamentale di questa architettura. Per farti un esempio, immagina di andare al ristorante ed ordinare una pizza: non è sufficiente entrare, dobbiamo anche essere in grado di ordinare quello che vogliamo secondo il menu del ristorante. La pizza è il risultato che chiediamo al ristorante (il servizio) e l ordine è quello che dobbiamo costruire e passare al cameriere. Dopo aver costruito l ordine, possiamo tranquillamente aspettare; a noi interessa mangiare, non come viene preparata la pizza. Poi continua La soluzione che utilizza la tua applicazione per creare un istanza di Message è analoga a quella che utilizziamo noi per ordinare: leggiamo il menu. Non dobbiamo andare dietro il banco e fare la pizza, e non dobbiamo nemmeno assumere un pizzaiolo privato a casa (cioè acquistare un componente tutto per noi), è sufficiente chiedere il servizio che vogliamo seguendo il menu del ristorante. Fantastico! Adesso che abbiamo capito i vantaggi 12

6 SOA con WCF offerti dall architettura orientata ai servizi ed i passi fondamentali per scambiare dati con il servizio, siamo pronti per guardare un po più da vicino gli aspetti legati alla comunicazione. Iniziamo con qualche domanda: come fa l applicazione ad inviare i dati a MailQueue_Service? MailQueue_Service gestisce direttamente la comunicazione con MailQueue_Sender e le applicazioni oppure si appoggia ad altri componenti? Come è possibile inviare un istanza della classe Message, in esecuzione su un server, ad un altro server sul quale è in esecuzione MailQueue_Service? Le risposte sono fornite da WCF, un insieme di classi (un framework) che si occupa della comunicazione tra applicazioni. Utilizzando WCF, le nostre applicazioni non devono occuparsi di aprire connessioni di rete, di gestire buffer di trasmissione, di serializzare gli oggetti o altri aspetti del genere, ma è WCF che si occupa di tutto ciò. WCF non è la prima né l unica tecnologia per la gestione semplificata della comunicazione tra le applicazioni; i Web Service ad esempio erano la soluzione precedente prodotta da Microsoft. WCF si presenta come l evoluzione dei Web Service con l obiettivo di unificare, sotto un unico nome, le modalità di comunicazione che utilizzano anche diversi protocolli come HTTP, TCP, MSMQ, NamePipe, etc. Alla base di tutto ci sono i concetti di serializzazione, SOAP e contratto: il primo è il processo con il quale un oggetto viene salvato su un supporto oppure inviato attraverso un canale di comunicazione (mettendo in sequenza i dati che rappresentano l istanza), LISTATO 2 - DataContract e ServiceContract [DataContract] public class Message [DataMember(Name= Id )] private int _id; [DataMember(Name= Attempt )] private int _attempts; [DataMember(Name= Subject )] private string _subject; [DataMember(Name= Body )] private string _body; [DataMember(Name= To )] private string[] _to; [DataMember(Name= Plannin )] private DateTime[] _planning; /* Costruttore */ mentre il secondo è uno standard per descrivere i dati serializzati. Il contratto infine, utilizza i primi due per astrarre e semplificare la descrizione dei servizi offerti da un applicazione, dei dati scambiati tra gli attori coinvolti e di altro ancora. In WCF sono previste cinque tipologie di contratto che introduciamo brevemente: Service contract: definisce le operazioni esposte da un servizio, cioè il cosa viene offerto. IMail- QueueWriter è definito ad esempio come service contract (un service contract per il ristorante potrebbe essere si fanno pizze! ). Data contract: descrive gli oggetti utilizzati dal servizio e la loro struttura. Tutte le classi del nostro modello ad oggetti che devono essere utilizzate dalle applicazioni sono definite come Data Contract. Message contract: questo tipo di contratto è utilizzato per avere un controllo completo su come gli oggetti viaggiano sulla rete, cioè su come vengono serializzati e descritti con SOAP; in pratica permette di controllare il messaggio SOAP in tutti i suoi aspetti. È un po come quando lasciate chiuso il menu ed ordinate una pizza ingrediente per ingrediente. Niente menu, gli ingredienti li scelgo io! Fault contract: descrive i messaggi di errore e permette alle applicazioni di interpretarli correttamente. Callback contract: in genere la comunicazione parte dall applicazione richiedente (il consumer) ed arriva al servizio. Questo contratto permette al consumer di farsi chiamare dal servizio, stabilendo una comunicazione bidirezionale ("Quando le pizze sono pronte chiamami al "). È importante chiarire un aspetto fondamentale prima di proseguire: WCF è una tecnologia.net e richiede l utilizzo di strumenti specifici per questo framework. Tuttavia le applicazioni che utilizzano i LISTATO 3 - Definizione di IMailQueueWriter [ServiceContract] public interfaceimailqueuewriter [OperationContract()] int AddMessage( Message Mail, string ApplicationKey); 13

7 servizi esposti tramite WCF possono essere realizzati con qualunque tecnologia in grado di comunicare con messaggi SOAP. Ecco perché, (riprendendo per un istante l inizio dell articolo) mentre la scelta di un componente è vincolata dalla tecnologia del progetto (COM, Java,.NET, etc), l utilizzo di un servizio è svincolato dalla tecnologia dell applicazione consumer. Affrontiamo adesso un aspetto pratico, quale la definizione dei contratti. WCF fa ampio uso degli attributi.net per questo aspetto. Ogni tipologia di contratto prevede un insieme definito di attributi con i quali decorare le proprie classi. Il run-time di WCF legge questi attributi e crea automaticamente il codice necessario per la pubblicazione del servizio. Vediamo come definire un DataContract ed un ServiceContract (Listato 2). LISTATO 4 - Configurazione del servizio per IMailQueueWriter <services> <service behaviorconfiguration= MQWB name= MQService > <endpoint address= net.tcp://mypc:8000/mqw/ binding= nettcpbinding bindingconfiguration= bndtcp contract= MailQueue.service.IMailQueueWriter /> <service/> <services/> <behaviors> <servicebehaviors> <behavior name= MQWB > <servicemetadata httpgetenabled= True httpgeturl= /> </behavior> <servicebehaviors/> <behaviors/> <bindings> <nettcpbinding> <binding name= bndtcp transfermode= Buffered maxbuffersize= 2048 /> </binding> <nettcpbinding/> <bindings/> Il Data contract utilizza due attributi: DataContract: da utilizzare sulla classe (o sulla struct) DataMember: da utilizzare sui campi o sulle proprietà Si noti che i campi esposti con l attributo Data- Member sono definiti come privati: i modificatori di visibilità non hanno effetto sul messaggio. Tutti i campi (o le proprietà get/set) decorati con l attributo DataMember sono pubblicati con il proprio nome o con quello definito dal parametro Name, indipendentemente dal fatto che siano dichiarati come privati. Il Service contract utilizza invece gli attributi: ServiceContract: da utilizzare sulla classe o sull interfaccia OperationContract: da utilizzare sui metodi Si è già accennato al fatto che i consumer accedono ai servizi attraverso le interfacce. Queste sono definite come Service Contract ed esposte pertanto come servizi. IMailQueueWriter è definita ad esempio come mostrato nel Listato 3. Naturalmente l interfaccia è implementata da una classe concreta (MailQueueWriter) responsabile di LISTATO 5 - Attivazione del servizio using System.ServiceModel; using MailQueue.service; public partial class MQHost:ServiceBase private static ServiceHost _mqh = null; protected override void OnStart(string[] args) _ mqh = new ServiceHost(typeof(MailQueueWriter)); _ mqh.open(); protected override void OnStop() if (_mqh.state!= CommunicationState.Closed) _mqh.close(); 14

8 SOA con WCF memorizzare il messaggio nella coda. Per completezza in Figura 3 è riportato lo schema del database utilizzato per memorizzare i messaggi; gli aspetti che si riferiscono alla memorizzazione dei dati nelle tabelle esulano dagli obiettivi di questo articolo. È sufficiente in questo caso evidenziare l esistenza di relazioni 1-1 tra le tabelle e le classi del modello (Message, Application, Attachment, etc) per comprenderne le logiche di memorizzazione principali. Si noti inoltre che la tabella [MQ.MESSAGE.QUEUE] non ha una classe relativa nel modello ad oggetti: questa tabella contiene la coda ed è la tabella dalla quale estrarre un messaggio ad ogni chiamata del metodo NextMessageToSend(). ABC: Address, Binding, Contract Il nostro servizio è quasi pronto: abbiamo creato le classi ed abbiamo definito i contratti; dobbiamo ora preparare l ambiente necessario a pubblicarlo. Sappiamo che i nostri amici della Software Meraviglioso hanno deciso di esporre il servizio come un Windows Service, ma non abbiamo detto ancora niente sul protocollo utilizzato, su quale porta rimarrà in ascolto e se, ad esempio, i messaggi necessitano di criteri di protezione. Questi aspetti sono gestiti da WCF e controllabili da un file di configurazione, il che semplifica molto le attività di pubblicazione e manutenzione del servizio. L infrastruttura di WCF che permette l esecuzione dei servizi è controllata da una tripletta di parametri il cui acronimo è ABC (Address, Binding e Contract) ed alla quale ci si riferisce con il nome "endpoint". Il Contract lo abbiamo incontrato nel paragrafo precedente, vediamo ora cosa sono Address e Binding. L address è l indirizzo (URL) al quale il servizio è raggiungibile. Il formato dell address è: protocollo://server:porta/extension Ad esempio è un address valido per il nostro servizio, così come lo è net.tcp:// :9191/mailread. Il binding è un elemento fondamentale di WCF poiché oltre al protocollo di comunicazione controlla un insieme di altre caratteristiche, quali ad esempio la capacità di stabilire comunicazioni bidirezionali (duplex) o a senso unico. Per un approfondimento di questi aspetti si rimanda a [1]. Prima di procedere, torniamo per un istante all esempio della pizzeria ricordando che prima di poter ordinare abbiamo chiesto il menu e lo abbiamo LISTATO 6 - Descrizione degli errori restituiti [ServiceContract] public interface IMailQueueWriter [OperationContract()] [FaultContract(typeof(MailException))] [FaultContract(typeof(Exception))] int AddMessage( Message Mail, string ApplicationKey); letto. Anche i consumer della nostra applicazione prima di poter comunicare con il servizio devono richiedere il contract al servizio e leggerlo: in questo caso il contract è scritto in WSDL, un linguaggio derivato dall XML per la descrizione delle interfacce dei servizi web. WCF, a differenza di quello che accade con i Web Service, nasconde di default il contratto; affinché questo possa essere letto dai consumer è necessario impostare i valori appropriati all interno della sezione Behavior del file di configurazione. I consumer hanno bisogno del WSDL per chiamare il servizio e lo possono leggere con una chiamata HTTP-GET. Vediamo come configurare il servizio per la classe MailQueueWriter. Nel Listato 4 sono presenti tre sezioni utilizzate per configurare gli elementi fondamentali del run-time di WCF: services: questa è la sezione principale utilizzata per configurare l endpoint del servizio. Questa sezione utilizza valori definiti nelle altre due sezioni, vedremo tra poco come sono costruiti i collegamenti tra le sezioni; behaviors: questa sezione è utilizzata in questo caso per pubblicare il contratto WSDL. In particolare il valore dell attributo httpgeturl rappresenta l indirizzo http dal quale il consumer può leggere il WSDL; bindings: questa sezione controlla alcuni aspetti di basso livello della comunicazione, come ad esempio la dimensione del buffer utilizzato per la comunicazione. Si noti infine che tutti i parametri definiti nel file di configurazione si possono impostare anche in maniera programmatica, potendo in questo modo realizzare delle combinazioni molto flessibili. Il collegamento service-binding si ottiene confrontando il valore dell attributo service/endpoint/ 15

9 @binding con il nodo figlio di bindings con lo stesso valore. Il collegamento service-behavior si ottiene invece confrontando il valore dell attributo con il valore dell attributo Il servizio configurato con questo file apre un socket TCP all indirizzo mypc:8000/mqw/ e pubblica il proprio WSDL all indirizzo Hosting del servizio Si deve ora attivare il servizio ed attendere le richieste inviate dai consumer. Per essere attivato, un servizio deve essere ospitato all interno di un processo controllato dal runtime di WCF (si pensi al servizio come ad una dll). Oltre ai servizi Windows che utilizzeremo tra breve, un servizio può essere ospitato ad esempio in una Console Application, in una Windows Forms Application, in IIS ed altri ancora (per approfondimenti si veda [4]). WCF fornisce la classe ServiceHost per la gestione del servizio e dell infrastruttura di comunicazione. È sufficiente passare al costruttore di questa classe il tipo del nostro servizio (in questo esempio Mail- QueueWriter) e WCF si fa carico di creare un istanza LISTATO 7 - Il polling di MailQueue_Sender _smtp = new SmtpClient(); while (!_stop) // polling mailsnd =_client.nextmessagetosend(); while (mailsnd!= null) // coda try MailMessage mail = new MailMessage(); /* valorizza le proprietà della mail */ mail.subject = mailsnd.subject; mail.body = mailsnd.body; /* altre proprietà... */ smpt.send(mail); _client.setresponse( mailsnd.currentattemptid, string.empty, true); catch (Exception ex) _client.setresponse( mailtosend.currentattemptid, ex.message, false); mailsnd =_client.nextmessagetosend(); // fine coda Thread.Sleep(pollingSecond); // fine polling e di passarle le richieste in accordo a quanto definito nel file di configurazione. Tutto quello che dobbiamo fare per attivare il servizio è presentato nel Listato 5 e riassunto di seguito: 1. Creare in Visual Studio 2005 un nuovo progetto di tipo Windows Service; 2. Aggiungere un riferimento al componente.net System.ServiceModel; 3. Aggiungere un riferimento al progetto contenente le classi che implementano i ServiceContract (MailQueue.service); 4. Dichiarare una variabile di tipo ServiceHost; 5. Creare un istanza di ServiceHost e ed aprire il servizio nel metodo OnStart() del Windows Service; 6. Chiudere il servizio nel metodo OnStop() del servizio. Quando il servizio viene avviato, viene eseguito il metodo OnStart nel quale viene creata un istanza di ServiceHost (gestita completamente da WCF) che prepara l infrastruttura di rete necessaria alla comunicazione con il servizio. La chiamata al metodo Open() apre la comunicazione e mette il servizio in attesa. Messaggi ed oggetti Affrontiamo ora il punto che abbiamo lasciato aperto relativo al costruttore della classe Message. Si affrontano qui alcuni argomenti di carattere generale che valgono anche al di fuori dell applicazione che stiamo realizzando. È importante comprenderli poiché questi concetti hanno un impatto diretto sulle classi e sull architettura delle nostre applicazioni. Scegliere di realizzare un applicazione con architettura SOA offre certamente dei vantaggi, ma richiede anche attenzione e consapevolezza poiché non è possibile applicare tutte le tecniche di programmazione utilizzate ad esempio con un architettura basata sui componenti. Applicare un architettura SOA senza conoscerne le caratteristiche può portare a grossi problemi strutturali o al fallimento del progetto. Per ulteriori informazioni sull architettura SOA si può fare riferimento a [3]. Torniamo quindi al problema: l obiettivo del costruttore era di permettere al consumer di creare un istanza della classe Message coerente con la nostra logica applicativa, garantendo quindi che tutte le istanze di quella classe contenessero un valore per i campi corpo, mittente, oggetto e data di spedizione. Riprendiamo per l ultima volta l esempio della 16

10 SOA con WCF pizzeria per capire il problema del costruttore: sappiamo che il menu descrive le pizze disponibili e gli ingredienti utilizzati per ciascuna pizza, così come il DataContract descrive le proprietà della classe. Menu e DataContract non descrivono il comportamento degli oggetti, ma solo le loro caratteristiche. Ordinare una pizza quattro formaggi senza gorgonzola significa, nell ottica SOA, fare una richiesta al pizzaiolo (il servizio) e non alla pizza (la classe) che in questo caso è un oggetto stupido. Analogamente, per verificare se una mail senza destinatari è valida, è necessario contattare il servizio, non la mail stessa. È chiaro quindi che lasciare il costruttore sulla classe Message non ha senso in questo contesto perché Message non deve implementare alcuna funzionalità; sarebbe come se la pizza che ordiniamo fosse in grado di rifiutarsi di cuocere se la combinazione di ingredienti richiesta non fosse valida! Questo è il punto: le classi che decoriamo con gli attributi WCF non sono esposte come oggetti (cioè come entità con delle caratteristiche e dei comportamenti), ma come dei semplici messaggi. WCF non è una tecnologia che permette di serializzare oggetti e trasferirli attraverso la rete (questo è un compito che può svolgere ad esempio una tecnologia come Remoting del.net Framework): WCF è una tecnologia che si occupa di trasferire dati, non comportamenti. Quando un consumer legge il WSDL del servizio, non riesce a leggere il codice all interno del costruttore della classe (e nemmeno di un qualunque altro metodo) e pertanto non può utilizzarli, poiché l infrastruttura utilizzata non è semplicemente progettata per farlo. È necessario quindi implementare la validazione dei dati nel servizio; nel nostro caso, la validazione è realizzata all interno del metodo Add- Message(), cioè del punto d ingresso del servizio. Gestione degli errori Se l istanza del messaggio passata al metodo Add- Message() non è valorizzata correttamente, ad esempio non contiene alcun indirizzo di destinazione, allora il servizio può restituire un messaggio d errore LISTATO 8 - Come inserire un messaggio nella coda static void Main(string[] args) int messageid; mq.message m = new mq.message(); m.from = ; m.fromname = Omar Venturi ; m.html = false; m.subject = Test message #1 ; m.body = Hello World ; m.to = new string[1]; m.to[0] = ; mq.mailqueueserviceclient client = new mq.mailqueueserviceclient(); messageid = client.addmessage(m, DSKWSMPWPECFOC000334IKJ ); al consumer che dovrà essere in grado di gestirlo. Come accennato in precedenza, il Fault Contract è il tipo di contratto utilizzato per descrivere i messaggi di errore che il servizio può restituire. I fault contract sono pubblicati attraverso il WSDL e di conseguenza i consumer li conoscono in anticipo e li possono gestire. Come mostrato nel Listato 6, FaultContract è un attributo che va utilizzato insieme ad OperationContract ed aggiunge ai metodi una descrizione di quali errori possono essere restituiti. Il parametro passato è un DataContract (si veda il codice allegato per maggiori dettagli) e pertanto il meccanismo di inserimento nel WSDL è analogo per i DataContract e per i FaultContract, cambia solo la modalità di attivazione. Sollevare un eccezione nel servizio è un operazione che richiede poche righe di codice: creare un istanza della classe MailException; effettuare il throw di una nuova FaultException alla quale si passa l istanza del punto precedente. MailException me = MailException.Create( Istanza non valida ); throw new FaultException<MailException>(me); Inviare un messaggio A questo punto non ci resta che creare il servizio MailQueue_Sender per l invio dei messaggi ed un semplice client per l inserimento delle mail nella coda 17

11 (nella realtà i client saranno più complessi, come ad esempio applicazioni web). La struttura di MailQueue_Sender è ancora un progetto di tipo Windows Service. È in questo servizio che possiamo decidere la tecnologia da utilizzare per inviare le mail: COM, Java,.NET o altro ancora. Nel nostro caso utilizziamo il client SMTP di.net. Dopo aver avviato il servizio MailQueue_Service, da Visual Studio 2005 è possibile aggiungere una Service Reference inserendo l url del WSDL dell endopoint che espone l interfaccia IMailQueueReader: Visual Studio legge il contratto (ecco perché il servizio deve essere attivo) e crea automaticamente una classe proxy che si interfaccia con il servizio. Questa classe, implementando l interfaccia IMailQueueReader, espone il metodo NextMessageToSend() che estrae dalla coda il primo messaggio. MailQueue_Sender effettua un polling sul servizio MailQueue_Service con una frequenza configurabile: se non ci sono messaggi pronti per essere inviati si mette in attesa, altrimenti invia uno ad uno i messaggi utilizzando per ognuno il server SMTP associato al messaggio, infine contatta nuovamente MailQueue_Service per registrare l esito dell operazione, utilizzando il metodo SetResponse, come mostrato nel Listato 7. Vediamo infine come inserire un messaggio nella coda. Creiamo un progetto di tipo Console Application (ricordiamoci di registrare questa applicazione nella tabella del DB delle applicazioni, assegnando anche una chiave), aggiungiamo una Service Reference al contratto WSDL relativo all interfaccia IMailQueueWriter (se vogliamo allegare documenti dobbiamo aggiungere una Service Reference anche a IMailQueueAttachmentWriter), quindi istanziamo un nuovo messaggio, valorizziamo le proprietà e passiamo l istanza, insieme alla chiave dell applicazione, al metodo AddMessage, come mostrato nel codice seguente e nel Listato 8. static void Main(string[] args) int messageid; mq.message m = new mq.message(); m.from = ; m.fromname = Omar Venturi ; m.html = false; m.subject = Test message #1 ; m.body = Hello World ; m.to = new string[1]; m.to[0] = ; mq.mailqueueserviceclient client = new mq.mailqueueserviceclient(); messageid = client.addmessage( Conclusioni m, DSKWSMPWPECFOC000334IKJ ); Abbiamo visto come l architettura SOA definisca linee guida che permettono di disaccoppiare i servizi utilizzati dalle applicazioni consumer. Naturalmente SOA non è la soluzione a tutti i problemi ed in questo articolo abbiamo dato alcuni elementi per capire quando può essere efficace questa scelta architetturale e quali problemi debbano essere affrontati a seguito della sua adozione. Benché la tecnologia WCF non sia stata creata esclusivamente per le architetture SOA, ne è sicuramente un componente molto importante che permette ai progettisti di concentrarsi su quelle che sono le problematiche di business dell applicazione, demandando al framework le problematiche di comunicazione. CODICE ALLEGATO ftp.infomedia.it SOA-WCF Sistema per la gestione di una coda centralizzata di completamente configurabile. Il progetto consiste di due servizi Windows (uno per la ricezione dei messaggi ed uno per l invio) e di un database. BIBLIOGRAFIA E RIFERIMENTI [1] Juval Lowy Programming WCF Services. O Reilly, 2007 [2] Scott Klein Professional WCF Programming, Wrox, 2007 [3] Service Oriented Architecture (SOA) in the Real World, bb aspx [4] Chris Peiris, Dennis Mulder Hosting and Consuming WCF Services, bb aspx 18

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL.

Codici sorgenti di esempio per l'invio di email da pagine WEB per gli spazi hosting ospitati presso ITESYS SRL. Data: 8 Ottobre 2013 Release: 1.0-15 Feb 2013 - Release: 2.0 - Aggiunta procedura per inviare email da Windows con php Release: 2.1-20 Mar 2013 Release: 2.2-8 Ottobre 2013 - Aggiunta procedura per inviare

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras 2 Introduzione Le architetture basate sui servizi (SOA) stanno rapidamente diventando lo standard de facto per lo sviluppo delle applicazioni aziendali.

Dettagli

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi

APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO. Francesco Marchione e Dario Richichi APPLICAZIONE WEB PER LA GESTIONE DELLE RICHIESTE DI ACQUISTO DEL MATERIALE INFORMATICO Francesco Marchione e Dario Richichi Istituto Nazionale di Geofisica e Vulcanologia Sezione di Palermo Indice Introduzione...

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Funzioni di base. Manualino OE6. Outlook Express 6

Funzioni di base. Manualino OE6. Outlook Express 6 Manualino OE6 Microsoft Outlook Express 6 Outlook Express 6 è un programma, incluso nel browser di Microsoft Internet Explorer, che ci permette di inviare e ricevere messaggi di posta elettronica. È gratuito,

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

più del mercato applicazioni dei processi modificato. Reply www.reply.eu

più del mercato applicazioni dei processi modificato. Reply www.reply.eu SOA IN AMBITO TELCO Al fine di ottimizzare i costi e di migliorare la gestione dell'it, le aziende guardano, sempre più con maggiore interesse, alle problematiche di gestionee ed ottimizzazione dei processi

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 Sistemi Web-Based - Terminologia Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 CLIENT: il client è il programma che richiede un servizio a un computer collegato in

Dettagli

Architettura SPC e porta di dominio per le PA

Architettura SPC e porta di dominio per le PA Libro bianco sulla SOA v.1.0 Allegato 2_1 Architettura SPC e porta di dominio per le PA vs 02 marzo 2008 Gruppo di Lavoro SOA del ClubTI di Milano Premessa L architettura SPC e la relativa porta di dominio

Dettagli

Mobile Messaging SMS. Copyright 2015 VOLA S.p.A.

Mobile Messaging SMS. Copyright 2015 VOLA S.p.A. Mobile Messaging SMS Copyright 2015 VOLA S.p.A. INDICE Mobile Messaging SMS. 2 SMS e sistemi aziendali.. 2 Creare campagne di mobile marketing con i servizi Vola SMS.. 3 VOLASMS per inviare SMS da web..

Dettagli

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014 Processi di business sovra-regionali relativi ai sistemi regionali di FSE Versione 1.0 24 Giugno 2014 1 Indice Indice... 2 Indice delle figure... 3 Indice delle tabelle... 4 Obiettivi del documento...

Dettagli

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute DNS: Domain Name System I name DNS Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP ( bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

GUIDA ALLA CONFIGURAZIONE DELLA POSTA iphone/ipad. (v. 1.0.0 Maggio 2014)

GUIDA ALLA CONFIGURAZIONE DELLA POSTA iphone/ipad. (v. 1.0.0 Maggio 2014) GUIDA ALLA CONFIGURAZIONE DELLA POSTA iphone/ipad (v. 1.0.0 Maggio 2014) Benvenuto alla guida di configurazione della posta elettronica per dispositivi mobili tipo iphone/ipad. Prima di proseguire, assicurati

Dettagli

B.P.S. Business Process Server ALLEGATO C10

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

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Le caratteristiche di interoperabilità del Terrapack 32 M

Le caratteristiche di interoperabilità del Terrapack 32 M I T P E l e t t r o n i c a Le caratteristiche di interoperabilità del Terrapack 32 M M. Guerriero*, V. Ferrara**, L. de Santis*** * ITP Elettronica ** Dipartimento di Ingegneria Elettronica Univ. La Sapienza

Dettagli

Guida ai Servizi Internet per il Referente Aziendale

Guida ai Servizi Internet per il Referente Aziendale Guida ai Servizi Internet per il Referente Aziendale Indice Indice Introduzione...3 Guida al primo accesso...3 Accessi successivi...5 Amministrazione dei servizi avanzati (VAS)...6 Attivazione dei VAS...7

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE Versione 1.0 Via della Fisica 18/C Tel. 0971 476311 Fax 0971 476333 85100 POTENZA Via Castiglione,4 Tel. 051 7459619 Fax 051 7459619

Dettagli

PRESENTAZIONE DI UN SMS AL GATEWAY

PRESENTAZIONE DI UN SMS AL GATEWAY Interfaccia Full Ascii Con questa interfaccia è possibile inviare i dati al Server utilizzando solo caratteri Ascii rappresentabili e solo i valori che cambiano tra un sms e l altro, mantenendo la connessione

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Guida alla configurazione della posta elettronica. bassanonet.com

Guida alla configurazione della posta elettronica. bassanonet.com Guida alla configurazione della posta elettronica bassanonet.com 02 Guida alla configurazione della posta elettronica I programmi di posta elettronica consentono di gestire una o più caselle e-mail in

Dettagli

iphone in azienda Guida alla configurazione per gli utenti

iphone in azienda Guida alla configurazione per gli utenti iphone in azienda Guida alla configurazione per gli utenti iphone è pronto per le aziende. Supporta Microsoft Exchange ActiveSync, così come servizi basati su standard, invio e ricezione di e-mail, calendari

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

FORM Il sistema informativo di gestione della modulistica elettronica.

FORM Il sistema informativo di gestione della modulistica elettronica. Studio FORM FORM Il sistema informativo di gestione della modulistica elettronica. We believe in what we create This is FORM power La soluzione FORM permette di realizzare qualsiasi documento in formato

Dettagli

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato Intalio Convegno Open Source per la Pubblica Amministrazione Leader nei Sistemi Open Source per il Business Process Management Navacchio 4 Dicembre 2008 Andrea Calcagno Amministratore Delegato 20081129-1

Dettagli

GESTIONE DELLA E-MAIL

GESTIONE DELLA E-MAIL GESTIONE DELLA E-MAIL Esistono due metodologie, completamente diverse tra loro, in grado di consentire la gestione di più caselle di Posta Elettronica: 1. tramite un'interfaccia Web Mail; 2. tramite alcuni

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI

E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA OTTIMIZZAZIONE DEI PROCESSI AZIENDALI E-MAIL INTEGRATA Ottimizzazione dei processi aziendali Con il modulo E-mail Integrata, NTS Informatica ha realizzato uno strumento di posta elettronica

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso Integrare le MFC con Irrlicht by Raffaele White tiger Mancuso In questo topic spiegherò come integrare irrlicht in un documento singolo MFC *(1). Io ho usato il visual c++ 6 ma la procedura dovrebbe essere

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

Client di Posta Elettronica PECMailer

Client di Posta Elettronica PECMailer Client di Posta Elettronica PECMailer PECMailer è un semplice ma completo client di posta elettronica, ovvero un programma che consente di gestire la composizione, la trasmissione, la ricezione e l'organizzazione

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

Plesk Automation. Parallels. Domande tecniche più frequenti Parallels Plesk Automation Primo trimestre, 2013 Domande tecniche più frequenti Questo documento ha come scopo quello di rispondere alle domande tecniche che possono sorgere quando si installa e si utilizza

Dettagli

Guida all uso. Come ricevere ed inviare Fax ed Sms tramite E-mail in 3 semplici passi.

Guida all uso. Come ricevere ed inviare Fax ed Sms tramite E-mail in 3 semplici passi. Guida all uso Come ricevere ed inviare Fax ed Sms tramite E-mail in 3 semplici passi. Legenda Singolo = Fax o SMS da inviare ad un singolo destinatario Multiplo = Fax o SMS da inviare a tanti destinatari

Dettagli

Express Import system

Express Import system Express Import system Manuale del destinatario Sistema Express Import di TNT Il sistema Express Import di TNT Le consente di predisporre il ritiro di documenti, pacchi o pallet in 168 paesi con opzione

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana Storie di successo Microsoft per le Imprese Scenario: Software e Development Settore: Servizi In collaborazione con Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci

Dettagli

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Configurazione avanzata di IBM SPSS Modeler Entity Analytics Configurazione avanzata di IBM SPSS Modeler Entity Analytics Introduzione I destinatari di questa guida sono gli amministratori di sistema che configurano IBM SPSS Modeler Entity Analytics (EA) in modo

Dettagli

2 Requisiti di sistema 4 2.1 Requisiti software 4 2.2 Requisiti hardware 5 2.3 Software antivirus e di backup 5 2.4 Impostazioni del firewall 5

2 Requisiti di sistema 4 2.1 Requisiti software 4 2.2 Requisiti hardware 5 2.3 Software antivirus e di backup 5 2.4 Impostazioni del firewall 5 Guida introduttiva Rivedere i requisiti di sistema e seguire i facili passaggi della presente guida per distribuire e provare con successo GFI FaxMaker. Le informazioni e il contenuto del presente documento

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Installazione di GFI Network Server Monitor

Installazione di GFI Network Server Monitor Installazione di GFI Network Server Monitor Requisiti di sistema I computer che eseguono GFI Network Server Monitor richiedono: i sistemi operativi Windows 2000 (SP4 o superiore), 2003 o XP Pro Windows

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

[05/05/2008 NOTA 11] Le note sono elencate dalla più recente alla meno recente.

[05/05/2008 NOTA 11] Le note sono elencate dalla più recente alla meno recente. Questo documento riporta delle note integrative ai documenti di riferimento della Posta Elettronica Certificata (PEC). Nello specifico le seguenti note fanno riferimento a: Decreto del Presidente della

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

MANUALE DI UTILIZZO SMS MESSENGER

MANUALE DI UTILIZZO SMS MESSENGER MANUALE DI UTILIZZO SMS MESSENGER (Ultimo aggiornamento 14/05/2014) 2013 Skebby. Tutti i diritti riservati. INDICE INTRODUZIONE... 1 1.1. Cos è un SMS?... 1 1.2. Qual è la lunghezza di un SMS?... 1 1.3.

Dettagli

APPENDICE 3 AL CAPITOLATO TECNICO

APPENDICE 3 AL CAPITOLATO TECNICO CONSIP S.p.A. APPENDICE 3 AL CAPITOLATO TECNICO Manuale d uso del programma Base Informativa di Gestione (BIG), utilizzato per la raccolta delle segnalazioni ed il monitoraggio delle attività di gestione

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet: la rete delle reti Alberto Ferrari Connessioni

Dettagli

MANUALE DI UTILIZZO WEB SMS

MANUALE DI UTILIZZO WEB SMS MANUALE DI UTILIZZO WEB SMS (Ultimo aggiornamento 24/08/2011) 2011 Skebby. Tutti i diritti riservati. INDICE INTRODUZIONE... 8 1.1. Cos è un SMS?... 8 1.2. Qual è la lunghezza di un SMS?... 8 1.3. Chi

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

2. GESTIONE DOCUMENTI NON SBN

2. GESTIONE DOCUMENTI NON SBN Istituto centrale per il catalogo unico delle biblioteche italiane e per le informazioni bibliografiche APPLICATIVO SBN-UNIX IN ARCHITETTURA CLIENT/SERVER 2. GESTIONE DOCUMENTI NON SBN Manuale d uso (Versione

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

WAN 80.80.80.80 / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP.

WAN 80.80.80.80 / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP. Configurazione di indirizzi IP statici multipli Per mappare gli indirizzi IP pubblici, associandoli a Server interni, è possibile sfruttare due differenti metodi: 1. uso della funzione di Address Translation

Dettagli

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it

Guida all'installazione di SLPct. Manuale utente. Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Guida all'installazione di SLPct Manuale utente Evoluzioni Software www.evoluzionisoftware.it info@evoluzionisoftware.it Premessa Il redattore di atti giuridici esterno SLpct è stato implementato da Regione

Dettagli

FileMaker Server 13. Guida introduttiva

FileMaker Server 13. Guida introduttiva FileMaker Server 13 Guida introduttiva 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono marchi

Dettagli

IT Club FVG Ditedi CMDBuild: case study di un progetto open source www.cmdbuild.org Fabio Bottega f.bottega@tecnoteca.com

IT Club FVG Ditedi CMDBuild: case study di un progetto open source www.cmdbuild.org Fabio Bottega f.bottega@tecnoteca.com IT Club FVG Ditedi CMDBuild: case study di un progetto open source www.cmdbuild.org Fabio Bottega f.bottega@tecnoteca.com 2 Tecnoteca è nata nel 2000 con sede a Tavagnacco ha scelto da subito di lavorare

Dettagli

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

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

Dettagli

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 Con questo aggiornamento sono state implementate una serie di funzionalità concernenti il tema della dematerializzazione e della gestione informatica dei documenti,

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE

Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE Programma Enti Locali Innovazione di Sistema Esperienze e soluzioni realizzate nell ambito del Progetto S.I.MO.NE 1 Premessa Il presente documento ha lo scopo di facilitare la disseminazione e il riuso

Dettagli

È nata una nuova specie di avvocati. Liberi.

È nata una nuova specie di avvocati. Liberi. È nata una nuova specie di avvocati. Liberi. LIBERI DI NON PENSARCI Basta preoccupazioni per il back-up e la sicurezza dei tuoi dati. Con la tecnologia Cloud Computing l archiviazione e la protezione dei

Dettagli

Procedura per il ripristino dei certificati del dispositivo USB

Procedura per il ripristino dei certificati del dispositivo USB Procedura per il ripristino dei certificati del dispositivo USB 30/04/2013 Sommario - Limitazioni di responsabilità e uso del manuale... 3 1 Glossario... 3 2 Presentazione... 4 3 Quando procedere al ripristino

Dettagli

Windows Mail Outlook Express 6 Microsoft Outlook 2003 Microsoft Outlook 2007 Thunderbird Opera Mail Mac Mail

Windows Mail Outlook Express 6 Microsoft Outlook 2003 Microsoft Outlook 2007 Thunderbird Opera Mail Mac Mail Configurare un programma di posta con l account PEC di Il Titolare di una nuova casella PEC può accedere al sistema sia tramite Web (Webmail i ), sia configurando il proprio account ii nel programma di

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

G e s t i o n e U t e n z e C N R

G e s t i o n e U t e n z e C N R u t e n t i. c n r. i t G e s t i o n e U t e n z e C N R G U I D A U T E N T E Versione 1.1 Aurelio D Amico (Marzo 2013) Consiglio Nazionale delle Ricerche - Sistemi informativi - Roma utenti.cnr.it -

Dettagli

Progetto Istanze On Line

Progetto Istanze On Line 2014 Progetto Istanze On Line 09 aprile 2014 INDICE 1 INTRODUZIONE ALL USO DELLA GUIDA... 3 1.1 SIMBOLI USATI E DESCRIZIONI... 3 2 GESTIONE DELL UTENZA... 4 2.1 COS È E A CHI È RIVOLTO... 4 2.2 NORMATIVA

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Agilent OpenLAB Chromatography Data System (CDS)

Agilent OpenLAB Chromatography Data System (CDS) Agilent OpenLAB Chromatography Data System (CDS) EZChrom Edition e ChemStation Edition Requisiti hardware e software Agilent Technologies Informazioni legali Agilent Technologies, Inc. 2013 Nessuna parte

Dettagli