1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE...

14
1 Titolo Presentazione / Data / Confidenziale / Elaborazio ne di ... Architettura Java/J2EE Elaborazione di Franco Grivet Chin

Transcript of 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE...

Page 1: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

1Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Architettura Java/J2EE

Elaborazione di Franco Grivet Chin

Page 2: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

2Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Architettura logica J2EE

Enterprise: impresa o azienda

Applicazione enterprise: applicazione distribuita multilivello che coinvolgono varie parti dell’impresa

Genericamente molto complesse: vari componenti distribuiti ed eseguiti su hw diversi, scritte spesso con linguaggi di programmazione diversi e che devono colloquiareUtilizzo di framework basati su standard aperti e interoperabiliRequisiti principali di un’applicazione Enterprise

Architettura e sviluppo semplificatiScalabilitàIntegrazione con sistemi informativi preesistentiAmpia scelta di server, strumenti di sviluppo, componentiModello per la sicurezza flessibile

Page 3: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

3Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Architettura logica J2EE

Page 4: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

4Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Livelli logici

contiene applicazioni o applet per il client eseguite nel browser o sul client, fornisce tipicamente interfaccia datiLivello client

contiene applicazioni o applet per il client eseguite nel browser o sul client, fornisce tipicamente interfaccia datiLivello client

componenti web, servlet e JSP eseguiti nel server. Rispondono a richieste http e HTTPS restituendo HTML, XML,ecc. Applicazioni web(componenti Web+pagine HTML e XML)Supporta servizi di autenticazione basati sul Web

Livello web

componenti web, servlet e JSP eseguiti nel server. Rispondono a richieste http e HTTPS restituendo HTML, XML,ecc. Applicazioni web(componenti Web+pagine HTML e XML)Supporta servizi di autenticazione basati sul Web

Livello web

Componenti model (DAO o EJB) per la logica di business eseguiti nel server

Livello business

Componenti model (DAO o EJB) per la logica di business eseguiti nel server

Livello business

Database o sistemi preesistentiArchitettura connector: resource adapter forniti dai vendor, prodotti J2EE per inserirli nella piattaforma

Livello EIS

Page 5: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

5Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Livelli logici

CLIENT-TIER EIS-TIERMIDDLE-TIER

RMI IIOP

HTTP

ConnectionPooling

TransactionSupport

Page 6: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

6Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Livelli logici

Tomcat 4.0 JBoss 2.4.3

EJBDAOServlet

/JSPJava

BeansCustom Tag

Page 7: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

7Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Livello Client

Forniscono una GUI locale all’utente, anche se è possibile avere riga di comando

Ogni client deve usare standard Web (HTTP,S,HTML,XML)

Importante: il client dovrebbe comunicare solo con il livello Web

• Applicazioni desktop scritte in Java, pieno accesso a J2SE, interfaccia utente molto ricca (normalmente uso di Awt e Swing)

• Possono accedere alla logica di business direttamente anche se non opportuno

• Tecnologia Java Web Start per installere applicazioni complete nel desktop dal browser (installa JVM 1.4)http://java.sun.com/products/javawebstart/demos.html

Application client (thick client)

Page 8: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

8Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Livello client

• Interamente eseguiti nel browser web

• Pagine web costituite di vari linguaggi (HTML,XML) che realizzano l’interfaccia

• Tecnologie lato client: Javascript, AJAX

• Pagine web possono contenere Applet, eseguiti in un container nel browser

• Eventuale necessita di permessi per eseguire JavaBeans

• Problemi legati alla versione della JVM (plug in)

• Non sempre necessitano Browser (es Macintosh)

Web client (thin client)

Applet client

• Interamente eseguiti nel browser web

• Pagine web costituite di vari linguaggi (HTML,XML) che realizzano l’interfaccia

• Tecnologie lato client: Javascript, AJAXWeb client (thin client)

Page 9: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

9Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

Design pattern

• Interamente eseguiti nel browser web

• Pagine web costituite di vari linguaggi (HTML,XML) che realizzano l’interfaccia

• Tecnologie lato client: Javascript, AJAX

• Model-View-Controller (abbreviato spesso in MVC), che consiste nel separare i componenti software che implementano il modello delle funzionalità di business (model), dai componenti che implementano la logica di presentazione (view) e da quelli di controllo che tali funzionalità utilizzano (controller).

Design pattern

Design pattern e algoritmo

• Nell'ingegneria del software, un design pattern (struttura di progettazione) può essere definito "una soluzione progettuale generale a un problema ricorrente". Esso non è una libreria o un componente di software riusabile, quanto una descrizione o un modello da applicare per risolvere un problema che può presentarsi in diverse situazioni durante la progettazione e lo sviluppo del software.

MVC

• La differenza tra un algoritmo e un design pattern è che il primo risolve problemi computazionali, mentre il secondo è legato agli aspetti progettuali del software.

Page 10: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

10Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

– Design pattern MVC (Model View Controller)

Impone una netta separazione fra presentazione, dati e la logica di business

Modello-rappresenta i dati-logica di business- informa le view quando ci sono variazioni nello stato

Visualizzazione-Visualizza i dati del modello-gestisce interazione con utente-riceve aggiornamenti dal modello

Controller-seleziona la view-invia gli input dell’utente al modello- intermediario fra view e modello

Interroga stato del modello

Notifica cambiamenti di stato

Seleziona laview successiva

Passa input dell’utenteal controllore

Cambia stato del modello

Page 11: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

11Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

2 MVC e Java Web

• Permettono allo sviluppatore di avere già delle funzionalità pronte ed utilizzabili

• Ogni richiesta non è un processo ma un thread poiché residenti in memoria

• Hanno “memoria”

• Veloci perché in memoria e multi-threaded

• Devo conoscere le API per poterle utilizzare e devo adattarmi

• Sono legato mani e piedi al produttore di API

• Le api non sono modificabili dall’utente

• Possibili bachi

View

Controller

• Permettono allo sviluppatore di avere già delle funzionalità pronte ed utilizzabili

• Ogni richiesta non è un processo ma un thread poiché residenti in memoria

• Hanno “memoria”

• Veloci perché in memoria e multi-threadedView

Controller

• Permettono allo sviluppatore di avere già delle funzionalità pronte ed utilizzabili

• Ogni richiesta non è un processo ma un thread poiché residenti in memoria

• Hanno “memoria”

• Veloci perché in memoria e multi-threadedView

• Devo conoscere le API per poterle utilizzare e devo adattarmi

• Sono legato mani e piedi al produttore di API

• Le api non sono modificabili dall’utente

• Possibili bachiController

• Permettono allo sviluppatore di avere già delle funzionalità pronte ed utilizzabili

• Ogni richiesta non è un processo ma un thread poiché residenti in memoria

• Hanno “memoria”

• Veloci perché in memoria e multi-threadedView

sono implementate con le JSP

View

sono implementati con delle Servlet

Controller

può essere realizzato in vari modi il più semplice dei qualiè di utilizzare una classe Java che contenga classi di modello con campi, metodi get e set e metodi di accesso alla base dati

Model

Page 12: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

12Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

3 MVC e Java Web (Diagramma di sequenza UML)

Login.jsp LoginServlet Utente

Login=admin&password=pass

service

getUtenteByLoginPassword(login,password)

utente

D

A

T

A

B

A

S

E

Oggetto utente

Index.jsp

Page 13: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

13Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

2 MVC e Java Web

Il MODEL può essere meglio rappresentato con:

• Data Transfer Object

• classe con campi e metodi get e set

• Spesso speculare a una tabella del database

• Data Access Object

• classe che contiene i metodi SCRUD (Search Create Read Update Delete)

• lavorare con la tabella sul database

• Implementato con codice Java standard o con altre scelte, ad esempio• IBATIS (query mapper)• HIBERNATE (Object Relational Mapping)

DTO

DAO

Page 14: 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Architettura Java/J2EE Elaborazione di Franco Grivet Chin.

14Titolo Presentazione / Data / Confidenziale / Elaborazione di ...

www.altran.it