S VILUPPO E COLLAUDO DI UNA WEBAPP MEDIANTE I O C E AOP Alessandro Franchi - 0000219521 Reti di Calcolatori L-S A.A. 2007/2008.

Slides:



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

© 2010 Colt Telecom Group Limited. All rights reserved. Cloud Computing Lapproccio Colt Dionigi Faccedna.
TechNet Integration Workshop
Vincenzo Campanale PM Security & Management System Center, DSI e la Roadmap.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
Java Enterprise Edition (JEE)
IN QUESTA PRESENTAZIONE…
OUTLINE Riprogettazione del database del portale Web della Facoltà di Ingegneria Sviluppo di una applicazione WEB DB : HOMEPAGE DOCENTI Architettura multilivello.
Usare Apache Axis.
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
Seam.
LABIS-SD Antonio Cuomo393/121 Clelio Quattrocchi393/127 Emanuele Zuzolo393/136 Fabio Melillo393/141 Stefano Mastrocinque393/135 Valerio Vincenzo Guarino393/155.
1.E un algoritmo ricorsivo: Tutti le istanze di oggetti raggiungibili da un oggetto persistente diventano anchessi persistenti.
Microsoft Robotics Studio Marco Petrucco Microsoft Student Partner - Udine.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
B. Pernici Introduzione e stato dei lavori Roma, 24 novembre 2005.
B. Pernici WP 8 Exploitation Roma, 24 novembre 2005.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Domenico Presenza Stato implementazione prototipo Engineering Milano – 20 Luglio 2005.
Pierluigi Plebani - Politecnico di Milano MAIS Registry URBE (Uddi Registry By Example) WP2 Roma - 25 Novembre 2005.
1 Fac.Scienze – Università di Trento Programmazione 2 - Marco Ronchetti Java JAVA: una introduzione.
Model – View - Controller
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
1 Fac.Scienze – Università di Trento Programmazione 2 - Marco Ronchetti Java JAVA: una introduzione.
J0 1 Marco Ronchetti - Corso di Formazione Sodalia – Febbraio 2001 – Modulo Web Programming Tomcat configuration.
EJB Getting started Database: MySql Application Server: Pramati Server Ambiente di sviluppo: Pramati Studio 3 Applicazione esempio: Logon Trento, 30/10/2002.
Directory services Directory offline –Elenchi telefonici –Guide TV –Cataloghi acquisti Directory online –Application specific (lotus notes, MS Exchange.
Introduzione alle griglie computazionali - a.a LEZIONE LEZIONE N. 12 Grid Monitoring modello GMA GridICE GridICE demo Introduzione alle griglie.
Comunicazione on-line, reti e virtualità Matteo Cristani.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 3:Enterprise Java Beans.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Corso Framework Struts (1) 2
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
1 Attivita di ricerca Carlo Batini. 2 Aree Come costruire ed esprimere il contenuto informativo integrato di sistemi informativi complessi basati.
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
PROGETTO DI STRUMENTI PER LA CONFIGURAZIONE DI APPLICAZIONI JAVA ENTERPRISE Anno Accademico 2006 / 2007 Sessione III FACOLTÀ DI INGEGNERIA CORSO DI LAUREA.
Domain Driven Design: Overview Speaker: Giancarlo Sudano.
Facelets case study: Ricettario Docente: Gabriele Lombardi
14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Basi di Dati e Sistemi Informativi
Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:
SQL Server 2005 Sicurezza Davide Mauri Factory Software
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI.
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
soluzioni professionali
Negli ultimi anni, la richiesta di poter controllare in remoto la strumentazione e cresciuta rapidamente I miglioramenti nell’hardware e nel software insieme.
Java Enterprise Edition
Java Enterprise Edition
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
La Piattaforma del Credito Approfondimenti - integrazione Bergamo, 16 marzo 2010.
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
Analisi dettagliata e design
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.
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 1 – Introduzione.
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 1 -Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano.
Architetture software
JBoss Seam unifies JavaEE 5. Sommario Tecnology Timeline JSF EJB3 Seam Overview PageFlow e processi di business Rapid Seam Development Conclusioni.
Spring MVC. Spring MVC è il sotto-framework di Spring che permetti di servirsi del Framework Spring per realizzare applicazioni web. Possiamo quindi avvantaggiarci.
PROGETTO AGRICOLTURA L’architettura tecnologica Bologna : 11/04/02.
Paradigma MVC Ing. Buttolo Marco.
FULL STACK SENIOR DEVELOPER
Transcript della presentazione:

S VILUPPO E COLLAUDO DI UNA WEBAPP MEDIANTE I O C E AOP Alessandro Franchi Reti di Calcolatori L-S A.A. 2007/2008

I NTRODUZIONE JavaBeans Troppo semplici per applicazioni di livello enterprise J2EE Disaccoppiamento tra Presentation Layer (JSP e servlet) e Business Logic (EnterpriseJavaBeans) Servizi middleware EJB troppo complessi Implementazione complessa Molto invasivo Difficili da testare Nuovi pattern di programmazione 2

BookServiceImpl ShoppingCartService BookService > BookService > ShoppingCart BookService ShoppingCart BookService ShoppingCart new ShoppingCart() new BookServiceImpl() BookServiceMock new BookServiceMock() Librerie vs. Framework IoC Dependency Injection Loose coupling Testabilità Manutenibilità ShoppingCartService BookService > BookService > ShoppingCart BookService ShoppingCart BookService ShoppingCart BookServiceImpl injected BookServiceMock injected JNDI lookup ShoppingCartService ShoppingCart BookServiceImpl ShoppingCart BookServiceImpl ShoppingCart BookServiceImpl new ShoppingCart() I NVERSION OF C ONTROL (I O C) 3

A SPECT O RIENTED P ROGRAMMING (AOP) Servizi ortogonali alla business logic: SICUREZZASICUREZZA BookService Shopping CartService Shopping CartService UserService TRANSAZIONI BookService ShoppingCartService UserService TRANSAZIONITRANSAZIONI TRANSAZIONITRANSAZIONI SICUREZZASICUREZZA SICUREZZASICUREZZA 4 LOGGINGLOGGING Cross-cutting concerns come aspect: flusso di esecuzione Advice Joinpoint Pointcut

S PRING F RAMEWORK Architettura: Spring Web Flow Flusso stati, eventi e transizioni Core IoC Container ( ApplicationContext ) Core IoC Container ( ApplicationContext ) ORM Hibernate … ORM Hibernate … JEE Remoting JMS EJB … JEE Remoting JMS EJB … DAO JDBC Transazioni DAO JDBC Transazioni AOP Web MVC Integrazione con altri framework Web MVC Integrazione con altri framework 5

Applicazione web per la gestione di uno shop online Three-tiered architecture: A RCHITETTURA DELLA W EBAPP 6 Security Layer Database Presentation Layer Application Layer Persistence Layer Web Browser … …

P RESENTATION L AYER (C LIENT -S IDE L OGIC ) 7 Dispatcher Servlet (Front Controller) Dispatcher Servlet (Front Controller) ModelAndView Handler Mapping Views: hello.jsp login.jsp buy.jsp … … … … … … View Resolver Page Controllers: HomeController LoginController FlowController Request: login.htm Request: login.htm Service Layer Service Layer FlowExecutor FlowRegistry

buyFlow (main flow) buyFlow (main flow) F LOW DI A CQUISTO CON CARRELLO DELLA SPESA VIRTUALE 8 search (subflow) search (subflow) addToCart (subflow) addToCart (subflow) removeFromCart (subflow) removeFromCart (subflow) update database update database checkout start buy warn not in stock warn not in stock thank you thank you end

ShoppingCartService ShoppingCart Shopping Cart Shopping Cart injected A PPLICATION L AYER (B USINESS L OGIC ) Gestione domain objects Ambiente multiutente Un carrello della spesa virtuale per utente 9 scoped-proxy HTTP Session ---- Shopping Cart HTTP Session ---- Shopping Cart injected

P ERSISTENCE L AYER (D ATABASE L OGIC ) Object-Relational Mapping Hibernate Data Access Object (DAO) Gestione transazioni come aspect Spring AOP: proxy-based method joinpoint 10 proxy BookService txAdvice BookDao saveBooks() updateBooks() getBooks() saveBooks() updateBooks() getBooks() Inizia transazione Termina transazione (commit o rollback) Termina transazione (commit o rollback) Risultati Esegue business logic

T ESTING Supporto di Spring alla fase di testing Unit Testing di controller Spring MVC Verifica che il model contenga certi oggetti Verifica che la view ritornata sia quella giusta Testing di flow definiti con Spring Web Flow Verifica della correttezza degli stati e delle transizioni Integration Testing dellapplicazione Verifica del funzionamento dellapplicazione o di parti di essa caricando l ApplicationContext Transactional Testing dei componenti per laccesso al database Verifica delle operazioni di accesso e modifica del database Ogni test è wrappato in una transazione EasyMock Per implementazioni mock dei service objects nel caso di Unit Test 11

D EPLOY DISTRIBUITO 12 Controller MVC Controller MVC ProxyFactoryBean (crea proxy specifici per RMI, HTTP Invoker…) ProxyFactoryBean (crea proxy specifici per RMI, HTTP Invoker…) invocazione metodo network JRMP, HTTP JRMP, HTTP BookService BookDao Database PROXyPROXy PROXyPROXy Book Service (interfaccia del servizio remoto) Book Service (interfaccia del servizio remoto) crea proxy Application Layer Persistence Layer Presentation Layer Web Browser … …

C ONCLUSIONI Spring Framework: Componenti loosely coupled, riutilizzabili e facilmente testabili Servizi ortogonali (transazioni) applicati come aspect Architettura scalabile Futuri sviluppi dellapplicazione Data source estratta da directory JNDI che ottiene connessioni da un pool di connessioni Load balancing 1. Gestore a livello applicativo 2. Load balancer a livello HTTP 3. Java Message System 13

B IBLIOGRAFIA C. Walls and R. Breidenbach, Spring in Action, Manning, Java Beans ( Sun Microsystems ( Java ( Java 2 Platform, Enterprise Edition (J2EE) ( Enterprise JavaBeans Technology ( M. Fowler, Inversion of Control, 2005 ( SpringSource.org - Spring Framework ( M. Fowler, Inversion of Control Containers and the Dependency Injection pattern, 2004 ( SpringSource.org - Spring Web Flow ( Acegi Security - Acegi Security System for Spring ( Hibernate ( Remote Method Invocation Home ( Hessian Binary Web Service Protocol ( Burlap XML Web Service Protocol ( 14

F INE 15