Sistemi Distribuiti M. Proposta di esercizio: Spring

Documenti analoghi
Corso Programmazione Java Avanzato

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

PRIMO MODULO. DURATA: 80 ore CONTENUTI

Programmazione Java Avanzata Il Framework Spring

Programmazione Java Avanzata Spring - JDBC

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser.

Java Model 2, J2EE e MVC

Framework di Middleware. per Architetture Enterprise

Risorsa N Nel 2004: qualifica di Grafico Specialista e di Specialista in animazioni multimediali

Spring & Mule. Andrea Bozzoni

Progetto. Alternanza Scuola Lavoro

Corso Analista Programmatore Java Corso Online Analista Programmatore Java

CORSO DI PROGRAMMAZIONE JAVA

Java Model 2, J2EE e MVC

ALLEGATO AL CAPITOLATO TECNICO

Progetto di Applicazioni Software

Corso analista programmatore Java. Corso analista programmatore Java Programma

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 10 - J2EE 25/05/2015

Implementazione di MVC. Gabriele Pellegrinetti

Vaudi Valerio Via Sessa Aurunca Anzio Roma valerio.vaudi@gmail.com / /12/1985 Italiana Maschile VDAVLR85T14A323Q

JUG Ancona Italy Spring Framework

1. Giorno 1 alf a. Presentazione dell azienda e del programma formativo b. Introduzione al CTI c. Introduzione al CRM

Applicazione: GAS - Gestione AcceSsi

1) Junior TIBCO Consultant

Corso di Applicazioni Telematiche

Architettura e tecnologie per lo sviluppo del Setup-Dashboard. Setup Srl Information Technologies

Nexse srl Via Adolfo Ravà 124, Roma

ANALISI E PROGETTAZIONE DI UN SISTEMA DI MONITORAGGIO PER INFRASTRUTTURE CLOUD

Curriculum Vitae Ing. Davide Macrì

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

APPENDICE 4 AL CAPITOLATO TECNICO

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Spring Intro Una panoramica del framework open source. Giovedì 18 febbraio 2016

L architettura software generale

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Applicazione: SIPER Servizi In linea per il PERsonale

F ORMATO EUROPEO INFORMAZIONI PERSONALI DOTT. MAURO DORIA PER IL CURRICULUM VITAE. Nome Indirizzo. Telefono .

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma

Programmazione Java Avanzata PATTERN

Curriculum Vitae di. Pietro Martinelli

Sviluppo web con CakePHP

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:

Reti di Calcolatori L-S A.A. 2007/2008. Sviluppo e collaudo di un'applicazione web mediante IoC e AOP. di Franchi Alessandro matr.

Programmazione Java Avanzata

Risorsa N Nel 2004: qualifica di Grafico Specialista e di Specialista in animazioni multimediali

TESI DI LAUREA IN INFORMATICA

Capitolo I1: Laboratorio con DevC++

Risorsa N Inglese Sufficiente Francese Sufficiente

Programmazione server-side: Java Servlet

Agenda. Architettura. Contesto. Integrazione e SOA

Tecnologie di Sviluppo per il Web Lab. di Tecnologie di Sviluppo Web

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View

1. Destinatari e requisiti di ingresso. 2. Durata sede e organizzazione del corso. 3. Oggetto della formazione

AscotWeb - mediatore Versione dicembre 2015

JSIS JSIS L architettura JSIS

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

MODEL-VIEW-CONTROLLER PROBLEMA

REGIONE BASILICATA UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi

PROFILI PROFESSIONALI (Allegato 5.3)

Da Settembre 2010 Oggi. Go Project srl via Alessandria 88, Roma. Inail Istituto Nazionale Infortuni sul Lavoro

Architettura Tecnica i. Architettura Tecnica

Risorsa N Oracle (Exp. 10 anni) MySql (Exp. 5 anni)

Architettura MVC-2. Alberto Belussi. Anno accademico 2006/2007

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Sezione 1 - Gestione e governance della protezione dei dati

EJB Components. Leonardo Mariani Esercitazione di Sistemi Distribuiti. Oggetti Distribuiti

ARCHITECTING AND DESIGNING J2EE APPLICATIONS

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2

Via Avigliana, 12, Carmagnola (TO) (Italy) (+39)

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006

BRIDGE COUNSULTING. dove Cantiere Novoli Aula "Roberto Bracco" Ed. D6 - via delle Pandette 9 Firenze

Progettazione: Tecnologie e ambienti di sviluppo

Introduzione al mondo della persistenza. Dott. Doria Mauro

Curriculum Vitae INFORMAZIONI PERSONALI COGNOME NOME

Introduzione all ingegneria dei sistemi ICT

Modelli a Componenti e Enterprise Java Beans

Luca Cabibbo. Persistenza di oggetti

Università degli Studi di Bologna Facoltà di Ingegneria. Sistemi Distribuiti M A.A Esercitazione Java EE Strumenti di sviluppo

Registro SPICCA Architettura del Software

Tecnologie di Sviluppo per il Web

Strumenti per l automazione del testing di applicazioni web Javascript-based

CURRICULUM VITAE INFORMAZIONI PERSONALI

Remote file access sulla grid e metodi di interconnesione di rete

Allegato 5.7_TEMPLATE DI OFFERTA TECNICA

Mail: UNI EN ISO 9001:2008

UNA RELEASE ROBUSTA E COLLAUDATA IN CONTESTI NAZIONALI ED INTERNAZIONALI EVOLUZIONE DELLA PIATTAFORMA ASSICURATIVA ALL IN ONE

Corso Android Corso Online Sviluppo su Cellulari con Android

Indice. Indice Premessa e scopo del documento Ambiente operativo Architettura di sistema... 5

Dalle Banche su Internet a Internet per le Banche. L evoluzione dell architettura delle applicazioni web-based. based di Banca Antonveneta

SOA case study. Un esempio di progetto SOA. Le esperienze maturate sul campo. organizzato da:

SWIM v2 Design Document

Eclipse Day 2010 in Rome

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

Tecniche e strumenti per la validazione di codice Java: un esempio applicativo

F O R M A T O E U R O P E O P E R

Transcript:

Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2014/2015 Sistemi Distribuiti M Proposta di esercizio: Spring Sistemi Distribuiti M Esercitazione su Spring 1 Obiettivi (1) Mostrare come i framework, le strategie e le scelte progettuali adottate nei precedenti sotto-progetti, possano essere integrate e cablate in maniera flessibile mediante un framework a componenti leggeri e basato su meccanismi di Dependency Injection (DI) come Spring Valutare in maniera critica la realizzazione di una architettura 3-tier di tipo Java Enterprise senza essere necessariamente vincolati alla presenza dell'infrastruttura complessa e ingombrante di un Application Server (AS) come JBoss Per motivi di tempo, non considerati framework Model-View-Controller (come Spring MVC, JSF o Struts): accesso diretto ai bean di logica di business direttamente dalle pagine JSP Sistemi Distribuiti M Esercitazione su Spring 2 1

Obiettivi (2) Data l applicazione Web di esempio, per la gestione di Libri, Autori e Editori in una ipotetica biblioteca e data l'implementazione (mediante Hibernate e/o JPA) del layer e degli oggetti DAO predisposta nel progetto precedente... si richiede di: integrare un Application Context di Spring all'interno dell'infrastruttura di un Web Container (Tomcat) per arricchire l'applicazione di un Bean Container per la gestione del proprio layer di business configurare opportunamente l'infrastruttura di accesso al layer di persistenza, dotando il container Spring di piene funzionalità di JPA container (gestione del contesto di persistenza, del ciclo di vita dell'entity Manager, delle transazioni...) Sistemi Distribuiti M Esercitazione su Spring 3 Obiettivi (3) Data l applicazione Web di esempio, per la gestione di Libri, Autori e Editori in una ipotetica biblioteca e data l'implementazione (mediante Hibernate e/o JPA) del layer e degli oggetti DAO predisposta nel progetto precedente... si richiede di: fare uso del Test Context Framework messo a disposizione da Spring per effettuare test Junit offline con possibilità di rollback sul DB implementare mediante Aspect-Oriented Programming (AOP) un semplice aspetto per la gestione della sicurezza Sistemi Distribuiti M Esercitazione su Spring 4 2

Bootstrap di Spring in una Web Application Trattandosi di una Web application in esecuzione all interno di un Web container, necessità di individuare una strategia per effettuare il bootstrap dell ApplicationContext di Spring in modo automatizzato al deployment dell applicazione sul server Ciascuna Web application conforme alle specifiche Java Servlet, dispone di un deployment descriptor (localizzato in WEB-INF/web.xml all interno di WAR) contenente tutte le definizioni necessarie al Web container per poter avviare ed eseguire correttamente l applicazione Spring mette a disposizione uno specifico ContextLoader (ContextLoaderListener) per l avvio di un ApplicationContext all avvio di qualsiasi Web Container conforme alle specifiche Java Servlet ContextLoaderListener deve essere configurato come <listener> nel deployment descriptor del WAR presenza di un <context-param> chiamato contextconfiglocation, contenente i file path dei descrittori XML dell Application Context Spring Sistemi Distribuiti M Esercitazione su Spring 5 Spring come Container JPA Spring implementa la porzione delle specifiche JPA relative ai container provider => può operare come JPA Container Setup di un environment JPA con Spring richiede la configurazione, all interno dell Application Context, di: DataSource (MySQL, HSQL ) JPA Vendor Adapter (Hibernate) EntityManager Factory Bean NB: grazie ai meccanismi di DI, commutare fra diverse implementazioni di DBMS o di Persistence Provider comporta la sola modifica dei descrittori XML La classe LocalCointainerEntityManagerFactoryBean fornisce controllo completo sulla configurazione di una EntityManagerFactory JPA Richiede la presenza di un JPA Persistence Descriptor localizzato in META-INF/persistence.xml l EntityManagerFactory può essere successivamente fornita al layer DAO mediante DI (vedi @PersistenceContext) Sistemi Distribuiti M Esercitazione su Spring 6 3

Transaction Management Si richiede di fare uso delle astrazioni messe a disposizione dal framework per la gestione della transazionalità in maniera dichiarativa (mediante annotazioni o XML) Mediante l'annotazione @Transactional, ciascuna transazione verso il DB può essere iniziata e conclusa (o eventualmente riportata allo stato iniziale) con la granularità del singolo metodo in maniera automatica e trasparente Trattandosi di una Web application ad architettura locale e facente uso di un'unica base di dati, i meccanismi transazionali forniti dall'entitymanager JPA sono più che sufficienti per assicurare semantiche corrette Sistemi Distribuiti M Esercitazione su Spring 7 Spring e Collaudo: Test Context Framework Spring semplifica il collaudo dei componenti applicativi (che tipicamente sono POJO svincolati da API specifiche di un AS Java Enterprise) e fornisce un efficace supporto ai test di integrazione ( annotation-driven e agnostico rispetto al testing framework) Implementare una serie di test (Junit4) in grado di coprire e validare le semantiche delle interfacce DAO suggerimento: Spring offre completa integrazione con Junit4.4 tramite un custom runner. Annotando le classi di test con @Runwith(SpringJUnit4ClassRunner.class) si ha la possibilità di implementare test junit standard con i vantaggi del Test Context Framework, come caricamento degli application context, dependency injection delle istanze di test ed esecuzione transazionale dei metodi di test Si consiglia di estendere la classe AbstractTransactionalJUnit4SpringContextTests per il rollback delle transazioni verso il DB al termine di ogni test Sistemi Distribuiti M Esercitazione su Spring 8 4

Management - JMX Il supporto a JMX fornito da Spring consente di integrare velocemente e trasparentem. POJO in infrastruttura JMX Mediante un MbeanExporter, qualsiasi bean del contesto Spring può essere registrato presso un Mbean Server esistente (quando si esegue, ad esempio, all'interno di un AS) MbeanServerFactoryBean consente invece di istanziare un Mbean Server in ambienti standalone Si richiede di implementare un semplice servizio JMX per la gestione e il monitoraggio del DataSource correntemente in uso nella Web application: POJO dovrà essere registrato presso un MBean Server istanziato all'avvio del container Spring dovrà fornire accesso in lettura e scrittura (get/set) a parametri del DataSource (maxactive, maxidle, minidle, numactive, numidle...) Client JMX: MX4J (vedi riferimenti) Sistemi Distribuiti M Esercitazione su Spring 9 AOP: Sicurezza Mediante AOP possono essere isolati e modularizzati componenti di logica crosscutting (verticali) rispetto al resto della logica primaria di business (sicurezza, transazionalità, logging, ) Si richiede di implementare un semplice bean (o quantomeno di impostarne l'implementazione!) per la gestione di problematiche di sicurezza, come autenticazione e controllo di accesso Facendo uso del supporto fornito da Spring AOP, l'aspetto che si occupa della sicurezza (implementato come advice di tipo around ) deve essere applicato alle invocazioni di tutti i metodi pubblici delle interfacce DAO, condizionandone l'invocazione in base alla corretta autenticazione o meno dell'utente NB: non è intenzione dell esercizio giungere a un'implementazione finale delle funzionalità di autenticazione e autorizzazione, ma di aiutare a capire come metodi di business logic possano essere intercettati al fine di iniettare trasparentemente nuove funzionalità nel flusso di logica principale Sistemi Distribuiti M Esercitazione su Spring 10 5

Riferimenti e Possibili Approfondimenti The Spring Framework - Reference Documentation, version 2.5.6 JSR 220: Enterprise JavaBeansTM,Version 3.0, Java Persistence API Rod Johnson, J2EE Development Without EJB, Wrox Thomas Van de Velde, Bruce Snyder, Christian Dupuis, and Sing Li - Beginning Spring Framework 2, Wrox Spring IDE per Eclipse: http://springide.org/blog/ Spring MVC (per chi voglia approfondire) http://static.springframework.org/docs/spring-mvc-step-by-step/ Spring Security (idem) http://static.springsource.org/spring-security/site/reference.html MX4J - http://mx4j.sourceforge.net/ Sistemi Distribuiti M Esercitazione su Spring 11 6