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 piergiorgio.cremonese@netikos.com CH-6928 Manno silvia.giordano@supsi.ch 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

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

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

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

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

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

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

Architetture Informatiche. Dal Mainframe al Personal Computer

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

Dettagli

Architetture Informatiche. Dal Mainframe al Personal Computer

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

Dettagli

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

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

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

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

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

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

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

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare

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

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

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

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

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

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

Approccio stratificato

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

Dettagli

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

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

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

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

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

Dettagli

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

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

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

L architettura MVC (Model- View-Controller) Introduzione

L architettura MVC (Model- View-Controller) Introduzione L architettura MVC (Model- View-Controller) Introduzione Architettura MCV L architettura MVC è un insieme di regole per strutturare un sito-web dinamico. Queste regole complicano la struttura del sito,

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

MetaMAG METAMAG 1 IL PRODOTTO

MetaMAG METAMAG 1 IL PRODOTTO METAMAG 1 IL PRODOTTO Metamag è un prodotto che permette l acquisizione, l importazione, l analisi e la catalogazione di oggetti digitali per materiale documentale (quali immagini oppure file di testo

Dettagli

Programmazione dei socket con TCP #2

Programmazione dei socket con TCP #2 I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket

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

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

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

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

1. BASI DI DATI: GENERALITÀ

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

Dettagli

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

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

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

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client

Dettagli

Ambienti di Sviluppo

Ambienti di Sviluppo Ambienti di Sviluppo Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Editor; Compilatori e/o interpreti; Strumenti di test; Applicazioni che permettono di editare / disegnare il

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

INFN Security Workshop Firenze 19-20 Settembre 2000. IMHO e IMP: una interfaccia Web sicura per la posta elettronica. Raffaele.Cicchese@pr.infn.

INFN Security Workshop Firenze 19-20 Settembre 2000. IMHO e IMP: una interfaccia Web sicura per la posta elettronica. Raffaele.Cicchese@pr.infn. INFN Security Workshop Firenze 19-20 Settembre 2000 IMHO e IMP: una interfaccia Web sicura per la posta elettronica Raffaele.Cicchese@pr.infn.it Cosa significano i due acronimi IMHO e IMP? IMHO = IMAP

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

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

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

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita Architettura client/ stazioni utente Basi di ati Architetture /Server B locali M BG Architettura centralizzata Un architettura è centralizzata quando i dati e le (programmi) risiedono in un unico Tutta

Dettagli

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

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

Application Server per sviluppare applicazioni Java Enterprise

Application Server per sviluppare applicazioni Java Enterprise Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente

Dettagli

Sistemi informativi secondo prospettive combinate

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

Dettagli

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

Network Services Location Manager. Guida per amministratori di rete

Network Services Location Manager. Guida per amministratori di rete apple Network Services Location Manager Guida per amministratori di rete Questo documento illustra le caratteristiche di Network Services Location Manager e spiega le configurazioni di rete per sfruttarne

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

Groups vs Organizational Units. A cura di Roberto Morleo

Groups vs Organizational Units. A cura di Roberto Morleo Groups vs Organizational Units A cura di Roberto Morleo Gruppo Windows 2 Groups vs Organizational Units Organizational Units Groups OU Design Using OUs to Delegate Administration Group Policies and OU

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

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

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

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

ESERCITAZIONE Semplice creazione di un sito Internet

ESERCITAZIONE Semplice creazione di un sito Internet ESERCITAZIONE Semplice creazione di un sito Internet Sistemi e Tecnologie Informatiche - Prof. Gregorio Cosentino 1 Internet Una rete globale che connette milioni di computer in tutto il mondo, anarchica

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

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

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

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

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

API e socket per lo sviluppo di applicazioni Web Based

API e socket per lo sviluppo di applicazioni Web Based API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

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

Sistemi avanzati di gestione dei Sistemi Informativi

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

Dettagli

Come funziona internet

Come funziona internet Come funziona internet Architettura client server URL/URI Richiesta (Request) Risposta (Response) Pagina url e uri Uno Uniform Resource Identifier (URI, acronimo più generico rispetto ad "URL") è una stringa

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

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

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

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

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

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione INFORMATICA DISTRIBUITA prof. lez 4 Livello applicazione Università degli Studi di Milano Scienze e Tecnologie della Comunicazione Musicale a.a. 2009-2010 applicazioni di rete Processo: programma in esecuzione

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

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

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Architetture Applicative

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

Dettagli

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g Sommario Oracle Database 10g (laboratorio) Dr. Daniele Barone Dr. Simone Grega 1 2 Oracle Database 10g Offre alte qualità del servizio: Performance; Scalabilità; Sicurezza; Affidabilità. Gestione autonoma

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

Moodle 2. comandi avanzati. manuale per il docente. Albano Squizzato ingsquizzato@libero.it Paolo Macchi paolo.macchi@libero.it

Moodle 2. comandi avanzati. manuale per il docente. Albano Squizzato ingsquizzato@libero.it Paolo Macchi paolo.macchi@libero.it Albano Squizzato ingsquizzato@libero.it Paolo Macchi paolo.macchi@libero.it Moodle 2 comandi avanzati manuale per il docente Generazione Web 2013-14 - G9 Il database (creazione) The database is veritable

Dettagli

Scenario di Progettazione

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

Dettagli

JNDI. Massimo Merro Programmazione di Rete 214 / 229

JNDI. Massimo Merro Programmazione di Rete 214 / 229 JNDI Abbiamo già visto come i registri RMI espletino un servizio di Naming attraverso cui vengono associati nomi simbolici a referenze a server remoti. Esistono comunque altri servizi di naming: COS (Common

Dettagli

Guida all Installazione del ProxyFatturaPA

Guida all Installazione del ProxyFatturaPA i Guida all Installazione del ii Copyright 2005-2014 Link.it srl iii Indice 1 Introduzione 1 2 Fase Preliminare 1 3 Esecuzione dell Installer 1 4 Fase di Dispiegamento 5 4.1 JBoss 5.x e 6.x....................................................

Dettagli

Aspetti applicativi e tecnologia

Aspetti applicativi e tecnologia Aspetti applicativi e tecnologia Premessa Architetture usate per i database Le prime applicazioni erano definite monolitiche, cioè un unico computer (mainframe) gestiva sia le applicazioni che i dati,

Dettagli

http://indesk.innove.it

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

Dettagli

Applicazioni distribuite

Applicazioni distribuite Applicazioni distribuite Maurizio Cozzetto 1 agosto 2009 Un pò di teoria Ricordiamo che un'applicazione distribuita è un'applicazione composta da più programmi (almeno 2) posti in esecuzione su macchine

Dettagli