La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003."— Transcript della presentazione:

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

2 Architetture a componenti Java per la realizzazione di DSS distribuiti2 Giordano Vicoli - ENEA Sommario Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione

3 Architetture a componenti Java per la realizzazione di DSS distribuiti3 Giordano 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.

4 Architetture a componenti Java per la realizzazione di DSS distribuiti4 Giordano 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.

5 Architetture a componenti Java per la realizzazione di DSS distribuiti5 Giordano 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.

6 Architetture a componenti Java per la realizzazione di DSS distribuiti6 Giordano Vicoli - ENEA Sistemi monolitici Applicazioni e dati risiedono sullo stesso computer. Applicazione

7 Architetture a componenti Java per la realizzazione di DSS distribuiti7 Giordano 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).

8 Architetture a componenti Java per la realizzazione di DSS distribuiti8 Giordano Vicoli - ENEA Sistemi Client-Server (2-tiers) Server Client

9 Architetture a componenti Java per la realizzazione di DSS distribuiti9 Giordano 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)

10 Architetture a componenti Java per la realizzazione di DSS distribuiti10 Giordano 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).

11 Architetture a componenti Java per la realizzazione di DSS distribuiti11 Giordano Vicoli - ENEA Sistemi Client-Server (3-tiers) DBMS Client Middleware Client Server

12 Architetture a componenti Java per la realizzazione di DSS distribuiti12 Giordano 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.

13 Architetture a componenti Java per la realizzazione di DSS distribuiti13 Giordano 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”.

14 Architetture a componenti Java per la realizzazione di DSS distribuiti14 Giordano 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.

15 Architetture a componenti Java per la realizzazione di DSS distribuiti15 Giordano 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).

16 Architetture a componenti Java per la realizzazione di DSS distribuiti16 Giordano Vicoli - ENEA Client Tier Applicaz. Client Internet Browser Presentation Tier Business Tier Integration Tier MIDDLEWARE Resource Tier

17 Architetture a componenti Java per la realizzazione di DSS distribuiti17 Giordano 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.

18 Architetture a componenti Java per la realizzazione di DSS distribuiti18 Giordano Vicoli - ENEA Pattern MVC Controller View Model

19 Architetture a componenti Java per la realizzazione di DSS distribuiti19 Giordano Vicoli - ENEA Sommario Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione

20 Architetture a componenti Java per la realizzazione di DSS distribuiti20 Giordano 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.

21 Architetture a componenti Java per la realizzazione di DSS distribuiti21 Giordano Vicoli - ENEA Progetto MUSTER Supervisore Addestrando

22 Architetture a componenti Java per la realizzazione di DSS distribuiti22 Giordano Vicoli - ENEA Progetto MUSTER Supervisore Addestrando Server

23 Architetture a componenti Java per la realizzazione di DSS distribuiti23 Giordano 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.

24 Architetture a componenti Java per la realizzazione di DSS distribuiti24 Giordano 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

25 Architetture a componenti Java per la realizzazione di DSS distribuiti25 Giordano 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.

26 Architetture a componenti Java per la realizzazione di DSS distribuiti26 Giordano 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.

27 Architetture a componenti Java per la realizzazione di DSS distribuiti27 Giordano Vicoli - ENEA Sommario Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione

28 Architetture a componenti Java per la realizzazione di DSS distribuiti28 Giordano 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.

29 Architetture a componenti Java per la realizzazione di DSS distribuiti29 Giordano Vicoli - ENEA Problematiche Scalabilità. Transazioni distribuite. Autenticazione e autorizzazione. Accesso concorrente ai dati.

30 Architetture a componenti Java per la realizzazione di DSS distribuiti30 Giordano 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).

31 Architetture a componenti Java per la realizzazione di DSS distribuiti31 Giordano 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).

32 Architetture a componenti Java per la realizzazione di DSS distribuiti32 Giordano Vicoli - ENEA Transazioni Prenotazione e pagamento. Applicazione Prenotazione Pagamento Biglietto

33 Architetture a componenti Java per la realizzazione di DSS distribuiti33 Giordano 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

34 Architetture a componenti Java per la realizzazione di DSS distribuiti34 Giordano Vicoli - ENEA Transazioni ACID Atomica Consistente Isolata Duratura

35 Architetture a componenti Java per la realizzazione di DSS distribuiti35 Giordano Vicoli - ENEA Sommario Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione

36 Architetture a componenti Java per la realizzazione di DSS distribuiti36 Giordano 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.

37 Architetture a componenti Java per la realizzazione di DSS distribuiti37 Giordano 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.

38 Architetture a componenti Java per la realizzazione di DSS distribuiti38 Giordano 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.

39 Architetture a componenti Java per la realizzazione di DSS distribuiti39 Giordano 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.

40 Architetture a componenti Java per la realizzazione di DSS distribuiti40 Giordano 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.

41 Architetture a componenti Java per la realizzazione di DSS distribuiti41 Giordano 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.

42 Architetture a componenti Java per la realizzazione di DSS distribuiti42 Giordano 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.

43 Architetture a componenti Java per la realizzazione di DSS distribuiti43 Giordano 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.

44 Architetture a componenti Java per la realizzazione di DSS distribuiti44 Giordano Vicoli - ENEA Firewall HTML Client C++ Client HTML Client J2EE Application Server Web Container Servlet, JSP EJB Container Enterprise Bean Enterprise Bean Business Components JNDI JMS CORBA XML CORBA/IIOP Java App. Java Applet RMI-IIOP SOAP-WSDL HTTP CLIENT Client Java, C++, C# Algoritmi + Excel SOAP

45 Architetture a componenti Java per la realizzazione di DSS distribuiti45 Giordano Vicoli - ENEA Sommario Sistemi (Architetture) Distribuiti. DSS Distribuiti. Problematiche nello sviluppo dei Sistemi Distribuiti. Java per lo sviluppo dei Sistemi Distribuiti. Dimostrazione


Scaricare ppt "Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003."

Presentazioni simili


Annunci Google