enterprise rias con spring e flex - ugo...

72
<speaker name> – <email> – <company/community> Javaday IV – Roma – 30 gennaio 2010 MARCO CASARIO CTO – Comtaste http://casario.blogs.com E nt e r pr i s e R I A s co n S p r i ng e F l e x

Upload: dangkien

Post on 22-Apr-2018

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

MARCO CASARIOCTO – Comtastehttp://casario.blogs.com

Enterprise RIAs con Spring e Flex

Page 2: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Exploring new frontiers in Rich Internet Applications

Maximizing the User Experiences

Mission

Page 3: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

The technologies we use:

� J2EE (Java, JSP, Hibernate, EJB3, Struts, Spring)� Ajax� Flash� Flex� AIR� Flash Media Server

Technologies

Page 4: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Who can make it possible

Team

J2EE Developers Flex/Flash Developers Creative UI Designers

Page 5: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Showcase

Maggioli S.p.A.è una delle più grandi realtà italiane nell'ambito della fornitura di prodotti e servizi per la PAL con particolare impegno nella produzione e assistenza di software gestionali per gli enti.

Noi per Loro

•Orientamento tecnologico•Formazione•Menthoring•User Interface Design

Page 6: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

INPDAP

Noi per Loro

Sviluppo , user interface design e deploy di una piattaforma RIA per archiviazione, distribuzione e ricerca di delibere e circolari

Showcase

Page 7: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Showcase

Dashboard applications

Page 8: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Showcase

Comtaste Open Source Projects

Pantaste (http://code.google.com/p/pantaste/)

A library to create ActionScript-based personalized start page or personal web portal much like iGoogle, My Yahoo!, Netvibes etc

DAO-EXT (http://code.google.com/p/dao-ext/)

an Adobe AIR tool that allows developers to automatically generate ActionScript Data Access Objects (DAO) and Value Objects starting from a local SQLite database.

Page 9: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

CASE HISTORIESShowcase

Page 10: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Partnership

Page 11: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Upcoming

Spring-Flex Training

Comtaste ha creato un percorso didattico rivolto a chi già utilizza Flex in ambiente Enterprise e

vuole esplorare le possibilità di integrazione con Spring.

Corsi Spring in Italiano

Comtaste e SpringSource stanno lavorando insieme per offrire corsi

di Spring in lingua italiana.

Page 12: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

My books

WWW.COMTASTE.COM

Page 13: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

My books

WWW.COMTASTE.COM

Page 14: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

My books

GEN 09WWW.COMTASTE.COM

Page 15: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

My Books

WWW.COMTASTE.COM

Advanced AIR Applications

Professional Flash Catalyst

Flex 4 Solutions

Page 16: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Who I am

WWW.COMTASTE.COM

Page 17: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

� Flash Platform Overview� Flex 4 e Flash Catalyst� Livecycle DS� BlazeDS� Integrazione con Spring� Q & A

Page 18: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Flash Builder

Flash CS4 Professional

Tools to Design and Develop

Clients

Servers/Services

Framework

AMF, XML, JSON, SOAP, RSS, ATOM, etc.HTTP/S, Sockets, RTMP, etc.

Flash Catalyst

Flex

Flash Media Server Family

Flash Player

AIR

BlazeDSData Services

Page 19: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex 3 è Open Source

Page 20: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Dashboard con Flex

Page 21: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Ecosistema Flex

Createimmersive experiences and

video content

Transformartwork into functional application

user interfaces

Developcross-platform rich Internet applications

Enabling developers and designers to collaboratively build applications and interactive content

Interaction design tool for designers to rapidly create

Flex application user interfaces without coding

IDE for software developers to rapidly build cross-platform applications using the Flex framework and interactive content using ActionScript

Authoring tool for designers and developers who want to

create free-form and immersive

interactive content

Page 22: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Migrazione Flex 4

Flex frameworkAligning Flex brand with the open source

framework underlying both FB and FC

FLEX 3 GENERATION FLEX 4 GENERATION

FlashBuilder

FlashCatalys t

Flex framework, Flex Builder

Consistent branding for tools

Page 23: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

ProduttivitàRapid design and development

Integrazione con Servers e ServicesQuickly and easily integrate with existing infrastructure

Applicazioni ad alta user experienceBuild more expressive applications and content

Page 24: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Focus point Flex 4

Design in Mind

Developer Productivity

Framework Evolution

� Spark component model

� MXML 2009

� FXG

� Improved states, effects, and layout

� High-fidelity Text

� New Video Component

� Compiler performance

� 2-way binding

� CSS Improvements

Page 25: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex 4Flex 4 Component Model (Spark)

WWW.COMTASTE.COM

ActionScript MXML

GraphicsLayoutAnimationPartsStates

Component Skin

CSS properties

BehaviorLogicData

Page 26: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

FXG

FXG: grafica a compile time

After Effects Fireworks

InteractiveContent

Animation

Visual Layout

Prototyping

Design/DevelopWorkflow

Eclipse IDE

Code Profiling

Debugging

Flash CS4Professional

FlashCatalyst

FlashBuilder

Illustrator Photoshop

FXG

FXG: formato grafico basato su MXML

• Di facile comprensione per i designers

• Basato sul flash rendering model• Statico – no binding, layout, event

handlers, styling, etc• Ottimizzato dal compiler (alte

performance)

Page 27: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flash Catalyst

• A professional interaction design tool for rapidly creating the user experience of applications and interactive content without coding

Flash Catalyst

Page 28: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flash Catalyst

� Interactive Web Designers / Interaction Designers

� Responsible for the visual design of interactive experiences created at agencies. Uses tools like

Photoshop, Illustrator, and Fireworks to design the layout and assets - but increasingly wants

to design the “behavior” of the interface.

� Information Architects

� Responsible for creating the high-level interaction models for the media and experiences.

Involved in the early wireframes and ideation process

� Graphic Designers and Creative Directors

� Aspire to do interactive pieces or showcase sites without having to write code.

Page 29: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex Applications

Page 30: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Architettura

Page 31: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

AMF3 Binary Data Transfer

Page 32: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

LCDS

Page 33: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

LCDS

Page 34: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

BlazeDS

Page 35: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Comparison: BlazeDS, LCDS

Page 36: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

BlazeDS

Page 37: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Perché Flex e Spring insieme

Spring è di fatto uno standard emergente per il business tier delle applicazioni Java Enterprise

Flex rappresenta lo standard per le RIA

Nell’integrazione lo sviluppatore non deve abbandonare l’approccio server side di Spring

Page 38: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Lo sviluppatore Spring è “attratto” dall’approccio di sviluppo:

• Configurazione di differenti tecnologie• Transizione semplice tra “standard” e “enterprise”• Migrazione da Local transactions e JTA non

richiedono codice

Perché Flex e Spring insieme

Page 39: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Remoting Service

Permette al client di invocare metodi di oggetti sull’application server

Le informazioni tipizzate (Java / AS) sono mantenute

Encoding dei dati in formato binario

Page 40: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Remoting Service

BlazeDS viene configurato attraverso una serie di file:

• Services-config.xml• Remote-services.xml• Messaging-services.xml• Proxy-services.xml

Questi file contengono le informazioni delle destination per i servizi remoti e gli adapter per l’implementazione di servizi

Page 41: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Flex Remoting: le basi

Page 42: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Flex Remoting: le basi

Page 43: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

SpringFactory: il vecchio approccio

Nel vecchio approccio veniva utilizzata una classe SpringFactory che però aveva degli svantaggi:

• Utilizzava un approccio “dependency lookup”• Necessità di molteplici configurazioni

Il vecchio approccio è stato una barriera per l’adozione di Flex e BlazeDS dagli sviluppatori Spring.

Page 44: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

SpringFactory: il vecchio approccio

Page 45: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex:il nuovo approccio

Con una collaborazione tra Adobe e SpringSource è nato il progetto Spring-Flex:

• Semplificare la configurazione di BlazeDS• Usare il MessageBroker di BlazeDS come un bean

“Spring-managed”• Indirizzare i messaggi http di flex al MessageBroker

attraverso lo Spring DispatcherServlet

http://www.springsource.org/spring-flex

Page 46: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex:il nuovo approccio

Per usare Spring-Flex bisogna avere i seguenti requisiti:

• Java 5 o +• Adobe BlazeDS 3.2 o +• Spring 2.5 con dependencies o +

Page 47: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex:configurazione

Dopo aver scaricato ed installato BlazeDS e Spring BlazeDS Integration dovrete configurare il MessageBroker:

• È il componente responsabile per gestire i messaggi HTTP dal client Flex

• È gestito da Spring• I messaggi sono passati al MessageBroker di Spring

attraverso la DispatcherServlet di Spring

Page 48: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex:configurazione

La DispatcherServlet è configurata nel bootstrap di Spring nell’WebApplicationContext (file web.xml):

<servlet-class>

org.spring.framework.web.servlet. DispatcherServlet

</servlet-class>

• Prima era:flex.messaging.MessageBrokerServlet

Page 49: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex:configurazione

Nell’applicationContext.xml file di BlazeDS vanno aggiunti i seguenti beans:

• SimpleUrlHandlerMapping

• MessageBrokerHandlerAdapter

• MessageBrokerFactoryBean (da flex.messaging)

Page 50: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex:configurazione

A questo punto Spring gestisce il MessageBroker per permettere ai beans di essere connessi direttamente alle remoting call di Flex.

In questo modo le operazioni di serializzazione e deserializzazione tra Java e AMF avvengono automaticamente

Questo ci permette di non scrivere molto codice di configurazione nel file remoting-config.xml

Page 51: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Nomi di metodi riservati per RemoteObject

If a remote method has the same name as a method defined by the RemoteObject class, or by any of its parent classes, then you cannot call the remote method directly. The RemoteObject class defines the following method names:

propertyIsEnumerable()

setCredentials()

setPropertyIsEnumerable()

setRemoteCredentials()

toString()

valueOf()

disconnect()

getOperation()

hasOwnProperty()

initialized()

isPrototypeOf()

logout()

Page 52: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex: Sicurezza

Page 53: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring-Flex: Messaging

Il progetto già prevede la compatibilità col nuovo sistema di Spring Integration per le comunicazione asincrone

Integrazione con BlazeDS MessageService senza usare la configurazione del file message-services.xml

Sono esposti adapters per Spring JMS e SpringIntegration per permettere la comunicazione tra il client Flex e i message-driven POJOs di Spring

Page 54: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Page 55: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring BlazeDS: il futuro

Queste sono alcune delle nuove features in fase di implementazione per la prossima versione del progetto:

– Spring 3 REST integration

– Supporto per client-types multipli

– Supporto alla serializzazione Hibernate

– Semplicità nella serializzazione di entità Hibernate a AMF senza l’errore LazyInitializationException

Page 56: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring e Livecycle Data Services

Adobe sta lavorando all’integrazione con LCDS:

– Data Assembler configurati come Spring beans

– SpringHibernateAssembler che utilizza un HibernateSessionFactory di Spring (equivalente dell’Assembler JPA)

Page 57: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring ActionScript

Il progetto è mantenuto dallo stesso creatore del Prana framework (http://www.springactionscript.org/)

E’ entrato a far parte di Spring Extension

Il framework contiene un Inversion of Control Container, un MVCS framework, estensioni per Cairngorm e PureMVC frameworks e altre utilities.

Page 58: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Flex + Spring

Spring ActionScript

E’ un container ActionScript che applica il design pattern IoC:

IoC tende a tener disaccoppiati i singoli componenti di un sistema, in cui le eventuali

dipendenze non vengono scritte all'interno del componente stesso, ma gli vengono

iniettate dall'esterno: non si segue il normale flusso di controllo dei linguaggi imperativi,

in cui, nel momento del bisogno, si richiamano funzioni di classi o librerie esterne, gli

oggetti quindi non istanziano e richiamano gli oggetti dal quale il loro lavoro dipende,

ma queste funzionalità vengono fornite da un ambiente esterno tramite dei contratti

definiti da entrambe le entità.

La Dependency Injection è una delle tecniche con le quali si può attuare l'IOC.

Page 59: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Sample application : EmployeeService

� Tecnologie� Flex 4

� Spring 2.5.6

� Tomcat 6

� MySql 5

� Java 6

Si vuole illustrare come si semplificala configurazione

di un'applicazione che richiede

Front-end in FlexBack-end in Spring

Grazie alla Spring BlazeDS Integration

Page 60: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Back-end : Entity

� EmployeeEntity

� Nome

� Cognome

� Indirizzo

� Email

� Categoria : Analyst – Consultant – Junior - Manager

Page 61: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Layer architecture

Dati DAOSpringBean

Front-endBack-end – ORM JPA

Employee

-Name-Surname-Address-Mail-WorkCategory :

-Analyst-Consultant-Junior-Manager

EmployeeDAO

Riferimento a SimpleJdbcTemplate

EmployeeService

Riferimento EmployeeDAO

Flex application

Page 62: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Front-end : Flex

Vediamo l’applicazione

Page 63: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Configurazione Spring BlazeDS Integration

� Configurazione ed uso del Message-broker

� Configurare Message-broker in app-context.xml

� Configurazione del mapping delle request del client Flex verso il Message-broker

� BlazeDS Remoting service & Remoting-destination

� Consentire l'exporting dei bean di Spring per le chiamate remote da un client Flex

Page 64: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Configurazione ed uso del Message-broker

� Configurare Message-broker in app-context.xml

� Configurazione del mapping delle request del client Flex verso il Message-broker

Page 65: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Config Message-broker

� Aggiungere Flex namespace<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:flex="http://www.springframework.org/schema/flex"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="

http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/flex http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">

...<beans>

� Message-broker tag per la configurazione di default

<flex:message-broker/>

Page 66: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Mapping requests to Message-broker (1/3)

� DispatcherServlet mapping in web.xml<servlet>

<servlet-name>BlazeServlet</servlet-name><servletclass>org.springframework.web.servlet.DispatcherServlet</servlet-

class> <init-param><param-name>contextConfigLocation</param-name><param-value> /WEB-INF/spring/app-context.xml </param-value>

</init-param><load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping><servlet-name>BlazeServlet</servlet-name><url-pattern>/messagebroker/*</url-pattern>

</servlet-mapping>

Page 67: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Mapping requests to Message-broker (2/3)

� HanlderMapping nello Spring app-context.xml

<!-- Mappa le request indirizzate a /* verso il BlazeDS MessageBroker --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings"><value>

/*=_messageBroker</value>

</property></bean>

<!-- Effettua il dispatch delle request mappate verso MessageBroker --><bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter"/>

Il setup di default installato dal <flex:message-broker/>è equivalente a

Page 68: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Mapping requests to Message-broker (3/3)

� Channel definition in the BlazeDS services-config.xml

<channel-definition id="my-amf"

class="mx.messaging.channels.AMFChannel"><endpoint url="http://{server.name}:{server.port}/

{context.root}/messagebroker/amf"class="flex.messaging.endpoints.AMFEndpoint"/>

</channel-definition>

Page 69: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Exporting Spring Beans per Flex remoting

� Remoting service

� Remoting destination tag

Page 70: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Remoting service

<?xml version="1.0" encoding="UTF-8"?><service id="remoting-service" class="flex.messaging.services.RemotingService">

<adapters><adapter-definition id="java-object"

class="flex.messaging.services.remoting.adapters.JavaAdapter"default="true"/>

</adapters></service>

L'inclusione del tag message-broker per dafult include la seguente configurazioneche normalmente viene inclusa nel remote-config.xml

Bisogna comunque dichiarare un canale di defaultincludendone la dichiarazione nel services-config.xml

<services><default-channels>

<channel ref="my-amf"/></default-channels>

</services>

Page 71: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

Remoting-destination tag

Serve ad esportare gli esistenti servizi gestiti da Springper consentire il remoting diretto da un client Flex

<!-- Bean employeeService --><bean id="employeeService" class="service.EmployeeService">

<constructor-arg ref="employeeDAO" /></bean>

<!-- REMOTING DESTINATION TAG --><flex:remoting-destination ref="employeeService" />

Data la seguente definizione di Spring bean

Il seguente tag remoting-destination espone il servizio ad un client Flex come servizio remoto chiamato employeeService

Page 72: Enterprise RIAs con Spring e Flex - ugo landinijavaday4.ugolandini.com/sites/default/files/EnterpriseRIASpring... · Enterprise RIAs con Spring e Flex ... an Adobe AIR tool that allows

<speaker name> – <email> – <company/community>

Javaday IV – Roma – 30 gennaio 2010

MARCO CASARIOCTO – Comtastehttp://casario.blogs.com