Applicazioni Web-based e non
Elementi di base di un’applicazione
• I dati da trattare (dati sugli utenti, sul servizio offerto,
etc.)
• Logica applicativa (business logic), ovvero le
funzionalità che l’applicazione deve offrire, il tipo di
trattamento dei dati previsto (quali operazioni si
possono fare), etc.
• Interfaccia utente
– interfaccia web (e.g., per browser, o testuale)
– stand-alone (applicazione locale alla macchina su cui gira)
Laboratorio di Servizi Web Ardissono
1
Architetture delle applicazioni
•
•
•
•
Monoliti
Client/server (two-tier)
Three-tier
N-tier
Laboratorio di Servizi Web Ardissono
2
Monoliti (IT stovepipe) - I
• Popolari ai tempi dei mainframe
• Monoliti:
– pezzi di codice indivisibili
– controllavano l’intera logica dell’applicazione, dalla
gestione (e memorizzazione) dei dati, fino all’interfaccia
utente
– gestivano applicazioni stand-alone
• Popolarità dovuta a:
– mainframe adatti ad eseguire pochi processi stand-alone,
anzichè diversi processi comunicanti
– non c’erano ancora i database
Laboratorio di Servizi Web Ardissono
3
Monoliti (IT stovepipe) - II
User interface
Logic
Data Management
Enterprise
Laboratorio di Servizi Web Ardissono
4
Architetture client/server - I
• Dalla fine degli anni ‘70 alla metà degli anni ‘80
– Diffusione di server più piccoli ed economici dei
mainframe, e di workstations e PC
– Diffusione di RDBMS
• Suddivisione delle applicazioni in due parti:
– backend (server): gestione di database (+ o – complessi) e
dei compiti di manipolazione dei dati
– frontend (client): gestione interfaccia utente
 maggiore scalabilità, rispetto a monoliti (carico
computazionale distrbuito sui client)
 sviluppo più veloce di applicazioni che accedono agli
(stessi) dati
Laboratorio di Servizi Web Ardissono
5
Architetture client/server - III
Client
Client
Client
User interface
Logic
Data
Management
Server
Enterprise
Laboratorio di Servizi Web Ardissono
6
Architetture client/server - II
Svantaggi:
• Traffico di messaggi intenso (frontend comunica
continuamente con server dati)
• Logica di business non gestita in componente separata
dell’architettura: suddivisa tra frontend e backend
•  client e server di applicazione dipendono l’uno
dall’altro
– difficile riutilizzare interfaccia in servizio che accede a dati
diversi
– difficile utilizzare DB da frontend diversi
– tendenza a cablare la business logic nell’interfaccia utente
 cambio di logica significa cambiare anche interfaccia
Laboratorio di Servizi Web Ardissono
7
Architetture client/server - IV
• Problema: mancato riconoscimento dell’importanza
della business logic
– Es: servizio accessibile da più device (telefonino, desktop)
 stessa logica, interfaccia diversa
User interface
Client
Nuovo Client
Nuovo Client
Logic
Adapter
Adapter
Data
Management
Enterprise
Server
Laboratorio di Servizi Web Ardissono
8
Architetture three-tier - I
• Introdotte all’inizio degli anni ‘90
• Business logic trattata in modo esplicito:
– livello 1: gestione dei dati (DBMS, file XML, …..)
– livello 2: business logic (processamento dati, …)
– livello 3: interfaccia utente (presentazione dati, servizi)
• Ogni livello ha obiettivi e vincoli di design propri
• Nessun livello fa assunzioni sulla struttura o
implementazione degli altri:
– livello 2 non fa assunzioni su rappresentazione dei dati, né
sull’implementazione dell’interfaccia utente
– livello 3 non fa assunzioni su come opera la business logic ..
Laboratorio di Servizi Web Ardissono
9
Architetture three-tier - II
• Non c’è comunicazione diretta tra livello 1 e livello 3
– Interfaccia utente non riceve, né inserisce direttamente dati
nel livello di data management
– Tutti i passaggi di informazione nei due sensi vengono
filtrati dalla business logic
• I livelli operano senza assumere di essere parte di una
specifica applicazione
–  applicazioni viste come collezioni di componenti
cooperanti
–  ogni componente può essere contemporaneamente parte
di applicazioni diverse (e.g., database, o componente logica
di configurazione di oggetti complessi)
Laboratorio di Servizi Web Ardissono
10
Architetture three-tier - III
User interface
Presentation layer
Motif
Client
Logic
Business layer
Data Management
Data layer
Windows
Client
Telephony
Client
Mac
Client
Business
Rules
Business
Rules
Business
Rules
Data
Service
Data
Service
Data
Service
Enterprise
Laboratorio di Servizi Web Ardissono
11
Architetture three-tier - IV
User Interface
Application Logic
Service
consumer
Service
provider
Data
providers
DB
XML
Documents
Laboratorio di Servizi Web Ardissono
Directory
service
12
Vantaggi di architetture three-tier - I
• Flessibilità e modificabilità di sistemi formati da
componenti separate
– componenti utilizzabili in sistemi diversi
– modifica di una componente non impatta sul resto del
sistema (a meno di cambiamenti negli API)
– ricerca di bug più focalizzata (separazione ed isolamento
delle funzionalità del sistema)
– aggiunta di funzionalità all’applicazione implica estensione
delle sole componenti coinvolte (o aggiunta di nuove
componenti)
Laboratorio di Servizi Web Ardissono
13
Vantaggi di architetture three-tier - II
• Interconnettività
– API delle componenti superano il problema degli adattatori
del modello client server  N interfacce diverse possono
essere connesse allo stesso servizio etc.
– Facilitato l’accesso a dati comuni da parte di applicazioni
diverse (uso dello stesso gestore dei dati da parte di business
logics diverse)
• Gestione di sistemi distribuiti
– Business logic di applicazioni distribuite (e.g., sistemi
informativi con alcuni server replicati e client remoti)
aggiornabile senza richiedere aggiornamento dei client
– Aggiornamento dei client comunque costoso
Laboratorio di Servizi Web Ardissono
14
Vantaggi di architetture three-tier - III
• Applicazioni distribuite geograficamente
– Data server centrale
– Business logic gestita da server logici regionali
– Client remoti (ev. con business logic per maggior
scalabilità)
• Per ridurre traffico di rete e latency del servizio, anche
il data server centrale può essere replicato (ma,
gestione consistenza dati)
Laboratorio di Servizi Web Ardissono
15
Svantaggi di architetture three-tier - I
• Dimensioni delle applicazioni ed efficienza
– Pesante uso della comunicazione in rete  latenza del
servizio
– Comunicazione tra componenti richiede uso di librerie SW
per scambio di informazioni  codice voluminoso
• Legacy software
– Molte imprese usano software vecchio (basato su modello
monolitico) per gestire i propri dati 
• difficile applicare il modello three-tier per nuove
applicazioni
• introduzione di adapters per interfacciare il legacy SW
Laboratorio di Servizi Web Ardissono
16
Three-tier è concettuale, non fisico
Si possono implementare architetture three-tier
su due livelli di macchine, o anche su uno solo...
Data and Logic Server
Clients
User
Interface
Data
Components
Logic
Rules
User
Interface
Laboratorio di Servizi Web Ardissono
17
Architetture n-Tier - I
Permettono configurazioni diverse. Elementi
fondamentali:
• Interfaccia utente (UI)
– gestisce interazione con utente
– può essere un web browser, WAP minibrowser, interfaccia
grafica, …
• Presentation logic
– definisce cosa UI presenta e come gestire le richieste utente
• Business logic
– gestisce regole di business dell’applicazione
Laboratorio di Servizi Web Ardissono
18
Architetture n-Tier - II
• Infrastructure services
– forniscono funzionalità supplementari alle componenti
dell’applicazione (messaging, supporto alle transazioni, …)
• Data layer:
– livello dei dati dell’applicazione
Laboratorio di Servizi Web Ardissono
19
Architetture n-Tier - III
Browser
Firewall
Application client
Presentation Logic
Services
Business Logic
DB
XML
Documents
Laboratorio di Servizi Web Ardissono
20
Applicazione Web-based tipica - I
• Interfaccia utente: gestita sul browser utente
• Logica applicativa: gestita sul server, che si
interfaccia al web attraverso Web Server
• Livello dei dati: su database, eventualmente
localizzato su macchina diversa da quella del Web
Server, per questioni di sicurezza
Browser
utente
HTTP
Web
Server
Laboratorio di Servizi Web Ardissono
Business logic
21
Applicazione Web-based tipica - II
• Richiesta di pagina HTML statica (pagina HTML
memorizzata nel file system dell’applicazione – il
codice della pagina non viene generato eseguendo
programmi applicativi sul server)
Request: http://patzer/hello.html
Local File System
Web
Server
Browser
utente
/htdocs/hello.html
Response: HTML code
Laboratorio di Servizi Web Ardissono
22
Applicazione Web-based tipica - III
• Richiesta di pagina dinamica (pagina HTML generata
dinamicamente, sulla base della richiesta del client –
codice della pagina generato eseguendo programmi
applicativi sul server)
Request:
http://www.di.unito.it/service1.html
Browser
utente
Web
Server
Business logic
Response: pagina HTML di
risposta, con eventuali link
e bottoni per continuare interazione
Laboratorio di Servizi Web Ardissono
23
Browser Web
• Può essere visto come interfaccia utente universale
– Invoca Web Server per richiedere pagine statiche o
dinamiche
– Riceve contenuti web da Web Server invocato e li presenta
sulla macchina dell’utente
• Browser moderni (MS Explorer, Netscape Navigator, …)
interpretano codice HTML
• Alcuni browser interpretano codice XML
– Può eseguire script (e.g., javascript) localmente, per
effettuare semplici computazioni (e.g., controllo correttezza
input utente)
– Può scaricare plug-in da Web Server per eseguire
programmi localmente (e.g., animazioni Flash o altro)
Laboratorio di Servizi Web Ardissono
24
Web Server
• Programma che
– gira su una macchina server accessibile da internet
– resta in ascolto di richieste (da parte di client web)
su porta HTTP. E.g., http://www.di.unito.it:8080
– gestisce le richieste che arrivano (recupera pagina
html richiesta, esegue programmi, invoca
programmi associati a servizi richiesti, etc.)
– restituisce a client una risposta (risultato della
richiesta, messaggio di errore)
Laboratorio di Servizi Web Ardissono
25
La Piattaforma J2EE
• J2SE: Java 2 Platform, Standard Edition.
– Ambiente runtime per esecuzione di applicazioni Java e
insieme di API (Application Programming Interface)
per sviluppare applicazioni di vario tipo (applets,
applicazioni stand-alone, …)
• J2EE: Java 2 Platform, Enterprise Edition:
– framework per lo sviluppo di applicazioni server-side
complesse
• J2ME: Java 2 Platform, Micro Edition:
– framework per lo sviluppo di applicazioni su micro
device (PDA, telefonini Java-enabled, etc.)
Laboratorio di Servizi Web Ardissono
26
Proprietà
• J2EE: adatta allo sviluppo di applicazioni Web-based
a livello di impresa, e.g., per commercio elettronico
• Il suo competitor è Microsoft .net
• Impresa (enterprise): organizzazione di business
• Enterprise software applications: applicazioni SW
che facilitano la gestione delle attività di impresa
– interagire con clienti e partners via Internet
– facilitare l’interazione tra le varie parti di un’impresa,
eventualmente distribuite geograficamente
– gestione del business: resource planning, gestione inventari,
...
Laboratorio di Servizi Web Ardissono
27
Caratteristiche di applicazioni “enterprise”
• Necessità informative: spesso le stesse informazioni
sono utilizzate sotto forma diversa dai consumatori 
attività di business diverse processano le stesse
informazioni, ma utilizzando formati diversi
• Complessità dei processi di business: necessità di
raccogliere, gestire e condividere informazioni,
basandosi su una logica complessa
• Eterogeneità delle applicazioni: un’impresa utilizza
molte applicazioni basate su architetture e tecnologie
diverse (legacy software)
Laboratorio di Servizi Web Ardissono
28
Requisiti di gestione del software d’impresa
• Velocizzazione del processo di sviluppo delle
applicazioni: cambiano gli standard, le tecnologie, le
applicazioni devono entrare in uso velocemente
• Affidabilità e disponibilità: il SW deve essere
sempre accessibile (Web) ed essere affidabile (e.g.,
transazioni)
• Sicurezza: protezione delle informazioni dell’azienda
• Scalabilità: accesso efficiente a risorse, tolleranza al
carico di milioni di utenti (Web)
• Integrazione: le applicazioni vanno integrate nei
sistemi informativi già esistenti
Laboratorio di Servizi Web Ardissono
29
J2EE
• Si sono sviluppate soluzioni diverse per affrontare i
vari problemi
• J2EE: permette di integrare tali soluzioni e facilita lo
sviluppo del SW
– Modello di programmazione con approccio alla costruzione
di applicazioni basato su API
– Infrastruttura che permette di eseguire le applicazioni in
modo efficiente e scalabile
• basato su Java  portabile
• basato sul concetto di Contenitore  servizi di gestione di base
(messaggi, transazioni, ciclo di vita delle componenti, …) forniti
dall’infrastruttura
• Modulare, componenti riusabili
Laboratorio di Servizi Web Ardissono
30
In questo corso di laboratorio
• Utilizzeremo JWSDP (Java Web Services
Development Pack) come infrastruttura per lo
sviluppo di applicazioni Web-based
• Sperimenteremo l’uso di tecnologie di
–
–
–
–
accesso a Database mediante JDBC
gestione di XML
gestione di applicazioni Server-side (Servlets, JSP)
…
• Non sperimenteremo l’uso degli EJB (Enterprise Java
Beans), trattati nel corso di Sperimentazioni di
Ingegneria del Software (SpisII)
Laboratorio di Servizi Web Ardissono
31
Scarica

client