Java  2 Platform Enterprise Edition (J2EE  ) 1.3.

Slides:



Advertisements
Presentazioni simili
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Advertisements

Programmazione in Java
Corso di Fondamenti di Informatica
Architetture dei sistemi distribuiti Prof
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Applet Java.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
(Appunti da Scott Mitchell, James Atkinsons - Active Server Pages 3.0 – ed. Apogeo) Le pagine ASP.
La sinergia tra Office SharePoint Portal Server 2003 e Content Management Server 2002 Walter Cipolleschi.
Liberiamo(ci) (dal)le applicazioni con Softgrid
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Web Services.
Java Enterprise Edition (JEE)
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
IN QUESTA PRESENTAZIONE…
OUTLINE Riprogettazione del database del portale Web della Facoltà di Ingegneria Sviluppo di una applicazione WEB DB : HOMEPAGE DOCENTI Architettura multilivello.
Tecnologie di implementazione
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Cagliari 4 Ottobre 2002 Krenesiel ESPERIENZA e LINEE KRENESIEL Workshop NAME Alessandra Spada
LABIS-SD Antonio Cuomo393/121 Clelio Quattrocchi393/127 Emanuele Zuzolo393/136 Fabio Melillo393/141 Stefano Mastrocinque393/135 Valerio Vincenzo Guarino393/155.
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Analisi dettagliata e design B. Pernici M.G. Fugini AA
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
Introduzione al linguaggio Java
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Elaborazione di Franco Grivet Chin
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
Applicazioni mobile Better Software 2009 Massimiliano Zani Sms Italia.
Ing. Enrico Lecchini BetaTre S.r.l.
Guida IIS 6 A cura di Nicola Del Re.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il modello di riferimento OSI
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Un problema importante
Ingegneria del software Modulo 3 -Tecniche dimplementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 3 – Ruoli nella.
Ingegneria del software Modulo 3 -Tecniche dimplementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 4 – Le transazioni.
Corso di Web Services A A Domenico Rosaci 1. Introduzione
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Java Enterprise Edition
Progettazione e realizzazione di un’applicazione J2EE Corso TAPS 2001/02 Gianna Reggio.
Distributed System ( )7 TCP/IP four-layer model.
Vannucci Roberto (5BM), De Nardin Axel (5AM)
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Java Enterprise Edition
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Protocolli e architetture per WIS. Cronologia di Internet ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.
J2EE Antonio Cisternino. Java Beans I Java Beans sono un esempio di realizzazione di un sistema a componenti in Java I componenti possono adottare convenzioni.
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 1 – Introduzione.
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 1 -Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano.
Layered Grid Architecture. Application Fabric “Controlling elements locally”: Access to, & control of, resources Connectivity “Talking to Grid elements”:
A.a. 2004/05Tecnologie Web1 Corso di Laurea Interfacoltà in Management dell’informazione e della comunicazione aziendale a.a. 2004/05 Tecnologie Web Anna.
Progettazione e realizzazione di un’applicazione J2EE Parte 2.
Informatica Lezione 8 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Tecnologie lato Server: i Server Web © 2005 Stefano Clemente I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto.
Tecnologie in movimento
Eprogram informatica V anno.
Architetture software
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Programmazione orientata agli Oggetti Introduzione a Java.
Eprogram informatica V anno. Programmare in rete.
OpenShift Origin – Cosa è
Transcript della presentazione:

Java  2 Platform Enterprise Edition (J2EE  ) 1.3

Il modello delle applicazioni multi-tier nelcorsonelcorso

Applet An applet is a program written in the JavaTM programming language that can be included in an HTML page, much in the same way an image is included. When you use a Java technology-enabled browser to view a page that contains an applet, the applet's code is transferred to your system and executed by the browser's Java Virtual Machine (JVM). An applet is a small program that is intended not to be run on its own, but rather to be embedded inside another application. La classe Applet deve essere la super class di ogni applet Applet è una sottoclasse di java.awt.Panel

Container, componenti e connettori Componenti –vari tipi con caratteristiche molto diverse Container –infrastructure per le componenti –gestiscono l’interazione con i clienti provvedendo servizi trasparenti ad entrambi (es. transaction) –permettono di precisare il comportamento delle componenti al momento dell’installazone invece che nel loro codice Connettori –definiscono un’API per collegarsi a servizi software esistenti anche di altra natura

J2EE  consiste di J2EE Platform –lo standard per la piattaforma per ospitare le applicazioni J2EE, specificata come un insieme di API e “politiche” –occorre procurarsi l’implementazione, ≠ J2SE J2EE Compatibility Test Suite –un insieme di test per verificare che una realizzazione sia compatibile con lo standard J2EE Reference Implementation –l’implementazione di riferimento, per mostrare le caratteristiche di J2EE e per provvedere una definizione operazionale della piattaforma –non adatta per un uso reale, la useremo nel corso Sun Blueprints  Design Guidelines for J2EE –descrivano un modello standard di programmazione per applicazioni multi-tier

Fine lezione

Applicazioni distribuite multi-tier esempi o presentation tier Enterprise Information System nelcorsonelcorso

Componenti una componente J2EE è una unità software self-contained, sviluppata indipendentemente, e poi assemblata in una applicazione J2EE con le sue classi e file collegati e che comunica con altre componenti diversi tipi di componenti client: applicazioni client, applet (si possono usare anche i Javabeans al loro interno) strato Web server: Java Servlet e JavaServer Pages (JSP) strato server: Enterprise JavaBeans (EJB) (enterprise beans) tutte scritte in Java e compilate come al solito la differenza tra le componenti J2EE e le classi Java è che le componenti J2EE sono sviluppate indipendentemente, assemblate in un’applicazione J2EE, controllando per vedere se sono fatte bene ed in accordo alla specifica, installate, eseguite e gestite da un server J2EE (container)

Cliente: Web consiste di due parti –pagine Web dinamiche create dalle componenti sullo strato Web server –Web browser, che mostra le pagine ricevute dal server Web Applets –le pagine ricevute dallo strato Web possono contenere applet (piccolo programmi Java con interfaccia grafica che sono eseguiti sun una Java VM installata nel Web browser) –occorre un plug-in ed una politica di sicurezza per eseguirle

Cliente: Applicazione viene eseguito su una macchina client permette di trattare i casi che richiedono un’interfaccia utente più ricca di quella che può essere fornita da pagine HTML tipicamente hanno un’interfaccia creata usando le API Swing o Abstract Window Toolkit (AWT), ma è anche possibile un’interfaccia a linee di comando accedono direttamente agli enterprise beans che girano nello strato server (business)

Cliente: JavaBeans Component lo strato client (ma anche quello server) può includere componenti basate sull’architettura a componenti JavaBeans (≠ Enterprise java Beans) ma queste non sono considerate componenti J2EE

Cliente: comunicazioni con il server J2EE il cliente comunica con lo strato business in esecuzione sul server J2EE, o direttamente, o, come nel caso di un cliente su un browser, per mezzo di JSP pages o servlets in esecuzione sullo strato Web

Server tier (1) Web components –servlet ricevono richieste dal browser e costruiscono risposte in forma di pagine html –JSP come le servlet ma text-based, permettono di creare in modo più naturale i contenuti delle pagine Business Components –Enterprise JavaBeans [perchè questo nome ???] *gestiscono la logica del Business, cioè come il sistema risolve i problemi del Business considerato (bancario, commercio al dettaglio, finanziario) *un enterprise bean ˚riceve i dati dal client, li processa, se necessario, e li manda allo strato enterprise per immagazzinamento ˚può anche recuperare dati immagazzinati, li processa, se necessario, e li manda indietro al client

Server tier (2) Tre tipi di Enterprise JavaBeans –session bean *rappresenta una conversazione tempornea con un cliente *quando il cliente finisce la sua esecuzione, il session bean ed i suoi dati sono persi –entity bean *rappresenta dei dati persistenti immagazzinati in una riga di una tabella di un database *se il cliente termina, o se il server si spegne, il framework sottostante (container) assicura che il dato contenuto nel bean sia salvato –message-driven bean *combina le caratteristiche di un session bean e di un JMS (Java Message Service) message listener, permettendo alle componenti business di ricevere messaggi asincroni JMS

Server tier (3)

Enterprise Information System Tier gestisce il sistema informativo aziendale e include sistemi, come –un enterprise resource planning (ERP) –mainframe transaction processing –database systems –e altri sistemi legacy le componenti delle applicazioni J2EE possono aver bisogno di accedere a tali sistemi, per esempio per recuperare le informazioni contenute in un database

J2EE Containers (1) le applicazioni multitiered, sopratutto se il client è thin, sono difficili da scrivere, poichè occorre trattare le transazioni, gestire lo stato, il multi- thread,... ed altri complicati dettagli a basso livello J2EE aiuta poichè –permette di organizzare la logica del sistema in componenti riusabili –il server fornisce vari servizi per gestire le problematiche più comuni attraverso containers per ogni tipo di componenti –così lo sviluppatore può concentrarsi solo sul risolvere i problemi del business considerato

J2EE Containers (2) prima che una componente J2EE possa essere eseguita, deve essere assemblata in un’applicazione J2EE e installata in un contenitore appropriato l’assemblaggio richiede di specificare i setting dei container, ciò permette di specializzare il supporto fornito dal server J2EE, che include servizi come la sicurezza, gestione delle transazioni, connetività remota,... –il modello di sicurezza J2EE permette di configurare una componente, così che le risorse del sistema sono accedute solo dagli utenti autorizzati –il modello delle transazioni permette di specificare quali metodi fanno parte di una transazione, così che siano eseguiti come una singola unità –JNDI lookup services fornisce un’interfaccia unificata per accedere a differenti servizi di naming e directory –il modello della connetività remota gestisce le comunicazioni a basso livello tra i clienti e gli enterprise beans; dopo che un enterprise bean è stato creato un cliente invoca i suoi metodi, come se fossere nella stessa VM

J2EE Containers (3) I containers gestiscono anche servizi non configurabili –life cycle degli enterprise beans –collegamento ai database –persisrtenza dei dati –accesso alle API della piattaforma J2EE (dopo)

Tipi di contenitori La parte run-time di un prodotto J2EE gestisce l’esecuzione degli enterprise beans Enterprise beans e il loro contenitore girano sul server J2EE gestisce l’esecuzione delle applet Web browser + Java Plug-in girano assieme sul client gestisce l’esecuzione delle componenti dell’applicazione cliente le applicazioni client e i loro container girano sul cliente gestisce l’esecuzione delle componenti Web

Sviluppo e ruoli relativi (1) l’uso di moduli riusabili permette di fattorizzare lo sviluppo e l’installazione di un’applicazione tra diversi ruoli, così che persono o ditte diverse possano eseguire diferenti parti del processo J2EE Product Provider –una ditta che progetta e rende disponibile per l’acquisto la piattaforma J2EE, le sue API e quanto altro definito dalla J2EE Specification Tool Provider –ditta o persona che crea strumenti per lo sviluppo, l’assemblaggio, e l’impacchettamento

Sviluppo e ruoli relativi (2) Application Component Provider –ditta o persona che crea componenti dei vari tipi da usare nelle applicazioni J2EE –Enterprise Bean Developer *scrive e compila il codice sorgente *specifica il deployment descriptor *impacchetta assieme i file.class e il deployment descriptor in un file EJB JAR (.jar) –Application Client Developer *scrive e compila il codice sorgente *specifica il deployment descriptor per il client *impacchetta assieme i file.class e il deployment descriptor in un file EJB JAR (.jar) –WEB component Developer *simile

Sviluppo e ruoli relativi (3) Application Assembler –ditta o persona che riceve i file JAR dai component provider e li assembla in una application ottenendo un file J2EE EAR (.ear). –può editare i deployment descriptor direttamente (sono XML) o usare tool specifici –per produrre un file EAR contenente l’applicazione J2EE *assembla i file EJB JAR creati precedentemente in un’applicazione J2EE (file EAR) *specifica il deployment descriptor per l’applicazione J2EE *verifica che il contenuto dei file EAR sia ben formato ed in accordo con la specifica J2EE

Sviluppo e ruoli relativi (4) Application Deployer e Administrator –ditta o persona che configura ed installa l’applicazione J2EE, ammistra le macchine e la rete dove l’applicazione gira, e supervisiona l’ambiente di runtime –durante la configurazione segue le istruzioni dei fornitori di componenti per risolvere eventuali dipendenze dall’esterno, specifica i setting di sicurezza, e assegna gli attributi per le transazioni –durante l’installazione muove le componenti dell’applicazione sul server e genera le classi e le interfaccie richieste dai container

Sviluppo e ruoli relativi (5) per installare e configurare un’applicazione il Deployer esegue le seguenti attività –aggiunge l’applicazione (file EAR creato precedentemente) al server J2EE –configura l’applicazione J2EE per il suo ambiente operazionale modificando il suo deployment descriptor –controlla che il contenuto del file EAR sia ben formato e che segua la specifica J2EE –Deploys (installa) il file EAR nel server J2EE

J2EE API (1) quelle necessarie per sviluppare applicazion J2EE Enterprise JavaBeans Technology –in seguito Java Servlet Technology JavaServer Pages Technology Java Message Service (JMS) –è uno standard per scambio di messaggi –permette alle componenti delle applicazioni J2EE di creare, mandare, ricevere, e leggere messaggi (comunicazione affidabile, loosely coupled e asincrona) Java Transaction API (JTA) –fornisce un’interfaccia standard per delimitare le transazioni JavaMail API –per mandare notificazioni per *API per mandare la posta *SPI per usare il sistema di posta (una sua realizzazione è inclusa per mandare posta usando Internet)

J2EE API (2) J2EE Connector Architecture –è usata per creare resource adapters che supportino l’accesso ai sistemi informativi delle imprese –un resource adapter è una componente software che permette alle applicazioni J2EE di accedere ed interragire con i sottostanti gestori delle risorse – tipicamente ci sarà un diverso resource adapter per ogni tipo di database o di sistema informativo aziendale Java Authentication & Authorization Service (JAAS) –fornisce un modo per le applicazioni J2EE per autenticare ed autorizzare specifici gruppi di utenti ad eseguirle Java API for XML Processing –serve per sviluppare i tools (i deployment descriptors sono scritti in XML) Java Naming and Directory Interface (JNDI), JDBC –forniti da J2SE

Riferimenti su J2EE  il sito specification Java™ 2 Platform Enterprise Edition Specification, v1.3 j2ee-1_3-fr-spec.pdf Enterprise JavaBeans  Specification, Version 2.0 ejb-2_0-fr2-spec.pdf overview guida semplificata overview/cover.fm.html tutorial

Altre “tecnologie” Java (1) non legate ad una particolare variante della piattaforme –JavaSpaces  Technology *simple unified mechanism for dynamic communication, coordination, and sharing of objects between Java technology-based network resources like clients and servers - it is a Jini  technology service. –Jini  Network Technology *an open architecture for creating highly adaptive network-centric services for both hardware and software. –Project JXTA *a set of open, generalized peer-to-peer protocols that allow any connected device (cell phone, PDA, or PC to server) on the network to communicate and collaborate. –Sun ONE Active Server Pages *server-side software for deploying dynamic web sites and applications based on Active Server Pages (ASP or.asp) using the Apache, Sun ONE or Zeus Web servers running on a variety of platforms.

Altre “tecnologie” Java (2) JAIN  APIs rapid development of telecommunication products and services Java Dynamic Management  Kit lets you build and distribute network management intelligence for applications, networks and devices. Java Management  Extensions (JMX) a platform-independent and open technology for managing and monitoring applications in any industry. Java Metadata Interface (JMI) a dynamic, platform-neutral infrastructure that enables the creation, storage, access, discovery, and exchange of metadata Java Shared Data Toolkit a development library to add collaboration features to applets and Java applications Java Technology for Service Providers a Java architecture for software development in end-to-end service driven networks Jiro  Technology simplifies storage management and reduces the costs and complexity of overseeing a highly distributed environment. OSS through Java Initiative produces a standard set of Java technology-based APIs that help jumpstart the implementationof end-to-end services on next-generation wireless networks and leverage the convergence of telecommunications and Internet-based solutions

Esercizi 1]Presentare dei sistemi/prodotti software che possano ragionevolmente essere realizzati utilizzando la tecnologia J2EE 2]Presentare dei sistemi/prodotti software che non possano ragionevolmente essere realizzati utilizzando la tecnologia J2EE 3]Presentare dei sistemi/prodotti software che possano ragionevolmente essere realizzati utilizzando la tecnologia J2EE a 4 tier 4]Presentare dei sistemi/prodotti software che possano ragionevolmente essere realizzati utilizzando la tecnologia J2EE a 3 tier 5]Quale pensate sia la vita media di un sistema J2EE ?

Esercizi 6]Trovare le parole inglesi usate in questi slide, e darne la traduzione letterale ed in questo ambito. 7]Trovare le sigle usate in questi slide, darne la forma espansa, e precisare che cosa significano in questo ambito. 8]Cosa significa una sigla avente forma XX  ? 9]Elencare i termini usati in questi slide non conosciuti a priori, e precisare che cosa significano in questo ambito. 10] Qual’è la differenza tra Enterprise Java Beans e Java Beans ? 11] Vi piacerebbe avere delle altre API nella J2SE ? 12] Come progetto del corso dovrete sviluppare un’applicazione J2EE; proponete una modalità per il suo svolgimento distribuendo i vari ruoli tra i gruppi di studenti e gli studenti membri di ogni gruppo.