Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28...

45
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003

Transcript of Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28...

Page 1: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java

per la realizzazione di DSS distribuiti

Giordano Vicoli - ENEA 28 Ottobre 2003

Page 2: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

2Giordano Vicoli - ENEA

Sommario

Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi

Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione

Page 3: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

3Giordano Vicoli - ENEA

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.

Page 4: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

4Giordano Vicoli - ENEA

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.

Page 5: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

5Giordano Vicoli - ENEA

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.

Page 6: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

6Giordano Vicoli - ENEA

Sistemi monolitici

Applicazioni e dati risiedono sullo stesso computer.

Applicazione

Page 7: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

7Giordano Vicoli - ENEA

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).

Page 8: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

8Giordano Vicoli - ENEA

Sistemi Client-Server (2-tiers)

Server

Client

Client

Client

Page 9: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

9Giordano Vicoli - ENEA

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.

Sistemi Client-Server (2-tiers)

Page 10: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

10Giordano Vicoli - ENEA

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).

Page 11: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

11Giordano Vicoli - ENEA

Sistemi Client-Server (3-tiers)

DBMS

Client

MiddlewareClient

Client

Server

Page 12: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

12Giordano Vicoli - ENEA

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.

Page 13: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

13Giordano Vicoli - ENEA

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”.

Page 14: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

14Giordano Vicoli - ENEA

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.

Page 15: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

15Giordano Vicoli - ENEA

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).

Page 16: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

16Giordano Vicoli - ENEA

Client Tier

Applicaz.Client

InternetBrowser

Presentation Tier

Business Tier

Integration Tier

MIDDLEWAREResource Tier

Page 17: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

17Giordano Vicoli - ENEA

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.

Page 18: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

18Giordano Vicoli - ENEA

Pattern MVC

Controller

View Model

Page 19: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

19Giordano Vicoli - ENEA

Sommario

Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi

Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione

Page 20: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

20Giordano Vicoli - ENEA

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.

Page 21: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

21Giordano Vicoli - ENEA

Progetto MUSTER

Supervisore

Addestrando

Addestrando

Addestrando

Addestrando

Page 22: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

22Giordano Vicoli - ENEA

Progetto MUSTER

Supervisore

Addestrando

Addestrando

Addestrando

Addestrando

Server

Page 23: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

23Giordano Vicoli - ENEA

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.

Page 24: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

24Giordano Vicoli - ENEA

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

Page 25: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

25Giordano Vicoli - ENEA

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.

Page 26: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

26Giordano Vicoli - ENEA

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.

Page 27: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

27Giordano Vicoli - ENEA

Sommario

Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei

Sistemi Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione

Page 28: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

28Giordano Vicoli - ENEA

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.

Page 29: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

29Giordano Vicoli - ENEA

Problematiche Scalabilità. Transazioni distribuite. Autenticazione e autorizzazione. Accesso concorrente ai dati.

Page 30: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

30Giordano Vicoli - ENEA

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).

Page 31: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

31Giordano Vicoli - ENEA

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).

Page 32: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

32Giordano Vicoli - ENEA

Transazioni

Prenotazione e pagamento.

Applicazione

Prenotazione

Pagamento

Biglietto

Page 33: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

33Giordano Vicoli - ENEA

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

Page 34: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

34Giordano Vicoli - ENEA

Transazioni

ACID Atomica Consistente Isolata Duratura

Page 35: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

35Giordano Vicoli - ENEA

Sommario

Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi

Distribuiti. Java per lo sviluppo dei Sistemi

Distribuiti. Dimostrazione

Page 36: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

36Giordano Vicoli - ENEA

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.

Page 37: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

37Giordano Vicoli - ENEA

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.

Page 38: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

38Giordano Vicoli - ENEA

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.

Page 39: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

39Giordano Vicoli - ENEA

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.

Page 40: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

40Giordano Vicoli - ENEA

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.

Page 41: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

41Giordano Vicoli - ENEA

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.

Page 42: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

42Giordano Vicoli - ENEA

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.

Page 43: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

43Giordano Vicoli - ENEA

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.

Page 44: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

44Giordano Vicoli - ENEA

Firewall

HTMLClient

C++Client

HTMLClient

J2EE Application Server

Web Container

Servlet, JSP

EJB ContainerEnterprise

BeanEnterprise

Bean

Business Components

JNDIJMS

CORBAXML

CORBA/IIOP

Java App.Java Applet RMI-IIOP

RMI-IIOPSOAP-WSDL

HTTP

HTTP

CLIENT

ClientJava, C++, C#

Algoritmi+

ExcelSOAP

Page 45: Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.

Architetture a componenti Java per la realizzazione di DSS distribuiti

45Giordano Vicoli - ENEA

Sommario

Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi

Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione