INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE"

Transcript

1 01-CAP01_ok :52 Pagina 1 Parte prima INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

2 01-CAP01_ok :52 Pagina 2

3 01-CAP01_ok :52 Pagina 3 Capitolo 1 Le ragioni di tanto interesse 1.1 Enterprise in J2EE 1.2 J2EE in aiuto 1.3 Riepilogo La versione 1.4 della piattaforma Java 2 Enterprise Edition (J2EE) è la versione più significativa di J2EE da quando questa tecnologia innovativa venne introdotta da Sun Microsystems nel La tecnologia J2EE si è considerevolmente evoluta negli anni e costituisce attualmente lo standard de-facto per lo sviluppo di applicazioni aziendali e sistemi di elaborazione in generale. Realizzata su solidissime basi, J2EE 1.4 aggiunge ricche funzionalità e caratteristiche di orientamento enterprise alla piattaforma Java 2 Standard Edition (J2SE), la quale già rivoluzionò le tecnologie di sviluppo del software svariati anni or sono. J2EE 1.4 vanta numerose ed entusiasmanti nuove tecnologie che non erano presenti nelle versioni precedenti, tra le quali il supporto completo per XML (extensible Markup Language) e per i servizi Web. 1.1 Enterprise in J2EE J2EE è una piattaforma di sviluppo e deployment ( messa in opera ) di applicazioni distribuite multilivello con una forte orientazione enterprise ( aziendale ). Come illustrato nella Figura 1.1, J2EE aggiunge numerosi livelli di funzionalità al di sopra della piattaforma J2SE, la quale è invece orientata allo sviluppo e al deployment di applicazioni desktop tradizionali.

4 01-CAP01_ok :52 Pagina 4 4 CAPITOLO 1 Piattaforma Java 2, Enterprise Edition Enterprise JavaBeans Transazioni Autorizzazione J2EE Servlets JavaServer Pages Messaging Posta Gestione Ecc. Connector Piattaforma J2EE CONTAINER Piattaforma Java2, Standard Edition Applicazioni, Applet, JavaBean J2SE Swing/AWT Networking Directory Access Input/Output Database Sicurezza CORBA XML Math IDL etc. Runtime J2SE/Macchina Virtuale Piattaforma generica sottostante a J2EE Linux Unix Windows Macintosh etc... Hardware: scheda madre, CPU, RAM, memoria di massa ecc. Figura 1.1 J2EE aggiunge numerosi strati con funzionalità di livello enterprise al di sopra della piattaforma J2SE. Definizione del termine enterprise Il termine enterprise identifica tradizionalmente una generica impresa o azienda, dal piccolo negozietto a conduzione familiare fino alla multinazionale. In un accezione più generale comunque, il termine descrive un organizzazione che opera secondo un determinato insieme di regole (le cosiddette regole business nel contesto di un azienda tradizionale). Scuole, organizzazioni senza scopo di lucro, gruppi ecclesiastici e altre entità sono incluse tra le tipologie di imprese non tradizionali per le quali si possono comunque sviluppare delle applicazioni J2EE. Le applicazioni J2EE sono semplicemente dei programmi software specifici per una data organizzazione, che forniscono funzionalità particolari per supportare alcuni dei processi generali che ne regolano l operatività. Un impresa commerciale, per esempio, potrebbe utilizzare J2EE per creare un applicazione per la gestione automatica degli ordini di acquisto, mentre una scuola potrebbe utilizzare J2EE per sviluppare un sistema per la gestione delle valutazioni e delle relative certificazioni. Organizzazioni senza fini di lucro e organizzazioni confessionali potrebbero utilizzare J2EE per sviluppare applicazioni per incoraggiare e gestire le donazioni. Cliniche od ospedali potrebbero sviluppare dei sistemi per la gestione delle cartelle cliniche dei propri pazienti. In ogni caso, i processi ope-

5 01-CAP01_ok :52 Pagina 5 LE RAGIONI DI TANTO INTERESSE 5 rativi specifici di ogni organizzazione vengono riflessi, almeno parzialmente, nelle particolari applicazioni di tipo enterprise. La piattaforma J2EE gestisce l infrastruttura software e supporta i servizi Web che consentono agli sviluppatori di creare applicazioni enterprise sicure, distribuite e interoperabili. J2EE, tramite la sua architettura multilivello distribuita e basata sulle componenti, facilita lo sviluppo di applicazioni particolarmente scalabili, costituite da elementi fisicamente distribuiti nelle reti. Come si potrà notare nel seguito, questa metodologia di sviluppo di applicazioni, oltre a consentire un elevato grado di scalabilità dell applicazione stessa, permette anche un organizzazione flessibile del processo di sviluppo software tramite un organizzazione naturale in squadre di lavoro. L espressione applicazione enterprise è praticamente sinonimo di applicazione distribuita, dato che sostanzialmente qualsiasi applicazione di rilievo sviluppata per un azienda, in un modo o nell altro, è distribuita in rete. In altre parole, applicazione enterprise è semplicemente un altro modo per indicare le applicazioni distribuite multilivello che sono appunto distribuite su livelli differenti dell infrastruttura di rete dell organizzazione (si veda la Figura 1.2). Una distinzione importante fra applicazioni enterprise e altri tipi di applicazioni distribuite è costituita dal fatto che le applicazioni enterprise normalmente coinvolgono e mettono in relazione vari dipartimenti e unità operazionali dell organizzazione nella quale vengono utilizzate. Lato Client (Front-end) Cellulare Lato Server (Livello intermedio) Lato Server (Back-end) Browser Server di logica business Database Server Sistema legacy EIS Server Applicazione Java Applet Java Server Web Sistema EIS Server EIS Server di database Chiosco Palmare Figura 1.2 Le applicazioni enterprise sono tipicamente applicazioni distribuite multilivello costituite da programmi che vengono eseguiti su differenti computer interconnessi tramite una rete.

6 01-CAP01_ok :52 Pagina 6 6 CAPITOLO 1 Architetture multilivello J2EE è fondata su un architettura multilivello nella quale le varie componenti che compongono un applicazione vengono logicamente separate e distribuite su diversi livelli o strati dell ambiente di elaborazione di rete. Queste architetture sono anche indicate come architetture n-tiered. In altri termini, i livelli rappresentano strati o livelli logici di funzionalità: le applicazioni multilivello raggruppano logicamente le componenti di un applicazione secondo le funzioni che esse eseguono nel contesto dell architettura globale. È importante notare che i vari livelli di un applicazione multilivello rappresentano un raggruppamento logico delle funzionalità e non un raggruppamento fisico. Le componenti che costituiscono un applicazione J2EE, per esempio, possono essere distribuite (raggruppate o organizzate) logicamente nei livelli client, Web, business e EIS, i quali sono distribuiti fisicamente in molteplici sistemi di elaborazione, come illustrato nelle Figure 1.2 e 1.3. Le applicazioni enterprise sono complesse. L idea di sviluppare e mantenere queste applicazioni può incutere timore a causa della loro complessità e del fatto che esse tendono a operare in ambienti eterogenei. Le applicazioni enterprise consistono tipicamente in numerosi programmi software o componenti che sono distribuiti per essere quindi eseguiti su hardware differenti. Questo hardware può spaziare dai mainframe di alta gamma, ai mini calcolatori o alle workstation di media gamma, fino ai PC desktop di bassa gamma. Le componenti che costituiscono queste applicazioni sono spesso scritte con linguaggi di programmazione differenti e non è insolito che comunichino tra di loro tramite molteplici protocolli. Le componenti che costituiscono un applicazione enterprise possono essere distribuite su reti locali (LAN), reti geografiche (WAN) o addirittura su Internet. Le applicazioni enterprise create con J2EE, per esempio, possono essere fisicamente distribuite su di un qualunque numero di sistemi di elaborazione e topologie di rete, caratteristica che le rende molto affidabili e facilmente scalabili. NOTA Sebbene le applicazioni enterprise siano complesse, soprattutto quando confrontate con applicazioni desktop isolate tradizionali, esse non sono altro che un insieme di programmi software che interagiscono fra di loro tramite una rete. Le applicazioni distribuite multilivello non rappresentano nulla di nuovo: è da decenni che si sviluppano applicazioni i cui elementi costituenti vengono eseguiti su differenti computer interconnessi tramite reti. La novità è costituita invece dalla crescente tendenza a realizzare queste applicazioni utilizzando complesse piattaforme di sviluppo distribuite, o framework, basate su standard Internet e Web aperti e interoperabili. La piattaforma J2EE, per esempio, è una soluzione completa che gli sviluppatori possono utilizzare per realizzare e distribuire le componenti software in ogni livello richiesto da un applicazione enterprise. Come tale, J2EE può essere utilizzata per sviluppare un ampia varietà di client front-end, middleware che supporta la connettività Web e la logica business di un organizzazione e soluzioni integrate di database di back-end o di sistemi informativi aziendali, o EIS (Enterprise Information System). J2EE fornisce anche un supporto completo per

7 01-CAP01_ok :52 Pagina 7 LE RAGIONI DI TANTO INTERESSE 7 un ampia varietà di standard aperti Web e Internet, tra i quali HTML (HyperText Markup Language), XML (extensible Markup Language), HTTP (HyperText Transfer Protocol) e SOAP (Simple Object Access Protocol). NOTA La piattaforma J2EE è una soluzione completa end-to-end (ovvero lato client e lato server) per sviluppare qualunque tipo di applicazione multilivello distribuita. Nel contesto di J2EE si sarebbe potuto perfettamente utilizzare il termine organization (organizzazione) al posto di enterprise. Enterprise tende comunque a evocare immagini mentali (e forse addirittura degli episodi di Star Trek) più entusiasmanti. La complessità dello sviluppo di applicazioni enterprise Non è affatto banale sviluppare applicazioni enterprise. Come minimo si tratta infatti di un impresa complessa e impegnativa. Nella peggiore delle ipotesi, la sola prospettiva di un progetto di sviluppo di applicazioni enterprise potrebbe dissuadere programmatori o interi gruppi di sviluppo dall affrontarlo. Nel contesto attuale in cui la maggior parte dei progetti di sviluppo software supera il budget disponibile, oltrepassa i tempi di completamento previsti o non supporta le funzionalità inizialmente richieste (a volte, addirittura, non riescono nemmeno a completare la fase di sviluppo), non sorprende che la complessità aggiuntiva e il costo globale dei progetti enterprise possano rappresentare un affare rischioso. Gli sviluppatori di applicazioni enterprise devono affrontare molteplici difficoltà, ma J2EE è stato espressamente progettato per fronteggiare ciascuna di esse. Nei prossimi paragrafi si descriveranno innanzitutto le difficoltà principali con le quali gli sviluppatori di applicazioni enterprise si devono confrontare e si analizzeranno successivamente le strategie con cui J2EE risolve tali problemi. Le quattro S : Stabilità, Scalabilità, Semplicità e Sicurezza Le applicazioni enterprise sono tipicamente critiche ( mission-critical ) per l operatività di un organizzazione. Le organizzazioni evitano di essere coinvolte in queste problematiche senza validissime ragioni. Nella maggior parte dei casi la ragione per sviluppare un applicazione enterprise è semplice: supportare il raggiungimento degli obiettivi dell organizzazione stessa. In breve: le applicazioni enterprise sono realizzate per supportare o migliorare l operatività o il raggiungimento degli obiettivi dell organizzazione. Esse possono migliorare la sua competitività, semplificare le sue operazioni, contribuire a far risparmiare o guadagnare denaro o supportare o migliorare la sua missione in mille altri modi. Le applicazioni efficaci devono soddisfare le quattro S : stabilità, scalabilità, sicurezza e semplicità. I paragrafi seguenti forniscono una descrizione di ciascun termine. NOTA Come si potrà notare nei capitoli seguenti, il termine applicazione J2EE si riferisce a una qualunque unità di funzionalità J2EE deployable : comprende quindi moduli singoli, gruppi di moduli e applicazioni distribuite com-

8 01-CAP01_ok :52 Pagina 8 8 CAPITOLO 1 plete composte da un qualsiasi numero di moduli. Modulo, a sua volta, si riferisce a un unità software che consiste di una o più componenti J2EE, mentre il termine componente indica una classe Java che rappresenta un unità autocontenuta di funzionalità. Sebbene le componenti J2EE non siano altro che classi Java, esse differiscono dalle classi tradizionali in tre aspetti fondamentali: le componenti J2EE devono essere assemblate in applicazioni, devono essere controllate prima di essere distribuite per verificare che siano ben formate e conformi alle specifiche J2EE e vengono eseguite e gestite dall interno di un container J2EE. Questi container forniscono alle componenti l accesso a servizi specifici e standardizzati. Stabilità La stabilità è la proprietà di un applicazione che si dice stabile quando si comporta come previsto senza bloccarsi, senza subire crash e senza esibire quelle caratteristiche comunemente associate con prodotti incompleti, scorretti e appunto instabili. La stabilità è particolarmente importante in applicazioni mission-critical che hanno un impatto diretto o indiretto sulla vita umana, quali applicazioni mediche o aeronautiche. Le applicazioni instabili possono influenzare negativamente un organizzazione utilizzando risorse eccessive e sprecando denaro per l addizionale assistenza tecnica richiesta o nel tentativo di evitare cattiva pubblicità derivante da sistemi malfunzionanti. Le applicazioni particolarmente instabili possono facilmente allontanare i potenziali clienti o possono facilmente fornire buone ragioni ai clienti esistenti per considerare soluzioni alternative. Sebbene sia importante, la stabilità non è facilmente conseguibile. Alcuni esperti sostengono che anche i programmatori più competenti introducono almeno un bug o un errore logico ogni dieci linee di codice che scrivono. Questo valore può risultare ancora più alto nel caso di applicazioni distribuite a causa della complessità addizionale nello sviluppo di questo tipo di applicazioni. Sebbene sia impossibile verificare tali statistiche, è ben noto il fatto che sia inevitabile introdurre errori durante il processo di sviluppo del software. Si può certamente migliorare la stabilità generale di un applicazione eliminandone i bug e gli errori di programmazione che si sono potuti individuare, sebbene non si tratti di un compito senza difficoltà: molti problemi nel codice rimangono sconosciuti e vengono evidenziati solo dopo il deployment delle applicazioni, durante il loro utilizzo in condizioni reali di stress. Scalabilità La scalabilità è l attitudine di un applicazione a poter essere facilmente ampliata, soddisfacendo eventuali incrementi di carico nelle richieste. La scalabilità è fortemente legata alla availability ( disponibilità ), che indica quanto spesso o a che livello un applicazione sia disponibile. Nel caso in cui un applicazione avesse una scalabilità limitata, potrebbe risultare non disponibile in condizioni di carico particolarmente gravose. Questa situazione potrebbe verificarsi, per esempio, quando esistono troppi utenti che interagiscono con l applicazione nello stesso istante sovraccaricando varie componenti dell applicazione. Se l applicazione avesse un elevata scalabilità e fosse quindi in grado di adattarsi dinamicamente all incremento del carico, essa sarebbe prontamente disponibile anche in condizioni di carico elevato. La scalabilità, come la stabilità, non si ottiene per magia: essa deve

9 01-CAP01_ok :52 Pagina 9 LE RAGIONI DI TANTO INTERESSE 9 essere esplicitamente realizzata nell applicazione a livello di codice così come a livello di piattaforma. Infatti, se l ambiente di esecuzione runtime dell applicazione non fosse scalabile, l applicazione stessa potrebbe non essere in grado di soddisfare pienamente un aumento del carico di richieste. Le applicazioni enterprise, in particolare, presentano vari punti di strozzamento che possono costituire dei colli di bottiglia per la scalabilità. Gli sviluppatori non devono considerare solamente la scalabilità di ogni componente eseguibile dell applicazione: essi devono anche preoccuparsi degli aspetti di scalabilità che coinvolgono la rete e ogni altro livello nell architettura dell applicazione distribuita. Sicurezza La sicurezza è il grado di protezione o vulnerabilità di un applicazione da utilizzazioni non autorizzate. Sebbene l attenzione alle questioni di sicurezza sia gradualmente aumentata nell ultima decade, essa è divenuta una questione centrale nell intero settore IT (Information Technology) dall 11 Settembre Quel giorno negli Stati Uniti la questione della sicurezza nazionale venne elevata al massimo livello di importanza, causando un immediato effetto collaterale nel settore industriale tecnologico e ovunque nel mondo. La vulnerabilità nella sicurezza delle applicazioni che poteva essere precedentemente considerata un rischio accettabile, considerati il tempo e il costo necessari per ridurla, è oggi una questione di estrema importanza per molte organizzazioni e individui. Di conseguenza, sempre più frequentemente il tempo e gli sforzi necessari per affrontare adeguatamente la sicurezza vengono allocati nelle fasi iniziali dello sviluppo software, come appropriato. Invece di prestare solamente un attenzione distratta alle questioni di sicurezza, quando la soluzione principale consisteva nel rilasciare correzioni ogniqualvolta venivano scoperte delle lacune di sicurezza in campo, molte organizzazioni fanno ora della sicurezza una delle priorità principali fin dall inizio. Così facendo, esse aumentano certamente i costi di sviluppo e i tempi di consegna. Sul lungo termine però, questi investimenti iniziali generano ritorni considerevoli, aumentando la soddisfazione e la confidenza dei clienti e riducendo nel medesimo tempo il supporto tecnico e lo sforzo per sviluppi ad-hoc che sarebbero altrimenti necessari per un software più vulnerabile. Quando il software è solido e sicuro non sono necessari il personale e le risorse addizionali per gestire le linee telefoniche dell assistenza tecnica, le chiamate per calmare i clienti innervositi e lo sviluppo di correzioni del software. Semplicità La semplicità di un applicazione dipende dal grado di semplicità della stessa sia dalla prospettiva degli utenti finali che dalla prospettiva dei programmatori che la sviluppano e ne effettuano la manutenzione. Per gli utenti finali, la semplicità di un applicazione dipende fondamentalmente dall interfaccia utente con la quale interagiscono e in misura minore dalla varietà di interfacce a loro disposizione. Se un applicazione è semplice, facile da utilizzare e ha l ulteriore vantaggio di essere accessibile da una varietà di configurazioni utente (per esempio, tramite un browser Web generico, l interfaccia di un applicazione specifica o un palmare wireless), gli utenti saranno più inclini ad adottarla. Nella prospettiva dello sviluppatore software invece, il grado di semplicità dipende dalla possibilità di sviluppare o migliorare

10 01-CAP01_ok :52 Pagina CAPITOLO 1 facilmente ed efficientemente l applicazione, mantenendone la stabilità, la scalabilità e la sicurezza globali. Semplicità nello sviluppo dell applicazione si traduce alla fine in produttività del programmatore: i programmatori possono fare di più in meno tempo e con meno sforzo. Questo è particolarmente importante nel caso di applicazioni enterprise. A causa della loro complessità intrinseca, qualunque misura orientata a semplificare il processo di sviluppo può essere estremamente proficua in termini di produttività dei programmatori e del loro benessere psicologico. Più risulta facile e veloce per i programmatori sviluppare e distribuire applicazioni complesse, più i programmatori saranno soddisfatti del proprio lavoro, cosa che genera un ritorno economico al datore di lavoro in termini di elevata produttività e ridotto turnover del personale. NOTA Le quattro S rappresentano la stabilità, la scalabilità, la sicurezza e la semplicità. L acronimo SSSS, coniato dall autore nel contesto di una rete e relativa piattaforma digitale di intrattenimento emergente (Web3DWeb, disponibile a: descrive i quattro requisiti più significativi che dovrebbero orientare qualsiasi applicazione software distribuita. Applicazioni enterprise che non fossero stabili, scalabili, sicure e semplici da utilizzare ed estendere avrebbero quasi certamente una vita utile più breve di quella di cui potrebbero altrimenti godere. L incremento della produttività dei programmatori Mai come ora le organizzazioni sono state costrette a fare di più con meno. Esse devono poter ottenere sempre di più dallo staff di sviluppo software esistente (o addirittura in contrazione), dovendo soddisfare le esigenze dei propri clienti operando in un contesto di concorrenza sempre crescente. A causa dei budget ridotti, dei licenziamenti e della concorrenza minacciosa, i programmatori stanno lavorando più freneticamente che mai per poter presentare dei prodotti sul mercato con la tempistica richiesta e in linea con i costi preventivati. La richiesta di produttività ai programmatori è attualmente elevatissima. I programmatori che non sono in grado di soddisfare o superare gli standard richiesti possono essere facilmente rimpiazzati con programmatori di grande esperienza, cosa che risultava impossibile solo pochi anni addietro. Nel passato i programmatori non dovevano sforzarsi più di tanto per trovare opportunità interessanti e ben remunerate in nuove e stimolanti aziende, ed era quindi facile cambiare frequentemente impiego. Attualmente la situazione è molto differente. Con tanti programmatori esperti in cerca di lavoro, le organizzazioni che possono permettersi nuove assunzioni sono in grado di trovare e ritenere facilmente personale qualificato. Le organizzazioni che non possono permettersi il lusso di assumere nuovi sviluppatori devono massimizzare le potenzialità dei programmatori esistenti (o a volte addirittura in contrazione), cosa che valorizza i programmatori particolarmente produttivi. Quindi: cos è che rende un programmatore produttivo? I fattori più importanti, naturalmente, sono la capacità e l esperienza. Se un programmatore non ha esperienza nel dominio in cui deve lavorare e non è in

11 01-CAP01_ok :52 Pagina 11 LE RAGIONI DI TANTO INTERESSE 11 grado di apprendere velocemente le nuove tecnologie richieste, si può dire addio alla produttività. Presupponendo che un programmatore sia qualificato per affrontare il lavoro per il quale viene assunto, è necessario considerare altri fattori che consentono di raggiungere o meno un elevato livello di produttività. Uno dei fattori più importanti è l aderenza dell organizzazione (e dei suoi programmatori) a un modello di programmazione unificato. In questo modello le componenti software sono sviluppate, controllate, distribuite e mantenute in modo uniforme e consistente e, possibilmente, si utilizza una famiglia standardizzata di tool per automatizzare e snellire il processo. Un modello di programmazione unificato è particolarmente importante quando si considera che le applicazioni software distribuite possono essere create impiegando una varietà di tecnologie sorprendentemente ampia. I front-end possono essere facilmente costituiti da pagine Web che utilizzano una combinazione di HTML, XHTML, XML, una varietà di linguaggi di script come JavaScript, Jscript, VBScript e altri, plug-in come Flash o QuickTime e altro ancora. Queste tecnologie lato client possono essere supportate sul lato server utilizzando programmi e script CGI (Common Gateway Interface), mentre il livello intermedio dell applicazione potrebbe catturare la logica business sotto forma di programmi scritti in linguaggi quali C, C++, C#, Java e altri. Si aggiungano a tutto questo le tecnologie dei database back-end e i relativi linguaggi di interrogazione (come SQL, XQuery e così via) per completare il quadro della situazione. Senza un singolo modello unificato di programmazione, i programmatori verrebbero facilmente travolti dalla complessità che ne deriverebbe. Tale modello invece, chiarisce come sviluppare le applicazioni distribuite consentendo anche una ripartizione ben organizzata del carico di lavoro: ciascun programmatore conosce esattamente il suo ruolo nel contesto generale, cosa che consente di incrementare la produttività a ogni livello. Oltre a seguire un singolo modello di programmazione unificato, come quello introdotto con J2EE, risulta molto più produttivo stabilire e seguire degli standard anziché reinventare la ruota con soluzioni ad-hoc o adottare soluzioni proprietary. Fornendo agli sviluppatori una modalità standard con la quale accedere ai vari servizi supportati dall applicazione che si sta realizzando, ciascuno di essi adotta la medesima (provata) soluzione evitando di inventare alternative proprie. Questo a sua volta può condurre allo sviluppo di una collezione di codice standard che ciascun programmatore può utilizzare, ottenendo i vantaggi delle tanto declamate promesse del software riutilizzabile. Assemblare le applicazioni con codice riutilizzabile contribuisce ulteriormente a incrementare la produttività dei programmatori. La produttività può essere spesso incrementata tramite l adozione di standard aperti evitando le soluzioni proprietary o l uso di standard meno conosciuti. Gli standard, definendo con precisione le regole esatte o i processi necessari per eseguire determinati compiti od operazioni, facilitano l interoperabilità dei prodotti (gli standard definiscono per esempio i formati per l interscambio di contenuti); inoltre semplificano e rendono il lavoro del programmatore meno ambiguo. Spesso sono disponibili delle implementazioni gratuite o a basso costo per la

12 01-CAP01_ok :52 Pagina CAPITOLO 1 maggior parte degli standard diffusi: si tratta di codice dal quale i programmatori possono trarre vantaggio evitando di doverne scrivere altro di proprio pugno. In aggiunta, gli standard aperti aiutano a evitare l eventualità di legarsi permanentemente a un particolare vendor, la cosiddetta situazione di vendor lock-in. Questo può avvenire quando le applicazioni divengono strettamente dipendenti dalle implementazioni, dai prodotti o dai servizi forniti o posseduti in esclusiva da un vendor o da un ristrettissimo gruppo di vendor. Al contrario, gli standard aperti sono normalmente supportati da un ampio numero di vendor riducendo quindi il rischio di vendor lock-in, rispetto all uso di soluzioni proprietary. Gli standard aperti favoriscono la neutralità dei vendor perché possono essere implementati da chiunque; essi portano tipicamente ad avere un ampio spettro di scelte possibili in termini di implementazioni e di piattaforme. Le applicazioni basate su standard aperti sono frequentemente anche molto portabili: possono essere eseguite su un ampia gamma di computer e piattaforme con uno sforzo di porting minimo o nullo. È questo il caso di J2EE che definisce una piattaforma di sviluppo di applicazioni distribuite basata su standard aperti quali Java, XML, HTTP, SOAP e altri ancora. Nessuna magia Sebbene J2EE contribuisca enormemente all aumento della produttività dei programmatori, non si tratta di una bacchetta magica. Lo sviluppo di applicazioni enterprise è un processo intrinsecamente complesso e laborioso. Sviluppare queste applicazioni con J2EE non è un impresa semplice o banale, nonostante i numerosi vantaggi della piattaforma. I programmatori che affrontano J2EE per la prima volta, in particolare, troveranno che l apprendimento è nel migliore dei casi lento o eventualmente addirittura di una difficoltà insostenibile, a seconda del loro background e della loro esperienza con Java. Fortunatamente esistono dei tool di sviluppo che possono facilitare e velocizzare il processo di apprendimento di J2EE. I tool di sviluppo professionali per J2EE sono essenziali sia ai nuovi sviluppatori J2EE che a coloro che ne abbiano già esperienza. Essi incapsulano gran parte della complessità dietro un interfaccia grafica facile da utilizzare e automatizzano i compiti ripetitivi, noiosi e propensi agli errori. Gli ottimi tool di sviluppo J2EE schermano i neofiti di J2EE dalla complessità e dai compiti sottostanti che i programmatori dovrebbero altrimenti direttamente ed esplicitamente fronteggiare. Questi tool, inoltre, consentono comunque agli sviluppatori J2EE più esperti di immergersi nel codice a un livello più basso, a seconda delle necessità. Sfortunatamente, occorre molto tempo prima che siano disponibili delle piattaforme e dei tool di sviluppo in seguito al rilascio di una revisione fondamentale di J2EE. Perfino ora, in seguito alla finalizzazione delle specifiche della piattaforma J2EE 1.4, molti vendor di prodotti J2EE stanno solamente incominciando a fornire prodotti e tool J2EE 1.3. Addirittura, mentre questo libro viene scritto, non esiste ancora alcun vendor che fornisca un implementazione completa della piattaforma J2EE 1.3. Gli sviluppatori devono assemblare più prodotti di vari vendor per costruire un implementazione completa della piattaforma J2EE 1.3 nel caso (insolito) in cui l applicazione dovesse realmente utilizzare ogni parte della piattaforma. Se la storia insegna, occorrerà un certo tempo prima che giungano sul mercato dei prodotti commerciali J2EE 1.4, sebbene questo non significhi affatto che si debba attendere. Volendo, è già possibile realizzare e distribuire applicazioni J2EE 1.4. Sun fornisce gratui-

13 01-CAP01_ok :52 Pagina 13 LE RAGIONI DI TANTO INTERESSE 13 tamente un ambiente di sviluppo J2EE 1.4, l SDK J2EE 1.4 (Software Development Kit), che include il codice sorgente di vari esempi: esso può essere utilizzato per iniziare a lavorare con J2EE 1.4 oggi stesso. Sebbene il prodotto gratuito SDK J2EE 1.4 non sia un prodotto commerciale perfettamente finalizzato, è più che sufficiente per iniziare a lavorare. Per maggiori dettagli, si visiti il sito Sun di J2EE a: Dato che J2EE definisce un insieme di funzionalità e servizi ricco e standardizzato, la parte più pesante e complessa del lavoro degli sviluppatori è già stata compiuta. I programmatori J2EE, non dovendo codificare le funzionalità di basso livello normalmente richieste dalla maggior parte delle applicazioni enterprise, possono così concentrarsi sulle peculiari caratteristiche organizzative o aziendali specifiche alla particolare applicazione. Consentire ai programmatori di concentrarsi sugli aspetti di più alto livello dell applicazione da sviluppare è un altro fattore che contribuisce ad aumentare la loro produttività generale. Esistono vari altri fattori che contribuiscono alla produttività dei programmatori, come l uso di convenzioni di codifica standardizzate a livello di azienda, la separazione della presentazione dell applicazione dalla sua logica, l adozione di processi di verifica strutturati e altro ancora. Il livello di produttività che possono raggiungere i programmatori dipende quindi da un vasto assortimento di fattori correlati. Fortunatamente, le piattaforme complete e robuste per lo sviluppo di applicazioni come J2EE contribuiscono notevolmente a incrementare la produttività dei programmatori in tutti gli stadi del processo di sviluppo di applicazioni enterprise. Il supporto per applicazioni EIS e sistemi legacy Qualunque piattaforma di sviluppo di applicazioni enterprise degna del suo nome fornisce supporto per l integrazione con (o addirittura l estensione di) applicazioni EIS (Enterprise Information System) esistenti e sistemi legacy più datati. Le applicazioni EIS forniscono i servizi informativi a livello aziendale. Esse memorizzano e supportano l elaborazione delle informazioni chiave dell organizzazione, costituendo quindi la sua infrastruttura informativa chiave. I vari sistemi informativi supportati da un applicazione EIS sono ben definiti e potrebbero essere accessibili ai client attraverso interfacce locali, remote o entrambe. Applicazioni per la gestione delle risorse umane, sistemi ERP (Enterprise Resource Planning) per la pianificazione delle risorse d impresa, applicazioni CRM (Customer Relationship Management) per la gestione delle relazioni con i clienti, mainframe con sistemi di elaborazione delle transazioni e sistemi con database legacy, sono tutti esempi di ambienti EIS che gli sviluppatori delle applicazioni enterprise attuali devono essere in grado di poter integrare, estendere o addirittura esporre come servizi Web. I sistemi legacy, sebbene raramente rilevanti nel caso di nuove aziende, costituiscono spesso l ossatura di organizzazioni già esistenti e più vecchie. Con il termine legacy ci si riferisce alle applicazioni EIS meno recenti, sebbene spesso i

14 01-CAP01_ok :52 Pagina CAPITOLO 1 due termini siano utilizzati in modo equivalente. Nel caso in cui si voglia fare una distinzione esplicita sulla base dell anzianità dei sistemi, il termine legacy indica i sistemi più vecchi (e probabilmente sorpassati) che costituiscono l infrastruttura informatica dell organizzazione. I sistemi legacy non possono più essere considerati tecnologicamente avanzati, ma rimangono di vitale importanza sebbene solitamente non siano sufficientemente flessibili per continuare a evolvere con l organizzazione. Quando le moderne applicazioni enterprise (come quelle create con J2EE) consentono di integrare ed estendere i sistemi EIS di un organizzazione, siano esse recenti o legacy, si possono ottenere enormi vantaggi. Invece di richiedere che tali sistemi siano riscritti a partire da zero, o di forzare l organizzazione a considerare la possibilità di abbandonarli a favore di soluzioni più recenti, le piattaforme di sviluppo di applicazioni enterprise come J2EE supportano con determinazione i sistemi enterprise già esistenti. Così facendo, si offre l opportunità agli sviluppatori delle applicazioni enterprise di fondere il passato con il presente riutilizzando (e potenzialmente estendendo) le funzionalità dei sistemi informativi esistenti. L integrazione con sistemi EIS e legacy è stato storicamente uno degli aspetti più difficili e frequenti nello sviluppo delle moderne applicazioni enterprise. Dato che molti sistemi EIS e legacy sono composti da una varietà di tecnologie (come CICS, IMS, SAP R/3, Siebel, i2 e così via) e soluzioni ad-hoc, la loro integrazione in nuove applicazioni enterprise è un compito sostanzialmente manuale. Per facilitare questo compito piuttosto noioso e per ridurre le possibilità di introduzione di errori da parte dei programmatori, le piattaforme come J2EE forniscono spesso un framework adattatore (adapter) o connettore (connector) che può essere utilizzato dai programmatori per integrare i sistemi legacy. Dato che l integrazione con i sistemi informativi esistenti è un requisito estremamente diffuso per le applicazioni enterprise, è molto probabile che gli adapter o i connector per i prodotti più diffusi siano già stati scritti (non è infrequente l esistenza di mercati software esclusivamente dedicati a questo tipo di particolari componenti). A volte, quando un particolare adapter o connector richiesto non è già disponibile, lo si deve appositamente codificare. In ogni caso, gli adapter o connector possono essere sviluppati impiegando un framework appositamente previsto (come quello supportato in J2EE) per fornire alle applicazioni enterprise l accesso ai sistemi informativi esistenti. 1.2 J2EE in aiuto Quando si considera l elevato numero di tentativi e peripezie associate allo sviluppo delle moderne applicazioni enterprise, si potrebbe essere tentati di concludere che esso comporta troppi rischi e sforzi per renderlo conveniente. Sebbene questo possa essere vero in certi casi, J2EE offre una piattaforma relativamente matura che concorre largamente a rendere il lavoro un relativo piacere anziché un insopportabile sofferenza.

15 01-CAP01_ok :52 Pagina 15 LE RAGIONI DI TANTO INTERESSE 15 I paragrafi seguenti introducono le principali caratteristiche e i vantaggi derivanti dall utilizzo di J2EE per realizzare applicazioni enterprise, offrendo una vista ad alto livello di alcune delle funzionalità chiave che verranno discusse più dettagliatamente nel seguito di questo stesso capitolo e nel resto del libro. Un architettura basata sulle componenti semplice e coerente J2EE supporta un modello semplificato di sviluppo di applicazioni basate su componenti nel quale le applicazioni enterprise sono assemblate con componenti software riutilizzabili scritte nel linguaggio di programmazione Java. Dato che J2EE si basa su J2SE (si ricordi che J2EE è in effetti una famiglia di funzionalità enterprise aggiunte alla piattaforma Java 2 Standard Edition), le applicazioni J2EE mantengono pienamente la promessa di portabilità di Java Scrivi una volta sola, esegui ovunque. Un applicazione J2EE realizzata in modo appropriato, quindi, potrà essere eseguita su qualunque server applicativo compatibile con J2EE, molti dei quali sono liberamente o commercialmente disponibili (si veda la Tabella 1.1 al termine di questo capitolo per un elenco di alcuni dei numerosi application server J2EE disponibili). NOTA Sebbene l architettura J2EE consenta di scrivere applicazioni enterprise portabili su differenti piattaforme, è abbastanza facile sviluppare applicazioni J2EE non portabili se non vi si presta la dovuta attenzione. Come si potrà vedere nei capitoli successivi, il programma Java BluePrints for Enterprise di Sun fornisce suggerimenti, configurazioni, codice e consigli per aiutare i programmatori J2EE a sviluppare applicazioni portabili. L architettura di J2EE è basata sulle componenti: le applicazioni J2EE consistono quindi di componenti software auto-contenute che vengono assemblate per ottenere un applicazione enterprise distribuita. Le varie componenti di cui è costituita un applicazione J2EE sono distribuite o messe in opera nella rete, dove vengono eseguite su computer differenti. Ognuna di esse risiede nel particolare livello dell ambiente di elaborazione di rete che corrisponde alle sue funzioni nell applicazione. J2EE supporta esplicitamente quattro livelli: (1) per le funzionalità client, (2) per il supporto Web, (3) per la logica business e (4) per l integrazione di EIS (come l accesso a un database legacy). Le componenti di presentazione o front-end che interagiscono con l utente finale sono localizzate logicamente nei livelli client, mentre quelle che forniscono funzionalità di accesso o di memorizzazione sono considerate parte del livello EIS back-end. Il livello intermedio che si trova logicamente fra i livelli frontend e back-end, d altro canto, supporta due sottolivelli. Il livello intermedio potrebbe consistere in un livello Web per le componenti che forniscono funzionalità basate su Internet e protocolli Web (come HTTP, HTML e XML) e un livello business costituito dalle componenti che catturano la logica business dell organizzazione. Alternativamente, i livelli Web e business

16 01-CAP01_ok :52 Pagina CAPITOLO 1 potrebbero essere partizionati logicamente in livelli totalmente distinti, ciascuno nel proprio: si otterrebbe in questo caso l architettura delle applicazioni distribuite a quattro livelli supportata da J2EE. Come illustrato nella Figura 1.3 (e spiegato dettagliatamente nel Capitolo 2), J2EE è un architettura flessibile che non costringe gli sviluppatori a utilizzare un numero di livelli prefissato e non specifica alcun partizionamento fisico per questi raggruppamenti logici. Sebbene J2EE supporti esplicitamente quattro livelli distinti (client, Web, business e EIS), questi livelli possono essere fisicamente distribuiti in più ambienti runtime per soddisfare al meglio le esigenze dell applicazione. Livello clienti Livello server Livello clienti Livello server Server Web Server Web Modello classico di applicazione client-server a due livelli Applicazione a tre livelli Server di logica business Livello clienti Livello Web Livello EIS Server Web Livello business L architettura multilivello di J2EE è molto flessibile nel partizionamento logico e fisico dei livelli. Applicazione a quattro livelli Figura 1.3 Le componenti J2EE possono essere partizionate logicamente in uno dei quattro livelli distinti: client, Web, business e EIS. Le applicazioni che hanno dei requisiti runtime modesti potrebbero eseguire i livelli Web e business (eventualmente anche il livello EIS) su un singolo computer, mentre potrebbe invece essere conveniente partizionare fisicamente applicazioni più esigenti con un computer (o cluster di computer) per ciascun livello.

17 01-CAP01_ok :52 Pagina 17 LE RAGIONI DI TANTO INTERESSE 17 RIMANDI L espressione applicazione distribuita multilivello si riferisce a un applicazione software le cui parti sono distribuite o messe in opera su più livelli di elaborazione di una rete. Nel Capitolo 2 si vedrà con precisione come J2EE supporti le applicazioni distribuite multilivello e come le componenti software auto-contenute vengano assemblate per formare le applicazioni complete. L architettura semplice e coerente basata sulle componenti utilizzata da J2EE aumenta la produttività dei programmatori in vari modi. Nei paragrafi seguenti vengono descritte le strategie più significative con le quali l approccio basato sulle componenti di J2EE consente di incrementare la produttività generale nello sviluppo di applicazioni enterprise. Promuove l impiego di codice riutilizzabile L approccio basato su componenti di J2EE forza la codifica delle funzionalità di un applicazione nella forma di componenti software auto-contenute aventi interfacce ben definite. Le componenti J2EE vengono assemblate fra di loro per formare delle applicazioni complete, consentendo così agli sviluppatori di comporre queste unità di funzionalità riutilizzabili in modo modulare a seconda delle esigenze. J2EE propone così agli sviluppatori un approccio tipo Lego relativamente semplice e molto produttivo per realizzare sofisticate applicazioni distribuite, nel quale le funzionalità dell applicazione sono praticamente composte inserendo i moduli opportuni. Facilita la manutenzione e l estensione Le componenti sono unità di funzionalità di programma auto-contenute che operano indipendentemente le une dalle altre. Le architetture basate su componenti generano applicazioni modulari che sono relativamente semplici da mantenere, aggiornare ed estendere. Nei modelli basati sulle componenti, le varie funzioni di un applicazione vengono partizionate in componenti software discrete e autonome. Gli sviluppatori possono assemblare rapidamente le applicazioni con le componenti opportune a seconda delle particolari funzionalità richieste. Data l unicità di ciascuna applicazione enterprise, questo flessibile processo di composizione fornisce agli sviluppatori varie tecniche per realizzare e configurare le proprie applicazioni a seconda dei loro requisiti, quali per esempio: il particolare client che verrà utilizzato dall utente finale, le considerazioni relative alla sicurezza, i requisiti relativi ai database e alle transazioni, le esigenze di scalabilità e così via. Supporta il packaging e il deployment delle componenti Grazie alla natura flessibile ed espandibile del modello a componenti di J2EE, i programmatori traggono beneficio dall elevata produttività perfino nelle fasi successive allo sviluppo principale, quando si effettua il packaging e il deployment del lavoro svolto. Invece di forzare delle regole rigide per il packaging e il deployment delle componenti, J2EE è intenzionalmente flessibile e lascia agli sviluppatori la libertà di creare le soluzioni che meglio soddisfano le loro esigenze specifiche. Come risultato, il packaging e il deployment delle componenti può essere effettua-

18 01-CAP01_ok :52 Pagina CAPITOLO 1 to singolarmente, collettivamente con librerie di componenti o globalmente nella forma di applicazioni. Inoltre, molte delle operazioni coinvolte nel packaging e nel deployment di un applicazione possono essere completamente automatizzate da appositi tool. Automatizzando questi compiti ripetitivi e noiosi, i programmatori possono dedicare il proprio tempo ad attività più produttive. Questo permette anche ai programmatori con competenze tecniche più limitate di effettuare il packaging e il deployment di applicazioni. NOTA Gli strumenti o tool di deployment aiutano a ridurre le possibilità di errori nella fase di deployment eliminando la necessità di installare e configurare individualmente le componenti per ciascuna macchina o cluster (i tool di deployment possono automatizzare il deployment di applicazioni in ambienti di tipo cluster). Permette la configurazione del comportamento nella fase di deployment È possibile configurare il comportamento dell applicazione nella fase di deployment perché le componenti J2EE possono contare sulla disponibilità a runtime dei servizi standard e possono interagire dinamicamente con le altre componenti tramite interfacce ben definite. Il comportamento dell applicazione può quindi essere definito da programma tramite un opportuno codice contenuto nella componente o in modo dichiarativo tramite istruzioni statiche (dichiarazioni) nei file del descrittore di deployment. I descrittori di deployment sono file XML utilizzati per comunicare le esigenze delle componenti di un applicazione a un tool di deployment, il quale controlla la configurazione runtime dell applicazione. I descrittori di deployment non sono codificati nell applicazione ma sono invece dichiarativi e dinamici (ovvero le istruzioni nel descrittore di deployment sono caricate e applicate a runtime). Essi consentono quindi la configurazione estremamente flessibile del comportamento di un applicazione, quali la gestione delle transazioni, i controlli di sicurezza, il pooling delle risorse e la gestione dello stato. Prevede esplicitamente dei ruoli (mansioni) specifici Le componenti sono delle unità di funzionalità software che possono essere assemblate in librerie o in applicazioni complete, cosa che favorisce una divisione precisa dei compiti: ciascun programmatore coinvolto ha quindi un ruolo specifico nel processo globale di sviluppo. Per esempio, gli autori dei contenuti Web possono dedicarsi alle componenti lato client mentre gli sviluppatori del database possono creare componenti che corrispondono alle proprie competenze. Nel frattempo, gli esperti del particolare dominio dell applicazione possono sviluppare le componenti che catturano la specifica logica business richiesta dall applicazione, mentre un altro sviluppatore (o gruppo di sviluppatori) si può occupare degli aspetti di packaging e deployment. In una situazione ideale, ciascuna persona coinvolta occupa il ruolo che meglio corrisponde alle proprie competenze e ai propri interessi personali, cosa che spesso consente di raggiungere i livelli di produttività individuale e di gruppo più elevati.

19 01-CAP01_ok :52 Pagina 19 LE RAGIONI DI TANTO INTERESSE 19 NOTA Le specifiche J2EE definiscono formalmente alcune mansioni, quali il fornitore delle componenti dell applicazione, lo sviluppatore delle componenti Web, lo sviluppatore del client, l assemblatore dell applicazione e il responsabile del deployment e dell amministrazione dell applicazione. Nel seguito di questo capitolo si analizzano in maggior dettaglio le mansioni previste da J2EE, che comportano una precisa divisione dei compiti che può contribuire ad aumentare la produttività individuale e di gruppo. Supporto built-in per la scalabilità e la sicurezza La scalabilità e la sicurezza sono requisiti praticamente irrinunciabili di qualunque applicazione enterprise. Applicazioni che non possono evolvere dinamicamente per adattarsi alle variazioni del carico e del pattern di utilizzazione degli utenti non possono essere adatte per applicazioni mission-critical o per organizzazioni particolarmente competitive. Indipendentemente dalla scalabilità, un applicazione vulnerabile in termini di sicurezza costituisce una seria minaccia per l organizzazione e può risultare nel lungo termine molto più costosa del tempo e del denaro risparmiati inizialmente. Per esempio vi può essere il rischio di vite umane nel caso di applicazioni mediche o aeronautiche compromesse. Anche in situazioni meno critiche le applicazioni enterprise devono comunque impedire l uso non autorizzato per proteggere l integrità dell organizzazione. ATTENZIONE Sebbene l impiego di applicazioni Java non sia previsto dove esiste il rischio di vite umane (le condizioni della licenza di Java proibiscono esplicitamente l uso della tecnologia nei sistemi medici e aeronautici, per esempio), la scalabilità e la sicurezza intrinseca di J2EE ne fanno un ottima scelta per applicazioni enterprise più tradizionali, dove mission-critical non comporti la perdita potenziale di vite umane. La scalabilità e la sicurezza sono talmente importanti che J2EE fornisce un supporto built-in per entrambe. Le componenti J2EE sono sempre eseguite nel contesto di un container che semplifica e automatizza lo scaling ( adattamento delle dimensioni ) delle applicazioni distribuite senza richiedere alcuno sforzo da parte del programmatore. Grazie alle caratteristiche di scalabilità intrinseca dei container J2EE non è necessario sviluppare del codice specifico per ogni applicazione dato che le capacità di scalabilità fondamentali sono automaticamente già disponibili a livello di piattaforma. Questo comporta anche un elevato grado di availability ( disponibilità ) delle applicazioni, sulle quali si può fare affidamento per supportare e raggiungere gli obiettivi dell organizzazione ventiquattr ore su ventiquattro. Analogamente, la piattaforma J2EE supporta un modello di sicurezza built-in che gestisce la sicurezza dell accesso ai servizi applicativi. J2EE supporta la sicurezza da programma, che consente agli sviluppatori di codificare esplicitamente i

20 01-CAP01_ok :52 Pagina CAPITOLO 1 controlli di autenticazione degli utenti e i controlli di accesso nelle componenti, e la sicurezza dichiarativa role-based che può essere specificata all atto del deployment di un applicazione. Mentre i controlli di sicurezza da programma possono verificare gli accessi all applicazione su base individuale, la sicurezza role-based permette a gruppi di individui di condividere i medesimi privilegi di accesso. Supportando direttamente sia i controlli di sicurezza in fase di sviluppo che in fase di deployment, J2EE offre molta flessibilità agli sviluppatori nell area della sicurezza. Grazie al supporto di J2EE per la gestione dei privilegi di accesso su base individuale e di gruppo (role-based), gli sviluppatori possono sfruttare la soluzione che meglio soddisfa le esigenze dell organizzazione con uno sforzo minimo. Sviluppato su basi stabili e affidabili J2EE è stata progettata fin dall inizio come piattaforma stabile e affidabile, dato il suo esplicito orientamento enterprise. La stabilità della piattaforma J2EE è in gran parte dovuta alle solide basi offerte dalla piattaforma J2SE sottostante e dal linguaggio di programmazione Java con il quale è realizzata. Quando Java fece la sua prima apparizione una decina di anni fa, introdusse la possibilità di sviluppare contenuti stabili e sicuri per il (nuovo, a quei tempi) World Wide Web. Grazie a Java si poterono inserire piccoli programmi direttamente nelle pagine Web standard. Le applet offrirono agli sviluppatori Web un modo stabile e sicuro per creare contenuti eseguibili e interattivi. Le applet eseguite nelle pagine Web dovevano rimanere confinate all interno di un ambiente di sicurezza controllato, il cosiddetto modello di sicurezza sandbox fornito dal browser, il quale impediva loro l accesso ad alcune parti del sistema di elaborazione dell utente. Le applet Java, le applicazioni, le componenti e tutte le altre forme di programmi Java traggono beneficio dal fatto che Java è un linguaggio fortemente tipizzato che non supporta il casting implicito, ovvero la conversione automatica fra tipi di dati differenti. Non esiste ambiguità nell utilizzo dei tipi dati in Java: i programmi devono dichiarare esplicitamente i tipi di dati che utilizzano e devono dichiarare esplicitamente il casting quando convertono fra un tipo e un altro. Java inoltre non supporta i puntatori, il cui utilizzo scorretto è spesso colpevole della corruzione dei dati e degli sconfinamenti di memoria tipici dei programmi scritti in linguaggi che supportano i puntatori (come C e C++). Java controlla anche i limiti degli array a runtime per garantire che gli indici e gli accessi che eccedono la capacità degli array possano essere intercettati e gestiti dal programma. Oltre alle caratteristiche di progettazione alla base della stabilità dei programmi Java, anche le caratteristiche del suo runtime contribuiscono a rendere questi programmi particolarmente affidabili. A differenza dei programmi tradizionali che consistono in codice nativo in linguaggio macchina eseguito direttamente nel particolare tipo di computer per il quale sono stati compilati, i programmi Java consistono in codice bytecode indipendente dalla specifica architettura hardware, eseguito nella macchina virtuale Java, o (JVM Java Virtual Machine). A runtime, le JVM convertono dinamicamente il bytecode nel codice

Approccio stratificato

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

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

uadro Soluzione software e hardware Per le rilevazione presenze Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Soluzione software e hardware Per le rilevazione presenze Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Per le rilevazione presenze Perché scegliere Q Rilevazione Presenze? Si tratta di un sistema completo di software e hardware per realtà che intendono automatizzare

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico

Dettagli

MANUALE DELLA QUALITÀ Pag. 1 di 6

MANUALE DELLA QUALITÀ Pag. 1 di 6 MANUALE DELLA QUALITÀ Pag. 1 di 6 INDICE GESTIONE DELLE RISORSE Messa a disposizione delle risorse Competenza, consapevolezza, addestramento Infrastrutture Ambiente di lavoro MANUALE DELLA QUALITÀ Pag.

Dettagli

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Soluzioni software per L archiviazione elettronica dei documenti Perché scegliere Q Archiviazione Elettronica dei Documenti? Tale applicativo si pone come obbiettivo

Dettagli

La tecnologia cloud computing a supporto della gestione delle risorse umane

La tecnologia cloud computing a supporto della gestione delle risorse umane La tecnologia cloud computing a supporto della gestione delle risorse umane L importanza delle risorse umane per il successo delle strategie aziendali Il mondo delle imprese in questi ultimi anni sta rivolgendo

Dettagli

DATAMORFOSI. E la sintesi della strategia di prodotto di Webgate400.

DATAMORFOSI. E la sintesi della strategia di prodotto di Webgate400. DATAMORFOSI E la sintesi della strategia di prodotto di Webgate400. Indica tutte le trasformazioni di forma e di struttura che si possono applicare alle soluzioni software RPG per IBM Power System, attraverso

Dettagli

itime Chiaramente inclusa la stampa del cartellino presenze come previsto dalle normative

itime Chiaramente inclusa la stampa del cartellino presenze come previsto dalle normative itime itime Il software di rilevazione presenze itime rappresenta lo strumento ideale per l automatizzazione della gestione del personale. L ampia presenza dei parametri facilita l operatore nel controllo

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione.

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione. ISO 9001 Con la sigla ISO 9001 si intende lo standard di riferimento internazionalmente riconosciuto per la Gestione della Qualità, che rappresenta quindi un precetto universale applicabile all interno

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

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

Il modello di ottimizzazione SAM

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

Dettagli

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE: IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:! definisce i bisogni e i desideri insoddisfatti! ne definisce l ampiezza! determina quali mercati obiettivo l impresa può meglio servire! definisce i prodotti

Dettagli

Database. Si ringrazia Marco Bertini per le slides

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

Dettagli

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

Dettagli

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata. Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa

Dettagli

Le fattispecie di riuso

Le fattispecie di riuso Le fattispecie di riuso Indice 1. PREMESSA...3 2. RIUSO IN CESSIONE SEMPLICE...4 3. RIUSO CON GESTIONE A CARICO DEL CEDENTE...5 4. RIUSO IN FACILITY MANAGEMENT...6 5. RIUSO IN ASP...7 1. Premessa Poiché

Dettagli

uadro Soluzione software e hardware Per la gestione degli appuntamenti Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Soluzione software e hardware Per la gestione degli appuntamenti Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Per la gestione degli appuntamenti Perché scegliere Q Gestione Appuntamenti? Pensato per studi medici, fisioterapici, estetica e in generale per ogni attività che prevada

Dettagli

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

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

Dettagli

Appunti di Sistemi Distribuiti

Appunti di Sistemi Distribuiti Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete Sistemi Operativi di Rete Estensione dei Sistemi Operativi standard con servizi per la gestione di risorse in rete locale Risorse gestite: uno o più server di rete più stampanti di rete una o più reti

Dettagli

25/11/14 ORGANIZZAZIONE AZIENDALE. Tecnologie dell informazione e controllo

25/11/14 ORGANIZZAZIONE AZIENDALE. Tecnologie dell informazione e controllo ORGANIZZAZIONE AZIENDALE 1 Tecnologie dell informazione e controllo 2 Evoluzione dell IT IT, processo decisionale e controllo Sistemi di supporto al processo decisionale IT e coordinamento esterno IT e

Dettagli

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo CAPITOLO 8 Tecnologie dell informazione e controllo Agenda Evoluzione dell IT IT, processo decisionale e controllo Sistemi di supporto al processo decisionale Sistemi di controllo a feedback IT e coordinamento

Dettagli

11. Evoluzione del Software

11. Evoluzione del Software 11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

Norme per l organizzazione - ISO serie 9000

Norme per l organizzazione - ISO serie 9000 Norme per l organizzazione - ISO serie 9000 Le norme cosiddette organizzative definiscono le caratteristiche ed i requisiti che sono stati definiti come necessari e qualificanti per le organizzazioni al

Dettagli

UN APP FLESSIBILE E INTUITIVA PER GESTIRE I TUOI AFFARI IN TUTTA COMODITÀ

UN APP FLESSIBILE E INTUITIVA PER GESTIRE I TUOI AFFARI IN TUTTA COMODITÀ UN APP FLESSIBILE E INTUITIVA PER GESTIRE I TUOI AFFARI IN TUTTA COMODITÀ APP Mobile MIGLIORA LA QUALITÀ DEL RAPPORTO CON I CLIENTI, SCEGLI LA TECNOLOGIA DEL MOBILE CRM INTEGRABILE AL TUO GESTIONALE AZIENDALE

Dettagli

esales Forza Ordini per Abbigliamento

esales Forza Ordini per Abbigliamento esales Rel. 2012 Forza Ordini per Abbigliamento Scopo di questo documento è fornire la descrizione di una piattaforma di Raccolta Ordini via Web e la successiva loro elaborazione in ambiente ERP Aziendale.

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0

Riepilogo delle modifiche di PA-DSS dalla versione 2.0 alla 3.0 Settore delle carte di pagamento (PCI) Standard di protezione dei dati per le applicazioni di pagamento () Riepilogo delle modifiche di dalla versione 2.0 alla 3.0 Novembre 2013 Introduzione Il presente

Dettagli

L IT a supporto della condivisione della conoscenza

L IT a supporto della condivisione della conoscenza Evento Assintel Integrare i processi: come migliorare il ritorno dell investimento IT Milano, 28 ottobre 2008 L IT a supporto della condivisione della conoscenza Dott. Roberto Butinar AGENDA Introduzione

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

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

2 Gli elementi del sistema di Gestione dei Flussi di Utenza SISTEMA INFORMATIVO page 4 2 Gli elementi del sistema di Gestione dei Flussi di Utenza Il sistema è composto da vari elementi, software e hardware, quali la Gestione delle Code di attesa, la Gestione di

Dettagli

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

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

Dettagli

La soluzione per le imprese che lavorano su commessa.

La soluzione per le imprese che lavorano su commessa. La soluzione per le imprese che lavorano su commessa. ASSISTENZA OFFERTA PROGETTO CONSEGNA ACQUISTI PRODUZIONE Scopri la soluzione verticale di Soluzioni Software che estende e completa SAP Business One.

Dettagli

REALIZZARE UN MODELLO DI IMPRESA

REALIZZARE UN MODELLO DI IMPRESA REALIZZARE UN MODELLO DI IMPRESA - organizzare e gestire l insieme delle attività, utilizzando una piattaforma per la gestione aziendale: integrata, completa, flessibile, coerente e con un grado di complessità

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

Dettagli

Gestione remota archivi cartelle sanitarie e di rischio informatizzate

Gestione remota archivi cartelle sanitarie e di rischio informatizzate Gestione remota archivi cartelle sanitarie e di rischio informatizzate L odierna realtà economica impone alle aziende di differenziarsi sempre più dai concorrenti, investendo in tecnologie che possano

Dettagli

Piano di gestione della qualità

Piano di gestione della qualità Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.

Dettagli

Novità di Access 2010

Novità di Access 2010 2 Novità di Access 2010 In questo capitolo: Gestire le impostazioni e i file di Access nella visualizzazione Backstage Personalizzare l interfaccia utente di Access 2010 Creare database utilizzando modelli

Dettagli

IT Cloud Service. Semplice - accessibile - sicuro - economico

IT Cloud Service. Semplice - accessibile - sicuro - economico IT Cloud Service Semplice - accessibile - sicuro - economico IT Cloud Service - Cos è IT Cloud Service è una soluzione flessibile per la sincronizzazione dei file e la loro condivisione. Sia che si utilizzi

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda. Scheda Il CRM per la Gestione delle Vendite Le organizzazioni di vendita sono costantemente alla ricerca delle modalità migliori per aumentare i ricavi aziendali e ridurre i costi operativi. Oggi il personale

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Via Don Angelo Scapin, 36 I-35020 Roncaglia di Ponte San Nicolò (PD) ITALIA Phone/Fax: +39 049 719065 - info@spinips.com www.spinips.

Via Don Angelo Scapin, 36 I-35020 Roncaglia di Ponte San Nicolò (PD) ITALIA Phone/Fax: +39 049 719065 - info@spinips.com www.spinips. Via Don Angelo Scapin, 36 I-35020 Roncaglia di Ponte San Nicolò (PD) ITALIA Phone/Fax: +39 049 719065 - info@spinips.com www.spinips.com STUDI E VERIFICHE DI FATTIBILITÀ... 2 PROGETTAZIONE MECCANICA...

Dettagli

12. Evoluzione del Software

12. Evoluzione del Software 12. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 12. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in base alle necessità di chiarezza emerse nell utilizzo della precedente versione e per meglio armonizzarla con la ISO 14001:04. Elemento

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

manifatturiera e per i servizi

manifatturiera e per i servizi CAPITOLO 7 Tecnologie per la produzione manifatturiera e per i servizi Agenda Tecnologia e core technology Processi core ed ausiliari Tecnologia e struttura organizzativa Tecnologia core manifatturiera

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

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology Virtualization Strutturare per semplificare la gestione Communication Technology Ottimizzare e consolidare Le organizzazioni tipicamente si sviluppano in maniera non strutturata e ciò può comportare la

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

03. Il Modello Gestionale per Processi

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

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Premesso che il Sistema di e-learning federato per la pubblica amministrazione dell Emilia-Romagna (SELF):

Premesso che il Sistema di e-learning federato per la pubblica amministrazione dell Emilia-Romagna (SELF): CONVENZIONE PER L ADESIONE AL SISTEMA DI E-LEARNING FEDERATO DELL EMILIA-ROMAGNA PER LA PUBBLICA AMMINISTRAZIONE E L UTILIZZO DEI SERVIZI PER LA FORMAZIONE Premesso che il Sistema di e-learning federato

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

Integrazione dei processi aziendali Sistemi ERP e CRM. Alice Pavarani

Integrazione dei processi aziendali Sistemi ERP e CRM. Alice Pavarani Integrazione dei processi aziendali Sistemi ERP e CRM Alice Pavarani Un ERP rappresenta la maggiore espressione dell inseparabilità tra business ed information technology: è un mega-package di applicazioni

Dettagli

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

SOLUZIONE Web.Orders online

SOLUZIONE Web.Orders online SOLUZIONE Web.Orders online Gennaio 2005 1 INDICE SOLUZIONE Web.Orders online Introduzione Pag. 3 Obiettivi generali Pag. 4 Modulo di gestione sistema Pag. 5 Modulo di navigazione prodotti Pag. 7 Modulo

Dettagli

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

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

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8 Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare

Dettagli

Appendice III. Competenza e definizione della competenza

Appendice III. Competenza e definizione della competenza Appendice III. Competenza e definizione della competenza Competenze degli psicologi Lo scopo complessivo dell esercizio della professione di psicologo è di sviluppare e applicare i principi, le conoscenze,

Dettagli

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi Indagine ottenuta grazie alla somministrazione di questionario ad oltre 260

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

Programmare in ambiente Java Enterprise: l offerta formativa di Infodue

Programmare in ambiente Java Enterprise: l offerta formativa di Infodue Tecnologia e professionalità al servizio del business, dal 1986 Programmare in ambiente Java Enterprise: l offerta Copyright 2006 Infodue S.r.l. La programmazione nell era era del Web Computing L evoluzione

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

GOW GESTIONE ORDINI WEB

GOW GESTIONE ORDINI WEB OW GOW GESTIONE ORDINI WEB OWUn'azienda moderna necessita di strumenti informatici efficienti ed efficaci, in GESTIONE CLIENTI, ORDINI E STATISTICHE TRAMITE BROWSER WEB grado di fornire architetture informative

Dettagli

La Guida per l Organizzazione degli Studi professionali

La Guida per l Organizzazione degli Studi professionali La Guida per l Organizzazione degli Studi professionali Gianfranco Barbieri Senior Partner di Barbieri & Associati Dottori Commercialisti Presidente dell Associazione Culturale Economia e Finanza gianfranco.barbieri@barbierieassociati.it

Dettagli

1.2.1 - REALIZZAZIONE LAN

1.2.1 - REALIZZAZIONE LAN 1 - CODICE PROGETTO 1.2.1 - REALIZZAZIONE LAN 2 - TIPOLOGIA DI INTERVENTO/AREA FUNZIONALE DEL PPL Il progetto è riconducibile a quella che il Piano Provinciale del Lavoro definisce quale Area 1: organizzazione

Dettagli

Area Marketing. Approfondimento

Area Marketing. Approfondimento Area Marketing Approfondimento CUSTOMER SATISFACTION COME RILEVARE IL LIVELLO DI SODDISFAZIONE DEI CLIENTI (CUSTOMER SATISFACTION) Rilevare la soddisfazione dei clienti non è difficile se si dispone di

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 1

Corso di Amministrazione di Sistema Parte I ITIL 1 Corso di Amministrazione di Sistema Parte I ITIL 1 Francesco Clabot Responsabile erogazione servizi tecnici 1 francesco.clabot@netcom-srl.it Fondamenti di ITIL per la Gestione dei Servizi Informatici ITSM

Dettagli

SOFTWARE PER LA RILEVAZIONE PRESENZE SUL WEB

SOFTWARE PER LA RILEVAZIONE PRESENZE SUL WEB SOFTWARE PER LA RILEVAZIONE PRESENZE SUL WEB Descrizione Time@Web rappresenta l applicazione per la gestione delle presenze via Web. Nel contesto dell ambiente START, Solari ha destinato questa soluzione

Dettagli

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo. L 320/8 Gazzetta ufficiale dell Unione europea IT 17.11.2012 REGOLAMENTO (UE) N. 1078/2012 DELLA COMMISSIONE del 16 novembre 2012 relativo a un metodo di sicurezza comune per il monitoraggio che devono

Dettagli

Il cloud per la tua azienda.

Il cloud per la tua azienda. Il cloud per la tua azienda. Questo è Microsoft Cloud Ogni azienda è unica. Dalla sanità alla vendita al dettaglio, alla produzione o alla finanza, non esistono due aziende che operano nello stesso modo.

Dettagli

http://indesk.innove.it

http://indesk.innove.it http://indesk.innove.it INDESK. Un nuovo service management. Un approccio completamente nuovo alla gestione di sistemi di information technology (IT) su larga scala e integrabile ai sistemi legacy ha portato

Dettagli

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi Project Management Modulo: Introduzione prof. ing. Guido Guizzi Definizione di Project Management Processo unico consistente in un insieme di attività coordinate con scadenze iniziali e finali, intraprese

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA 8.1 ISTRUZIONI PER IL VALUTATORE Campioni Il processo di valutazione tecnologica si basa su un campione del prodotto, precedentemente

Dettagli

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it izticket Il programma izticket permette la gestione delle chiamate di intervento tecnico. E un applicazione web, basata su un potente application server java, testata con i più diffusi browser (quali Firefox,

Dettagli

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it FIRESHOP.NET Gestione del taglia e colore www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione iniziale... 5 Gestione delle varianti... 6 Raggruppamento delle varianti... 8 Gestire le varianti

Dettagli

Scenario di Progettazione

Scenario di Progettazione Appunti del 3 Ottobre 2008 Prof. Mario Bochicchio SCENARIO DI PROGETTAZIONE Scenario di Progettazione Il Committente mette a disposizione delle risorse e propone dei documenti che solitamente rappresentano

Dettagli

IDENTITÀ GIOVANE. Nata nel 2006 con l intento di diventare leader nel settore IT, Easytech cresce con una solida competenza in tre divisioni:

IDENTITÀ GIOVANE. Nata nel 2006 con l intento di diventare leader nel settore IT, Easytech cresce con una solida competenza in tre divisioni: copertina pg. 1 immagine pg. 2 Easytech è un gruppo di giovani professionisti uniti da un obiettivo comune: proporre le migliori soluzioni per rendere le imprese leggere e pronte a sostenere la competizione

Dettagli

NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING

NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING gno Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING COSA

Dettagli

Cloud Computing....una scelta migliore. ICT Information & Communication Technology

Cloud Computing....una scelta migliore. ICT Information & Communication Technology Cloud Computing...una scelta migliore Communication Technology Che cos è il cloud computing Tutti parlano del cloud. Ma cosa si intende con questo termine? Le applicazioni aziendali stanno passando al

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Mon Ami 3000 Conto Lavoro Gestione del C/Lavoro attivo e passivo

Mon Ami 3000 Conto Lavoro Gestione del C/Lavoro attivo e passivo Prerequisiti Mon Ami 3000 Conto Lavoro Gestione del C/Lavoro attivo e passivo L opzione Conto lavoro è disponibile per le versioni Azienda Light e Azienda Pro. Introduzione L opzione Conto lavoro permette

Dettagli

Introduzione alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli