ENTERPRISE JAVABEANS

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ENTERPRISE JAVABEANS"

Transcript

1 ENTERPRISE JAVABEANS Approfondimento per il corso Sistemi Distribuiti A.A. 2002/2003 Marchiori Ilaria Università Ca Foscari Venezia

2 CENNI SULLA PROGRAMMAZIONE A COMPONENTI 3 Introduzione 3 Che cos e una componente? 3 Programmazione Java a componenti : JavaBeans 3 ENTERPRISE JAVABEANS 4 ARCHITETTURA EJB 5 EJB CONTAINER 5 ENTERPRISE BEANS (COMPONENTI SERVER DISTRIBUITI) 7 Tipologie di Enterprise Beans 8 Entity Bean 8 Session Bean 11 SERVER PER GLI EJB 13 CLIENT PER GLI EJB 13 CONCLUSIONI : UN CONFRONTO CON RMI E CORBA 14

3 CENNI SULLA PROGRAMMAZIONE A COMPONENTI Introduzione Quando parliamo della programmazione a componenti ci riferiamo alla programmazione orientata agli oggetti che vede quest ultimi come delle componenti. Verso questa tendenza si muovono le tecnologie CORBA, DCOM, JAVA BEAN, in cui le componenti che si creano vengono poi aggregate fino a fornire il prodotto che si vuole realizzare. Ovviamente è indispensabile uno strumento di aggregazione che ci dia la sicurezza che le componenti create si riescano a "legare bene" tra loro. Che cos e una componente? Una componente è un unità di distribuzione. Quando una componente viene distribuita in commercio viene venduta per intero, non a pezzi. Se venisse prodotta da diversi fornitori (ovvero ognuno realizza una parte della componente), i problemi di interoperabilità tra le singole parti sarebbero frequentissimi. Una componente è un unità di composizione, visto che deve essere composta con altre che formano il progetto. Una componente non è un oggetto. Un oggetto è un unità di istanziazione: unità perchè dev essere un tutt uno, un qualcosa di atomico, mentre di istanziazione perche è stato istanziato (un oggetto ha un'unica identità che viene creata al momento dell istanziazione). Una componente è un unita di composizione e di sostituzione. Deve essere considerato come una scatola nera, un qualcosa dentro il quale non si entra. Con essa possiamo interagire staticamente tramite un interfaccia. Programmazione Java a componenti : JavaBeans JavaBeans e' un modello di programmazione a componenti per il linguaggio Java. L obiettivo e' quello di ottenere componenti software riusabili ed indipendenti dalla piattaforma. Inoltre tali componenti (beans) possono essere manipolati dai moderni tool di sviluppo visuali e composti insieme per produrre applicazioni. Ogni classe Java che aderisce a precise convenzioni sulla gestione di proprieta' ed eventi puo' essere considerata un bean.

4 ENTERPRISE JAVABEANS Basati sulla specifica EJB Sun Microsystems, gli Enterprise JavaBeans definiscono un architettura per lo sviluppo di componenti software che consentono di costruire applicazioni ad oggetti distribuite, utilizzando Java. Esse introducono un insieme di convenzioni, di classi e di interfacce (EJB API) che costituiscono una piattaforma di sviluppo comune per i vari produttori di software, allo scopo di garantire due aspetti fondamentali quali la portabilità e l interoperabilità. Quindi da un punto di vista architetturale EJB non è che un altro modo di vedere e di implementare il modello della computazione distribuita, in cui gli oggetti distribuiti possono essere eseguiti in remoto e su più macchine indipendenti fra loro. Prima della comparsa di EJB, la soluzione più semplice per realizzare architetture distribuite full Java era rappresentata dalla Remote Method Invocation (RMI); parallelamente troviamo anche CORBA come complesso e potente sistema di gestione di oggetti remoti e distribuiti. La novità introdotta rispetto a RMI e CORBA, dove i cosiddetti distribuited object services devono essere implementati a mano o forniti per mezzo di software di terze parti, risiede nel fatto che nel modello degli EJB tutto quello che riguarda la gestione dei servizi è disponibile e utilizzabile in maniera del tutto automatica e trasparente agli occhi del client. Quando si parla di servizi ci si riferisce a tutte quelle funzionalità volte alla implementazione dei seguenti aspetti: Transazioni: ovvero un insieme di operazioni che devono essere svolte in maniere atomica. Come poi vedremo i container EJB offrono un sistema automatico per la gestione delle transazioni. Sicurezza: uno degli aspetti più importanti nell ambito dei sistemi distribuiti; nel modello EJB viene fornito il supporto offerto dal modello della security della piattaforma Java 2. Scalabilità: la modalità con cui EJB opera permette la massima flessibilità e scalabilità in funzione del traffico dati e del numero di clienti (ad esempio quali, quanti e come i beans vengano forniti ai vari client è un meccanismo gestito automaticamente dal server). EJB utilizza le funzionalità e la filosofia di base di RMI per realizzare strutture distribuite, estendendone come visto i servizi in maniera trasparente.

5 ARCHITETTURA EJB L architettura EJB è basata essenzialmente su tre componenti: i server, i container ed i client. Il server si occupa di fornire ai contenitori una serie di servizi di base per i vari componenti installati. Il contenitore offre una serie di funzionalità legate al life-cycle dei vari componenti, si occupa della gestione delle transazioni, e del security-management. Il client infine rappresenta l utilizzatore finale del componente. Vediamo più in dettaglio tale architettura, cominciando dall analisi del container. EJB CONTAINER Il container è l ambiente in cui operano gli Enterprise beans. Offre una serie di funzionalità legate ad ogni aspetto della vita di un bean: l accesso remoto al bean la sicurezza le transazioni la persistenza la concorrenza l accesso alle risorse. Il container isola il bean dall accesso diretto da parte dei client. Grazie all intercettazione di tutte le richieste (da parte dei vari client) dirette al bean è in grado di garantire la sicurezza e la persistenza. Inoltre è in grado di gestire le transazioni che si instaurano fra chiamate successive, in relazione a contenitori differenti e a server in esecuzione su macchine diverse. Di conseguenza lo sviluppatore di un componente può quindi concentrarsi sui dettagli implementativi della business logic, tralasciando gli altri aspetti legati alla gestione che sono a carico del container. L unica cosa che deve fare chi sviluppa un componente è implementare una serie di interfacce standard. Il container inoltre può gestire le risorse in modo del tutto trasparente ed invisibile al client. Ad esempio può organizzare le risorse in pool condividere un bean tra più client togliere un bean non usato dalla memoria riservandosi la possibilità di reinstanziarlo al momento del successivo utilizzo.

6 Dipendenza del bean dal container Il bean dipende completamente dal container; si rivolge ad esso quando deve accedere ad una connessione JDBC, accedere ad un altro enterprise bean, accedere all identita' del cliente, ottenere un riferimento a se stesso, accedere a proprieta' o risorse varie. Sono tre i meccanismi che un bean ha a disposizione per interagire con il proprio container: 1. callback methods: questi metodi sono definiti nell interfaccia EnterpriseBean, e vengono chiamati automaticamente dal container in corrispondenza di particolari eventi della vita di un bean. Ad esempio quando il bean sta per essere attivato o quando il suo stato sta per essere salvato in un database o sta per essere rimosso dalla memoria. I callback methods danno la possibilità al bean di compiere qualche operazione di manutenzione o di pulizia immediatamente prima o dopo determinati eventi. 2. l interfaccia EJBContext: è un riferimento direttamente al container, mediante il quale un bean può chiedere informazioni riguardo all ambiente in cui sta operando, come l identità di un cliente, lo stato di una transazione, un riferimento remoto a se stesso. 3. la Java Naming and Directory Interface (JNDI): consente di accedere a naming systems quali LDAP, NetWare, ecc. Un bean può utilizzare JNDI per accedere a risorse quali connessioni JDBC, altri enterprise bean, proprietà specifiche del bean. Obbiettivi dell interazione bean-container L interazione tra il bean e il container si basa pertanto su una serie di regole volte a garantire due obbiettivi fondamentali: portabilità del bean: un bean sviluppato per un container può essere trasportato su un altro che offra migliori prestazioni, migliori caratteristiche o che costi meno. semplicità di sviluppo del bean: come si e precedentemente detto, il container si occupate degli aspetti di gestione più complicati, lasciando allo sviluppatore il compito di concentrarsi solo sulle business rules. In questo modo se da un alto i beans sono sviluppati più velocemente, dall atro non sono richieste allo sviluppatore competenze specifiche di programmazione distribuita (gestione delle transazione, della concorrenza, etc).

7 ENTERPRISE BEANS (componenti server distribuiti) Gli Enterprise Java Beans sono componenti server distribuiti. Sono costituiti da due interfacce pubbliche la cui implementazione viene effettuata automaticamente dal container al momento del deploy del bean stesso. Il client utilizza le interfacce pubbliche per creare, manipolare e rimuovere il bean dal server EJB. Le due interfacce esportate dal bean verso i client rappresentano la visione che un client ha del bean stesso, sebbene il client non agisca mai direttamente sulla componente, ma tutto passa sempre attraverso l ambiente. Esse sono: la home interface che fornisce i metodi per creare, distruggere o trovare un componente. la remote interface che definisce i business methods (che possono rappresentare delle azioni o task) Un client utilizza la home interface per ottenere un riferimento alla remote interface di un bean. La remote interface può contenere sia metodi per accedere o modificare i campi di un bean sia per eseguire un qualche compito. Implementando queste due interfacce ed i loro relativi metodi, il container è in grado di intercettare le chiamate provenienti dal client, ed allo stesso tempo gli fornisce una visione semplificata del componente stesso. Va notato che il client non ha la percezione di questa interazione da parte del container. In questo modo si garantisce la flessibilità, la scalabilità oltre ad una non indifferenze semplificazione del lavoro da svolgere.

8 TIPOLOGIE DI ENTERPRISE BEANS Due sono i tipi di Enterprise Beans: gli entity bean e i session beans. I primi rappresentano dati specifici o collezioni di dati. In genere forniscono metodi per l interazione con i dati che essi stessi rappresentano. Questo tipo di componenti sono persistenti, dato che restano in vita per tutto il tempo che sono memorizzati all interno del database. I secondi invece rappresentano un collegamento con il client e soprattutto l interazione con esso. In genere i bean di questo tipo implementano una sequenza di operazioni all interno di una transazione. L implementazione di un bean e' una classe chiamata bean class. Essa incapsula i dati e fornisce i metodi per accedervi. ENTITY BEAN Un entity bean rappresenta dati persistenti, ovvero memorizzati all interno di un database. L accesso (e quindi l utilizzo) da parte del client a tali dati avviene attraverso la remote interface del bean. Inoltre un entity bean implementa l interfaccia javax.ejb.entitybean. Vengono sviluppati metodi per la ricerca del componente da parte del client: quello più importate è il findbyprimarykey(), il quale necessita al suo fianco della creazione di una chiave primaria (classe PrimaryKey) per consentire l identificazione unica del bean. Per creare un Entity Bean, si può operare in due modi: il client invoca i metodi di creazione della home interface in alternativa si effettua una qualche operazione che aggiunga nel database dati che rappresentino il bean. Per avere un riferimento di un componente già esistente invece, diversi sono i modi con cui il client può operare: può ricevere il bean come parametro di una invocazione di metodi remoti effettuare una ricerca presso il server per mezzo dei metodi di ricerca ottenere dinamicamente un riferimento dal container il quale provvede a fornire il bean più indicato. A seconda di chi si occupa della persistenza, gli entità beans si distinguono in: Container-Managed Persistence (CMP) Bean-Managed Persistence (BMP)

9 CMP Entity Beans Nel caso di entity beans di tipo CMP (Container-Managed Persistence) e' il container a occuparsi della persistenza del bean. Lo sviluppatore del bean non deve scrivere una riga di codice di accesso al database. Il supporto alla persistenza è fornito dal server e varia da produttore a produttore, a seconda degli strumenti più o meno sofisticati utilizzati per mappare i campi del bean all interno del database. Metodi di CMP Per ogni create() nella home interface corrispondono una ejbcreate() ed una ejbpostcreate() con gli stessi parametri. Esse vengono chiamate automaticamente dal container rispettivamente subito prima e subito dopo che un nuovo bean e' stato creato ed un nuovo record e' stato inserito nel database. - ejbcreate() viene utilizzata per inizializzare i campi del bean prima che questi vengano scritti nel nuovo record. Bisogna notare che un EJB tecnicamente non esiste finché il suo stato non è stato scritto nel database. - ejbpostcreate() viene eseguita dopo la creazione, ma prima che il bean inizi a servire i client. I find methods, per un bean CMP, vengono gestiti automaticamente dal container: essi sono utilizzati per localizzare determinati bean già esistenti, e si suddividono, a seconda del numero di entità che possono restituire in risposta alla loro invocazione, in - single-entity find methods : restituiscono un solo entity bean oppure una ObjectNotFoundException - multi-entity find method: restituiscono una collezione, eventualmente vuota, di entity bean. Per un entità bean è obbligatorio definire un single-entity find methods chiamato findbyprimarykey() che prende in ingresso la chiave primaria del bean e serve per l identificazione univoca del bean stesso. I callback methods vengono chiamati automaticamente dal container in corrispondenza di precisi eventi nella vita del bean. Essi sono: - setentitycontext() viene invocata all inizio della vita del bean e può essere utilizzata per ottenere un riferimento al container, utile per accedere ad informazioni sulla sicurezza, sulle transazioni o sul bean stesso. - unsetentitycontext() viene chiamata alla fine della vita del bean quando il riferimento al container viene invalidato, e può essere utilizzata per le ultime operazioni di pulizia. - ejbload() viene chiamata subito dopo che lo stato del bean è stato caricato dal database. - ejbstore() viene chiamata subito prima che lo stato del bean venga salvato nel database. Questi due metodi possono essere usati, per esempio, per decomprimere e comprimere i dati letti e scritti nel database. - ejbactivate() e ejbpassivate() sono chiamate rispettivamente subito dopo che un bean è stato attivato e subito prima che questo sia passivato, cioè venga disassociato dal suo riferimento per essere rimosso dalla memoria o riutilizzato per un altro client.

10 BMP Entity Beans Nel caso di entity beans di tipo BMP (Bean-Managed Persistence) il bean si occupa personalmente della persistenza del proprio stato, seppur sempre assistito dal container, che si occupa delle necessarie transazioni. Vengono usati in genere quando si hanno esigenze particolari o quando si vuole avere un maggior controllo sui dati memorizzati nel database. Metodi di BMP Un bean BMP differisce da un bean CMP principalmente per il significato assunto da ejbload(), ejbstore(). - ejbload() conterrà il codice per caricare lo stato del bean dal database, tipicamente utilizzerà una istruzione select - ejbstore() conterrà una update - ejbcreate() conterrà una insert - ejbremove() conterrà una delete Per quanto riguarda l implementazione delle ejbfind(), le single-entity devono ritornare una singola chiave primaria, mentre le multi-entity devono ritornare collezioni di chiavi primarie. Il container poi tradurrà queste chiavi in riferimenti ai bean veri e propri e li restituirà al client sotto forma di un singolo riferimento o di una collezione di riferimenti.

11 SESSION BEAN Un session bean rappresenta un insieme di procedure o task, che costituiscono dei servizi a favore dei client. Queste operazioni a favore dei client possono essere eseguite direttamente dal session bean oppure utilizzando altri bean. Essi non rappresentano dati o entità di cui si voglia mantenere memorizzato lo stato in un qualche database. Non godono, quindi, di persistenza. Un session bean implementa l interfaccia javax.ejb.sessionbean. Essi di dividono in due categorie: Stateless session bean: eseguono i loro compiti basandosi solo sulle informazioni passate come parametri ai loro metodi: non mantengono delle informazioni tra una invocazione e l altra. Stateful session bean: possiedono uno stato interno sebbene non persistente. Come si diceva i session beans non sono stati progettati per essere persistenti, pertanto i dati che essi memorizzano sono intesi relativamente ad una particolare sessione. E per questo motivo che un session beans non può sopravvivere a crash di sistema o semplici restart del server; infatti il riferimento creato all interno del container per accedere a quel particolare bean, viene perso nel momento in cui il client muore o la sessione finisce. Nel caso in cui il client necessiti di riutilizzare un bean rimosso, deve utilizzare le informazioni in suo possesso (sul lato client) per poter ricreare il componente sul server. Stateless Session Beans Questo tipo di session bean non mantiene un proprio stato interno, e di conseguenza ogni invocazione di un suo metodo e' indipendente dalle precedenti. I metodi del bean si comportano come tradizionali procedure. Gli stateless session beans sono in genere più performanti degli stateful, e, poiché tutte le istanze sono equivalenti tra loro, possono essere condivisi tra più client. Metodi degli Stateless La home interface di uno stateless session bean definisce solamente un metodo create() senza argomenti, dato che non ha stato da inizializzare e non può avere metodi find() perché non è persistente. Principali metodi: - ejbcreate() può essere utilizzata per inizializzare variabili e acquisire risorse (ad esempio una connessione) - ejbremove() consente di disallocare le risorse occupate prima che il bean venga distrutto Le chiamate a questi due metodi sono governate dalla politica di gestione delle risorse del container: dopo una remove() da parte di un client, il container potrebbe decidere di non distruggere il bean ma di metterlo a disposizione di altri client. - setsessioncontext() consente di ottenere un SessionContext, che ha la stessa funzione dell EntityContext.

12 - ejbactivate() e ejbpassivate() hanno una implementazione sempre vuota negli stateless session beans. Stateful Session Beans Gli stateful session beans mantengono uno stato interno tra due invocazioni del client. Ogni bean di questo tipo è associato ad uno ed un solo client: quindi essi non vengono condivisi tra piu' client, anzi per tutta la sua esistenza un bean appartiene al client che l ha creato. Questo rende possibile, ad esempio, compiere una serie di operazioni a favore di un client mantenendo in memoria le informazioni che non cambiano tra un invocazione e l altra, oppure un risultato parziale. Tipicamente la gestione dello stato viene effettuata automaticamente dalla coppia server-container e in questo modo si riduce il lavoro che si deve svolgere in fase di sviluppo sia del client che del bean stesso. Quando uno stateful session bean non viene utilizzato per un certo tempo, il container puo' decidere di rimuoverlo dalla memoria (passivation) e di salvare il suo stato in una memoria secondaria, da dove puo' essere recuperato al momento della successiva riattivazione. Metodi degli stateful I callback methods ejbactivate() e ejbpassivate() vengono chiamati immediatamente dopo la riattivazione di un bean ed immediatamente prima della sua disattivazione, rispettivamente. ejbpassivate(), assieme a ejbremove(), consente al bean di compiere un po di pulizia e di liberare le risorse eventualmente occupate.

13 SERVER per gli EJB Il server per i bean è l elemento fondamentale di tutta la piattaforma EJB: questo componente infatti svolge buona parte del lavoro necessario sia per rendere un componente utilizzabile dai vari client remoti, sia per supportare i servizi più importanti (transazioni, mantenimento dello stato, sessioni, sicurezza) associati ai vari beans. Il processo di creazione di un bean e di deploy nel server passa per la definizione delle già citate interfacce (Home interface e Remote interface) in modo che il server possa gestire il componente. E la bean implementation class che implementa l interfaccia remota e che fornisce di fatto il corpo del bean, defininendone anche il comportamento. La cosa estremamente interessante è che non è necessario fornire l implementazione delle due interfacce, compito svolto automaticamente dal server. Per poter completare con successo la fase di deploy del bean nel server è necessario inoltre fornire i cosiddetti deployment descriptors, operazione effettuabile al momento del deploy del componente utilizzando il tool fornito dal server. Il deployment descriptor contiene le seguenti informazioni: il tipo di bean, i nomi delle classi (home, remote, bean), come gestire le transazioni e la sicurezza sui singoli metodi, il tipo di persistenza ed eventualmente quali campi salvare. CLIENT per gli EJB I client di un Enterprise JavaBean possono essere applicazioni, servlet, applet o altri EJB. Sono tre le operazioni che un client deve effettuare: 1. utilizzare il nome del bean per localizzare la home interface 2. utilizzare la home interface del bean per ottenere un riferimento ad una sua istanza. 3. utilizzare direttamente il bean invocandone i metodi che mette a disposizione I client quindi interagiscono con il bean unicamente attraverso i metodi definiti nella remote interface. La localizzazione avviene individuando da qualche parte la home interface, compito che viene svolto per mezzo della classe java.naming.context. DISTRIBUZIONE DEGLI EJB Gli Enterprise JavaBeans vengono distribuiti in un archivio JAR, contenente, tra l altro, un deployment descriptor in XML.

14 CONCLUSIONI : UN CONFRONTO CON RMI E CORBA Come RMI e CORBA anche EJB si inserisce nello scenario della computazione distribuita. RMI rappresenta il motore che permette tutto il funzionamento della tecnologia EJB. La scelta fra le due soluzioni (solo RMI o EJB), deve essere fatta in funzione del tipo di applicazione che si deve realizzare. Nel caso si vogliano realizzare sistemi semplici, dipendenti dal caso particolare, forse il più semplice utilizzo di RMI può essere sufficiente; nel caso di situazioni complesse dove è necessaria la massima flessibilità e scalabilità (come nell ambito dell e-commerce o JSP) allora la soluzione di EJB può essere preferibile. CORBA invece è più potente e più complesso sia di RMI che di EJB ed offre prestazioni migliori e la possibilità di interagire con sistemi e tecnologie differenti. Ma non offre il supporto per i servizi distribuiti, vero punto di forza di EJB. In definitiva è utile utilizzare EJB in quei casi in cui si debbano realizzare applicazioni multistrato distribuite, basate su oggetti mobili: e Java è la soluzione (l unica) in grado di fornire massima flessibilità e potenza implementativa. BIBLIOGRAFIA Per la relazione si è fatto riferimento al contenuto di articoli pubblicati nei seguenti siti:

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 00-PRIME PAGINE 2-07-2003 10:04 Pagina V Indice Prefazione XI PARTE PRIMA INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 1 Capitolo 1 Le ragioni di tanto interesse 3 1.1 Enterprise in J2EE 3 Definizione

Dettagli

Corso Programmazione Java Avanzato

Corso Programmazione Java Avanzato Corso Programmazione Java Avanzato Codice: ITJA0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle tecnologie impiegate per la realizzazione di applicazioni web basate sulla

Dettagli

Obiettivo della lezione

Obiettivo della lezione Obiettivo della lezione Lezione 17 Enterprise JavaBeans (5) Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Comprendere quanto

Dettagli

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1 Applicazioni distribuite e sistemi ad oggetti distribuiti RPC RMI - Web Services 1 Complessità delle applicazioni distribuite La scrittura di applicazioni distribuite basate sull utilizzo di protocolli

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Domenico Lembo Antonella Poggi 1. Architetture dei Sistemi Informativi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico

Dettagli

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

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

Dettagli

Strumenti per l automazione del testing di applicazioni web Javascript-based

Strumenti per l automazione del testing di applicazioni web Javascript-based tesi di laurea Strumenti per l automazione del testing di applicazioni web Javascript-based Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana 1 candidato Salvatore Agnello Matr. 41/2612

Dettagli

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC Programma didattico Sviluppare Applicazioni Distribuite in ambiente Spring MVC Programma del corso 1.Progettazione e Sviluppo Database Relazionali Questa competenza permette di Progettare e Sviluppare

Dettagli

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View MVC View Controller! Si tratta di un pattern di progettazione introdotto originariamente con Smalltalk (1980 Xerox)! Si basa su astrazioni presenti in tutte le applicazioni dotate di interfaccia grafica!

Dettagli

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10 SISS SUITE Sommario 1 Introduzione... 3 2 progetto... 3 3 Soluzione... 3 4 Integrazione... 10 5 Conclusioni... 10 2 1 INTRODUZIONE L OMNICOM SISS Suite è una libreria DLL espressamente concepita per facilitare

Dettagli

Prof. Pagani corrado JAVA

Prof. Pagani corrado JAVA Prof. Pagani corrado JAVA NASCITA DI JAVA Java è stato creato, a partire da ricerche effettuate alla Stanford University agli inizi degli anni Novanta, da un gruppo di esperti sviluppatori capitanati da

Dettagli

Tipi di Dati Astratti

Tipi di Dati Astratti Tipi di Dati Astratti April 19, 2017 Dati e Tipi di Dato Tipo di dato: concetto di alto livello Macchina fisica: unico tipo di dato sequenze di bit Macchine Astratte: tipi di dato più complessi Tipo di

Dettagli

Corso sul PACCHETTO OFFICE. Modulo Access

Corso sul PACCHETTO OFFICE. Modulo Access Corso sul PACCHETTO OFFICE Modulo Access Docente: dott. Marco Cardani Lezione 2 Come creare un database 1 2 Come creare un database Impareremo ora come creare un nuovo database in modo da raggiungere un

Dettagli

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni, persistenza, distribuzione oggetti (location

Dettagli

Chiamata remota di metodi

Chiamata remota di metodi Chiamata remota di metodi Architettura di Java RMI Esecuzione di una Java RMI Architettura di RMI client server Stub & Skeleton Stub & Skeleton Remote Reference Remote Reference Trasporto Ciascun livello

Dettagli

Sistema Operativo (Software di base)

Sistema Operativo (Software di base) Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

ArcGIS for Windows Mobile

ArcGIS for Windows Mobile Il mondo da tutti i punti di vista. ArcGIS for Windows Mobile 10.1.1 ArcGIS for Windows Mobile, è un applicazione GIS pronta all uso per la raccolta dei dati, l ispezione e la mappatura sul campo. Include

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,

Dettagli

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006 Laboratorio di Applicazioni Internet Anno Accademico 2005/2006 Tito Flagella (tito@link.it) Domenico Aquilino (d.aquilino@metaware.it) Dipartimento di Informatica Università di Pisa Orario Mercoledì, 9-11

Dettagli

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

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

Dettagli

Luca Cabibbo. Persistenza di oggetti

Luca Cabibbo. Persistenza di oggetti AP Analisi S Analisi e Progettazione del Software Persistenza di oggetti aprile 2004 1 Persistenza di oggetti Motivazioni e contenuti Contesto applicazioni sviluppate mediante le moderne tecniche di OOA/OOD/OOP

Dettagli

Architettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete

Architettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete I semestre 02/03 Modelli di Riferimento: TCP/IP e OSI Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Architettura di rete architettura di rete insieme delle specifiche funzionali

Dettagli

Open Database Connectivity (ODBC)

Open Database Connectivity (ODBC) Open Database Connectivity (ODBC) Open Database Connectivity (ODBC), proposto dalla Microsoft nel 1991, fornisce un interfaccia applicativa standard che permette ad una generica applicazione di accedere

Dettagli

Introduzione alle macchine a stati (non definitivo)

Introduzione alle macchine a stati (non definitivo) Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI INFORMATIVI E DATABASE SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,

Dettagli

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati Prof. Alberto Postiglione Università degli

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

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

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC. tesi di laurea Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Luca Anniciello candidato Gianluca

Dettagli

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti: Introduzione Questo libro, espressamente rivolto ai programmatori esperti in Java, tratta gli elementi essenziali della piattaforma Java 2 Enterprise Edition (J2EE) e analizza in modo particolare le nuove

Dettagli

MPI. MPI e' il risultato di un notevole sforzo di numerosi individui e gruppi in un periodo di 2 anni, tra il 1992 ed il 1994

MPI. MPI e' il risultato di un notevole sforzo di numerosi individui e gruppi in un periodo di 2 anni, tra il 1992 ed il 1994 MPI e' acronimo di Message Passing Interface Rigorosamente MPI non è una libreria ma uno standard per gli sviluppatori e gli utenti, che dovrebbe essere seguito da una libreria per lo scambio di messaggi

Dettagli

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer Distributed Object C o m p utin g "!$#&% ')(+*,#&-).0/2143657*98:.;8

Dettagli

Architetture di rete. 4. Le applicazioni di rete

Architetture di rete. 4. Le applicazioni di rete Architetture di rete 4. Le applicazioni di rete Introduzione L avvento di tecnologie (hw, sw, protocolli) di rete avanzate ha permesso la nascita di architetture software molto evolute che permettono lo

Dettagli

Spazio di indirizzamento virtuale

Spazio di indirizzamento virtuale Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - pietro.dilena@unibo.it // The function name says it all int stack_overflow (){

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle LE BASI DI DATI Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle LA PROGETTAZIONE LOGICA Lo scopo della fase di progettazione logica è quello

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

FAC TOTUM. Il software web per una moderna gestione di tutti i servizi di manutenzione

FAC TOTUM. Il software web per una moderna gestione di tutti i servizi di manutenzione FAC TOTUM Il software web per una moderna gestione di tutti i servizi di manutenzione SERVIZI PIU EFFICIENTI DRASTICA RIDUZIONE DEI COSTI DI GESTIONE RISPOSTE PIU RAPIDE E SICURE A QUALSIASI UTENTE Il

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Oggetti e classi. Cos è un oggetto

Oggetti e classi. Cos è un oggetto Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema

Dettagli

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : Modelli dei Dati MODELLI DEI DATI Prof. Alberto Postiglione

Dettagli

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017 Elaborato Shell Elementi di architettura e sistemi operativi 2016/2017 Introduzione passwd è il file di configurazione di sistema in cui sono memorizzate alcune delle informazioni relative agli account

Dettagli

Modulo 2 Architetture dei SD Lezione 1

Modulo 2 Architetture dei SD Lezione 1 Modulo 2 Architetture dei SD Lezione 1 Corso Sistemi Distribuiti (6 CFU) Docente: Prof. Marcello Castellano Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano Table of Contents

Dettagli

Informazioni sull esame e Regole per lo svolgimento dei progetti

Informazioni sull esame e Regole per lo svolgimento dei progetti Informazioni sull esame e Regole per lo svolgimento dei progetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati Basi di Dati Cosa vuol dire progettare una base di dati? Il DBMS non va progettato il DBMS si acquista o esiste già è impossibile pensare di sviluppare un DBMS anni di sviluppo necessità di elevate competenze

Dettagli

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali Programmazione a Oggetti Lezione 7 Il linguaggio Java: aspetti generali Sommario Obiettivi di JAVA Portabilità: produrre codice eseguibile su più piattaforme (JVM) Affidabilità: Evitare il più possibile

Dettagli

Basi di dati a oggetti

Basi di dati a oggetti Basi di dati a oggetti A L B E R T O B E L U S S I S I S T E M I I N F O M A T I V I G E O G R A F I C I E M U L T I M E D I A L I A N N O A C C A D E M I C O 2 0 1 1 / 1 2 Aree applicative emergenti Progettazione

Dettagli

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati Introduzione alle Basi di Dati Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 1 Appunti dalle lezioni SQL

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Service discovery nella API Java Bluetooth JSR-82

Service discovery nella API Java Bluetooth JSR-82 Service discovery nella API Java Bluetooth JSR-82 Per l'accesso alla tecnologia Bluetooth nella piattaforma Java è stata definita la specifica, denominata con il codice JSR-82, di un'architettura e della

Dettagli

Linguaggi Object Oriented: Principi e Introduzione a Java

Linguaggi Object Oriented: Principi e Introduzione a Java Linguaggi Object Oriented: Principi e Introduzione a Java Sommario: 13 Aprile, 2015 Linguaggi OO: Rilevanza e Note Storiche Principi dei Linguaggi OO. Struttura dei programmi: Classi e Oggetti in Java

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA

POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA Architetture Web basate su Enterprise JavaBeans in ambiente Open Source Relatori Ing. Fulvio Corno

Dettagli

Obiettivi. Unità D1. Archivi: i concetti fondamentali. Persistenza archivi e file. Necessità di dati persistenti. Un esempio di record

Obiettivi. Unità D1. Archivi: i concetti fondamentali. Persistenza archivi e file. Necessità di dati persistenti. Un esempio di record Obiettivi Unità D1 Archivi: i concetti fondamentali Conoscere le diverse organizzazioni logiche degli archivi Conoscere le operazioni di base che si possono effettuare sugli archivi Sapere come progettare

Dettagli

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Basi di Dati. Concetti e Principi Generali. Maria Mirto Basi di Dati Concetti e Principi Generali Maria Mirto Organizzazione dei Dati Archivi o file Procedure di accesso in qualunque linguaggio di programmazione Duplicazione dati: ridondanza incoerenza formati

Dettagli

Gestione centralizzata caselle PEC per l INFN. Alessandro Brunengo, per il gruppo Mailing

Gestione centralizzata caselle PEC per l INFN. Alessandro Brunengo, per il gruppo Mailing Gestione centralizzata caselle PEC per l INFN Alessandro Brunengo, per il gruppo Mailing Caselle attive Numero caselle PEC INFN acquistate(attive) 70 (65) presso Postecom (~6.5 euro/casella/anno) tutte

Dettagli

Design Principle. immagini da SOLID Motivational Posters, by Derick Bailey

Design Principle. immagini da SOLID Motivational Posters, by Derick Bailey Design Pattern Design Principle immagini da SOLID Motivational Posters, by Derick Bailey Single Responsibility Principle Single Responsibility Principle A class should have only one reason to change. Open

Dettagli

7. Architetture Software

7. Architetture Software 7. Architetture Software definire la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 18 Design Nella fase di design

Dettagli

Cap. 1-I 1 I sistemi informatici

Cap. 1-I 1 I sistemi informatici Libro di testo A. Chianese,V. Moscato, A. Picariello, L. Sansone Basi di dati per la gestione dell informazione McGraw-Hill, 2007 Informazioni sul corso http://www.docenti.unina.it/lucio.sansone Ricevimento

Dettagli

Tesi di Laurea Triennale in Ingegneria Informatica REALIZZAZIONE DI UN APPLICATIVO PER LA GESTIONE DI FOGLI DI LAVORO INTEGRATO IN OUTLOOK 2010

Tesi di Laurea Triennale in Ingegneria Informatica REALIZZAZIONE DI UN APPLICATIVO PER LA GESTIONE DI FOGLI DI LAVORO INTEGRATO IN OUTLOOK 2010 UNIVERSITÀ DEGLI STUDI DI TRIESTE FACOLTÀ DI INGEGNERIA Corso di laurea in Ingegneria Informatica Tesi di Laurea Triennale in Ingegneria Informatica REALIZZAZIONE DI UN APPLICATIVO PER LA GESTIONE DI FOGLI

Dettagli

Lo Standard OPC. Materiale Didattico: Dispense OPC UA Inglese e Italiano Esercizio Client OPC UA Java (stampare il file word e portarlo a lezione!

Lo Standard OPC. Materiale Didattico: Dispense OPC UA Inglese e Italiano Esercizio Client OPC UA Java (stampare il file word e portarlo a lezione! Lo Standard OPC Materiale Didattico: Dispense OPC UA Inglese e Italiano Esercizio Client OPC UA Java (stampare il file word e portarlo a lezione!) Dove si usa OPC? Perché OPC? Display Application Trend

Dettagli

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato Introduzione all UML UML come abbozzo UML - Unified Modeling Language E una famiglia di notazioni grafiche per la modellazione visuale del software Modellazione: rappresentazione di elementi che corrispondono

Dettagli

Sistema operativo & file system 1

Sistema operativo & file system 1 Il software (sw) Software di sistema e file system Lezione 1b L esecuzione di programmi è lo scopo di un elaboratore I programmi sono algoritmi codificati in un particolare linguaggio di programmazione

Dettagli

Magazzino: software di gestione di un database di strumenti musicali

Magazzino: software di gestione di un database di strumenti musicali Magazzino: software di gestione di un database di strumenti musicali Questo programma è un'applicazione Windows Form che si occupa della gestione di un magazzino virtuale di strumenti musicali. In questa

Dettagli

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming Una metodologia di programmazione che consente di modellare la realtà in modo più naturale e vicino all uomo Concetti fondamentali Oggetto Incapsulazione Messaggio Classe Ereditarietà

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

Modelli a Componenti e Enterprise Java Beans

Modelli a Componenti e Enterprise Java Beans Modelli a Componenti e Enterprise Java Beans Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2010/2011 02 Modelli a Componenti e Enterprise Java Beans (base) Docente:

Dettagli

Architettura Model-View-Controller (MVC)

Architettura Model-View-Controller (MVC) Laboratorio a o o di Basi di Dati e Web Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere

Dettagli

Informatica e Bioinformatica: Basi di Dati

Informatica e Bioinformatica: Basi di Dati Informatica e Bioinformatica: Date TBD Bioinformatica I costi di sequenziamento e di hardware descrescono vertiginosamente si hanno a disposizione sempre più dati e hardware sempre più potente e meno costoso...

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

IL SITO WEB. Concetti generali

IL SITO WEB. Concetti generali IL SITO WEB Concetti generali CONCETTI GENERALI Il sito Internet è un insieme di pagine web legate tra loro che si riferiscono allo stesso utente. TIPOLOGIE SITI INTERNET Possono essere: STATICI, consentono

Dettagli

UNIVERSITÀ DEGLI STUDI DI PARMA

UNIVERSITÀ DEGLI STUDI DI PARMA UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA PROGETTAZIONE E REALIZZAZIONE DI UN SISTEMA AD AGENTI PER L INTEGRAZIONE DATI VIA WEB Relatore Chiar.mo Prof.

Dettagli

Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17

Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17 Laboratorio di Reti, Corsi A e B Text-Twist Progetto di Fine Corso A.A. 2016/17 1.Descrizione del problema Il progetto consiste nello sviluppo di un gioco multiplayer online. All inizio di una partita

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine astratte, linguaggi, interpretazione, compilazione Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

StoneGate Report Manager. Panoramica sulla funzionalità

StoneGate Report Manager. Panoramica sulla funzionalità StoneGate Report Manager Panoramica sulla funzionalità Marco Rottigni 4 maggio 2007 Pag. 2 di 9 Indice Capitolo 1 Scopo del Documento 3 Capitolo 2 Breve Descrizione di StoneGate Management Center 4 Capitolo

Dettagli

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico JDBC Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JDBC JDBC (Java Database Connectivity) è una API Java per accedere ed elaborare dati in una sorgente dati (di solito un db

Dettagli

R. Orsini - A. Roncato - F. Dalla Libera

R. Orsini - A. Roncato - F. Dalla Libera Interfacce per basi di dati e integrazione di sistemi informativi R. Orsini - A. Roncato - F. Dalla Libera Workshop del Dipartimento di Informatica 2 Marzo 2006 Aree e progetti Progetto Rewerse: Query

Dettagli

SISTEMI DI ELABORAZIONE

SISTEMI DI ELABORAZIONE SISTEMI DI ELABORAZIONE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA SPECIFICHE DI PROGETTO A.A. 2011/2012 Il progetto consiste nello sviluppo di un applicazione client/server. Client e server

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e overloading Esercizi svolti Esercizi proposti Paradigma OO Nella programmazione tradizionale,

Dettagli

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2 Architettura MVC-2 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell esecuzione, che rimane alla

Dettagli

Classi di Java introducono Oggetti e Tipi per il programma

Classi di Java introducono Oggetti e Tipi per il programma Classi di Java introducono Oggetti e Tipi per il programma Un numero finito di entità statiche. Un numero infinito di entità dinamiche: Oggetti. Gli oggetti sono valori e sono usati come sotto che rappresenta

Dettagli

Struttura Logica del S.O:

Struttura Logica del S.O: Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Basi di Dati Concetti Introduttivi

Basi di Dati Concetti Introduttivi Università Magna Graecia di Catanzaro Informatica Basi di Dati Concetti Introduttivi Docente : Alfredo Cuzzocrea e-mail : cuzzocrea@si.deis.unical.it Tel. : 0984 831730 Lucidi tratti da: Atzeni, Ceri,

Dettagli

Introduzione all ingegneria dei sistemi ICT

Introduzione all ingegneria dei sistemi ICT Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi C1_1 V1.3 Introduzione all ingegneria dei sistemi ICT Il contenuto del documento è liberamente utilizzabile dagli studenti,

Dettagli

I DATI E LA LORO INTEGRAZIONE 63 4/001.0

I DATI E LA LORO INTEGRAZIONE 63 4/001.0 I DATI E LA LORO INTEGRAZIONE 63 4/001.0 L INTEGRAZIONE DEI DATI INTEGRAZIONE DEI DATI SIGNIFICA LA CONDIVISIONE DEGLI ARCHIVI DA PARTE DI PIÙ AREE FUNZIONALI, PROCESSI E PROCEDURE AUTOMATIZZATE NELL AMBITO

Dettagli

Smart Cities and Communities and Social Innovation Bando MIUR. D.D. 391/Ric. del 5 luglio Application Store

Smart Cities and Communities and Social Innovation Bando MIUR. D.D. 391/Ric. del 5 luglio Application Store Smart Cities and Communities and Social Innovation Bando MIUR D.D. 391/Ric. del 5 luglio 2012 Application Store Finalità Con il termine application store non si intende indicare un oggetto finalizzato

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software

Dettagli

Lezione 16. Il Software di base

Lezione 16. Il Software di base Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione

Dettagli

Securing Site-to-Site Connectivity

Securing Site-to-Site Connectivity Securing Site-to-Site Connectivity Capitolo 7 Traduzione in Italiano Types of Remote-access VPNs Usando le tecnologie VPN, gli impiegati possono essenzialmente portare l ufficio con loro, includendo accesso

Dettagli