1 / 64

Java Enterprise Edition

Java Enterprise Edition. Gabriele Tolomei DAIS – Università Ca ’ Foscari Venezia. Administrivia. Durata : 60 ore lezioni teoriche + esercitazioni pratiche Materiale Didattico s lides pubblicate sul sito web del corso

flavio
Download Presentation

Java Enterprise Edition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Enterprise Edition Gabriele Tolomei DAIS – UniversitàCa’ FoscariVenezia

  2. Administrivia • Durata: 60 ore • lezioniteoriche + esercitazionipratiche • MaterialeDidattico • slides pubblicatesulsito web del corso http://gabrieletolomei.wordpress.com/teaching/yyyy-2014/java-ee/ • risorse online • Contatti: • gabriele.tolomei@unive.it

  3. Requisiti • Costrutti base di programmazioneimperativa • if-else, for, while, etc. • Paradigma di programmazione Object-Oriented (OO) • sintassi Java • Fondamenti di computer networking • applicazioni client/server su Web • HTML/XML • protocollo HTTP (richiesta/risposta)

  4. Programma del Corso • 09/01 –Introduzione • 10/01 – Java Servlets • 16-17/01 – JavaServer Pages (JSP) • 23-24/01– Lab: Applicazione “AffableBean” • 30-31/01 – Enterprise JavaBeans (EJB) + Lab

  5. Modulo 1: Introduzione • Tecnologia Java • 1 Linguaggio vs. 4 Piattaforme • La piattaforma Java Enterprise Edition (Java EE) • Applicazioni Enterprise • Java EE Application Servers • JBoss • Ambiente di sviluppo • Eclipse

  6. Modulo 1: Introduzione • Tecnologia Java • 1 Linguaggio vs. 4 Piattaforme • La piattaforma Java Enterprise Edition (Java EE) • Applicazioni Enterprise • Java EE Application Servers • JBoss • Ambiente di sviluppo • Eclipse

  7. Tecnologia Java: Premessa • Java èsia un linguaggio di programmazionecheunapiattaforma • illinguaggio di programmazioneè un linguaggio “ad alto livello” chesupportailparadigma OO • la piattaformaspecifical’ambiente in cui le applicazioni (programmi) scritte in Java vengonoeseguite (Java Runtime Environment o JRE) • 1 Linguaggio di Programmazione vs. 4 Piattaforme • Java Standard Edition (Java SE) • Java Enterprise Edition (Java EE) • Java Micro Edition (Java ME) • JavaFX

  8. Le Piattaforme Java • Tutte le piattaforme Java consistono di • Java Virtual Machine (JVM) + Application Programming Interface (API) • La JVMè un particolareprogramma (interprete) eseguitosuunospecificosistemaospite (host) checonsentel’esecuzione di programmi Java • JVM interpretailcodiceintermedio (bytecodecontenuto in file .class) risultatodellacompilazione del codicesorgente (.java) • Esistonovarieimplementazioni JVM, una per ciascunsistema host supportato • Linux x86/x64 • Mac OS X x64 • Win x86/x64 • … • La APIèunacollezione di componenti software “standard” messi a disposizionedeglisviluppatori Java per crearenuovicomponenti e/o applicazioni

  9. Java: Linguaggio + Piattaforma Java Language Java API JDK JRE JVM JVM JVM Host Linux Mac OS X Windows

  10. Java: Vantaggi • Portabilità (“Write-Once-Run-Anywhere”) • Applicazionesviluppata in accordoallespecifiche di unapiattaforma Java e compilatasu un determinato host • Applicazioneeseguitasuqualsiasialtro host purchéquestoforniscaun’implementazionedellastessapiattaforma (JVM + API) • Ad es. applicazione Java SE sviluppata/compilatasu Windows edeseguitasu Linux • Facilità di sviluppo software • Sicurezza • …

  11. Java SE • È la piattaforma di riferimentoquandosiparla di Java • Java SE API fornisce le funzionalità “core” del linguaggio • tipi nativi (ad es., int, boolean, char, etc.) • classi e oggetti base (ad es., Class, Object, String, etc.) • classi e oggetti per gestire • I/O • Security • Database • Graphical User Interface (GUI) • XML • …

  12. Modulo 1: Introduzione • Tecnologia Java • 1 Linguaggio vs. 4 Piattaforme • La piattaforma Java Enterprise Edition (Java EE) • Applicazioni Enterprise • Java EE Application Servers • Jboss • Ambiente di sviluppo • Eclipse

  13. Java EE • Realizzaunapiattaforma “standard”per lo sviluppo, l’esecuzione e la gestione di applicazioni enterprise: • Multi-tier  strutturate a “livelli” • Web-enabled  accessibili via Web • Server-centric  eseguite in unospecificoambiente server • Component-based  costituite da componentisw in esecuzionesuuna o piùistanze server distribuite • Si basasullapiattaforma Java SEa cui aggiungespecifiche e strumenti(API) ad hoc • Condivideivantaggidelleapplicazioni Java SE: • 1 specifica standard vs. molteimplementazioni • implementazionidisponibili per la maggior parte di sistemi host • portabilità, facilità di sviluppo, riuso, sicurezza, etc.

  14. Applicazioni Enterprise • Applicazioniprogettate e sviluppate per risolvereproblemitipicidelle “grandiaziende” • Utilianche per piccoleimprese/organizzazionichesfruttanol’altissimogrado di connettivitàormairaggiunto • Esempi: • E-commerce • Online Banking • …

  15. Architettura Multi-tier • Modelloarchitetturale “astratto” per applicazioni enterprise • indipendentedallesceltetecnologiche (linguaggio, piattaforma, etc.) • Le funzionalitàdell’applicazionesonosuddivisein 3 “livelli” isolati (Tiers): • Client Tiereseguerichieste al Middle-tier • Middle Tier gestisce le richiesteprovenientidai clients e processaidatidell’applicazione • Data Tier  mantieneidati in strutture di memorizzazionepermanenti • Java EE èunaparticolarerealizzazione del modellochesiconcentrasul Middle Tier  Java EE Application Server Client Tier Middle Tier Data Tier

  16. Java EE: Architettura Multi-tier Java EE Application Server Web Client Legacy Tier Web Tier Connector/Messaging Tier B2B Client Data Tier Business Tier Data Access Tier Client Tier Middle Tier Data Tier

  17. Java EE: Client Tier • Il ClientTier comprendegliapplicativi client che “utilizzano” l’applicazione enterprise comunicando con il Java EE Application Server • I clients sono di solito in esecuzionesu hosts diversi da quellocheospitailserver • 2 tipi di applicativiclient: • Web Client  un browser web cheeseguerichieste via HTTP al Web Tier • B2B Client  una o piùapplicazionicheeseguonorichieste al Business Tier tramite SOAP/Web Services o Java RMI

  18. Java EE: Web Tier • Il Web Tier consiste di componentichegestiscono le interazionitrai Web client e ilBusiness Tier • Funzioniprincipali: • generazionedinamica (“on-the-fly”) deicontenuti per idiversi client • raccoltadati di input chegliutentiinvianotramiteinterfaccia Web client • generazione output sulla base dellecomponenti del Business Tier • controllo del flusso di navigazionesul client • mantenimentodellostato per unasessioneutente • logicaapplicativa di base e memorizzazionetemporanea di informazioneall’interno di componenti Java (JavaBeans)

  19. Java EE: Web Tier

  20. Java EE: Business Tier • Il Business Tier consiste di componenticheforniscono la cosiddettabusiness logic dell’applicazione • Per “business logic” siintendel’insieme del software chesioccupadellefunzionalità di un determinatocontestodi business • Costituisceil “core” dell’interaapplicazione in quantovero e proprioresponsabiledellafase di processing

  21. Java EE: Business Tier

  22. Java EE: Data Tier • Il Data Tier siriferisceallevarie “sorgentidati” cui puòattingerel’applicazione e comprende: • Relational Database Management Systems (MySQL, Oracle, etc.) • Enterprise Resource Planning Systems (SAP) • Mainframes (IBM AS/400) • Le sorgentidati • sonolocalizzatesu hosts diversi da quellosu cui è in esecuzioneil Java EE Application Server • vengonoaccedutedallecomponenti del Business Tier

  23. Java EE: Data Tier

  24. Modulo 1: Introduzione • Tecnologia Java • 1 Linguaggio vs. 4 Piattaforme • La piattaforma Java Enterprise Edition (Java EE) • Applicazioni Enterprise • Java EE Application Servers • JBoss • Ambiente di sviluppo • Eclipse

  25. Java EE Application Servers • Server cheimplementa la piattaformaJava EE • OspitaicomponentiMiddle Tier di un’applicazione enterprise multi-tiered • Fornisceiservizi standard specificati da Java EE a questicomponentisottoforma di container: • gestionedellaconcorrenza, scalabilità • sicurezza • persistenza, transazioni • gestione del ciclo di vita deicomponentisw • Java EE servers “famosi”: GlassFish (Oracle), JBoss AS (Red Hat), WebLogic (Oracle-BEA), WebSphere (IBM), etc. • http://en.wikipedia.org/wiki/Comparison_of_application_servers#Java

  26. Java EE Containers • Interfacciatra un componentedell’applicazione e le funzionalità di “basso livello” fornitedallapiattaforma per supportarequelcomponente • Le funzionalità di un container sonospecificatedallapiattaforma • Un tipo di container per ciascuntipo di componente • Java EE Server fornisceaivari containers un ambienteomogeneo in cui ègarantitoilfunzionamento di ciascuncomponentedell’applicazione

  27. Web Container • Interfacciatra le componenti web edil server web • Un componente web puòessereunaServlet, unapaginaJSF o JSP • Gestisceilciclo di vita del componente • Smista le richiesteaivaricomponentidell’applicazione • Fornisceinterfacce verso “daticontestuali” (ad es. informazionisullarichiestacorrente)

  28. Application Client Container • Interfaccia (gateway) trale applicazioni client Java EE edilserver Java EE • I clients sonoparticolariapplicazioni Java SE cheusanoicomponenti server Java EE • In esecuzionesumacchine client (generalmente diverse dal server Java EE)

  29. EJB Container • Interfacciatra Enterprise JavaBeans cheimplementano la business logic dell’applicazione e il server Java EE • In esecuzionesullamacchinacheospitail server Java EE • Gestiscel’esecuzionedeicomponenti EJB dell’applicazione

  30. Java EE Server: JBoss • Implementazioneopen source dellespecifiche Java EE • JBoss Enterprise Middleware Suite (JEMS) • JEMScontiene: • Java EE Application Server (JBoss AS, Tomcat) • O/R Mapping e Persistence (Hibernate) • Portal Platform (JBoss Portal) • Business Process Management and Rules (JBossjBPM, JBoss Rules) • Object/Data Cache (JBoss Cache) • Distributed Transaction Management (JBossTransactions) • Development Tools (JBoss Tools plugin for Eclipse)

  31. JBoss AS: Un po’ di storia… • Progetto open source di un EJB Container (1999) • Supporto di J2EE server (ver. 2.x) • Service-oriented Architecture (ver. 3.x) • Supporto di Java EE 1.4 + EJB 3 (ver. 4.x) • Supporto di Java EE 5 (ver. 5.x) • Supporto di Java EE 6 (ver. 6.x) • Versioneattuale: JBoss 7.1.1  WildFly 8

  32. JBoss AS 5.1 • Java EE Application Server cheuseremoduranteilcorso • JBoss Web  Apache Tomcat 6.0 • JBoss WS 3.0  Supporto Web Services per JAX-WS/JAX-RPC • 2 nuoveconfigurazioni: • standard: fully Java EE • web: Java Servlet/JSP container + JTA/JCA + JPA (il server puòessereacceduto solo via HTTP) • Riferimentodocumentazione: • http://www.jboss.org/jbossas/docs/5-x.html

  33. JBoss AS 5.1: Architettura

  34. JBoss AS 5.x: Requisiti di Sistema NOTA: JBoss AS nonrichiedel’intero JDK, per cui il solo JRE èsufficiente per un correttofunzionamentodelleapplicazioni in ambiente di produzione. Tuttavia, JDK è utile e raccomandatoperchéfornisce tools extra di supporto

  35. JBossAS 5.1: Directories • La directory “root” di installazioneèriferita come $JBOSS_HOME (variabile di ambiente) o jboss.home.dir (Java system property) e contiene: • Importanteconoscereil layout delle directories per: • localizzare le librerie • aggiornare la configurazione del server • eseguireil deployment di applicazioni e servizi

  36. JBoss AS 5.1: Directory bin

  37. JBoss AS 5.1: Directory client

  38. JBoss AS 5.1: Directory common

  39. JBoss AS 5.1: Directory docs

  40. JBoss AS 5.1: Directory lib

  41. JBoss AS 5.1: Directory server

  42. JBoss AS 5.1: Directory default/conf

  43. JBoss AS 5.1: Directory default/data

  44. JBoss AS 5.1: Directory default/deploy

  45. JBoss AS 5.1: Directory default/deployers

  46. JBoss AS 5.1: Directory default/lib

  47. JBoss AS 5.1: Directory default/log

  48. JBoss AS 5.1: Directory default/tmp

  49. JBoss AS 5.1: Directory default/work

  50. JBoss AS: Startup • Su Unix/Linux/Mac OS X • eseguire via shell $JBOSS_HOME/bin/run.sh • Su Windows • eseguire via shell $JBOSS_HOME\bin\run.bat • Avvio di default sulocalhost (127.0.0.1) • Possibileavvio come “system service” • il server vienelanciatoall’avviodell’host

More Related