La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Java  2 Platform Enterprise Edition (J2EE  ) 1.3."— Transcript della presentazione:

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

2 Il modello delle applicazioni multi-tier nelcorsonelcorso

3 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

4 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

5 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

6 Fine lezione

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

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

9 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

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

11 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

12 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

13 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

14 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

15 Server tier (3)

16 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

17 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

18 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

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

20 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

21 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

22 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

23 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

24 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

25 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

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

27 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

28 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

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

30 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

31 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 ?

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


Scaricare ppt "Java  2 Platform Enterprise Edition (J2EE  ) 1.3."

Presentazioni simili


Annunci Google