Programmazione Client-Server Davide Taibi [email protected] The Java™ Platform Java Technology Enabled Devices Java Technology Enabled Desktop Workgroup Server High-End Server The Java™ Platform Java 2 Platform Micro Edition (J2METM) Optional Packages Optional Packages Java 2 Enterprise Edition (J2EE) Java 2 Standard Edition (J2SE) Personal Basis Profile Personal Profile Foundation Profile CDC JVM MIDP CLDC KVM * Under development in JCP Java Card APIs CardVM Programmazione Client-Server • Single tier • Two tier • Three tier – RPC – Remote object – Web Service – HTML browser e Web server • Application server – Standard – Proprietari Applicazione Enterprise • Cosa rende un applicazione “enterprise” – Presentation logic – Business logic – Data access logic (and data model) – System services Single Tier (Mainframe-based) • Terminali connessi direttamente al mainframe • Modello Centralizzato • Presentazione, business logic, accesso ai dati integrati in un unica applicazione monolitica Single-Tier: Pros & Cons • Pros: – Programmazione Client Side non necessaria – Consistenza dei dati semplice da manterere • Cons: – Aggiornamento / Manutenzione difficile Two-Tier SQL request SQL response Database • “Fat clients” connessi direttamente al database • Presentation,Business logic e Data Model eseguiti sul client Two-Tier: Pros & Cons • Pro: – DB product independence (compared to single-tier model) • Cons: – Presentation, data model, business logic gestiti lato client - Problemi per aggiornamento e manutenzione - Gli aggiornamenti vanno replicati su tutti i client - Database: - Se lo schema del database cambia tutti i client vanno modificati - Connessione DB per ogni client bassa scalabilita’ - Alto traffico di rete Three-Tier (RPC based) RPC request RPC response SQL request SQL response Database • Business & data model separati dalla presentazione – Business logic & data access logic nel livello intermedio – Il client gestisce solo la presentazione • Il livello intermedio gestisce tutte le richieste e servizi – Controllo degli accessi, concorrenza, threading, transazioni, persistenza performance, etc. Three-tier (RPC based): Pros & Cons • Pro: - Business logic: - Modifiche piu’ semplici rispetto al modello a 2 livelli • Cons: – Complessita’ del livello intermedio Three-Tier (Web Server) HTML request HTML response WEB Server SQL request SQL response Database • Browser gestisce il livello di presentazione • Browser comunica con il Web server via HTTP • Business logic & data model generati dinamicamente (Servlet/JSP, ASP) Three-tier (Web Server based): Pros & Cons • Pro: – Comunicazione standard (Browser HTML protocollo HTTP) – Gestione dei client azzerata – Supporto per dispositivi diversi * J2ME (cellulari, smartphone) • Cons: – Complessita’ del livello intermedio Trends • Migrazione delle applicazioni single-tier e twotier verso architetutre multi-tier • Migrazione da applicazioni “application-based client” a HTML-based client Esempi Three-Tier (Web Server) o presentation tier Enterprise Information System Programmazione Client Server • Configurazione dell’ambiente di sviluppo – Tomcat 6 (application server) – Java SDK 1.6 – Eclipse / NetBeans / IntelliJ Tomcat • Download tomcat (http://tomcat.apache.org/ download-60.cgi) – Unzip tomcat (es. C:/Tomcat /Applications/Tomcat) • Download “Eclipse IDE for Java EE Developers” http://www.eclipse.org/downloads/ Configurazione di Eclipse • Una volta Avviato Eclipse – Preferences -> Server -> Runtime Environments Configurazione di Eclipse • Add Server – Tomcat 6.0 Configurazione di Eclipse • Installazione del Graphical Editing Framework (GEF) • Help > Software Updates... > Available Software > Add Site... – http://download.eclipse.org/tools/gef/updates/ releases/ – Selezionare a release piu’ recente Creare un nuovo progetto • New -> Dynamic Web Project – Selezionare il Server Tomcat – Creare una nuova configurazione Tomcat se richiesto