Java Enterprise Edition (JEE)
JEE: cos’è Insieme di specifiche per: il progetto lo sviluppo l’assemblaggio l’installazione di applicazioni enterprise multi-tier. PIATTAFORMA
Model – View – Controller (1)
Model – View – Controller (2)
Specifiche Riguardano: tier (livelli funzionali) container e componenti ruoli servizi tecnologie di servizi tecnologie di comunicazione
Tier Un applicazione multi-tier JEE suddivide le proprie funzionalità attraverso quattro tier: Client tier Web tier Enterprise JavaBeans tier (business tier) Enterprise Information System tier Ogni tier fornisce servizi utilizzando risorse di altri tier.
Client tier Consente agli utenti l’interazione con l’applicazione JEE. I programmi client traducono azioni e input dell’utente in richieste al server e presentano le risposte dal server in forma grafica.
Web tier Rende le funzionalità dell’applicazione disponibili su Web. Accede ai dati e alle funzioni di business di altri tier. Gestisce il flusso di presentazione e il controllo dell’interazione con l’utente.
EJB tier (business tier) Gestisce la logica applicativa (business logic) necessaria per il funzionamento dell’applicazione, implementata tramite componenti detti Enterprise JavaBeans.
EIS tier Integra l’applicazione JEE con altri sistemi informativi d’impresa, tipicamente database, sistemi ERP (Enterprise Resource Planning), sistemi informativi preesistenti.
Componenti e Container Un componente JEE è un’unità software funzionale che esegue una certa funzione applicativa all’ interno di un’applicazione JEE potendo interagire con altri componenti. Ogni componente è gestito da un container che fornisce servizi di sistema come gestione delle risorse, delle transazioni, della sicurezza, della persistenza, del ciclo di vita, del threading.
Tier e Componenti Componenti Web Client EJB EIS Client tier Business tier Web tier EIS tier Middle tier
Componenti client Web Browser: scarica pagine (anche dinamiche) HTML, WML o XML dal Web tier. Applet: applicativo Java eseguito sulla JVM installata nel Web Browser. Applicazione client: di solito ha un’intefaccia grafica creata tramite le API di Swing. Componenti Web Client EJB EIS Client tier Business tier Web tier EIS tier Middle tier
Componenti Web Servlet: classe Java usata per la gestione delle richieste HTTP dai client, che vengono processate dinamicamente generando una risposta. Java Server Pages (JSP): documenti text-based formati da codice statico HTML e codice Java necessario per generare contenuto dinamico. Componenti Web Client EJB EIS Client tier Business tier Web tier EIS tier Middle tier
Componenti EJB Gestiscono la business logic dell’applicazione. Ricevono dati dal proprio client (solitamente è il Web tier), li processano (se necessario) e li inviano al EIS tier per la loro memorizzazione (e viceversa). Esistono tre tipi di EJB: session bean entity bean message-driven bean Componenti Web Client EJB EIS Client tier Business tier Web tier EIS tier Middle tier
Componenti EIS Vengono utilizzati per la memorizzazione dei dati di interesse aziendale. Database Sistemi ERP Sistemi informativi Sistemi per il processamento delle transazioni Componenti Web Client EJB EIS Client tier Business tier Web tier EIS tier Middle tier
Tier, container e componenti
Interazioni tra componenti
Servizi naming: permettono di individuare oggetti utilizzando un meccanismo di directory deployment: permettono di personalizzare i componenti e le applicazioni nella fase di deploy tramite un file XML (deployment descriptor) transazionali di sicurezza: autenticazione dell’utente autorizzazione per l’accesso a risorse
Tecnologie di servizi Java DataBase Connectivity (JDBC) Java Transaction API (JTA) Java Transaction Service (JTS) Java Naming and Directory Interface (JNDI) Connector Architecture
Tecnologie di comunicazione Protocolli Internet: TCP/IP, HTTP, SSL Protocolli RMI (Remote Method Invocation) Tecnologie di messaging: JMS (Java Messaging System), JavaMail Formato dei dati: HTML, XML, GIF, JPEG, JAR, Class
Modello JEE
Packaging Strutturazione dei componenti di un’applicazione secondo uno schema definito dalle specifiche JEE. Ogni componente è assemblato in un modulo assieme ad altri file e al deployment descriptor (DD) che è un file XML con i parametri di impostazione del componente per l’installazione.
Package file .war: HTML, JSP, Servlet, classi di supporto e il DD web.xml file .jar: EJB, classi di supporto e il DD ejb-jar.xml file .ear: .war, .jar e il DD application.xml
Deployment Installazione del modulo applicativo sull’Application Server. Varia a seconda dell’Application Server.