Architectures for Distributed Computing Chapter 5

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architectures for Distributed Computing Chapter 5"

Transcript

1 Architectures for Distributed Computing Chapter 5 Piergiorgio Cremonese Netikos Silvia Giordano SUPSI Netikos Pisa - Italy CH-6928 Manno SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 1 Contents Network Applications Architecture J2EE Summary Laboratory: Network Applications Architecture SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 2

2 Concept of tiers Overview The ancestors of the client/server architectures The current three tiers architecture Multi-tiers architectures practical example SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 3 Chapter goals: Use the modern view of current applications Understand the main features of evolving applications and their related models SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 4

3 Introduction client server model behind distributed applications and how this model was born and is evolving: View with tiers One tier architecture Two tiers architecture Three tiers architecture Multi-tiers architecture SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 5 Tiers One tier application is running on a single computer Two tiers application is running on two computers Three tiers add a middle layer n-tiers unlimited number of programs to run simultaneously SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 6

4 Concept of tiers Overview The ancestors of the client/server architectures The current three tiers architecture Multi-tiers architectures practical example SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 7 The ancestors Mainframe architecture centralized intelligence Users with simple terminals File-sharing architecture server downloads files from the shared location to the desktop environment. user jobs run (including logic and data) in the desktop environment for low usage SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 8

5 Client/Server model Client/server paradigm standard proprietary Client must contact server server process must first be running server must have created socket (door) that welcomes client s contact Client contacts server by: creating client-local socket specifying IP address, port number of server process SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 9 Main components of C/S model A presentation component: presents information to an external source and obtains input from that source. A business component: perform some type of data manipulation. A data access component: interfaces either with a data storage system such as database systems or hierarchical file systems, or with some other type of external data source as a data feed or an external application system. SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 10

6 Pros: One Tier Architecture easier management easier control more secure Cons: scalability portability lack of flexibility SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 11 Two Tier Architecture typical client/server architecture pros faster development and deployment of applications hardware-independent database systems small servers fat client (Javaapplets) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 12

7 Two Tier Architecture cons worst security, reliability, scalability, and control effective for simple applications client application must enforce its own security process each database must also enforce its own security process scalability SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 13 From Two To Three Tier Architecture third (middle) tier server between client and server effective distributed client/server design with hidden complexity flexibility, maintainability, reusability: provides separate process management scalability: can handle large number-of-users functions : queuing, application execution, and database staging SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 14

8 Concept of tiers Overview The ancestors of the client/server architectures The current three tiers architecture Multi-tiers architectures practical example SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 15 Three Tier Architecture Client/server model sub-divided into: the data layer the logic layer, or middle-tier (difference with 2-tiers) the presentation layer, or client SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 16

9 Three Tier Architecture fat clients are splitted into two pieces : a thin client the application logic, running on a server easy deployment of simple clients logic is centralized SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 17 Different Three Tier Architecture Three tier with TP monitor technology Three tier with message server Three tier with an application server Three tier with an ORB architecture Distributed/collaborative enterprise architecture SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 18

10 Three tier with TP monitor technology Transaction Processing (TP) monitor (middle tier) message queuing, transaction scheduling, and prioritization service client connects to the TP monitor the transaction is handled by TP monitor (client is not blocked) effective for scalability SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 19 Three tier with message server intelligent messages messages = headers (with priority information), address number and identification number prioritized and processed asynchronously good solutions for wireless infrastructures SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 20

11 Three tier with an application server main body of an application server to run on a shared host smaller client more secure more scalable SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 21 Three tier with an ORB architecture support distributed objects two prominent distributed object technologies: Common Object Request Broker Architecture (CORBA) COM/DCOM SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 22

12 Distributed/collaborative enterprise architecture based on Object Request Broker enhanced by using shared, reusable business models (not just objects) on an enterprise-wide scale enterprise is a system comprised of multiple business systems or subsystems improve effectiveness organizationally, operationally, and technologically SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 23 Three Tiers Architecture advantages pros of both one-tiered approach and the two-tiered approach flexible architecture Object reuse Easier system maintenance More effective use of data and networks Higher developer productivity through specialization new perspectives of computational work in methodological and also in production views: multi-tiers SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 24

13 Comparison of Tiers Architectures Architecture Pros Cons One tier Simple Very high performance Self-contained No networking -- can't access remote services Potential for spaghetti code Two tiers Three tiers N tiers Clean, modular design Less network traffic Secure algorithms Can separate UI from business logic Can separate UI, logic, and storage Reliable, replicable data Concurrent data access via transactions Efficient data access Support multiple applications more easily Common protocol/api Must design/implement protocol Must design/implement reliable data storage Need to buy database product Need to hire DBA Need to learn new language (SQL) Object-relational mapping is difficult Quite inefficient Must learn API (CORBA, RMI, etc.) Expensive products More complex; thus, more potential for bugs Harder to balance loads SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 25 Concept of tiers Overview The ancestors of the client/server architectures The current three tiers architecture Multi-tiers architectures practical example SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 26

14 Applicazioni multi-tier: distribuzione delle risorse Il concetto di base delle applicazioni multi-tier èla distribuzione delle risorse (interfaccia, computazioni, dati) fra varie macchine Ogni tier accumuna componenti software uniformi Esempio tipico: applicazioni client-server (2- tier: uno è il client, l altro il server) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 27 Applicazioni multi-tier Le applicazioni 2-tier erano le più diffuse nel passato Oggi la tendenza è di usare applicazioni 3-tier o 4-tier: Interfaccia utente, sul client [protocollo standard, per esempio via web] Logica di business, sul server Dati di impresa, su un DBMS SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 28

15 Applicazioni multi-tier Interfaccia utente Macchina dell utente finale (client) Gestore protocollo Logica di business } Server di applicazioni Dati Server dati SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 29 Interfaccia utente Gestore protocollo Logica di business Dati Applicazioni multi-tier Thin client: GUI basata su FORM HTML Applet: GUI fornita da un applet scaricata via web Rich/thick client: GUI fornita da un applicazione stand-alone, che però comunica tramite il protocollo dato con il server Batch/Poor client: interfaccia a lineadicomando, fornitada un applicazione stand-alone come sopra SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 30

16 Applicazioni multi-tier Interfaccia utente Gestore protocollo Logica di business Dati Web-based: le comunicazioni con la UI sono trasportate come pacchetti HTTP (GET/POST/PUT) XML-based: le comunicazioni con la UI sono trasportate come messaggi SOAP Custom: le comunicazioni con la UI sono trasportate secondo un protocollo privato (via socket) Altro: (CORBA, protocolli specifici di un dominio) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 31 Applicazioni multi-tier Interfaccia utente Gestore protocollo Logica di business Dati Applicazione all-in-one: server tradizionale Applicazione basata su Enterprise beans: entity beans, session beans, ecc. Applicazione basata su Web components: servlet, JSP Applicazione basata su Web services: componenti JAX-RPC SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 32

17 Applicazioni multi-tier Interfaccia utente Gestore protocollo Logica di business Un qualunque DBMS relazionale Per cui sia disponibile un driver JDBC Un DB specializzato DB orientato agli oggetti DB semistrutturato Un legacy system con funzione di data warehouse Dati SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 33 Applicazioni multi-tier via web Usare come protocollo di comunicazione la tecnologia web presenta molti vantaggi pratici È possibile realizzare applicazioni accessibili con un semplice browser I task di formattazione vengono lasciati al linguaggio di markup (HTML+CSS, WML, ecc.) Rimane possibile creare rich client, fornendo così vari livelli di interazione per gli stessi servizi SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 34

18 Applicazioni multi-tier via web SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 35 Applicazioni multi-tier via web Interfaccia utente Gestore protocollo Logica di business Dati tecnologie più comunemente usate per applicazioni multi-tier via web con J2EE: Interfaccia utente basata su web Tomcat o application server analoghi come gestore di protocollo Logica di business basata su Servlet o JSP Dati accessibili tramite JDBC L uso di tecnologie basata su Java e/o open source ci garantisce la durata dell investimento SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 36

19 Concept of tiers Overview The ancestors of the client/server architectures The current three tiers architecture Multi-tiers architectures practical example SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 37 Esempio1: Forum via servlet Directory Applet Browser Web Server Servlet JDBC Dati Utente DBMS Dati magazzino SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 38

20 Esempio1: Forum via cgi Directory javascript Browser Web Server CGI ODBC/DBI Dati Utente DBMS Dati magazzino SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 39 Esempio2 H2S: Un sistema proprietario da HTTP a SMS SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 40

21 Physical Architecture S1 INTERNET S2 POTS/GSM SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 41 httpd Logical Architecture WEB AS checker H2Sd listener SMS gateway smsq smss HTTP H2S client H2S receiver SMS Browser SMS IP SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 42

22 Esempio2: H2S via servlet HTTP Web jk Controller browser Jsp Servlet LDAP DS smsq smssender H2SServer H2S H2S Client Application Server JDBC DB SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 43 Esempio2: H2S via CGI HTTP Web cgi browser CGI application LDAP DS smsq H2S H2S Client JDBC DB smssender H2SServer Application Server SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 44

23 Architecture CGI DB http Web cgi CGI browser smsq H2S smssender H2SServer H2SClient SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 45 Web Components Role Access Functionality UnSafe Document Repository (imgs,..) Application Server Dynamic Presentation Check Controls Business Logic Security Data Access Functionality SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 46

24 Controller Application Server Manages requests coming from the access point (e.g. Web) JSP Presentation Layer: it is implemented as an exetension of HttpServlet: compiled at RunTime SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 47 Application Server Servlet Action Actions triggered by events: used for logic and presentation PreCompiled Classes Implement Business Logic PreCompiled SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 48

25 Applet & Servlet Le servlet sono per certi versi analoghe alle applet Le servlet stanno a un application server come le applet stanno a un browser In entrambi i casi, un contenitore estende le proprie capacità caricando componenti esterni: si tratta quindi di plug-in Le applet risiedono normalmente Sul server, da cui vengono recuperate via HTTP Nella cache locale del browser Le servlet risiedono normalmente sul server, in un area nota all application server SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 49 Applet & Servlet Le applet si usano spesso senza servlet applet che non necessitano di processing server-side: ricevono un po di parametri all avvio, e si limitano a mostrarli in altri casi, le applet si collegano a un server (non servlet) scritto in Java o altri linguaggi, e usano un protocollo privato volendo, le applet possono comunicare con il server via HTTP (simulano una FORM) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 50

26 Applet & Servlet Le servlet si usano spesso senza applet spesso processano input proveniente da FORM tradizionali in altri casi, i dati possono essere generati da una pagina con Javascript, memorizzati in campi hidden di una FORM invisibile e inviati al servlet è anche possibile che un servlet processi input proveniente da altre sorgenti SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 51 Applet & Servlet Applet e servlet si possono anche usare insieme (come nel nostro esempio) l applet raccoglie e pre-elabora i dati, offrendo una bella GUI all utente quando i dati sono pronti, li manda al server via HTTP il server li passa alla servlet per l elaborazione server-side È peròun usopococomune SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 52

27 Differenza fra Servlet e CGI Gli script CGI vengono eseguiti dal S.O., quindi sono potenzialmente meno portabili Le Servlet vengono eseguite dalla JVM integrata nell application server, quindi sono isolate dal S.O. e dunque più portabili SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 53 Differenza fra Servlet e CGI Gli script CGI vengono caricati ed eseguiti una volta per ogni richiesta quindi, il costo di avvio (latenza) è alto Le Servlet vengono caricate solo una volta; poi si crea un Thread (di Java) per ogni richiesta operazione meno costosa, e dunque si ha una latenza più bassa SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 54

28 Differenza fra Servlet e CGI Gli script CGI possono essere scritti in qualunque linguaggio: potete scegliere il linguaggio più adatto al particolare scopo Le Servlet devono essere scritte necessariamente in Java: spesso va bene, ma a voltenon èconveniente SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 55 Differenza fra Servlet e CGI Il protocollo CGI è supportato da tutti i Web server (anche se a volte con qualche piccola differenza) Le Servlet sono supportate solo da alcuni Web server (quelli che fungono da application server) c è comunque una buona scelta di prodotti commerciali È sempre possibile affiancare un application server a un web server, anche su due porte diverse sulla stessa macchina fisica SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 56

29 Server che supportano le Servlet Prodotto Apache & Sun Tomcat Apache + Jserv Borland AppServer IBM WebSphere Application Server IONA iportal Application Server (ora migrati su Jboss) javasystem Application Server 8... e parecchi altri Versione Servlet supportata Versione JSP supportata SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 57 Struttura delle Servlet Le Servlet sono classi Java che implementano l interfaccia javax.servlet.servlet Una classe può implementare Servlet direttamente Ma più comunemente estende HttpServlet SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 58

30 Dialogo con le Servlet Il dialogo fra Servlet e il browser è di tipo client/server client server interfaccia ServletRequest server client interfaccia ServletResponse SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 59 Metodi di Servlet Metodo Descrizione init() service() destroy() getservletinfo() getservletconfig() Inizializza la servlet (e alloca risorse) Serve una richiesta Elimina la servlet (e libera le risorse) Restituisce informazioni sulla servlet (una stringa) Restituisce la configurazione della servlet SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 60

31 Ciclo di vita di una Servlet Al primo caricamento viene chiamato init() Per ogni richiesta, viene chiamato il metodo service() Alla fine, viene chiamato destroy() es: quando il container termina SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 61 Servlet e HttpServlet L interfaccia delle Servlet è piuttosto generica GenericServlet la implementa e la estende con metodi di utilità Gestione parametri, gestione contesto, file di log La classe di sistema HttpServlet specializza GenericServlet per il protocollo HTTP ci sono HttpServletRequest e HttpServletResponse associate SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 62

32 Un esempio (una HttpServlet) public class SimpleServlet extends HttpServlet { public void doget(httpservletrequest richiesta, HttpServletResponse risposta) throws ServletException, IOException { String titolo = Risposta dalla mia Servlet"; risposta.setcontenttype("text/html"); PrintWriter out = risposta.getwriter(); out.println("<html><head><title>"); out.println(titolo); out.println("</title></head><body>"); out.println("<h1>" + titolo + "</H1>"); out.println("<p>... resto della pagina..."); out.println("</body></html>"); out.close(); } } SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 63 Gestione della persistenza È importante ricordare che ogni singola richiesta HTTP viene trattata separatamente da tutte le altre come fa una povera servlet a gestire sessioni che comprendono più di una richiesta? come fanno più servlet che costituiscono una sola applicazione a passarsi dati e comunicare fra di loro? SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 64

33 Gestione della persistenza Abbiamo sostanzialmente due vie Gestire manualmente la persistenza Adatto quando i dati da rendere persistenti sono pochi o poco strutturati Bastano in genere poche righe di codice Affidarci agli Scope Object offerti dal framework Adatto per usi sofisticati Consente vari livelli di persistenza SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 65 Gestione manuale della persistenza Usando i cookie la servlet scrive i dati che vuole rendere persistenti tramite i cookie successive richieste alla stessa servlet o a servlet diverse si porteranno dietro i cookie scritti nel client Usando sessionid la servlet associa un identificatore unico ad ogni sessione il sessionid viene usato come chiave per accedere a un DB sul server successive richieste accedono al DB con la stessa chiave SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 66

34 Gestione dei cookie scrittura 1. Si crea un cookie con cookie = new Cookie(nome,valore); 2. Si impostano gli attributi del cookie cookie.setcomment(...); cookie.setdomain(...); cookie.setmaxage(...);...eccetera 3. Si invia il cookie con la risposta risposta.addcookie(cookie); SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 67 Gestione dei cookie lettura 1. Si recuperano i cookie dalla richiesta k = rich.getcookies(); 2. Si cerca il nostro cookie for (i=0; i<k.length; i++) if (k[i].getname().equals( nostro )) { nostro=k[i]; break; } 3. Si estrae il valore memorizzato nel cookie (se lo abbiamo trovato) valore=nostro.getvalue(); SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 68

35 Gestione del session ID 1. Si estrae la sessione dalla richiesta, creandola se necessario (primo accesso): HttpSession sess= richiesta.getsession(true); 2. Si memorizzano/leggono i dati: a. da un DB, usando sess.getid() come chiave b. dalla sessione stessa, usando sess.putattribute(chiave,valore) e sess.getattribute(chiave) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 69 Gli Scope Objects Ciascun componente web (servlet o pagine JSP, che vedremo più avanti) può accedere a 4 Scope Objects: ServletContext il container HttpSession la sessione corrente HttpServletRequest la richiesta corrente JspContext la pagina corrente (per JSP) Ogni Scope Object fornisce metodi putattribute() e getattribute() per memorizzare a recuperare oggetti arbitrari associati a chiavi alfanumeriche SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 70

36 ServletContext ServletContext rappresenta il container che sta eseguendo la Servlet corrente (e, di solito, tutte le altre) Il ServletContext è unico all interno della JVM Alcuni container offrono varie configurazioni: Una sola JVM per tutte le servlet: ServletContext è globale, come pure i dati memorizzati in esso Più JVM, ciascuna delle quali esegue più servlet: ci sono più ServletContext; per avere un contesto globale occorre usare un DB esterno SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 71 ServletContext Per ottenere il ServletContext, basta chiamare il metodo della servlet getservletcontext() Da tenere a mente: il ServletContext è condiviso; più servlet in esecuzione allo stesso tempo potrebbero accedere concorrentemente ai dati Soluzione: usare i costrutti Java per la mutua esclusione (synchronized) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 72

37 HttpSession Una sessione può persistere per un periodo di tempo specificato, e coprire più richieste HTTP (e anche più visite distinte) Solitamente, una sessione è associata a un singolo utente dell applicazione web Il framework si occupa della persistenza della sessione Usando cookie se il browser li supporta Tramite URL rewriting altrimenti SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 73 HttpSession Per ottenere l HttpSession, basta chiamare il metodo getsession() della richiesta (come già visto) Anche l HttpSession potrebbe essere usato concorrentemente, se abbiamo Servlet che fanno partire nuovi Thread Se si usa URL rewriting, bisogna avere cura di chiamare encodeurl() su ogni URL che viene inclusa nella risposta! SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 74

38 Notifiche Argomenti avanzati Molte operazioni sulle o delle servlet generano eventi (modello publish/subscribe) Caricamento e scaricamento di una servlet Creazione o associazione di una sessione ecc. Altre componenti web possono registrare il loro interesse ad essere notificate quando l evento x si verifica, implementando l interfaccia xlistener Uso molto raro SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 75 Argomenti avanzati Re-routing, inclusione e filtri È possibile alterare il cammino naturale di richieste e risposte Re-routing: le richieste possono essere inoltrate da una servlet a un altra (o a un CGI!) Inclusione: la risposta di una servlet (o CGI) può essere inclusa in quella di un altra Filtri: la richiesta o risposta può passare attraverso uno o più post-processori, che la possono modificare SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 76

39 Velocità Caratteristiche delle Servlet molto veloci, il codice è compilato, e una volta caricato viene tenuto in memoria dal server bassa latenza e alta banda Portabilità ottima Java è sempre lo stesso ovunque Fattori temporali provare una Servlet richiede (i) modificare il codice (ii) compilare il codice (iii) riconfigurare il web server: non è adatto alla prototipazione rapida SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 77 Competenze Caratteristiche delle Servlet con poche aggiunte, basta conoscere Java Per servlet complesse, occorre conoscere Java bene Supporto il supporto da parte di terzi è ancora un po limitato (ma in crescita: si aspetta che diventi standard in Apache) la tecnologia è portabile, ma al momento dipende molto da Sun/IBM/Borland/Oracle Ci sono ambienti di sviluppo molto belli e completi (inclusi Eclipse e IBM WebSphere Studio) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 78

40 Deployment Punto dolente! Ogni server ha modalità proprie per la configurazione Esistono però formati standard di deployment Sono parte delle specifiche J2EE SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 79 Confronto fra CGI, Perl e Servlet Caratteristica CGI mod_perl Servlet Portabile fra web server si no (solo Apache) si (limitata) Portabile fra S.O. si (con poche varianti) parziale si Un processo per ogni richiesta si no no Perdite di memoria (leak) no si no (in teoria) Linguaggio C, Perl, sh, ecc. Perl Java Tipi stretti no no si Persistenza no (va fatta a mano) no (va fatta a mano) si Persistenza verso DB no (va fatta a mano) si si Portabilità fra DB no (ad hoc) no (ad hoc) si (via JDBC) Controllo dei diritti no (solo via S.O.) no (solo via S.O.) si (diritti Java) Supporto da IDE no no si (es.: WebSphere) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 80

41 JavaServer Pages JSP Le pagine JSP sono normali documenti testuali Contentono un mix di markup standard (es., HTML) e di istruzioni speciali Concettualmente simili alle pagine ASP (ma più potenti e portabili) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 81 JSP e Servlet Le Servlet funzionano bene per pagine con tanto contenuto e poca grafica Però tutta la pagine deve essere generata in Java......bisogna mettere mano al codice Java anche solo per cambiare il colore di sfondo! JSP (come ASP) immerge codice (Java) in pagine HTML separazione fra presentazione e logica SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 82

42 Esempio: una pagina JSP <HTML> page language= java import= it.netikos.jsp %> <H1>Benvenuto!</H1> Oggi è <jsp:usebean id= calendario class= JSPCalendar /> <UL> <LI>giorno: <%= calendario.getdayofmonth() %> <LI>mese: <%= calendario.getmonth() %> <LI>anno: <%= calendario.getyear() %> </UL> <% if (calendario.get(calendar.am_pm)==calendar.am) { %> buon giorno! <% } else { %> buona seeeeeraaaaa... <% } %> </HTML> SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 83 Elementi di una pagina JSP Una pagina JSP può contenere cinque tipi di elementi: 1. direttive JSP, fra e %> 2. azioni JSP, fra <jsp: e /> (ma vedremo più avanti una versione estesa) 3. espressioni, fra <%= e %> 4. scriptlet, ovvero codice fra <% e %> 5. parti fisse, tutto il resto SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 84

43 Direttive JSP Ci sono tre tipi di direttive: di pagina (linguaggio, dimensioni buffer, trattamento errori, ecc.) include (per inserire altri file dentro la pagina) taglib (estensioni del linguaggio JSP) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 85 Azioni JSP jsp:usebean (istanzia un bean e gli assegna un nome) jsp:setproperty (assegna un valore a una proprietà di un bean) jsp:getproperty (legge il valore di una proprietà, lo converte in stringa, e lo manda in output)... e alcune altre SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 86

44 Espressioni L espressione fra <%= e %> viene valutata Il valore ottenuto viene converito in stringa La stringa viene sostituita al posto di <%=... %> SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 87 Scriptlet Il codice fra <% e %> viene eseguito L immersione può anche essere parziale, come nel nostro esempio precedente: <% if (calendario.get(calendar.am_pm)==calendar.am) { %> buon giorno! <% } else { %> buona seeeeeraaaaa... <% } %> SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 88

45 Trattamento delle pagine JSP Ma, esattamente, cosa accade quando un web server deve trattare una pagina JSP? Quali caratteristiche derivano alle JSP da questo trattamento? SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 89 Trattamento delle pagine JSP La prima volta che al server viene richiesta una certa pagina JSP, oppure se la pagina è stata modificata rispetto all ultimo accesso precedente, la pagina viene compilata e diventa una Servlet (.java) La Servlet viene a sua volta compilata e produce un file eseguibile (.class) Il codice del.class viene caricato nel server, viene eseguito, e tenuto pronto per eventuali altre richieste successive SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 90

46 Trattamento delle pagine JSP Container p.class client p.java Java compiler client client JSP compiler p.jsp Spazio web SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 91 Caratteristiche di JSP Ereditano tutte le buone caratteristiche delle Servlet In più, rendono facile fare modifiche: la compilazione è automatica si può fare prototipazione rapida se si vuole modificare l aspetto delle pagine HTML, non c è bisogno di toccare il codice il livello di competenze richiesto è più basso SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 92

47 Uso tipico di JSP Il merito principale delle JSP è di separare la presentazione (parte HTML) dalla logica applicativa (parte codice) Per sfruttare al meglio questa separazione, è bene ridurre al minimo le scriptlet <% %>, e spostare tutta la logica all interno di JavaBean appropriati Implementazione in stile MVC (Model-View- Controller) SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 93 Uso tipico di JSP L architettura MVC prevede un modello astratto della realtà che si vuole modellare (M) Separatamente, uno strato di software legge lo stato del modello e ne produce una vista (V) Analogamente, uno strato di software detto controller interpreta le azioni dell utente e le effettua apportando modifiche al modello (C) Nel nostro caso, M è implementato come un insieme di Javabean; pagine JSP fungono da V e C SUPSI-DTI Silvia Giordano 10/06/2004 Architecture 94

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

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

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

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

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

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

Architetture di sistema

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

Dettagli

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

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

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

Architetture di sistema

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

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

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

Programmazione Client-Server

Programmazione Client-Server Programmazione Client-Server Davide Taibi davide.taibi@uninsubria.it The Java Platform Java Technology Enabled Devices Java Technology Enabled Desktop Workgroup Server High-End Server The Java Platform

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 all ambiente di sviluppo

Introduzione all ambiente di sviluppo Laboratorio II Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2006-07 CdL Operatore Informatico Giuridico. Introduzione all ambiente di sviluppo Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio

Dettagli

Enterprise Application Servers

Enterprise Application Servers Enterprise Application Servers Fulvio Corno Dipartimento di Automatica e Informatica Politecnico di Torino Enterprise Application Servers 1 Application server Application server = software che permette

Dettagli

Svantaggi delle servlet

Svantaggi delle servlet Svantaggi delle servlet Le servlet sono la tecnologia principale di J2EE per comunicare con i browser dei client. Tuttavia ci sono degli inconvenienti per gli sviluppatori di applicazioni web: le servlet

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

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

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

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

L evoluzione delle Applicazioni Distribuite

L evoluzione delle Applicazioni Distribuite L evoluzione delle Applicazioni Distribuite Dai terminali a fosfori verdi al Client-Server a Internet Architettura basata su Mainframe thin client su 3270 a fosfori verde server TP-Monitor su Mainframe

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

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

Progetto di Applicazioni Software

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

Dettagli

Architettura SW Definizione e Notazioni

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

Dettagli

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

Applicazione: GAS - Gestione AcceSsi

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

Dettagli

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

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

Architetture Web parte 2

Architetture Web parte 2 Architetture Web parte 2 Programmazione in Ambienti Distribuiti A.A. 2004-05 Sessione Un insieme di richieste, provenienti dallo stesso browser e dirette allo stesso server, confinate in un dato lasso

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

REGIONE BASILICATA UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi

REGIONE BASILICATA UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi Autori: Dott.ssa Domenica Nardelli (P.O.C. Area Applicativa Ufficio SIR) Data di creazione: 03 Ottobre 2005 Ultimo aggiornamento: 03 Ottobre

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

UX model e Architetture di SI web-based. B. Pernici D. Ardagna

UX model e Architetture di SI web-based. B. Pernici D. Ardagna UX model e Architetture di SI web-based B. Pernici D. Ardagna Conallen, cap. 7,9 Bibliografia Modellazione concettuale: UX model Primo passo di analisi UX: user experience Schermate Modellare la navigazione,

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

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

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

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

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

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

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

La modernizzazione delle applicazioni in ambiente System i5

La modernizzazione delle applicazioni in ambiente System i5 La modernizzazione delle applicazioni in ambiente System i5 Segrate - 19 Ottobre 2006 Nicoletta Bernasconi nicoletta_bernasconi@it.ibm.com I modelli applicativi Tradizionale interfaccia utente a carattere

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

Enterprise @pplication Integration Software S.r.l.

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

Dettagli

D. Rosaci. Java2 Enterprise Edition

D. Rosaci. Java2 Enterprise Edition D. Rosaci Java2 Enterprise Edition Cos è J2EE? È una piattaforma per lo sviluppo di applicazioni enterprise, basata su un modello di applicazione distribuito a più livelli (multi-tiered) Per applicazione

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

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

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

Dettagli

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

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

Corso Analista Programmatore Java Corso Online Analista Programmatore Java

Corso Analista Programmatore Java Corso Online Analista Programmatore Java Corso Analista Programmatore Java Corso Online Analista Programmatore Java Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Java Tematiche Trattate Modulo Uno

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

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

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

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

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

Dettagli

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

N.E.A.T. ( Neutral Environment Application Tools )

N.E.A.T. ( Neutral Environment Application Tools ) N.E.A.T. ( Neutral Environment Application Tools ) SCOPO : Ambiente per lo sviluppo di applicazioni WEB multimediali basate su Data Base Relazionale e strutturate secondo il modello a tre livelli: Presentazione

Dettagli

STATO IMPLEMENTAZIONE ONVIF SU TELECAMERE MUNDUS SECURUS

STATO IMPLEMENTAZIONE ONVIF SU TELECAMERE MUNDUS SECURUS IMPLEMENTAZIONE ONVIF SU TELECAMERE MUNDUS SECURUS 1. Ambiente di sviluppo Sono stati analizzati diversi linguaggi e framework differenti utilizzabili per implementare i WebServices ONVIF. Il risultato

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

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

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

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

UFFICIO S. I. LICA R. S. TA

UFFICIO S. I. LICA R. S. TA REGI ONE BASI UFFICIO S. I. LICA R. S. TA Standard Tecnologici Pagina i di 11 Controllo del documento Identificazione documento Titolo Tipo Identificatore Nome file

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

Corso analista programmatore Java. Corso analista programmatore Java Programma

Corso analista programmatore Java. Corso analista programmatore Java Programma Corso analista programmatore Java Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

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

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

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

Dettagli

GoCloud just google consulting

GoCloud just google consulting La visione Cloud di Google: cosa cambia per i profili tecnici? GoCloud just google consulting Workshop sulle competenze ed il lavoro degli IT Systems Architect Vincenzo Gianferrari Pini

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 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

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

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

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli Sommario Introduzione Architettura Client-Server Architettura a Due Livelli Architettura a Tre Livelli Server Web Browser Web Introduzione La storia inizia nel 1989 Tim Berners-Lee al CERN, progetto WWW

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

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

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

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

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Corso di Applicazioni Telematiche Lezione n.1 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Obiettivi del corso Supporti didattici Modalità d esame Panoramica

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Java. Traditional portability (ideal)

Java. Traditional portability (ideal) 1 Java JAVA: una introduzione 2 Traditional portability (ideal) C-code (Linux) (Pentium) Executable (Linux) Executable (Win32) Linux Windows 32 (Mac) Executable (Mac) Mac 1 1 3 Portability of Java programs

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

Laboratorio di Programmazione di Rete

Laboratorio di Programmazione di Rete Laboratorio di Programmazione di Rete Lezione del 15 Marzo 2010 Docente: Novella Bartolini Ricevimento: Mercoledì ore 12:30-14:00 Via Salaria 113, terzo piano, stanza 309 Email: bartolini@di.uniroma1.it

Dettagli

JavaServer Pages: Introduzione

JavaServer Pages: Introduzione JavaServer Pages: Introduzione Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna Sistemi reali in JSP!! ofoto.com: stampa e gestisce foto

Dettagli

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. L altra strada per il BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio L altra strada per il BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 Il BPM Il BPM (Business Process Management) non è solo una tecnologia, ma più a grandi linee una disciplina

Dettagli

simplesoad SERVICE ENGINEER

simplesoad SERVICE ENGINEER SIMPLE ENGINEERING simplesoad SERVICE ENGINEER TRAINING CYCLE SHEET SIMPLESOAD_SE_COURSE_SHEET_IT_2007032701 SIMPLE ENGINEERING 2007 - ALL RIGHTS RESERVED. SIMPLE ENGINEERING IS AN INDEPENDENT EUROPEAN

Dettagli

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Università di Bologna Facoltà di Ingegneria Bologna, 08/02/2010 Outline Da applicazioni concentrate a distribuite Modello

Dettagli

Applicazione: SIPER Servizi In linea per il PERsonale

Applicazione: SIPER Servizi In linea per il PERsonale Riusabilità del software - Catalogo delle applicazioni Gestione Personale Applicazione: SIPER Servizi In linea per il PERsonale Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei

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

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

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

Capitolo 7. Sviluppi futuri. 7.1 Generazione automatica di pagine WML

Capitolo 7. Sviluppi futuri. 7.1 Generazione automatica di pagine WML Capitolo 7 Sviluppi futuri 7.1 Generazione automatica di pagine WML Con l avvento della tecnologia WAP/WML abbiamo constatato la necessità di avere a disposizione uno strumento che consenta, così come

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

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

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

Architetture software

Architetture software Sistemi Distribuiti Architetture software 1 Sistemi distribuiti: Architetture software Il software di gestione di un sistema distribuito ha funzionalità analoghe ad un sistema operativo Gestione delle

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