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

Save this PDF as:
 WORD  PNG  TXT  JPG

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 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

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 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

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

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

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

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

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

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

SWIM v2 Design Document

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

Dettagli

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

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

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

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

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

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

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

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

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

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

Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi

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 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

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

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

Tener traccia del client

Tener traccia del client Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.

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

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

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

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

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

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

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

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

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

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

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare

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

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

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

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: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

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

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

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

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

JDBC. Dispense per il corso di Ingegneria del Web

JDBC. Dispense per il corso di Ingegneria del Web JDBC Dispense per il corso di Ingegneria del Web Revisione 05/11 Giuseppe Della Penna (giuseppe.dellapenna@di.univaq.it) Dipartimento di Informatica Università degli studi dell'aquila Java Database Connectivity:

Dettagli

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

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

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

WEBsfa: l automazione della forza vendita via Web

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

Dettagli

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

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

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 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

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

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

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

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

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

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

Le tecnologie software Internet

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

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

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

Corso Web programming

Corso Web programming Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1 Introduzione Un particolare ambito della programmazione

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

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

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

Dettagli

Panoramica: che cosa è necessario

Panoramica: che cosa è necessario Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo

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

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

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

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

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

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

Progetto di Applicazioni Software

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

Dettagli

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

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

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

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

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

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

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

Dettagli

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 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side

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

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

Oreste Signore, <oreste@w3.org> Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa

Oreste Signore, <oreste@w3.org> Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa http://www.w3c.it/education/2012/upra/basicinternet/#(1) 1 of 16 Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa Master in Comunicazione

Dettagli

Questo punto richiederebbe uno sviluppo molto articolato che però a mio avviso va al di là delle possibilità fornite al candidato dal tempo a disposizione. Mi limiterò quindi ad indicare dei criteri di

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

Progetto di Applicazioni Software

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

Dettagli

Il Protocollo HTTP e la programmazione di estensioni Web

Il Protocollo HTTP e la programmazione di estensioni Web Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

MODEL-VIEW-CONTROLLER PROBLEMA

MODEL-VIEW-CONTROLLER PROBLEMA MODEL VIEW CONTROLLER DESIGN PATTERN MODEL-VIEW-CONTROLLER INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

DD - Design Document

DD - Design Document Politecnico di Milano Progetto di Ingegneria del Software 2 DD - Design Document Autori: Claudia Foglieni Giovanni Matteo Fumarola Massimo Maggi Professori: Elisabetta Di Nitto Raffaela Mirandola 1 gennaio

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

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