UNVERSITÀ POLITECNICA DELLE MARCHE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNVERSITÀ POLITECNICA DELLE MARCHE"

Transcript

1 UNVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica Progettazione e sviluppo di un sistema software distribuito per il supporto alla vendita con fat client mobile multipiattaforma. Relatore: Chiar.mo Prof. Aldo Franco Dragoni Tesi di Laurea di: Emanuele Rampichini Anno Accademico

2 2

3 1 Introduzione e obiettivi 5 2 Panoramica del progetto Il dominio applicativo Il processo di vendita tradizionale Il processo di vendita automatizzato La necessità della forza vendita Il contesto Lo stato dell arte Ortogonalità rispetto al sistema informatico aziendale Lo scenario Sempre connesso L evoluzione nel tempo Una visione d insieme del progetto 13 3 Le tecnologie scelte Ambiente di programmazione e linguaggio L ambiente.net Il linguaggio C# Lo stack tecnologico nelle varie componenti Integratore Server Client 34 4 L architettura del sistema L integratore Scambio dei dati batch Database condiviso Scambio di dati destrutturati in streaming Chiamata a procedura remota Scambio di messaggi La soluzione adottata per il flusso d importazione La soluzione adottata per il flusso di esportazione Accesso condiviso al database d interscambio Il server Architettura REST Utilizzo esplicito dei metodi Http Stateless vs Statefull Esposizione di URI con struttura a directory Trasferimento dei dati in JSON o XML Sicurezza Architettura del core dell applicazione client Data Preparation Data Access Repository Pattern Request Reponse Layer Presentation layer 90 5 La qualità del software Il Testing I test unitari I test unitari come strumento di design I test d integrazione I test di accettazione Metriche 110 3

4 5.2.1 Complesità Ciclomatica Profondità dell ereditarietà Accoppiamento tra classi Indice di manutenibilità Conclusioni e sviluppi futuri Bibliografia 115 4

5 1 - Introduzione e obiettivi 1 Introduzione e obiettivi La presente tesi di laurea è il frutto del lavoro svolto in circa sei mesi presso le due aziende 1 coinvolte nello sviluppo di un software di classe enterprise. L'obiettivo principale della trattazione è di evidenziare e motivare in maniera sistematica le molteplici scelte tecnologiche, architetturali e metodologiche che sono state fatte in fase di progettazione e sviluppo, come risposta ai requisiti di un sistema software complesso. Nello specifico nel capitolo due sarà fatta una panoramica di alto livello del dominio in cui il software si colloca, esponendo i principali requisiti funzionali e non che hanno guidato la progettazione. Nel capitolo tre saranno discusse le scelte tecnologiche che sono state intraprese per implementare i vari componenti del sistema. Verranno analizzate in maniera approfondita le caratteristiche dell ambiente.net e del linguaggio C# utilizzati per l implementazione del software. Nel quarto capitolo saranno analizzate le varie questioni architetturali che sono state affrontate durante tutto il ciclo di sviluppo in tutti gli strati del software. Particolare importanza sarà data alla parte riguardante il processo di integrazione tra sistemi informatici eterogenei e le sfide incontrate durante la progettazione. Saranno inoltre introdotti i concetti principali delle architetture a servizi di tipo REST e come tali principi sono stati applicati nello strato server del progetto. L ultima parte del capitolo sarà dedicata all analisi dei pattern architetturali utilizzati all interno dell applicazione client partendo da quelli per l accesso ai dati, fino ad arrivare allo strato di presentazione. 1 E- xtrategy S.r.l. Kilog S.r.l. 5

6 1 - Introduzione e obiettivi Il quarto capitolo sarà dedicato a tutto quello che riguarda la qualità del software, con una particolare attenzione alla fase di testing. Saranno inoltre analizzate diverse metriche per validare in maniera rigorosa la qualità della base di codice prodotta. La scelta di anticipare nel secondo capitolo la trattazione delle scelte tecnologiche rispetto a quelle architetturali, è derivata dalla volontà di evidenziare nella trattazione architetturale alcuni specifici aspetti ideomatici dell implementazione che altrimenti potrebbero sembrare fuori dal contesto. 6

7 2 - Panoramica del progetto 2 Panoramica del progetto 2.1 Il dominio applicativo Il dominio in cui si colloca il progetto sviluppato è quello dell'automatizzazione del processo di creazione e acquisizione ordini da parte della forza di vendita di un azienda. Gli attori che sono coinvolti nel processo di vendita nella grande distribuzione sono tre: L'azienda fornitrice: Rappresenta l'entità che eroga servizi o crea prodotti che dovranno essere venduti. Il cliente: Chi richiede servizi o prodotti dell'azienda fornitrice. L'agente di commercio: Soggetto che assume in maniera stabile, senza vincolo di subordinazione, l'incarico di stabilire dei contratti commerciali tra l'azienda e dei clienti, secondo un accordo, chiamato contratto di agenzia, che lo vincola a svolgere questo mandato su una precisa area geografica Il processo di vendita tradizionale Il processo di vendita tradizionale può essere suddiviso in quattro macro fasi: Scrittura Trasmissione Interpretazione Caricamento Immagine 1: Fasi del processo di vendita tradizionale Scrittura: La fase di scrittura è quella che avviene presso il cliente. Nel processo tradizionale l'agente di commercio, consultando un catalogo, le 7

8 2 - Panoramica del progetto condizioni di vendita ed eventuali promozioni, propone al cliente prodotti e servizi. Il prodotto del processo di scrittura solitamente è un ordine di vendita compilato a mano su un modello cartaceo standardizzato, secondo delle specifiche regole. Trasmissione: Una volta compilato l'ordine, la trasmissione può avvenire tramite una postazione fissa attraverso l'uso di FAX o in alternativa per ordini importanti tramite comunicazione diretta per via telefonica. Interpretazione: Il processo d interpretazione avviene all'interno dell'azienda produttrice. In questa fase un addetto dell'azienda ha il compito di decifrare quanto scritto dall'agente. Caricamento: Una volta decodificato il contenuto dell'ordine è necessaria una fase di integrazione e consolidamento dell'informazione all'interno dell'erp Aziendale. È particolarmente semplice individuare le criticità di tale processo nei termini di efficienza ed efficacia. Input Processo Output Effettivo Immagine 2: Modello di un generico processo Efficacia =!"#$"#!""#$$%&'!"#$"#!""#$% Efficienza =!"#$"#!""#$$%&'!"#$% In questo caso si può modellare come quantità di Input il costo del lavoro compiuto dagli attori coinvolti nel processo che porta un ordine dalla scrittura 8

9 2 - Panoramica del progetto al consolidamento nell'erp aziendale. Il parametro in output dal processo può essere identificato con il numero di ordini correttamente presi in carico dall'erp. Costo del lavoro compiuto da tutti gli attori coinvolti Processo che porta un'ordine dalla scrittura al consolidamento nell'erp aziendale Ordini correttamente presi in carico dall'erp Immagine 3: Modello del processo di consolidamento di un ordine nell'erp La prima e più grave criticità nel processo tradizionale è quella legata all'efficacia. La condizione essenziale di un qualsiasi processo aziendale è il raggiungimento dell'obiettivo. In questo caso le fasi di scrittura, trasmissione, interpretazione e caricamento sono eseguite del tutto o in parte da persone in maniera manuale. Ciascun passaggio in cui è coinvolto un attore umano rappresenta un possibile punto di fallimento della catena che porta al raggiungimento dell'obiettivo. Situazioni comuni come interpretazione errata della calligrafia di un'agente, o errori in fase d inserimento dati concorrono ad abbassare in maniera critica l'output effetivo del processo e quindi la sua efficacia. D'altro canto è anche semplice capire come l'efficienza sia molto migliorabile. Nel processo tradizionale appena presentato, anche ragionando al netto degli errori di cui abbiamo parlato, il consolidamento di un ordine richiede tempi nell'ordine dei minuti. 9

10 2 - Panoramica del progetto Il processo di vendita automatizzato Le problematiche esposte nel precedente paragrafo possono essere risolte con l'automatizzazione del processo. Nello specifico si può analizzare come le varie fasi del processo di vendita tradizionale possono essere soddisfatte da un sistema informatico. Scrittura: La fase di scrittura è quella che avviene presso il cliente. Invece di consultare catalogo e condizioni di vendita su carta l'agente può cercare direttamente dal suo sistema informatico portatile, inserendo in maniera contestuale alla ricerca, prodotti o servizi già codificati all interno di un ordine. Trasmissione: L'ordine è validato in fase di creazione e compilazione. L'ordine è spedito immediatamente attraverso internet. L'unico requisito per la spedizione dell'ordine è la presenza di connessione dati di qualsiasi tipo (wifi, 3g, gprs). Interpretazione: La risorsa ordine inviata dal tablet è persistita da un server collocato all'interno dell'azienda produttrice. Successive validazioni possono essere fatte lato server in maniera automatizzata prima della persistenza. Caricamento: Il caricamento vero e proprio nell'erp aziendale rappresenta l'ultimo passo. Un processo automatizzato trasforma l'ordine per adattarlo ad una struttura di interscambio precedentemente concordata. 10

11 2 - Panoramica del progetto Riprendendo le considerazioni su efficienza ed efficacia esposte in precedenza si può vedere come il processo automatizzato minimizza tutte le crititicità esposte. Nello specifico il processo di scrittura è molto più rapido, poichè assistito dall'elaboratore. Inoltre il fatto che l'agente interagisca direttamente con i dati delle anagrafiche correttamente codificati fa si che non ci siano errori in fase di stesura dell'ordine. La criticità della trasmissione è solamente legata allo stato della connessione di rete ed è completata nell'arco di tempo di alcuni secondi. Gli errori dovuti al processo d interpretazione in un sistema a regime sono da considerarsi in sostanza assenti poichè i dati sono inviati in formati interpretabili in maniera corretta dalla macchina. Sia in fase di stesura dell'ordine che in fase d interpretazione possono, a loro volta, essere eseguite delle regole di business personalizzate per la validazione dell'ordine. Rientrano in questa categoria di operazoni condizioni particolari per clienti o per tipologie merceologiche, blocco automatico di acquisti per clienti insolventi e altre regole simili. È particolarmente vantaggiosa la possibilità di applicare questo tipo di regole di business direttamente in fase di creazione dell'ordine presso il cliente, cosa in pratica impossibile in caso di processo di vendita tradizionale. Nel caso tradizionale, una condizione non valida per un determinato cliente, può essere notificata all'agente solo dopo un lungo periodo, con tutte le conseguenze del caso La necessità della forza vendita Proseguendo lungo la linea di ragionamento dell ottimizzazione del processo si potrebbe arrivare a semplificare ulteriormente la catena eliminando completamente la figura dell agente di vendita. 11

12 2 - Panoramica del progetto Dal punto di vista tecnico in un sistema di vendita informatizzato come quello descritto nel precedente paragrafo, la presenza dell agente di vendita funge da mera interfaccia tra il cliente e il sistema informativo aziendale. Sebbene in alcuni ambiti la rimozione della figura intermedia dell agente commerciale si sia rivelata una scelta valida 2, in altri contesti, soprattutto nei rapporti business to business, continua a rappresentare un valore aggiunto per spingere le vendite. Il rapporto umano rappresenta ancora un parametro importante per la fidelizzazione del cliente. 2.2 Il contesto Il dominio non è sufficiente per capire a pieno le necessità che copre un software di questo tipo. Per comprendere al meglio le esigenze è necessario fare alcune considerazioni dell ambiente in cui andrà a collocarsi Lo stato dell arte Strumenti come quelli descritti esistono da svariati anni come soluzioni verticali profondamente integrate con l ERP. Prodotti SAP, Oracle forniscono in parte alcune funzionalità di questo tipo ma moltissime imprese sono legate all utilizzo di gestionali legacy nati in periodi di tempo in cui lo scenario di mobilità totale non poteva essere al centro delle scelte dei progettisti Ortogonalità rispetto al sistema informatico aziendale Il software che è stato progettato in questo contesto deve potersi integrare in maniera semplice con sistemi legacy, senza particolari prerequisiti. L ortogonalità della soluzione software rispetto al sistema informatico aziendale è uno dei valori fondanti che ha guidato la progettazione e lo sviluppo dell applicazione. 2 Amazon, ed altri portali di commercio online hanno basato su questa strategia la propria crescita esponenziale negli ultimi anni. 12

13 2 - Panoramica del progetto Lo scenario Sempre connesso Sebbene si possa dire che l evoluzione delle tecnologie stia trasformando il mondo del lavoro in uno scenario sempre connesso, l esigenza reale di un agente commerciale è quella di portare a termine il proprio lavoro anche in assenza di connessione di rete. Questo significa che dal punto di vista della creazione di un prodotto bisogna pensare un sistema che sia capace da subito di lavorare sia in modalità offline che online. La scelta di creare un sistema del genere porta delle sfide progettuali non indifferenti ma allo stesso tempo garantisce un valore immediato che pochi altri competitor sono in grado di garantire L evoluzione nel tempo L altro principio cardine che ha condizionato in molti aspetti la progettazione del software è legato alla volontà di gettare le basi per un progetto da far evolvere nel tempo, capace di reagire ai repentini cambi di scenario. Lo sviluppo di codice il più possibile portabile tra le maggiori piattaforme mobile è stato individuato come uno dei punti centrali su cui concentrarsi, soprattutto per l estrema vivacità del mercato dei sistemi operativi mobile che in questo momonto storico può essere registrata. Allo stesso tempo sono state fatte scelte per non compromettere la possibilità di sviluppare client non legati a nessun sistema operativo in particolare, facendo uso di tecnologie e standard WEB. 2.3 Una visione d insieme del progetto Il progetto nella sua visione di alto livello può essere rappresentato dalla seguente figura. 13

14 2 - Panoramica del progetto Immagine 4: Schema concettuale di alto livello del prodotto sviluppato Nell immagine possiamo vedere in maniera generale gli attori coinvolti. Alla sinistra abbiamo molteplici software gestionali che sono coinvolti in una comunicazione bidirezionale con il sistema sviluppato. Il progetto che è stato portato avanti può essere suddiviso in tre macro aree con precise responsabilità: L integratore Si occupa della gestione dei flussi di import ed export di dati con il gestionale aziendale. Rappresenta l unico punto di contatto con l ERP dell azienda. Server Espone tutti i servizi di sincronizzazione, autenticazione, configurazione e comunicazione consumabili da un qualsiasi client. Fat Client Usufruisce dei servizi di sincronizzazione e di comunicazione con il server. Una volta sincronizzato ha al suo interno tutta la logica di 14

15 2 - Panoramica del progetto business e la porzione di dati necessaria a svolgere la maggior parte dei compiti richiesti dall agente di commercio. Sono esclusi I compiti che implicano una comunicazione con il server. 15

16 3 - Le tecnologie scelte 3 Le tecnologie scelte Come già spiegato nell introduzione, in questo capitolo si è deciso di presentare le tecnologie scelte per l implementazione dei diversi progetti sviluppati. Il capitolo non vuole in alcun modo essere una trattazione esaustiva dell infrastruttura tecnologica, quanto piuttosto una necessaria introduzione per mettere nel giusto contesto quanto spiegato nei capitoli successivi. Le scelte compiute saranno comunque motivate in relazione agli obbiettivi del progetto. 3.1 Ambiente di programmazione e linguaggio L ambiente.net L ambiente.net è un framework generalmente associato al sistema operativo Microsoft Windows. Il progetto include una vastissima libreria standard per tutte le esigenze comuni di applicazioni Enterprise. Il framework.net grazie all utilizzo di una virtual machine che consuma Bytecode intermedio supporta una grande varietà di linguaggi di programmazione. I programmi scritti per il.net framework vengono eseguiti in un ambiente software conosciuto come CLR 3, una macchina virtuale che fornisce servizi fondamentali. Fanno parte di questi servizi la sicurezza, il memory management e il sistema di gestione delle eccezioni. 3 Common Language Runtime 16

17 3 - Le tecnologie scelte CLR Class Library.NET Framework Immagine 5: Composizione del.net framework Il.NET framework non è nient altro che l insieme formato dal CLR ed un estesa class library che gira sullo stesso. Immagine 6: Stack delle API del.net framework Le funzionalità di alto livello fornite dal framework comprendono: Gestione dell accesso ai dati Connessione con basi di dati Comunicazione di rete Crittografia Algoritmi di calcolo numerico 17

18 3 - Le tecnologie scelte Creazione di interfaccie utente I motivi principali che hanno portato a questa scelta riguardano l estrema maturità dello stack tecnologico, e la bontà degli strumenti di sviluppo che ruotano intorno a questà tecnologia. I principi fondanti del framework.net possono essere riassunti in sette punti e per ciascun punto può essere indicato il valore portato in maniera diretta al progetto: Interoperabilità: Il framework permette di interfacciarsi in maniera semplice a programmi che sono stati sviluppati con altre tecnologie legacy scollegate dall ambiente.net. Esistono packages per l interfacciamento con moduli scritti per il modello COM 4 ed ad un livello più basso funzionalità di Platform Invoke 5 per chiamare una qualsiasi funzione di una qualsiasi libreria compilata nativamente non scritta per il.net framework. Queste caratteristiche sono particolarmente interessanti nella misura in cui nell ambito dell sviluppo enterprise può presentarsi l esigenza di integrare all interno del progetto codice di librerie largamente collaudate legate a tecnologie eterogenee. Indipendenza Dal Linguaggio: Il fatto che il framework poggi sul Common Language Runtime, significa che tutto il codice scritto in un programma.net viene eseguito sotto la sua supervisione garantendo comportamenti precisi e prevedibili per quanto riguarda la gestione della memoria, la sicurezza e la gestione 4 Component Object Model 5 PInvoke 18

19 3 - Le tecnologie scelte delle eccezioni. La presenza del CLR garantisce inoltre l indipendenza dal linguaggio di programmazione scelto. Il CLR esegue un particolare tipo di codice intermedio chiamato CIL 6 (linguaggio assembly di alto livello). Qualsiasi linguaggio che abbia un compilatore per il codice intermedio CIL può essere utilizzato in ambiente.net. Immagine 7: Schema di funzionamento della CLI Anche questa caratteristica nel caso del progetto svolto si è rivelata particolarmente utile. La possibilità di integrare in maniera trasparente class library scritte all interno dell azienda per altri progetti in linguaggi 6 Common Intermediate Language 19

20 3 - Le tecnologie scelte diversi ma sempre su framework.net ha permesso di annullare per determinati componenti non direttamente legati al dominio (gestione dei log, gestione dello scheduling di operazioni lunghe) i tempi di sviluppo. L altro vantaggio non immediatamente riscontrato è quello della tranquillità con cui si possono valutare le nuove proposte tecnologiche. Il mondo dei linguaggi di programmazione ultimamente è in continuo fermento e vecchi paradigmi come quello funzionale stanno uscendo dall ambito prettamente accademico per affacciarsi a quello del software enterprise. La prospettiva di poter fare un salto di paradigma, mantenendo comunque la vecchia base di codice funzionante e integrabile in maniera trasparente rende un eventuale strategia di migrazione futura molto più morbida e graduale, con tutti I vantaggi del caso. Estesa Base Class Library: Il.NET framework fornisce una class library di base disponibile a tutti i linguaggi scritti per girare all interno del CLR. Le funzionalità fornite spaziano in tutti gli ambiti come gestione dei file, l interazione con database, supporto all implementazione di protocolli di rete, creazione di interfacce grafiche e molto altro. Le applicazioni enterprise complesse spaziano tra esigenze molto eterogenee. Nel progetto specifico la class library è stata utilizzata in maniera estensiva. Poter far affidamento su librerie di sistema con elevati standard qualitativi per assolvere i compiti infrastrutturali permette di concentrare le proprie forze sulla risoluzione dei problemi del dominio di business. 20

21 3 - Le tecnologie scelte Supporto in fase di deployment Il framework fornisce strumenti per la gestione del deployment dei progetti. La configurazione della build e quella centralizzata delle impostazioni di ambiente con possibilità di regole particolari per le macchine dei singoli sviluppatori, sono solo alcune delle caratteristiche fornite. A questo livello possono essere anche definite le policy di sicurezza del prodotto da deployare in maniera dinamica. Il vantaggio principale che questa caratteristica ha portato è stato quello di poter configurare in maniera agevole le varie installazioni, differenziando le configurazioni per gli ambienti di lavoro degli sviluppatori da quelle per il deploy presso specifici clienti. Sicurezza: L intero framework è stato progettato e sviluppato con la sicurezza in cima alla lista degli obiettivi. Il framework mette al riparo il proprio codice dalle classiche vulnerabilità del codice nativo come l utilizzo di Buffer Overflow per scalare i privilegi su una macchina di produzione. Sarebbe possibile motivare l estrema bontà del modello di sicurezza su cui è stato costruito il CLR, ma la cosa esulerebbe dagli scopi della trattazione. Per chi fosse interessato, è comunque disponibile un interessante paper, pubblicato dal dipartimento di informatica dell Università Della Virginia 7, che lo mette a confronto con quello della JVM 8. 7 Comparing Java and.net Security: Lessons Learned and Missed: Nathanael Paul, David Evans University of Virginia Department of Computer Science 8 Java Virtual Machine 21

22 3 - Le tecnologie scelte In questo caso il vantaggio è implicito. Poter fare affidamento su uno stack che garantisca livelli di sicurezza allo stato dell arte, è senza dubbio un enorme valore per applicazioni business. Portabilità Nonostante la Microsoft non abbia mai realizzato direttamente un implementazione del framework completo all infuori del proprio sistema operativo Windows, il framework è stato progettato per essere agnostico rispetto alla piattaforma. Le specifiche della CLI 9 che includono le librerie core, il type system, il CIL, il linguaggio C#, il linguaggio C++/CLI managed, sono state rilasciate all ECMA e all ISO e sono disponibili come open standard 10. Questa caratteristica è stata senza dubbio quella più importante per la scelta della tecnologia. La disponibilità di specifiche aperte ha permesso l implementazione dell alternativa Open Source MONO, che ha portato un implementazione di primo livello del framework.net su tutti I sistemi operativi principali Il linguaggio C# Il linguaggio utilizzato per l implementazione vera e propria delle varie componenti del software sviluppato è il C#. Come visto nel paragrafo precedente C# oltre ad essere uno dei tanti linguaggi supportati dal CLR fa parte della CLI come parte dello standard ISO/IEC e ECMA 335. Le principali caratteristiche del linguaggio possono essere comprese dai suoi principi fndanti: 9 Common Language Infrastructure 10 ISO/IEC e ECMA

23 3 - Le tecnologie scelte C# è stato progettato da un team guidato da Anders Hejlsberg 11 con l obbiettivo di creare un linguaggio semplice, moderno, general purpose ed object oriented. Il linguaggio appartiene alla famiglia dei linguaggi statici a tipizzazione forte, anche se elementi di dinamismo sono stati inseriti in seguito nel linguaggio. Il linguaggio presenta inoltre meccanismi di garbage collection per la gestione automatica della memoria. Analizzando solo queste caratteristiche principali, molti potrebbero rivedere un parallelo molto forte tra il mondo Java e questo. In fondo si tratta di linguaggi statici, fortemente tipizzati, object oriented che compilano in codice intermedio per una macchina virtuale. Il paragone è naturale e giustificato ma il linguaggio C# ha saputo nel tempo innovarsi e accogliere tutta una serie di caratteristiche avanzate che lo hanno di fatto reso un linguaggio fortemente caratterizzato. In questa fase ne vedremo alcune particolarmente interessanti che sono state introdotte nelle varie versioni dello standard. Generics: Grazie ai generics è possibile progettare classi che rinviano la conoscenza del tipo fino a quando il codice client non crea un istanza della classe specificando il tipo come parametro. 11 Come nota storica è interessante notare che Anders Hejlsberg prima di intraprendere il suo lavoro su C# era già famoso nell ambiente dei linguaggi di programmazione per aver contribuito in maniera fondamentale alla creazione del più celebre dialetto del Pascal (Turbo Pascal della Borland) e del suo diretto derivato ad oggetti Delphi (della medesima Software House Francese) 23

24 3 - Le tecnologie scelte // Dichiarazione di una classe generica public class GenericList<T> { void Add(T input) { } } class TestGenericList { private class ExampleClass { } static void Main() { // Dichiara una lista di tipo int GenericList<int> list1 = new GenericList<int>(); // Dichiara una lista di tipo stringa GenericList<string> list2 = new GenericList<string>(); } } // Dichiara una lista di tipo ExampleClass GenericList<ExampleClass> list3 = new GenericList<ExampleClass>(); Snippet 1: Generics in C# Questa caratteristica è stata utilizzata spesso ed ha permesso di mantenere un alto riuso di codice in diverse situazioni. Supporto ai tipi parziali Permettono di separare l implementazione di una struct, una classe o un interfaccia in più file sorgenti. In fase di compilazione I tipi parziali vengono riassemblati. 1. // Prima parte della classe parziale customer 2. public partial class Customer 3. { 4. public void DoSomething() 5. { 6. } 7. } // Seconda parte della classe parziale 10. // Può essere messa in un altro file sorgente 11. public partial class Customer 12. { 13. public void DoSomethingElse() 14. { 15. } 16. } Snippet 2: Partial types in C# 24

25 3 - Le tecnologie scelte Sebbene la feature non sia particolarmente straordinaria, è stata utile per le alcune classi in cui una parte è generata automaticamente. Variabili locali tipizzate in modo implicito In fase di dichiarazione di variabili locali è possibile utilizzare la parola chiave var invece di scrivere esplicitamente il tipo. Sarà dedotto automaticamente dal compilatore in base all espressione alla destra dell operatore di assegnamento. 1. // i viene compilato come intero 2. var i = 5; // s viene compilato come stringa 7. var s = "Hello"; // a viene compilato come array di stringhe 11. var a = new[] { 0, 1, 2 }; // list viene compilato come List<int> 15. var list = new List<int>(); Snippet 3: Tipizzazione implicita in C# Questa caratteristica è una di quelle che aumenta di molto la leggibilità del codice rendendolo più conciso. First Class Functions (Delegates) Il C# possiede dalla versione 2.0 il concetto di funzione come tipo di dato nella forma dei delegates. I delegates sono oggetti che referenziano un determinato comportamento. I delegates permettono tecniche di programmazione avanzate come l high order programming: è possibile costruire funzioni che prendano come parametro uno o più delegate e che addirittura restituiscano delegate come valore di ritorno. 25

26 3 - Le tecnologie scelte 1. class Program 2. { 3. // Dichiarazione di un delegate 4. delegate string UppercaseDelegate(string input); // Prima Implementazione 7. static string UppercaseFirst(string input) 8. { 9. char[] buffer = input.tochararray(); 10. buffer[0] = char.toupper(buffer[0]); 11. return new string(buffer); 12. } // Seconda implementazione 15. static string UppercaseLast(string input) 16. { 17. char[] buffer = 18. input.tochararray(); 19. buffer[buffer.length - 1] = 20. char.toupper(buffer[buffer.length - 1]); 21. return new string(buffer); 22. } // Terza implementazione 25. static string UppercaseAll(string input) 26. { 27. return input.toupper(); 28. } // High order function che riceve un delegate 31. // come parametro 32. static void WriteOutput(string input, UppercaseDelegate del) 33. { 34. Console.WriteLine("Input: {0}", input); 35. Console.WriteLine("Uppercase: {0}", del(input)); 36. } // Implementazione dello strategy pattern con delegates 40. static void Main() 41. { 42. // Input: pippo Uppercase: Pippo 43. WriteOutput("pippo", new UppercaseDelegate(UppercaseFirst)); 44. // Input: pippo Uppercase: pippo 45. WriteOutput("pippo", new UppercaseDelegate(UppercaseLast)); 46. // Input: pippo Uppercase: PIPPO 47. WriteOutput("pippo", new UppercaseDelegate(UppercaseAll)); 48. } 49. } Snippet 4: Implementazione di strategy con delegates in C# L high order programming è un altro strumento molto utile allo scopo di ridurre al minimo la duplicazione di codice, e come direttamente riscontrabile nell esempio rende molto meno verbosa l introduzione di alcuni design pattern che avrebbero richiesto l uso di interfacce. 26

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo

Dettagli

Descrizione generale. Architettura del sistema

Descrizione generale. Architettura del sistema Descrizione generale Sister.Net nasce dall esigenza di avere un sistema generale di Cooperazione Applicativa tra Enti nel settore dell Informazione Geografica che consenta la realizzazione progressiva

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Presentazione di Cedac Software

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

Dettagli

Il Provvedimento del Garante

Il Provvedimento del Garante Il Provvedimento del Garante Il provvedimento del Garante per la Protezione dei dati personali relativo agli Amministratori di Sistema (AdS) Misure e accorgimenti prescritti ai titolari dei trattamenti

Dettagli

Interoperabilità e cooperazione applicativa tra sistemi informativi

Interoperabilità e cooperazione applicativa tra sistemi informativi Interoperabilità e cooperazione applicativa tra sistemi informativi Michele Ruta Dipartimento di Ingegneria Elettrica e dell Informazione Politecnico di Bari 1di 29 Indice Introduzione ai Port Community

Dettagli

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

Dettagli

Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro.

Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro. Esercizio di GRUPPO: PROTOCOLLO INFORMATICO Mappa concettuale TECNOLOGIE DISPONIBILI Quali sono le tecnologie che l ente ha a disposizione e quelle predisposte ad essere implementate in un prossimo futuro.

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE

TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LO SVILUPPO DEL SOFTWARE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE

Dettagli

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 White paper Novembre 2007 Per informazioni aggiornate, visitare l indirizzo www.microsoft.com/italy/vstudio È possibile che a questo

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

Dettagli

Sistemi Informativi Distribuiti

Sistemi Informativi Distribuiti Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 SISTEMI INFORMATIVI MODULO II Sistemi Informativi Distribuiti 1 Sistemi informativi distribuiti

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO Standard tecnici Gli standard tecnici di riferimento adottati sono conformi alle specifiche e alle raccomandazioni emanate dai principali

Dettagli

Introduzione a.net (2)

Introduzione a.net (2) Introduzione a.net (2) Il linguaggio C# Implementazioni alternative dell'architettura.net: Rotor Mono C#: un nuovo linguaggio C# : CLR = Java : JVM C# è il linguaggio di riferimento per.net Costruito su

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

BANCA VIRTUALE/1 tecnologie dell informazione della comunicazione

BANCA VIRTUALE/1 tecnologie dell informazione della comunicazione BANCA VIRTUALE/1 Il termine indica un entità finanziaria che vende servizi finanziari alla clientela tramite le tecnologie dell informazione e della comunicazione, senza ricorrere al personale di filiale

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

Dettagli

ERP Commercio e Servizi

ERP Commercio e Servizi ERP Commercio e Servizi Sistema informativo: una scelta strategica In questi ultimi anni hanno avuto grande affermazione nel mercato mondiale i cosiddetti sistemi software ERP. Tali sistemi sono in grado

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

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

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei Centro Nazionale per l Informatica nella Pubblica Amministrazione Gara a procedura aperta n. 1/2007 per l appalto dei Servizi di rilevazione e valutazione sullo stato di attuazione della normativa vigente

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Estratto dell'agenda dell'innovazione Smau Milano 2011. Speciale: I casi. Introduzione dell'area tematica. Il caso INCA CGIL

Estratto dell'agenda dell'innovazione Smau Milano 2011. Speciale: I casi. Introduzione dell'area tematica. Il caso INCA CGIL Estratto dell'agenda dell'innovazione Smau Milano 2011 Speciale: I casi Introduzione dell'area tematica Il caso INCA CGIL Innovare e competere con le ICT - PARTE I Cap.1 L innovazione nella gestione dei

Dettagli

Enterprise Application Integration

Enterprise Application Integration POLITECNICO DI TORINO Facoltà di Ingegneria dell Informazione Corso di Laurea Specialistica in Ingegneria Informatica Tesi di Laurea Specialistica Enterprise Application Integration Studio e realizzazione

Dettagli

Architetture dei WIS. Definizione di WIS. Benefici dei WIS. Prof.ssa E. Gentile a.a. 2011-2012

Architetture dei WIS. Definizione di WIS. Benefici dei WIS. Prof.ssa E. Gentile a.a. 2011-2012 Architetture dei WIS Prof.ssa E. Gentile a.a. 2011-2012 Definizione di WIS Un WIS può essere definito come un insieme di applicazioni in grado di reperire, cooperare e fornire informazioni utilizzando

Dettagli

SisTabWeb Web. Sistema Tabelle. for Enterprise

SisTabWeb Web. Sistema Tabelle. for Enterprise SisTabWeb Web Sistema Tabelle for Enterprise Overview La condivisione del patrimonio dati a livello aziendale diventa essenziale nel momento in cui il sistema informativo, elemento chiave per l'efficienza

Dettagli

Estratto dell'agenda dell'innovazione e del Trade Bologna 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO FAGIOLI

Estratto dell'agenda dell'innovazione e del Trade Bologna 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO FAGIOLI Estratto dell'agenda dell'innovazione e del Trade Bologna 2011 Speciale: I casi Introduzione dell'area tematica IL CASO FAGIOLI Innovare e competere con le ICT: casi di successo - PARTE I Cap.1 Gestire

Dettagli

DA DEFINIRE Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle 13.00 e dalle 14.00 alle 18.

DA DEFINIRE Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle 13.00 e dalle 14.00 alle 18. PERIODO : DA DEFINIRE Sede del corso: Presso GI Formazione in Piazza IV novembre 5, Milano Orari dalle 9.00 alle 13.00 e dalle 14.00 alle 18.00 A CHI E RIVOLTO IL CORSO Questo progetto si rivolge a tutti

Dettagli

8. Sistemi Distribuiti e Middleware

8. Sistemi Distribuiti e Middleware 8. Sistemi Distribuiti e Middleware Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 8. Sistemi distribuiti e Middleware 1 / 32 Sommario 1 Sistemi distribuiti

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

Enterprise @pplication Integration Software S.r.l.

Enterprise @pplication Integration Software S.r.l. SAP rel.1.0 : SAP State: Final Date: 03-27-200 Enterprise @pplication Integration Software S.r.l. Sede legale: Via Cola di Rienzo 212-00192 Rome - Italy Tel. +39.06.6864226 Sede operativa: viale Regina

Dettagli

BASI DI DATI I Lezione n 2 25/09/2009

BASI DI DATI I Lezione n 2 25/09/2009 BASI DI DATI I Lezione n 2 25/09/2009 Fumarola Roberta, Galeano Antonio Andrea Linguaggio di modellazione Insieme di simboli e regole atto a descrivere la struttura e le funzionalità di un Database prima

Dettagli

BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei

BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei Corso di Laurea Specialistica in Ingegneria Informatica Reti di Calcolatori LS prof. Antonio Corradi BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei di Emanuele Crescentini

Dettagli

Architettura Tecnica i. Architettura Tecnica

Architettura Tecnica i. Architettura Tecnica i Architettura Tecnica ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Scopo del documento 1 1.1 Abbreviazioni..................................................... 1 2 Overview 1 2.1 La PdD........................................................

Dettagli

catalogo corsi di formazione 2015/2016

catalogo corsi di formazione 2015/2016 L offerta formativa inserita in questo catalogo è stata suddivisa in quattro sezioni tematiche che raggruppano i corsi di formazione sulla base degli argomenti trattati. Organizzazione, progettazione e

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

E.T.L. (Extract.Tansform.Load) IBM - ISeries 1/8

E.T.L. (Extract.Tansform.Load) IBM - ISeries 1/8 E.T.L. (Extract.Tansform.Load) IBM - ISeries Quick-EDD/ DR-DRm ETL 1/8 Sommario ETL... 3 I processi ETL (Extraction, Transformation and Loading - estrazione, trasformazione e caricamento)... 3 Cos è l

Dettagli

Motore di riempimento DB (generatore dati per simulazione)

Motore di riempimento DB (generatore dati per simulazione) SISTEMI DISTRIBUITI prof. S.Pizzutilo Motore di riempimento DB (generatore dati per simulazione) Studente: Alessandro Balestrucci 617937 Corso di Laurea: Informatica Magistrale Dipartimento di Informatica

Dettagli

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA Obiettivo Richiamare quello che non si può non sapere Fare alcune precisazioni terminologiche IL COMPUTER La struttura, i componenti

Dettagli

Architetture Software Milano

Architetture Software Milano Architetture Software Approccio tradizionale allo sviluppo I limiti del modello requisiti, progetto, implementazione Il concetto di architettura software Il concetto di stile architetturale I principali

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

1. Hard Real Time Linux (Laurea VO o specialistica)

1. Hard Real Time Linux (Laurea VO o specialistica) 20/9/06 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011. Andrea Carnevali R&D Director GESINF S.r.l.

2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011. Andrea Carnevali R&D Director GESINF S.r.l. 2G, l evoluzione della piattaforma Team nel Web 2.0 Roma, 7 dicembre 2011 Andrea Carnevali R&D Director GESINF S.r.l. Il progetto 2G è il nome della piattaforma che consentirà l evoluzione tecnologica

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.6 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Framework Rich Client Application

Framework Rich Client Application Framework Rich Client Application RELATORE: Paolo Giardiello Savona, 30 settembre 2010 Agenda La Sogei Le applicazioni client Sogei Le caratteristiche Le soluzioni possibili Java Web Start Eclipse La scelta:

Dettagli

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Implementazione di un servizio VoIP in ambienti SOA per mobile computing tesi di laurea Implementazione di un servizio VoIP in ambienti SOA per mobile computing Anno Accademico 2006/2007 relatore Ch.mo prof. Domenico Cotroneo correlatore ing. Marcello Cinque candidato Vittorio

Dettagli

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008 UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI ELETTRONICA PER L'AUTOMAZIONE Il Pattern PROXY Ex presentazione realizzata

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke Capitoli 8 e 9 Applicazioni tradizionali Applicazioni Internet SQL embedded SQL nel codice applicativo I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio ospite (ad esempio

Dettagli

Applicazione: Piattaforma di Comunicazione Unificata

Applicazione: Piattaforma di Comunicazione Unificata Riusabilità del software - Catalogo delle applicazioni: Amministrativi/Contabile Applicazione: Piattaforma di Comunicazione Unificata Amministrazione: Regione Piemonte - Direzione Innovazione, Ricerca

Dettagli

Programmazione Java Avanzata Spring - JDBC

Programmazione Java Avanzata Spring - JDBC Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008

Dettagli

L iniziativa Cloud DT

L iniziativa Cloud DT L iniziativa Cloud DT Francesco Castanò Dipartimento del Tesoro Ufficio per il Coordinamento Informatico Dipartimentale (UCID) Roma, Luglio 2011 Il Cloud Computing Alcune definizioni Il Cloud Computing

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

Dettagli

SOFTWARE DEVELOPMENT JUNIOR SPECIALIST

SOFTWARE DEVELOPMENT JUNIOR SPECIALIST SKILL4YOU ACADEMY MICROSOFT SOFTWARE DEVELOPMENT JUNIOR SPECIALIST PERCORSO ACADEMY MICROSOFT SOFTWARE DEVELOPMENT JUNIOR SPECIALIST A CHI E RIVOLTO IL CORSO ACADEMY MICROSOFT SOFTWARE DEVELOPMENT JUNIOR

Dettagli

Corso di Sistemi di elaborazione delle informazioni

Corso di Sistemi di elaborazione delle informazioni Corso di Sistemi di elaborazione delle informazioni Biacco Sabrina ENTERPRISE RESOURCE PLANNING Gli ERP sono delle soluzioni applicative in grado di coordinare l'insieme delle attività aziendali automatizzando

Dettagli

UNA RELEASE ROBUSTA E COLLAUDATA IN CONTESTI NAZIONALI ED INTERNAZIONALI EVOLUZIONE DELLA PIATTAFORMA ASSICURATIVA ALL IN ONE

UNA RELEASE ROBUSTA E COLLAUDATA IN CONTESTI NAZIONALI ED INTERNAZIONALI EVOLUZIONE DELLA PIATTAFORMA ASSICURATIVA ALL IN ONE L offerta di Value+, in origine focalizzata sulla gestione dei Rami Vita e dei Fondi Pensione attraverso il sistema invita, diffuso in Italia e all estero, si è arricchita nel corso degli anni estendendosi

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE

TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER LE APPLICAZIONI INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

Misura delle prestazioni dei processi aziendali con sistemi di integrazione dati open source

Misura delle prestazioni dei processi aziendali con sistemi di integrazione dati open source Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Enzo Ferrari di Modena Corso di Laurea in Ingegneria Informatica (509/99) Misura delle prestazioni dei processi aziendali con sistemi

Dettagli

OGGETTO DELLA FORNITURA...4

OGGETTO DELLA FORNITURA...4 Gara d appalto per la fornitura di licenze software e servizi per la realizzazione del progetto di Identity and Access Management in Cassa Depositi e Prestiti S.p.A. CAPITOLATO TECNICO Indice 1 GENERALITÀ...3

Dettagli

LBINT. http://www.liveboxcloud.com

LBINT. http://www.liveboxcloud.com 2014 LBINT http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di commerciabilità

Dettagli

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

Dettagli

Registro SPICCA Architettura del Software

Registro SPICCA Architettura del Software Registro SPICCA Architettura del Software Versione 1.0 del 25/08/2009 Sommario 1 Introduzione... 4 1.1 Scopo... 4 1.2 Obiettivo... 4 1.3 Riferimenti... 4 1.4 Panoramica del documento... 4 2 Rappresentazione

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET 18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso ai database

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

Solution For Electronic Data Interchange. EDIJSuite. La soluzione per l interscambio dei dati in formato elettronico

Solution For Electronic Data Interchange. EDIJSuite. La soluzione per l interscambio dei dati in formato elettronico Solution For Electronic Data Interchange EDIJSuite La soluzione per l interscambio dei dati in formato elettronico Release 1.4 del 20.12.2013 - ST COMPANY SRL EDIJSuite La soluzione per l interscambio

Dettagli

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management)

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management) Thea PDM Il PDM (Product Data Management) Nell'industria manifatturiera il PDM è un software per la raccolta ed organizzazione dei file nelle divere fasi di ideazione, progettazione, produzione ed obsolescenza

Dettagli

FileMaker 12. Guida ODBC e JDBC

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

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Alfresco ECM. La gestione documentale on-demand

Alfresco ECM. La gestione documentale on-demand Alfresco ECM La gestione documentale on-demand Alfresco 3.2 La gestione documentale on-demand Oltre alla possibilità di agire sull efficienza dei processi, riducendone i costi, è oggi universalmente conosciuto

Dettagli

Estratto dell'agenda dell'innovazione e del Trade Padova 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO ARTELECTRA

Estratto dell'agenda dell'innovazione e del Trade Padova 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO ARTELECTRA Estratto dell'agenda dell'innovazione e del Trade Padova 2011 Speciale: I casi Introduzione dell'area tematica IL CASO ARTELECTRA Innovare e competere con le ICT: casi di successo - PARTE II Cap.2 Gestire

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA IBM System i5 La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA Massimo Marasco System i Technical Sales Support massimo_marasco@it.ibm.com Oriented Architecture (SOA) Servizio

Dettagli