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 Java 2 Platform Micro Edition ( TM (J2ME Optional Packages Optional Packages Java 2 Enterprise Edition ( J2EE ) Java 2 Standard Edition ( J2SE ) Personal Basis Profile Personal Profile Foundation Profile CDC MIDP CLDC Java Card APIs JVM KVM CardVM * Under development in JCP
Programmazione Client-Server Single tier Two tier Three tier RPC Remote object Web Service server HTML browser e Web Application server Standard Proprietari
Applicazione Enterprise Cosa rende un applicazione enterprise Presentation logic Business logic ( model Data access logic (and data System services
( Mainframe-based ) Single Tier 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: ( model DB product independence (compared to single-tier 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
( Server Three-Tier (Web 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 ( ASP dinamicamente (Servlet/JSP,
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
( Server Three-Tier (Web 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