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