Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano"

Transcript

1 Java Enterprise Edition - JEE Autore: Agostino Sorbara ITIS M. M. Milano

2 Indice Introduzione 2 Il modello Client Server. 2 La piattaforma di sviluppo JEE... 3 Application Server... 3 Servlet. 4 JSP (Java Servlet Page) 5 JDBC (Java DataBase Connectivity) 6 Lettura dei dati da un Database.. 11 Inserimento e modifica dei dati in un Database.. 12 JavaBean ed Enterprise JavaBean (EJB) 13 EJB di sessione EJB di entità 14 EJB pilotati da messaggi. 15 Il pattern architetturale MVC

3 Introduzione Oggi le imprese hanno necessità di estendere la loro capacità di soddisfare clienti, dipendenti e fornitori con costi più bassi e tempi di risposta nel fornire i servizi richiesti minori. In genere, le applicazioni che forniscono questi servizi devono integrare sistemi informativi aziendali esistenti (EISs) con nuove funzioni aziendali che offrono servizi ad una vasta gamma di utenti. I servizi devono essere: Altamente disponibili, per soddisfare le esigenze di ambienti di business globali. Sicuri, per proteggere la privacy degli utenti e l integrità dell impresa. Affidabili e scalabili, per garantire che le transazioni commerciali siano accurate e che avvengano in tempi brevi. Nella maggior parte dei casi, i servizi enterprise sono implementati come applicazioni multilivello. Le nuove tecnologie web sono utilizzati per fornire agli utenti di primo livello, un facile accesso alla complessità business, e di eliminare o ridurre drasticamente la gestione degli utenti e della formazione. La piattaforma Java Enterprise Edition (JEE) riduce il costo e la complessità di sviluppo multilivello, per i servizi forniti alle imprese. Le Applicazioni Java EE possono essere implementate rapidamente e facilmente. Java EE raggiunge questi benefici definendo un architettura standard con i seguenti elementi: Java EE Platform - Piattaforma standard per l hosting di applicazioni Java EE. Suite Java EE test di compatibilità - Una suite di test di compatibilità per verificare che un prodotto della piattaforma Java EE sia conforme allo standard della piattaforma Java EE. Java EE Reference Implementation - Una implementazione di riferimento per la prototipazione di applicazioni Java EE e per fornire una definizione operativa della piattaforma Java EE, stabilisce i requisiti che un prodotto JEE deve soddisfare. Il modello Client Server L architettura del sistema informatico è di tipo Client-Server. Il sistema è formato da due tipi di moduli: il client ed il server, che generalmente sono diverse macchine collegate in rete 1. Il server contiene la logica necessaria per fornire un servizio; ad esempio gestisce le banche dati, gestisce l aggiornamento dei dati e la loro integrità; Il client può effettuare alcune operazioni e quindi richiede un terminale con capacità elaborative (generalmente si tratta di un computer). Tipicamente il client gestisce la porzione di interfaccia utente dell applicazione, verifica i dati inseriti e provvede ad inviare al server le richieste formulate dall utente. In pratica il client è quella parte dell applicazione che l utente vede e con la quale interagisce. In un ambiente client/server, sul computer client è in esecuzione un software applicativo denominato programma client, il quale: Abilita l utente a spedire una richiesta di informazione al server; Formatta la richiesta in modo che il server possa comprenderla; Formatta la risposta del server in modo che l utente possa interpretarla correttamente. Mentre sul computer server viene eseguito un software applicativo chiamato programma server, il quale: Riceve una richiesta da un client e la processa; Risponde, spedendo l informazione richiesta, al client. La logica di comunicazione del modello client server può essere rappresentata mediante la seguente figura: 1 Per le simulazioni si utilizza un unico elaboratore che con le opportune configurazioni e settaggi svolgerà la doppia funzione sia di client che di server. 2

4 Figura 1 - Modello Client Server Affinché l interazione tra client e server possa essere effettuata, è necessario che entrambi utilizzino un linguaggio comune, ovvero un protocollo applicativo. Esempi di protocolli: Simple Mail Transfer Protocol (SMTP) per la posta elettronica; File Tranfer Protocol (FTP) per il trasferimento di file tra host; Hyper-Text Transfer Protocol (HTTP) protocollo su cui si basa il World Wide Web; Ovviamente tutti questi protocolli applicativi devono appoggiarsi sui protocolli di rete TCP/IP e sul DNS per poter effettivamente scambiare richieste e messaggi attraverso la rete. 3

5 La piattaforma di sviluppo JEE Java Platform, Enterprise Edition o Java EE (conosciuta, prima della versione 5, col nome di Java 2 Enterprise Edition o J2EE) è una piattaforma software di programmazione principalmente sviluppata in linguaggio di programmazione Java e ampiamente utilizzata nella programmazione Web. La piattaforma fornisce infatti API e un ambiente di runtime (JDK e JRE) per lo sviluppo e l esecuzione di software per le imprese, compresi servizi di rete e web, nella forma di grandi applicazioni di rete a più livelli, scalabili, affidabili e sicure. La Java EE estende la Java Platform, Standard Edition (Java SE), incorporando un design basato in gran parte su componenti modulari in esecuzione su un server di applicazioni. Un applicazione che implementa le specifiche JEE è un applicazione distribuita multi-tier, schematizzabile in quattro layer (vedi fig. 2) Figura 2 - Architettura di una generica applicazione JEE I principali vantaggi derivanti dall uso delle specifiche JEE per lo sviluppo di applicazioni web sono fondamentalmente quattro: Scalabilità: è possibile aumentare le funzionalità di un software in continua evoluzione, grazie anche alla peculiare proprietà di distribuibilità della tecnologia Java; Portabilità: esigenza fondamentale dell attività di sviluppo software, permette di utilizzare una stessa applicazione JEE in Application Server diversi purché questi implementino le specifiche JEE; Efficienza: una strutturazione così intensa facilita la gestione di progetti anche molto complessi. Inoltre, grazie all utilizzo del multi-threading di Java è possibile ottenere elevate performance per l interazione tra Client e Server; Sicurezza: assicurata dall elevata stratificazione dell architettura e dalle proprietà intrinseche della tecnologia Java. Attraverso il modello proposto, si rende facile l accesso ai dati e la loro rappresentazione in diverse forme (un browser web, un applet, un dispositivo mobile, un sistema esterno, ecc). L Application Server Tra i più importanti elementi di un applicazione web, vi è l Application Server, il quale, implementando le specifiche JEE, rappresenta uno strato software che fornisce i servizi e le interfacce per la comunicazione tra tutte le componenti e permette all applicazione di funzionare. 4

6 Molti degli Application Server presenti sul mercato, implementano sia il livello Web-Tier che il Business-Tier. Le applicazioni più semplici, quelle cioè che non possiedono una vera e propria logica di business, dovrebbero utilizzare Application Server con solo la proprietà di Web-Container (che ha la funzione principale di presentazione dei dati): sono chiamati Web Server e sono consigliati in queste circostanze in quanto, le risorse richieste, sono di molto inferiori. Tra i principali componenti Java gestiti da un Web-Container vi sono Servlet, JSP (Java Server Pages), JDBC (Java DataBase Connectivity) e JNDI (Java Naming and Directory Interface). Un Application Server può fornire, inoltre, un ambiente detto EJB-Container (Enterprise Java Beans Container) che contiene la logica di business dell applicazione. Elementi fondamentali di questo ambiente sono gli Enterprise JavaBeans, le cui specifiche sono state introdotte per la prima volta da IBM nel 1997 e successivamente accorpate nelle API standard di Sun Microsystem. Il compito di un EJB-container è quello di gestire sicurezza, dettagli di persistenza e integrità delle transazioni, lasciando agli sviluppatori maggior concentrazione riguardo i problemi core business. La scelta di quale Application Server utilizzare a sostegno delle proprie applicazioni è influenzata da numerosi fattori tra cui: Tecnologie preesistenti; Costo delle licenze; Supporto a pagamento; Supporto della rete; Portabilità. I principali Application Server presenti nel panorama delle applicazioni web e che implementano lo standard JEE (chi completamente e chi in parte) sono: JBOSS; Apache Tomcat; Sun GlassFish Enterprise Server (essendo gestito direttamente da Sun implementa nel modo più completo e fedele le specifiche dello standard JEE; le versioni seguono di pari passo i nuovi rilasci delle specifiche JEE); BEA Weblogic; IBM WebSphere. Servlet La creazione di applicazioni web base, in ambiente java, deve il suo grande successo grazie ad una tecnologia introdotta per fornire agli sviluppatori un linguaggio lato server facile da usare e compatibile con la tecnologia Java. Le servlet sono degli oggetti Java residenti sul server che vengono utilizzate per costruire logiche applicative più o meno complesse in accordo al principio di programmazione multilivello. Questi oggetti sono caricati ed utilizzati dal web server che mette loro a disposizione un ambiente particolare, detto container, che si occuperà di tutti i loro aspetti, gestendone l intero ciclo di vita. Una servlet ha la possibilità di accedere a tutte le risorse del sistema su cui risiede, permettendo in fase di programmazione di implementare le diverse funzioni sfruttando tutte le caratteristiche del sistema, nonché la potenza espressiva di un linguaggio ad oggetti come Java. La loro gestione operata da un ambiente di lavoro volto ad ottimizzare tutti gli aspetti inerenti alle risorse di sistema, consentirà una efficiente gestione delle stesse con conseguente miglioramento nelle prestazioni delle applicazioni web based. Questa tecnologia è utilizzata all interno del Web-Container. Una Servlet ha il compito di gestire le richieste dell utente, effettuare eventuali elaborazioni e fornire una risposta al Client, spesso mediante il protocollo di rete HTTP. La struttura di base di una Servlet è rappresentata di seguito: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Servlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { 5

7 //Overriding del metodo doget public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { //Overriding del metodo dopost I package javax.servlet e javax.servlet.http forniscono le classi e le interfacce rispettivamente per scrivere una Servlet generica e una Servlet per il protocollo http; la propria Servlet, in quanto tale, deve implementare l interfaccia Servlet o per lo meno estendere javax.servlet.genericservlet. Nell implementazione è possibile utilizzare (ed in questo caso estendere) una classe fornita dalle API di Java ovvero la classe HttpServlet, che fornisce due importanti metodi per gestire servizi HTTP: doget() e dopost(). Questi ultimi rappresentano i metodi GET e POST del protocollo http; richiedono come parametri gli oggetti HttpServletRequest e HttpServletResponse e rappresentano rispettivamente la richiesta del client (che contiene ad esempio i dati di input per l elaborazione) e la risposta del server (che può contenere dati di output come risultati di elaborazione). Altri metodi importanti sono: getparameter( Param ) che raccoglie il valore di un parametro dalla richiesta HTTP e restituisce un elemento di tipo String; public class Servlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String parametro = request.getparameter( ParamName ); setattribute(string name, Object obj) che permette di associare alla variabile name un valore obj, che può essere utilizzato in seguito, nell ambito della gestione della medesima richiesta. getattribute(string name) questo metodo permette di accedere al valore associato a name precedentemente memorizzato. getsession() ritorna l istanza di un oggetto che rappresenta una sessione di lavoro con l utente. Un possibile passaggio di parametri da utente a Servlet può avvenire attraverso il metodo HTTP GET, con URL append; ad esempio: in una pagina HTML (HyperText Markup Language) è possibile trovare <a href="path/myservlet?paramname=aaa">submit</a> che permette a MyServlet (all interno del metodo doget) di inizializzare la variabile parametro uguale alla stringa AAA. funzionamento Sono costituite da codice java; Seguono un modello mvc. Per convenzione dei programmatori java quando si nomina un file il suffisso servlet rimane. La servlet estende un interfaccia http server. Le richieste fatte dal client al server possono essere fatte con i tre metodi principali: 1) GET; 2) POST; 3) PUT. doget dopost rispondono alle chiamate del browser La servlet è una classe java, che ricevuta una richiesta restituisce un risultato, il browser formatta la richiesta e la restituisce in HTML formattato (vedi immagine). 6

8 Figura 3 - Quando il metodo service riceve una richiesta di tipo GET manda in esecuzione il metodo doget, se riceve una richiesta di topo POST invoca il metodo dopost. Questi due metodi avranno il compito di generare una risposta, solitamente sottoforma di pagina Web, e spedirla al client. Init service richiesta doget dopost destroy Figura 4 - Il server Web può infine decidere di eliminare una servlet invocando il metodo destroy. Le richieste e le risposte sono gestite rispettivamente dalle classi HttpServletRequest e HttpServletResponse. 7

9 Gli oggetti generati dalla classe HttpServletRequest contengono tutte le informazioni relative alla richiesta ricevuta dal client, in particolare i valori delle variabili di ambienti, i parametri e i dati spediti dal client e il tipo di richiesta. Gli oggetti generati dalla classe HttpServletResponse consentono di controllare la risposta che verrà restituita al client. Abbiano tre tipologie di Bean SessionBean utilizzati per compiere operazioni di logica Entity Bean consentono la gestione automatizzata di alcuni aspetti relativi all accesso ed in generale alla gestione dei dati. Message Drive Bean messaggi asincroni per il database Servlet Controller <% %> Class { Void () {. View Model DB Fig. 5 - Analogia con il modello architetturale MVC JSP (JavaServer Pages) Il livello di presentazione nella tecnologia JEE è composto dalle JSP. Si tratta di file testuali che accanto al codice HTML, presentano codice in linguaggio Java, permettendo un utilizzo dinamico del servizio web e demarcando in maniera netta i compiti della progettazione dell interfaccia e delle funzioni. Questa tecnologia permette di creare pagine di testo sia statiche che dinamiche. Per dinamiche s intende che il contenuto delle pagine può essere creato includendo risultati di elaborazione, dati prelevati dal database, oppure parametri inseriti dall utente. JSP è un buon connubio tra le funzionalità dinamiche di una Servlet e la staticità di una pagina formattata ad esempio in HTML. Infatti, l inserimento di contenuti statici e costrutti di formattazione all interno di una Servlet è difficoltoso, per questo motivo è preferibile utilizzare la tecnologia JSP. Vediamo in breve il contesto esecutivo. Il client richiede l accesso al file con estensione.jsp, il quale viene processato dal Web- Container che lo trasforma in un file Java, lo compila, lo carica e lo esegue come una Servlet; ovviamente, la fase di traduzione, compilazione e caricamento viene effettuata solo la prima volta che viene individuata una richiesta alla risorsa oppure se la JSP è stata modificata. Questa tecnologia, inoltre, mette a disposizione una serie di tag e costrutti specifici. Come si vede negli esempi di implementazione, un esempio di servlet può essere il seguente 8

10 IndexStudente Servlet Controller IndexStudente.jsp JavaBeans View Model EJB Fig. 6 - Progetto_ lp package as.servlet; import as.ejb.studentesessionbeanlocal; import as.objects.lo; import as.objects.studente; import java.io.ioexception; import java.util.arraylist; import javax.ejb.ejb; import javax.servlet.requestdispatcher; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; /** * user */ public class IndexStudenteServlet extends HttpServlet StudenteSessionBeanLocal beanstudente; protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getsession(true); int idstudente = ((Studente)session.getAttribute("studente")).getId(); ArrayList<LO> listalo = beanstudente.visualizzaloscaricati(idstudente); request.setattribute("listalo", listalo); RequestDispatcher dispatcher = request.getrequestdispatcher("indexstudente.jsp"); dispatcher.forward(request, protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, public String getservletinfo() { return "Short description"; 9

11 JDBC (Java DataBase Connectivity) JDBC non è altro che l insieme delle API che definiscono le specifiche per l accesso a database relazionali. Fa parte sia dello standard J2SE sia di JEE. L insieme delle classi che offrono una connettività tra Java e un DBMS, implementando le interfacce dei package java.sql e javax.sql, prende il nome di driver JDBC; le principali interfacce sono: Driver, Connection, Statement, PreparedStatement, CallableStatement, ResultSet, DatabaseMetaData, ResultSetMetaData. Le classi implementative sono normalmente contenute in pacchetti.jar che lo sviluppatore dovrà caricare nella propria applicazione. Successivamente, per poter utilizzare i driver, si dovrà aprire una connessione con il database, creare uno Statement per interrogare la base dati e gestire i risultati ottenuti. Di seguito è riportato una porzione di codice che potrebbe popolare una pagina JSP, in cui viene effettuata l interrogazione di una base dati connessa tramite driver JDBC-ODBC. Un esempio di utilizzo di queste API, si può trovare in un SessionBean, si riporta come esempio getcanale: public Canale getcanale(int idcanale) { Statement stmt; try { stmt = JDBCConnector.getConnection().createStatement(); String query = "select * from canale where id="+idcanale+";" ; ResultSet rs = stmt.executequery(query) ; while (rs.next()){ int id = rs.getint("id"); String nome= rs.getstring("nome"); Canale c = new Canale(id,nome); return c; catch (SQLException ex) { Logger.getLogger(LoginSessionBean.class.getName()).log(Level.SEVERE, null, ex); return null; L oggetto di tipo Connection preso da una classe implementata JDBCConnector consente di ottenere una connessione con il database. La classe DriverManager è incaricata di scegliere l opportuno driver registrato, attraverso l URL e le credenziali di accesso al database passati come parametri. L oggetto Statement, invece, permette di effettuare interrogazioni alla base dati in linguaggio SQL, attraverso la connessione precedentemente creata. Qualora lo stesso Statement SQL sia utilizzato più volte, è consigliato servirsi, in alternativa, dell oggetto PreparedStatement che aumenta l efficienza dell esecuzione della query e l allocazione delle risorse. Infine, il ResultSet, è l oggetto che raccoglie i dati richiesti all interno dello Statement e li inserisce in una struttura dati opportuna. Il metodo getstring( NomeColonna ) restituisce il valore correntemente puntato dal cursore next() della colonna specificata come parametro. Se il nome della colonna non è presente nel ResultSet, non viene lanciata alcuna eccezione. Esistono diversi metodi gettype( NomeColonna ), dove Type indica il tipo di dato che si vuole estrarre dal ResultSet e che deve essere concorde al tipo di dato di NomeColonna. 10

12 Lettura dei dati da un Database Una volta configurato il driver ODBC si può passare alla lettura dei dati contenuti in un database. L operazione completa per leggere i dati da una o più tabelle di una base di dati è suddivisa in quattro fasi: 1. Apertura e connessione al database 2. Esecuzione istruzione 3. Elaborazione risultato 4. Chiusura connessione Vediamo un esempio di codice <! -- per l esecuzione corretta delle istruzioni SQL è necessario importare il relativo package: java.sql.* --> <% page language= java import= java.sql.* %> connection dbconn = null; // carica il file di classe del driver // per il collegamento al database con il ponte ODBC Class.forName ( sun.jdbc.odbc.jdbcodbcdriver ); // apre la connessione con il database miodb dbconn = DriverManager.getConnection( jdbc:odbc:miobd, admin, pswd ); // manda in esecuzione l istruzione SQL Statement statement = dbconn.createstatement(); ResultSet rs = statement.executequery( SELECT dato FROM tab1 ); In questa parte di codice abbiamo implementato i primi due punti. L oggetto rs contiene l insieme dei risultati ottenuti dalla SELECT, rappresentati nella classe ResultSet. Questa classe permette di compiere una scansione di tutti i record e leggere il contenuto dei campi. // elabora i dati Whilw (rs.next()) { // ottiene il dato dat = rs.getint(dato); // stampa a video out.println(dat); // chiude la connessione dbconn.close(); In questo semplice esempio sono stati prelevati dalla tabella tab1 del database miodb tutti i valori del campo dato. I metodi esposti dalla classe ResultSet per la lettura dei dati si differenziano in base al tipo del campo da rappresentare. Il nome di ogni metodo è composto dal prefisso get, seguito dal tipo di dato che può elaborare. Metodo Tipo del campo getint() Numerico intero getfloat() Numerico con virgola getbyte() Numerico byte getlong() Numerico lungo getstring() Stringa o testo getboolean() Booleano(ver/falso) getdate() Data Per poter avanzare tra i vari record (spostarsi avanti con il cursore) resultset espone il metodo next(), che restituisce un valore booleano che indica se il cursore è arrivato al temine della tabella. Per far questo è sufficiente creare un ciclo while(rs.next()) per scorrere senza ulteriori istruzioni la tabella generate dalla query. 11

13 Inserimento e modifica dei dati in un Database Nel caso si renda necessario aggiornare, inserire, modificare, o eliminare records in un database, il codice varia; l oggetto ResultSet, non è più necessario visto che l operazione non restituisce più un riferimento ad una tabella creata con un istruzione select. È sufficiente richiamare il metodo executeupdate() dell oggetto Statement precedentemente definito, e dare come ingresso la query SQL (INSERT, UPDATE, CREATE TABLE). Questo metodo restituisce un valore intero che è uguale a 1 se tutto è stato eseguito con successo. È bene quindi effettuare un controllo sul valore restituito in modo da capire se la modifica al database sia effettivamente avvenuta. L esempio proposto di seguito aggiunge al database un record il cui campo è contenuto in una variabile della pagina JSP, che può quindi provenire da un form o da un elaborazione dati precedente. <html> <head> <title> Esempio di inserimento di una riga nel DataBase </title> </head> <body> <%!-- deve essere importato il package java.sql.* per eseguire le istruzioni SQL --%> page language = java import= java.sql.* %> <% int valore = 25; // valore di esempio int esito; //esito dell aggiornamento Connection conn = null; // Carica il file di classe del driver per il ponte Odbc Class.forName( sun.jdbc.odbc.jdbcodbcdriver ); // crea la connessione con l origine dari conn = DriverManager.getConnection( jdbc:odbc:miodb,, ); // crea lo statement Statement st = conn.createstatement(); // esegue l aggiornamento o l inserimento Esito = st.executeupdate( INSERT INTO tab1 (dati) values ( +valore+ ) )) // se esito è uguale a 1 tutto è andato bene if (esito ==1) out.ptintln( Inserimento eseguito correttamente ); else outprintln( Inserimento non eseguito); // chiude la connessione rs.close(); conn.close(); %> </body> </html> È facile intuire che altre operazioni, quali l eliminazione (DELETE), la modifica (UPDATE), ecc. vengono eseguite allo steso modo cambiando leggermente il codice ed inserendo i comandi SQL appropriati. Figura 7 - Schematizzazione degli oggetti di una connessione JDBC 12

14 JavaBean ed Enterprise JavaBean (EJB) Queste componenti sono elementi importantissimi per un applicazione complessa che utilizzi tecnologie Java, non solo per quelle orientate al web. Un EJB è una classe Java che segue determinate regole imposte dalla specifica che, una volta programmato, viene posto in un application server e da esso verrà gestito secondo le regole definite. In un contesto Java puro, generalmente, i client di questi oggetti sono le pagine JSP e le servlet, che si appoggiano agli EJB per definire il contenuto dinamico da mostrare all utente (es. una ricerca, un carrello di acquisti, ecc.). Questo modello di sviluppo consente a chi produce il componente server side di disinteressarsi di chi e come accederà al servizio (queste operazioni saranno svolte dall application server). Un JavaBean ha la funzione principale di contenere e manipolare le informazioni ed è rappresentata da una classe Java con determinati requisiti: lo stato dell istanza deve avere proprietà accessibili solo all interno della classe stessa (visibilità privata); devono esservi metodi pubblici specifici per poter ottenere - getproperty() - e manipolare - setproperty(value) - le informazioni; il suo costruttore non deve avere argomenti; può comunicare i propri cambiamenti di stato con altre componenti mediante la generazione di eventi; l istanza deve essere serializzabile (implementando l interfaccia Serializable). Di seguito, è rappresentato un semplice esempio d implementazione di un JavaBean per la raccolta delle informazioni di un utente in navigazione all interno di una generica applicazione. La proprietà pagineviste rappresenta il numero di pagine viste dall utente durante la navigazione; la proprietà user, invece, identifica il login dell utente. package as.objects; /** * user */ public class Canale { //VARIABILI DI ISTANZA private int id; private String nome; //COSTRUTTORE public Canale (int id, String nome){ this.id = id; this.nome = nome; //METODI public int getid (){ return id; public String getnome(){ return nome; public void setid(int id) { this.id = id; public void setnome(string nome) { this.nome = nome; 13

15 Queste componenti sono state pensate principalmente per essere manipolate attraverso applicazioni grafiche per cui sono largamente utilizzate. Attualmente hanno ottenuto un notevole successo anche in applicazioni web nei progetti di tipo enterprise. Tutte le entità dell applicazione sono state infatti modellate come JavaBean e saranno manipolate ed utilizzate per mantenere informazioni dal modulo Client e Server. I JavaBean saranno contenuti in uno specifico package.object. Gli Enterprise JavaBean non sono altro che l equivalente della tecnologia JavaBean in ambito enterprise ed implementano la logica di business dell applicazione. L introduzione di questo tipo di tecnologia nel lato server fu introdotta per risolvere i seguenti problemi: Persistenza dei Dati; Gestione delle transazioni; Controllo della concorrenza; Standard di sicurezza; Integrazione di componenti software, anche di natura diversa; Invocazione di procedure remote; Fornire servizi sul web. Vi sono tre tipi di EJB: EJB di sessione o Session EJB: la vita di questo tipo di oggetto è legata alla richiesta di utilizzo da parte del client, poiché dopo l utilizzo viene elaborata la sua eliminazione. Per questo motivo, un Session EJB non è un elemento condiviso con altri Client ed ha, generalmente, un ciclo di vita limitato. Il suo scopo principale è quello di fornire un interfaccia semplice per tutti i client che richiedono di accedere a determinate informazioni; una strutturazione di questo tipo impedisce che modifiche alla struttura dati di controllo comportino correzioni alle applicazioni client. In figura 4 è rappresentata la posizione di un EJB di sessione tra client e il gestore delle informazioni, mascherando il meccanismo per il recupero e la manipolazione dei dati. Figura 8 - Schema del ruolo di una Session EJB EJB di Entità o Entity EJB: forniscono la caratteristica di persistenza dei dati. Questi oggetti inglobano i dati sul lato server, come ad esempio righe di una tabella di un database o un File-System; possono essere condivisi da client diversi e sono in grado di sopportare periodi di disservizio dell application server. Nel loro utilizzo più frequente, inglobano i dati di un database tramite oggetti Java, grazie ai quali è possibile manipolarli più agevolmente all interno delle proprie applicazioni e senza l utilizzo diretto di JDBC. Di norma, il client per accedere a questi Bean utilizza EJB di sessione stateless (presentati nel punto precedente), aumentando ulteriormente la stratificazione logica di queste componenti. Sia gli EJB di sessione sia di entità hanno un funzionamento sincrono, perciò il client che li invoca deve attendere la terminazione della loro elaborazione potendo, poi, continuare la propria esecuzione. 14

16 Figura 9 - Nello schema sono rappresentati in grigio gli entity EJB e in tratteggio i session stateless EJB EJB pilotati da messaggi o Message Driven EJB (MDB): sono gli unici EJB ad avere comportamento asincrono, grazie all utilizzo delle specifiche JMS (Java Message Service). Il client che intende invocare queste componenti, deve essere in grado di pubblicare o accodare messaggi su una coda, i quali vengono raccolti dall application server e forniti ad un MDB. Una volta ricevuto il messaggio, l MDB può invocare in modo sincrono altri tipi di EJB, attendere i risultati di ritorno ed accodare un messaggio di fine elaborazione al client invocante; tutto questo con la possibilità da parte del client di proseguire la sua esecuzione. 15

17 Il pattern architetturale MVC Il modello più utilizzato in ambito delle applicazioni orientate al web (ma non solo) è il pattern Model-View-Controller (MVC). Questo pattern permette una maggiore strutturazione del codice, con un aumento della manutenibilità software e una suddivisione dell applicazione in sottosistemi. Per comprendere la filosofia del modello, in figura 6, è riportata la schematizzazione delle tre componenti in cui si divide. Figura 10 - Implementazione comune del pattern MVC Le componenti sono: la vista (view) dove viene gestita la presentazione dei dati. E rappresentata da tutto quel codice di presentazione che permette all utente (ad esempio tramite un browser) di operare le richieste. All interno di questo livello lavorano sia programmatori che grafici che curano la parte estetica della presentazione; il modello (model) che rappresenta e gestisce i dati, tipicamente persistenti su database; il controllore (controller) che veicola i flussi di interazione tra vista e modello, organizzando il comportamento dell applicazione e tracciando la navigazione con meccanismi che creano uno stato associato all utente. Nello specifico, intercetta le richieste HTTP del client e traduce ogni singola richiesta in una specifica operazione per il model; in seguito può eseguire lui stesso l operazione oppure delegare il compito ad un altra componente. In ultima, seleziona la corretta vista da mostrare al client ed inserisce, eventualmente, i risultati ottenuti. 16

JDBC di base. Le classi/interfacce principali di JDBC

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

Dettagli

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

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

Dettagli

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

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

Dettagli

DBMS ed Applicazioni Motivazioni

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

Dettagli

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

SERVLET & JSP DISPENSE

SERVLET & JSP DISPENSE SERVLET & JSP DISPENSE PROGRAMMAZIONE LATO SERVER Un server deve rispondere alle richieste del client e permettere di visualizzare le pagine Web. Questo compito è svolto da un software ben definito, il

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

JDBC. A. Bechini 2004. Accesso a DataD con Java

JDBC. A. Bechini 2004. Accesso a DataD con Java JDBC Accesso a DataD atabase ase con Java Utilizzo di DB da applicazioni esterne Un DB contiene e gestisce dati, importanti per varie operazioni supportate da applicazioni software Come può un applicazione

Dettagli

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Ivan Scagnetto Dipartimento di Matematica e Informatica http://www.dimi.uniud.it/scagnett scagnett@dimi.uniud.it Laboratorio di Tecnologie Lato

Dettagli

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO 8- Programmazione di una base di dati attraverso JDBC Introduzione ai differenti approcci - JDBC: Architettura e Programmazione Introduzione Nella pratica gli utenti finali accedono al contenuto di una

Dettagli

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Ivan Scagnetto Dipartimento di Matematica e Informatica http://www.dimi.uniud.it/scagnett scagnett@dimi.uniud.it Laboratorio di Tecnologie Lato

Dettagli

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

Laboratorio di reti II: Gestione di database lato server

Laboratorio di reti II: Gestione di database lato server Laboratorio di reti II: Gestione di database lato server Stefano Brocchi brocchi@dsi.unifi.it 23 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Database 23 marzo, 2009 1 / 32 Uso di database lato

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

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

Dettagli

Applicazioni web con tecnologia Java

Applicazioni web con tecnologia Java Università degli Studi di Padova FACOLTÀ DI INGEGNERIA Applicazioni web con tecnologia Java Relazione finale di Tirocinio Laureando: Luca Falcon Relatore: Prof. G.Clemente Dipartimento di Ingegneria dell

Dettagli

Le tecnologie software Internet

Le tecnologie software Internet Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile dagli studenti,

Dettagli

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet 1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso

Dettagli

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

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

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

Dettagli

Programmazione Java Avanzata Spring - JDBC

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

Dettagli

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement JDBC Programmazione in Ambienti Distribuiti V 1.4 Marco Torchiano 2006 Uso di JDBC Caricamento della classe driver Class.forName() Apertura della connessione DriverManager.getConnection() Creazione di

Dettagli

Accesso Web a Data Base

Accesso Web a Data Base Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Accesso Web a Data Base Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei -

Dettagli

Note pratiche sullo sviluppo di servlet (I)

Note pratiche sullo sviluppo di servlet (I) Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di

Dettagli

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Non si deve fare ALCUN riferimento alla parte specifica di JDBC. Un applicazione per la quale sia fondamentale l indipendenza dal Database può essere scritta in Java usando le specifiche. (Package java.sql) Non devono essere usate chiamate specifiche del database: Si

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

Dettagli

JDBC: Java e database.

JDBC: Java e database. JDBC: Java e database. Introduzione all architettura e esempi di utilizzo 1.0 INTRODUZIONE ALL ARCHITETTURA JDBC è (anche se non ufficialmente riconosciuto da Sun) l acronimo per Java DataBase Connectivity.

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]

Dettagli

Indice. Java. JDBC è l interfaccia di base standard di Java ai database relaionali

Indice. Java. JDBC è l interfaccia di base standard di Java ai database relaionali Java java database connectivity -- jdbc G. Prencipe prencipe@di.unipi.it Indice JDBC: Java Data Base Connectivity connessioni a basi di dati esecuzione di statement SQL accesso ai result set JDBC: Java

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

Concetti base. Impianti Informatici. Web application

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

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di sistemi Prima Web Application JSP [Java] Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File

Dettagli

Progetto di Gestione Documenti in Ambiente Web

Progetto di Gestione Documenti in Ambiente Web Progetto di Gestione Documenti in Ambiente Web Sessione Febbraio 2013 Marco Taddei 726523 Federico Valentini 726584 Il progetto SharesShop simula un portale web di una banca che mette a disposizione dei

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Struttura dell Applicazione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL)

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Pag. 1/12 Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Prendiamo in esame un qualsiasi progetto NetBeans tra quelli studiati che fa uso di un database

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione Interfacce DBMS in breve Corso di BD1 Ripasso comandi applicazione JDBC Manipolazione estensioni OR in JDBC Interfacce per DBMS Problema: Far accedere un applicazione ad una base di dati Soluzione: Librerie

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati 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

1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org

1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org 1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org Applicazione J2EE sul SAP WAS con SAP NWDS. Il SAP Web Application Server fornisce un framework integrato per lo sviluppo e l

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

Dettagli

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 4 Cos è JDBC 2 JDBC significa Java Database Connectivity Standard definito da Sun MicroSystems per connettere programmi

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

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

Dettagli

Architettura Tecnica i. Architettura Tecnica

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

Dettagli

Esercitazione su JDBC

Esercitazione su JDBC Esercitazione su JDBC Basi di Dati L Ingegneria dei Processi Gestionali (Ilaria Bartolini - Roberto Cabras) come usare SQL (1) Le istruzioni SQL possono essere eseguite interattivamente Ese JDBC 2 come

Dettagli

Server-side Programming: Java servlets Parte II

Server-side Programming: Java servlets Parte II Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

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

Laboratorio di Basi di Dati e Multimedia

Laboratorio di Basi di Dati e Multimedia Laboratorio di Basi di Dati e Multimedia Laurea in Tecnologie dell Informazione: Multimedia Docente: Alessandra Di Pierro Email: dipierro@sci.univr.it Lezione 7 Java DataBase Connectivity JDBC consente

Dettagli

19.1 - Lavorare con JDBC L'impiego di JDBC è semplice, e solitamente si articola attraverso quattro passi:

19.1 - Lavorare con JDBC L'impiego di JDBC è semplice, e solitamente si articola attraverso quattro passi: Lezione 19 Accesso ai database con JDBC JDBC (non è una sigla, secondo quanto sostenuto da Sun, anche se molti la interpretano come Java DataBase Connectivity) è un'interfaccia di programmazione che lavora

Dettagli

JDBC per l accesso Java a DB. Tito Flagella tito@link.it

JDBC per l accesso Java a DB. Tito Flagella tito@link.it JDBC per l accesso Java a DB Tito Flagella tito@link.it JDBC fornisce una libreria standard per l accesso a database relazionali Non è un acronimo ufficiale ma è comunemente interpretato come Java DataBase

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Laboratorio di sistemi MVC versione 2 Jsp (NetBeans)

Laboratorio di sistemi MVC versione 2 Jsp (NetBeans) Definizione Adattato da "http://it.wikipedia.org/wiki/model-view-controller" Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è il nome di un design pattern fondamentale

Dettagli

Sviluppo di applicazioni per basi di dati

Sviluppo di applicazioni per basi di dati Sviluppo di applicazioni per basi di dati 1 Sviluppo di applicazioni per basi di dati Quattro parti: Gestione dati Business rules (vincoli di integrità e dati derivati) Logica applicativa Interfaccia utente

Dettagli

Laboratorio di reti II: Servlet

Laboratorio di reti II: Servlet Laboratorio di reti II: Servlet Stefano Brocchi brocchi@dsi.unifi.it 16 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 1 / 34 Le servlet Una servlet è una classe Java eseguita

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 10 Raffaella Gentilini 1 / 46 Sommario 1 Introduzione: DB e Programmazione 2 3 2 / 46 Approcci alla Programmazione di un DB Meccanismi Disponibili 1 Linguaggi

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

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

Dettagli

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Database & WWW Capitolo 4 Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone 1 Sommario Protocollo HTTP CGI Java Servlet Server-side scripting

Dettagli

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Applicazione: OIL Online Interactive helpdesk

Applicazione: OIL Online Interactive helpdesk Riusabilità del software - Catalogo delle applicazioni: Gestione ICT Applicazione: OIL Online Interactive helpdesk Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm Dott.ssa Francesca A. Lisi dott.ssa Francesca A.

Dettagli

18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET

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

Dettagli

Accesso a Database con JDBC

Accesso a Database con JDBC 1 Sommario Accesso a Database con JDBC Introduzione architettura generale di riferimento flusso tipico delle applicazioni ODBC/JDBC ODBC architettura il flusso generale di un applicazione ODBC JDBC architettura

Dettagli

Introduzione alle Applicazioni Web

Introduzione alle Applicazioni Web Introduzione alle Applicazioni Web di Mary Ercolini Con il termine Applicazione Web si intende un applicazione risiedente in un Server Web alla quale si accede tramite un browser Internet o un altro programma

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

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Java Server Pages Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Java Server Pages (JSP) Java Server

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

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

Dettagli

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

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

Dettagli

Corso Online. We Train Italy info@wetrainitaly.it

Corso Online. We Train Italy info@wetrainitaly.it Corso Online Programmatore Java New Edition We Train Italy info@wetrainitaly.it Programma Generale del Corso Programmatore Java New Edition 1. Introduzione al corso Java da 0 al web Presentazione del corso

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

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

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

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 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://java.sun.com/products/servlets

Dettagli

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati e Web 2010-2011

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati e Web 2010-2011 Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati e Web 2010-2011 Alberto Belussi Università degli Studi di Verona Dipartimento di Informatica

Dettagli

Laboratorio di Basi di dati

Laboratorio di Basi di dati Laboratorio di Basi di dati Docente: Alberto Belussi Lezione 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://www.oracle.com/technetwork/java/javaee/servlet/index.html

Dettagli

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

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

Dettagli

DEL SENDER GUIDA INTEGRATIVA ALL INSTALLAZIONE. Versione N.1.0. Data 11/05/2009. Sender - Guida integrativa alla installazione

DEL SENDER GUIDA INTEGRATIVA ALL INSTALLAZIONE. Versione N.1.0. Data 11/05/2009. Sender - Guida integrativa alla installazione GUIDA INTEGRATIVA ALL INSTALLAZIONE DEL SENDER Versione N.1.0 Data 11/05/2009 Versione 1.0, Data emissione 11/05/2009 Pag. 1 di 15 Revisione Capitolo Modifica Data 1.0 Prima Emissione 11/05/2009 Versione

Dettagli

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati (2011-2012)

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati (2011-2012) Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati (2011-2012) Alberto Belussi Università degli Studi di Verona Dipartimento di Informatica

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /28 Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming 3 Sincronizzazione 4 Consistenza e Replica 5 Replica di sistemi

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

Dettagli

JAVA SERVLET: I filtri

JAVA SERVLET: I filtri JAVA SERVLET: I filtri INTRODUZIONE Quest oggi vedremo una particolarità delle servlet che è stata introdotta nelle servlet API versione 2.3. I filtri sono un potente meccanismo che è in grado di fare

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA Elaborato di Tecnologie del Software per Internet JMSWEB 2 SISTEMA PER LO SCAMBIO DI MESSAGGI TRA APPLICAZIONI

Dettagli

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Lezione 9. Applicazioni tradizionali

Lezione 9. Applicazioni tradizionali Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

Le JavaServer Pages - Lezione 7 I JavaBean

Le JavaServer Pages - Lezione 7 I JavaBean Le JavaServer Pages - Lezione 7 I JavaBean A cura di Giuseppe De Pietro (depietro_giuseppe@yahoo.it) Contenuti Nelle lezioni precedenti abbiamo visto gli elementi principali delle Java Server Pages, come

Dettagli

Livello cinque (Livello application)

Livello cinque (Livello application) Cap. VII Livello Application pag. 1 Livello cinque (Livello application) 7. Generalità: In questo livello viene effettivamente svolto il lavoro utile per l'utente, contiene al suo interno diverse tipologie

Dettagli

Tecnologia e Applicazioni Internet 2011/12

Tecnologia e Applicazioni Internet 2011/12 Tecnologia e Applicazioni Internet 2011/12 Lezione 4 - Persistenza Matteo Vaccari http://matteo.vaccari.name/ matteo.vaccari@uninsubria.it Perché usare un DB relazionale? Per l accesso concorrente ai dati

Dettagli

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

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

Dettagli