Architetture a
componenti Java
per la realizzazione
di DSS distribuiti
Giordano Vicoli - ENEA
28 Ottobre 2003
Sommario
Sistemi (Architetture) Distribuiti.
 DSS Distribuiti.
 Problematiche nello sviluppo dei Sistemi
Distribuiti.
 Java per lo sviluppo dei Sistemi Distribuiti.
 Dimostrazione

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
2
Cosa sono i Sistemi Distribuiti

Sistemi nei quali le varie parti sono
collocate su computer separati,
eventualmente in luoghi diversi.

Componenti, oggetti, dati sono installati
dove possono svolgere al meglio il loro
lavoro.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
3
Caratteristiche dei Sistemi Distribuiti
Logica e dati di un sistema distribuito
possono essere acceduti da un client
remoto in ogni momento e da qualsiasi
luogo.
 Internet e il Web hanno dato un notevole
impulso all’evoluzione dei Sistemi
Distribuiti.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
4
Caratteristiche dei Sistemi Distribuiti
Internet e le tecnologie ad esso associate
hanno imposto degli standard (Protocolli,
modalità di interazione etc.).
 La tecnologia ha dovuto adattarsi a questi
standard e ha dovuto cercare soluzioni
affidabili per la realizzazione dei Sistemi
Distribuiti.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
5
Sistemi monolitici

Applicazioni e dati risiedono sullo stesso
computer.
Applicazione
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
6
Sistemi Client-Server (2-tiers)
I dati risiedono su un Server di rete.
 Sono acceduti da parte di più Client
contemporaneamente.
 Il Client contiene sia la logica di
visualizzazione e inserimento dati, sia la
business logic.
 Architettura a due livelli (2-tiers).

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
7
Sistemi Client-Server (2-tiers)
Client
Server
Client
Client
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
8
Sistemi Client-Server (2-tiers)
Difficile manutenzione del Client.
 Installazione dei Client più complessa e
costosa in termini di licenze.
 Condivisione dei dati difficile da gestire.
 Aumento dei Client difficile da gestire.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
9
Sistemi Client-Server (3-tiers)
La business logic viene spostata sul
Server.
 Il Client viene utilizzato solo per
l’inserimento e la visualizzazione dei dati.
 Viene introdotto un livello intermedio
(Middleware).
 Architettura a tre livelli (3-tiers).

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
10
Sistemi Client-Server (3-tiers)
Client
Client
Server
Middleware
DBMS
Client
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
11
Sistemi Client-Server (3-tiers)
Miglioramenti e aggiornamenti sul Server
non influiscono sull’applicazione Client.
 Installazione Client semplificata (zero
configuration client architecture) e più
semplice da utilizzare.
 Sistema più difficile da realizzare.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
12
Client
Il Client deve essere il più “leggero” possibile
(Thin-Client).
 Deve contenere la logica di visualizzazione
dei dati, la logica di inserimento
eventualmente la logica di validazione.
 Internet Browser
 Applicazione dedicata comunque “leggera”.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
13
Server
Il lato Server può essere ulteriormente
suddiviso in più livelli.
 Architettura multi-livello o n-tiers (n>2).
 Livelli logici e livelli fisici.
 Livello fisico -> numero di macchine
 Livello logico -> organizzazione del
sistema.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
14
Server




Presentation tier (si occupa dell’interazione da
e verso il Client).
Business tier (contiene la business logic del
sistema).
Integration tier (si occupa dell’integrazione
degli oggetti con il sistema di persistenza o con
altre risorse come i servizi di messaggistica).
Resource tier (Databases, FileSystem etc).
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
15
Resource Tier
Client Tier
Applicaz.
Client
MIDDLEWARE
Presentation Tier
Business Tier
Internet
Browser
Giordano Vicoli - ENEA
Integration Tier
Architetture a componenti Java per la
realizzazione di DSS distribuiti
16
Pattern MVC
Un pattern è una soluzione ad un certo
tipo di problema.
 Model – View – Controller
 Separare i dati e la business logic che
opera su di essi dalla loro visualizzazione
e dalla modalità di interazione con essi.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
17
Pattern MVC
Controller
Model
View
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
18
Sommario
Sistemi (Architetture) Distribuiti.
 DSS Distribuiti.
 Problematiche nello sviluppo dei Sistemi
Distribuiti.
 Java per lo sviluppo dei Sistemi Distribuiti.
 Dimostrazione

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
19
DSS Distribuiti
Hanno seguito la stessa evoluzione dei
Sistemi distribuiti.
 Non sono più pensati per il singolo
operatore ma possono essere utilizzati in
ambito aziendale, seppure a diversi livelli.
 Possono anche essere realizzati per
fornire servizi.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
20
Progetto MUSTER
Supervisore
Addestrando
Addestrando
Addestrando
Giordano Vicoli - ENEA
Addestrando
Architetture a componenti Java per la
realizzazione di DSS distribuiti
21
Progetto MUSTER
Supervisore
Addestrando
Server
Addestrando
Giordano Vicoli - ENEA
Addestrando
Addestrando
Architetture a componenti Java per la
realizzazione di DSS distribuiti
22
DFE-Design For Environment

Aiutare il progettista o il gestore dei
processi produttivi nel miglioramento degli
impianti e delle tecnologie impiegate
nell’ottica di ridurre l’impatto ambientale
del processo compatibilmente con i costi e
gli investimenti necessari.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
23
DFE-Design For Environment
Processo verniciatura sedie
 Produzione del vetro artistico di Murano
 Fase di Configurazione del processo
 Fase di Analisi
 Fase di Ottimizzazione
 Due alternative nella fase di ottimizzazione
 Algoritmo Genetico con Foglio Excel

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
24
DFE-Design For Environment







Versione Desktop
Versione “Enterprise”
Solo la fase di ottimizzazione
Servizio verso gli utenti
L’utente può accedere tramite browser e con
applicazione dedicata.
L’utente si registra e “acquista” un certo tempo
di elaborazione per l’esecuzione degli algoritmi.
Algoritmi implementati con Delphi.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
25
DFE-Design For Environment


Versione Desktop: più licenze, installazione più
complessa, manutenzione difficile, maggior
potenza elaborativa richiesta.
Versione Enterprise: nessuna licenza,
interazione tramite internet, client leggero
scaricabile da internet, manutenzione
semplificata, minor potenza elaborativa, accesso
da qualsiasi computer.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
26
Sommario
Sistemi (Architetture) Distribuiti.
 DSS Distribuiti.
 Problematiche nello sviluppo dei
Sistemi Distribuiti.
 Java per lo sviluppo dei Sistemi Distribuiti.
 Dimostrazione

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
27
Problematiche

Quando si realizza un sistema distribuito
entrano in gioco una serie di
problematiche che non sono strettamente
legate ai requisiti funzionali del sistema.

Non è sufficiente quindi implementare
correttamente la business logic.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
28
Problematiche
 Scalabilità.
 Transazioni
distribuite.
 Autenticazione e autorizzazione.
 Accesso concorrente ai dati.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
29
Transazioni
E’ l’esecuzione di una serie di attività (che
sono viste come un’unica unità di lavoro)
che accedono ad una o più risorse
condivise.
 Esse devono andare in esecuzione in
maniera completa (commit) o non devono
essere eseguite per niente (rollback).

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
30
Transazioni
Se una transazione è eseguita da
componenti diversi eventualmente allocati
su elaboratori diversi siamo in presenza di
una transazione distribuita.
 In questo caso si identifica un Transaction
Manager che supervisiona la transazione
mediante il protocollo di commit a due fasi
(2PC - 2 Phase Commit).

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
31
Transazioni

Prenotazione e pagamento.
Prenotazione
Pagamento
Applicazione
Biglietto
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
32
Transazioni
Sportello bancario automatico.
 Gestione dati di importante rilevanza.

Banca con 100 sportelli, 300 transazioni al
giorno, 100€ per transazione.
 Più di 1.000.000.000,00 €/anno
 99,99%
 Perdita più di 100.000,00 €/anno

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
33
Transazioni
 ACID
 Atomica
 Consistente
 Isolata
 Duratura
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
34
Sommario
Sistemi (Architetture) Distribuiti.
 DSS Distribuiti.
 Problematiche nello sviluppo dei Sistemi
Distribuiti.
 Java per lo sviluppo dei Sistemi
Distribuiti.
 Dimostrazione

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
35
JAVA
Negli ultimi anni Java si è principalmente
orientato con grande successo allo
sviluppo di una piattaforma per la
realizzazione di applicazioni distribuite.
 Le API Java sono state organizzate in tre
distribuzioni: J2SE, J2ME e J2EE.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
36
JAVA

J2SE:contiene tutte le classi e librerie per
lo sviluppo di applicazioni stand-alone
(Applet etc.).

J2ME:contiene classi e librerie per lo
sviluppo di applicazioni destinate a
dispositivi come i cellulari, palmari etc.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
37
J2EE (Java 2 Enterprise Edition)
Contiene classi e librerie per lo sviluppo di
applicazioni distribuite.
 In particolare si trovano tutte quelle
tecnologie che ci permettono di realizzare
lo strato MIDDLEWARE di un sistema
distribuito e tutti i livelli in cui esso è
logicamente suddiviso.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
38
J2EE (Java 2 Enterprise Edition)
Programmazione per Componenti.
 Un componente è un insieme di classi
Java e di altri file accessori.
 Un componente fornisce dei servizi
all’esterno e, per farlo, deve vivere
all’interno di un contenitore (Container).
 Il Container fornisce tutta una serie di
servizi al componente.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
39
J2EE (Enterprise Java Beans)





Componenti Enterprise Java Beans (EJB)
EJB Container
Rappresentano il Business Tier del Sistema.
Gli EJB contengono la business logic del
sistema.
L’EJB Container fornisce una serie di servizi ai
Componenti EJB.
Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
40
J2EE (Java 2 Enterprise Edition)
Ciclo di vita dei componenti.
 Accesso concorrente ai dati.
 Persistenza dei dati.
 Autenticazione e autorizzazione di un
Client.
 Gestione delle Transazioni distribuite.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
41
J2EE (Java 2 Enterprise Edition)
Lo sviluppatore deve solo preoccuparsi di
implementare correttamente la business
logic del Sistema.
 Alcuni servizi come le Transazioni e le
Autorizzazioni possono essere impostati
e/o modificati in maniera dichiarativa
senza dover intervenire sul codice.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
42
J2EE (Web Component)
Web Component – Web Container
 Rappresentano il Presentation Tier del
Sistema.
 Servlet e JSP realizzano un Web
Component.
 Gestiscono quindi le operazioni da e verso
il Client.

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
43
Firewall
SOAP
C++
Client
Client
Java,
C++,
C#
CORBA/IIOP
RMI-IIOP
SOAP-WSDL
HTML
Client
EJB Container
Enterprise
Bean
Java App.
Java Applet
Servlet, JSP
CLIENT
Giordano Vicoli - ENEA
HTTP
Enterprise
Bean
Business
Components
RMI-IIOP
HTTP
HTML
Client
Algoritmi
+
Excel
Web
Container
JNDI
JMS
CORBA
XML
J2EE Application Server
Architetture a componenti Java per la
realizzazione di DSS distribuiti
44
Sommario
Sistemi (Architetture) Distribuiti.
 DSS Distribuiti.
 Problematiche nello sviluppo dei Sistemi
Distribuiti.
 Java per lo sviluppo dei Sistemi Distribuiti.
 Dimostrazione

Giordano Vicoli - ENEA
Architetture a componenti Java per la
realizzazione di DSS distribuiti
45
Scarica

Architetture a componenti Java per la realizzazione di DSS distribuiti