soirée flex/ria au nantes jug

122
© 2010 Adobe Systems Incorporated. All Rights Reserved. Soirée Flex & RIA Nantes JUG

Upload: francois-le-droff

Post on 10-May-2015

1.739 views

Category:

Technology


1 download

DESCRIPTION

Durant cette soirée, nous avons discuté de RIA: * de Flash, de Flex, d’HTML5 * d’application multi-écrans: desktop, tablette, téléphone, télévision * des solutions offertes par Adobe dans ce domaine : o nous verrons comment les technologies Adobe permettent aux développeurs et architectes de construire des applications internet riches et multi-écrans, tout en faisant fructifier leurs anciens investissements, notamment sur les technologies Java/JEE (EJB3, Spring, Hibernate JPA, Maven...) Speaker : Francois Le Droff cf. http://www.nantesjug.org/

TRANSCRIPT

Page 1: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Soirée Flex & RIANantes JUG

Page 2: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

About me : François Le Droff

o “Just another Java guy” (doing Flex)

o 11 years in web 1+n.0

o Open Source Software Geek : o FlexPMD, Cairngorm

o Ossgtp, ParisJUG, et TTFX

o French JUGs, MAX, et Solution Linux

o http://www.droff.com

o http://twitter.com/francoisledroff

o ledroff adobe.com<at>

Page 3: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 3

Page 4: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 5: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

RIA?

Page 6: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Sexy and funkyapplications !

Page 7: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

7

®

Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential.

What Are Intuitive User Experiences?

Effective, Efficient, Engaging, Easy to learn, Error free

Personalized, responsive experiences across devices and channels

Communication & collaboration in context

Harmonization of backend processes and services

Page 8: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 8

Rich User Experiences: Opportunities for internal users

Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential.

Page 9: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

9

®

Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential.

Rich User Experiences: Opportunities for internal users

5 mins 20 secs

Increase productivity & improve decision making

Page 10: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 10Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential.

NATO

Page 11: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

11

®

Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential.

NATO

Page 12: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

12

®

Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential.

NATO

From a system-centric view to a user-centric application.

Page 13: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 13

Hendrix

Page 14: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 14

o Before

Hendrix

Page 15: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

o After

15

Hendrix

Page 16: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 16

Hendrix: APIs , UIs, avoid unnecessary complexity and training

Page 17: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

First-class interfaces

Page 18: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Productive users Productive developers

Productivity by Design

Productivity by design

Page 19: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Flash?

Page 20: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

FLASH PLAYER 10.1

Page 21: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 22: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Consumer Electronics

Personal Computers

Mobile Phones

Page 23: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Partenaires technologiques

Open Screen Project

Diffuseurs de contenu

Page 24: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Flash Player 10.1

Flash Player 10.1

Google TV

Page 25: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Increased software rendering performance on mobile over 87%

Reduced memory consumption on mobile by over 55%

Flash Player 10.1 is designed for mobility

Performance Graphics hardware acceleration

Audio/video hardware decoding

Memory, battery & CPU optimizations

Optimized SWF Management

Sleep mode

Device integration Multi-touch and gestures

Accelerometer

Screen orientation

Mobile text input

Porting kit for OSP partners

Page 26: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

o Brings full Flash Player feature set to devices

o New Features:

o Multi-touch & gestures

o Accelerometer

o Screen orientation

o Mobile text input

o Device capabilities discovery

o Globalization support (GSLib)

o Mobile settings manager

o Global error handling

Flash Player 10.1

Page 27: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

AIR ?

Page 28: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE AIR 2.0

Page 29: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE AIR 2.0

Flash Player 10.1+ WebKit+ SQLite+ Desktop APIs---------------------= Adobe AIR

Page 30: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE AIR 2.0

Xplatform runtimeDrag & Drop files / DesktopLocal system accessMultiple windowsTransparent applicationsNative Process, UDP, USB...

Page 31: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

DETECT AND BROWSE

USB STORAGE

Page 32: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

UDP Network Protocols

PEER 2 PEER

Page 33: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Documents and Processes

OS INTEGRATION

Page 34: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Demos

Page 35: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Flex ?

Page 36: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Page 37: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Basics

Flash Builder IDE

Flex SDK

Flex Class Library

MXML ActionScript

Compile

SOAP HTTP/S AMF/S RTMP/S

Web Server

Existing Applications & Infrastructure

J2EE Application Server

LC Data ServicesXML/HTTPRESTSOAP Web Services

Browser

Flash Player

Page 38: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

OLD COMPONENT MODEL

FLEX FRAMEWORK 3

GraphicsLayoutAnimationPartsStatesBehaviorLogicData

Component / Skin

Page 39: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

SPARK COMPONENT MODEL

FLEX FRAMEWORK 4

ActionScript MXML

GraphicsLayout

AnimationPartsStates

Component Skin

CSS properties

BehaviorLogic

Data

Page 40: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

SPARK COMPONENT THEME

FLEX FRAMEWORK 4

Page 41: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

NEW VIDEO COMPONENT

FLEX FRAMEWORK 4

Page 42: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

TEXT LAYOUT FRAMEWORK SUPPORT

FLEX FRAMEWORK 4

Page 43: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

NEW STATES MODEL

FLEX FRAMEWORK 4

Page 44: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

NEW LAYOUT MODEL

FLEX FRAMEWORK 4

http://www.rialvalue.com/coverflow/

Page 45: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

OLD MX COMPONENTS

FLEX FRAMEWORK 4

http://tinyurl.com/notspark

Page 46: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

HTML5 ?

Page 47: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 48: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 49: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 50: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 51: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 52: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 53: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 54: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 55: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 56: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 57: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 58: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 59: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 60: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 61: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 62: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 63: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 64: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 65: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 66: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 67: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Page 68: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

&

Page 69: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

HTTP Request& WebServices

Page 70: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 2008 Adobe Systems Incorporated. All Rights Reserved.

Flex/JSP architecture

UI LAYER

SERVERPRESENTATION/SERVICES/DAOLAYER

DATABASE/STORAGE LAYER

listEvents.jsp

Java servlet container (tomcat, WAS…)

JDBC

Web browser

JAVA classes/services

Webapp (WAR)

EventService.java public getEvents()

WSDL

XML on HTTP(s)

Page 71: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Same with PHP, Ruby, Perl, ASP...

Returns XML, text, tabulated text, JSON...

Use send() to launch the request

Result and Fault events

New data-services wizard in Flash Builder 4 to generate a STUB on the client side

Flex and <HTTPRequest>

Page 72: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Web Services Description Language 1.1 (WSDL 1.1) document

The Flex web service API generally supports Simple Object Access Protocol (SOAP) 1.1, XML Schema 1.0, and WSDL 1.1 RPC-encoded, RPC-literal, and document-literal (bare and wrapped style parameters).

Flex supports web service requests and results that are formatted as SOAP messages

Flex and <Webservice>

Page 73: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

AMFPublished in December 2007

XML5000 rows ?1.1Mo 29Ko

Page 74: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Remoting AMF

Page 75: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

LiveCycle Data Services ES

LiveCycle Data Services is a set of Java EE components and APIs used to:

Create data-intensive RIAs with less code, less risk, and accelerated time to market due to an innovative client-server programming model

Integrate RIAs with existing applications, back-end data, and JEE infrastructure

Easily integrate RIAs with LiveCycle document and process services

Enable collaboration, offline AIR and real-time data streaming applications to be built in a scalable and reliable manner with robust publish and subscribe messaging

Generate PDF documents from RIAs that include graphical assets

LiveCycle Data Services ES

Data Management

RPC Services

Messaging

ServiceAdapters

Data Synchronization

Off-line Applications

Data Paging

Web Service

HTTP Service

Remote Object Service

Publish & Subscribe

Collaboration

Real Time Data Push

Proxy Service

Web-tier Compiler

Portal Deployment

RIA-PDF Generation

LiveCycle

ColdFusion

Hibernate

SQL

JMS

Java

Custom…

Page 76: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

BlazeDS is a set of Java EE components and APIs, and a subset of LiveCycle Data Services:

- Free and open source.

- High performance data transfer for more responsive applications using AMF

- Real-time server push over standard HTTP

- Full pub/sub messaging that extends existing messaging infrastructure

LiveCycle Data Services ES

Data Management

RPC Services

Messaging

ServiceAdapters

Data Synchronization

Off-line Applications

Data Paging

Web Service

HTTP Service

Remote Object Service

Publish & Subscribe

Collaboration

Real Time Data Push

Proxy Service

Web-tier Compiler

Portal Deployment

RIA-PDF Generation

LiveCycle

ColdFusion

Hibernate

SQL

JMS

Java

Custom…

Page 77: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

LCDS.war

Structure of the WAR file: +WEB-INF/classes To place your Java classes

+WEB-INF/lib Hosts the JAVA libraries of LCDS

+WEB-INF/flex Hosts the XML configuration files Remoting-config.xml Destinations to Java classes for remoting Messaging-config.xml Destinations for messaging Data-Management-config.xml Destinations to Java assemblers Proxy-config.xml Destinations to HTTP services Services-config.xml Channels configurations

A file named « LCDS.war » is provided to start your Flex/Java projects.

Page 78: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Java and ActionScript value objects

Java VO ActionScript VO

Page 79: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Java and ActionScript types

STRING STRING

BOOLEAN BOOLEAN

INT, SHORT, BYTE INT

DOUBLE, FLOAT, LONG NUMBER

CALENDAR, DATE DATE

OBJECT OBJECT

COLLECTION ARRAYCOLLECTION

OBJECT[] ARRAY

ORG.W3C.DOCUMENT XML OBJECT

NULL NULL

Page 80: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Flex/Java classic architecture

UI LAYER

SERVERPRESENTATION/SERVICES/DAOLAYER

DATABASE/STORAGE LAYER

LiveCycle Data Services

Java servlet container (tomcat, WAS…)

JDBC

Web browser

JAVA classes/services

Webapp (WAR)

RPC services Messaging Data Mgt

WSDL

AMF over HTTPs

JAVA <-> AMF

EventService.java public getEvents()

Page 81: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Spring BlazeDS Integration

Page 82: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Spring & Flex Services

o Intégrer Spring & Flex, c’est donc :o exposer les interfaces de ces services Flex,

o en laissant le conteneur Spring gérer

o leurs instanciations,

o leurs configurations,

o le cycle de vie de leurs implémentations

o leurs sécurité,

o leurs aspects (transactionels …)

Page 83: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Messaging

Page 84: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Channels

Flex client

Servlet-based endpoints

AMF Endpoint

HTTPEndpoint

StreamingAMFEndpoint

NIO-based endpoints

NIOAMFEndpoint

NIOHTTPEndpoint

RTMPEndpoint

Socket Server (LCDS only)

HTTPProxy

Message

Data Management

Page 85: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Publish/Subscribe Messaging

Message

Service

LiveCycle DS / Blaze DS

Endpoint

PublisherSubscriber

RTMP

AMF

HTTP

Client A

Client B

Client C

Page 86: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Data Push - Messaging

Message

Services

LiveCycle DS / Blaze DS

Adapter Y

Adapter X

Messaging

System Y

Messaging

System X

EndpointJMS

ProviderJMS Adapter

PublisherSubscriber

RTMP

AMF

HTTP

Page 87: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Data ManagementServices

Page 88: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Data Management Services

LiveCycle Data Services

DataService DAOObject

Adapter

HibernateAdapter

JDBCAdapter

Hibernate

RDBMS

CFCAdapter ColdFusion

Endpoint

Client A

Client B

Client C

Page 89: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Data Management Benefits

1. Automatic Client to Middle-Tier Synchronization Change Tracking

Automatic invocation of remote services

1. Highlander Principle: there is only one instance of a given entity in memory at any given time

2. Conflict resolution

3. Offline Synchronization (thanks to Adobe AIR)

4. Lazy loading

5. Paging

6. Cross-client synchronization

Page 90: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Today’s LiveCycle Data Services

Flex Client Flex Client Flex Client

LCDS

Java Classes

•Thing1.class•Thing2.class•Thing3.class

Page 91: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Tomorrow’s LiveCycle Data Services

LCDS

NET

•??.???•??.???•??.???

Java Classes

•Thing1.class•Thing2.class•Thing3.class

.NET C# Classes

•Thing1.dll•Thing2.dll•Thing3.dll

IIS Plugin•.NET Remoting•Messaging•MSMQ Messaging

.NET Adapter•Remoting•Messaging•Data Mgmt

.NET

Ada

pter

Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client

Page 92: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Tomorrow’s LiveCycle Data Services

LCDS

NET

•??.???•??.???•??.???

Java Classes

•Thing1.class•Thing2.class•Thing3.class

.NET C# Classes

•Thing1.dll•Thing2.dll•Thing3.dll

IIS Plugin•.NET Remoting•Messaging•MSMQ Messaging

.NET Adapter•Remoting•Messaging•Data Mgmt

.NET

Ada

pter

Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client

Page 93: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Native Java Client

Java calling of remoting and messagingdestinations

Full Java implementations of:

RemoteObject

Producer

Consumer

Channel implementations, etc.

Includes support for native Android applications

Page 94: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Tomorrow’s LiveCycle Data Services

LCDS

NET

•??.???•??.???•??.???

Java Classes

•Thing1.class•Thing2.class•Thing3.class

.NET C# Classes

•Thing1.dll•Thing2.dll•Thing3.dll

IIS Plugin•.NET Remoting•Messaging•MSMQ Messaging

.NET Adapter•Remoting•Messaging•Data Mgmt

.NET

Ada

pter

Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client

Page 95: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

HTML5/JavaScript Client

JavaScript calling of remoting and messagingdestinations without using Flash

Utilizes HTML5 WebSockets

Full JavaScript implementations of:

RemoteObject

Producer

Consumer

Channel implementations, etc.

Page 96: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Tomorrow’s LiveCycle Data Services

LCDS

NET

•??.???•??.???•??.???

Java Classes

•Thing1.class•Thing2.class•Thing3.class

.NET C# Classes

•Thing1.dll•Thing2.dll•Thing3.dll

IIS Plugin•.NET Remoting•Messaging•MSMQ Messaging

.NET Adapter•Remoting•Messaging•Data Mgmt

.NET

Ada

pter

Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client

Page 97: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Native Objective C Client

oObjective C calling of remoting and messagingdestinations

oMacOSX and iOS client support

oFull Objective C implementations of:

o RemoteObject

o Producer

o Consumer

o Channel implementations – at least one polling and one real-time.

Page 98: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

iOS APN Push Notifications and Multitasking

oApple push notifications are used by iPhone, iPadand iPod Touch (iOS 3.x and higher)

oLCDS/Server-generated notifications to iOS applications

oNotifications: Badges, sounds and custom text alerts

oRespectful of Apple’s rules about message size, type, frequency, etc.

o iSO Multitasking support (iOS 4.x and higher):

oConvenience client-side functions are provided to handle various multitasking-related events such as when iOS shuts down an app. Functions handle clean disconnects, server notification of disconnect, etc.

Page 99: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

LCDS NEXT

LiveCycle Data Services

Devices & Clients <HTML>JavaScript / AJAXiOS

preview in January 2011

Page 100: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

JEEintegration sample ?

Page 101: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

101

Multiscreen and Modular Flex Application making

o Demo

Mobile Application Desktop Browser Application

Page 102: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

IOC, utilities

oIoCoSpringoParsley

oUtilitieso Leverage JEEo Java OSS (Apache, Codehaus, Spring, JBoss, etc..)o Spicelib, KapInspect, Thunderbold, Cairngorm3

102

Page 103: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Project setup and structure : Best Practice sample : Todo-Max

103

JVM - JBoss/JEE application server[ Web container, Transaction Manager, JMX, AOP, Cache, JNDI, Logging support)

todo_webapp (war)Spring[Micro Container, IOC, AOP, Security, LCDS integration support]

todo_java_flex_service (jar)

NIO ServerFlex-Data ManagementFlex-Messaging Flex-Remoting

todo_java_persistence (jar)JPA (Hibernate)

Dozer [CRM and CTI entity 2 DTOs mapper]

Flash Player

Dev/CI/QA/Stage/Prod Parameters : JNDI

Page 104: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Use this Sample app as a skeleton

104

JVM - JBoss/JEE application server

todo_webapp (war)

Spring

todo_java_service (jar)

NIO ServerFlex-Data ManagementFlex-Messaging Flex-Remoting

todo_java_crm (jar)

JCO

Dozer [CRM and CTI entity 2 DTOs mapper]

Flash Player

Dev/CI/QA/Stage/Prod Parameters : JNDI

JVM - JBoss/JEE application server

Spring

todo_java_service (jar)

NIO ServerFlex-Data ManagementFlex-Messaging Flex-Remoting

todo_java_persistence (jar)

JPA (Hibernate)

Dozer [CRM and CTI entity 2 DTOs mapper]

Flash Player

Dev/CI/QA/Stage/Prod Parameters : JNDI

todo_webapp (war)

Page 105: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

105

Multiscreen and Modular Flex Application making

o Todo Application Architecture

todo_flex_core

Parsley

Spicelib

todo_flex_remoting_dto

Common domain objects

Cairngorm 3 Module

Common infrastructure components

Common application layer (controllers, tasks, commands, ...)

todo_flex_shell todo_flex_android

todo_flex_todolist

todo_flex_todolist_lib

Cairngorm 3 Integration

Presentation layer

Presentation layer

Application layer

Domain layer

Infrastructure layer

Page 106: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Demo

106

Demo

Page 107: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Software factory ?

Page 108: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Software factoryAutomation for the People (because Everybody Doing It Manually Hurts)

108

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

Changelist/ Jobs

Tasks / Bug Tracking

Server

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

SCMswc,swf, jar,war

push & pulldeploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

Build

Page 109: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 109

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

• Jira / RallyDev / others

• Perforce / SVN / Git / others

• Bridge /Connect them• Automate the creation of Perforce jobs (svn changelist) associated with Bug fixes• Ease your integration, branch management,

• Ease release managament, by keeping your scm tags and Jira versioning in synch• Release notes automation

SCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

Page 110: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 110

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCMContinuousIntegration

Server

Software factoryAutomation for the People (because Everybody Doing It Manually Hurts)

Page 111: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 111

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

SCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

Dep

ende

ncie

sCh

ecks

• Ant + Ivy• Maven• Graddle• …

Build

Page 112: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 112

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

Dep

ende

ncie

sCh

ecks

• Dependency Management• Scope• Transitivity• Profile

• One common artefacts (swc, swf, jar, war, ear) repository• proxy, hosted, grouped repositories

Page 113: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 113

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

RepositoryServer

Codi

ngRu

lesC

heck

s

• PMD for java• http://pmd.sourceforge.net/

• FlexPMD for AS3/Flex• http://sourceforge.net/adobe/flexpmd/home/• FlexPMD: Your Canary in a Coal Mine – MAX 2010

Page 114: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Software factoryAutomation for the People (because Everybody Doing It Manually Hurts)

114

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

Com

pila

tion

Pack

agin

g

Uni

t tes

t

• javac, mxmlc• JUnit/TestNG, FlexUnit4• swc, swf ,jar ,war ,ear ,zip ,etc

Page 115: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 115

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

• Maven• Ant + Ivy• Graddle• BuildR• EasyAnt• Ant• Make

RepositoryServer

Dep

loym

ent

• Automated deployment on • Artefacts repository (for developers, for dependent projects)• CI test server (for developers’s check, automated functionaltesting)• QA test servers

• On demand for Release Candidate smoke test• UX review & Product review

• Test, stage and production ready deployment• Externalized configuration (jndi)• Profiled build (when platform dependent)

Page 116: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Software factoryAutomation for the People (because Everybody Doing It Manually Hurts)

116

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

RepositoryServer

• javac, mxmlc• JUnit/TestNG, FlexUnit4• swc, swf ,jar ,war ,ear ,zip ,etc

Aut

omat

edTe

sts

• Automated Functional Test• RIATest : http://www.riatest.com• FlexMonkey• QTP

• Leveraging the Flex SDK automation framework

Page 117: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Software factoryAutomation for the People (because Everybody Doing It Manually Hurts)

117

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

• Maven• Ant + Ivy• Graddle• BuildR• EasyAnt• Ant• Make

RepositoryServer

• javac, mxmlc• JUnit/TestNG, FlexUnit4• swc, swf ,jar ,war ,ear ,zip ,etc

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

• Developer docs : • Compilation reports• Javadoc, ASdoc

• Dev/QA docs• Unit Test reports • Test Coverage reports• PMD reports• Dependencies• Dependency convergent reports• etc …

Page 118: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Software factoryAutomation for the People (because Everybody Doing It Manually Hurts)

118

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

RepositoryServer

CI & QA Test Servers Quality & Doc Servers

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

swc,swf, jar,warpush & pull

deploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

BuildSCM

Changelist/ Jobs

Tasks / Bug Tracking

Server

SCM

RepositoryServer

• javac, mxmlc• JUnit/TestNG, FlexUnit4• swc, swf ,jar ,war ,ear ,zip ,etc

Qua

lity

Das

hboa

rd

• Quality Dashboard• Sonar : http://www.sonarsource.org/• Home made• Others

Page 119: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Tasks / Bug Tracking

Server

CI & QA Test Servers Quality & Doc Servers

119

Dep

ende

ncie

sCh

ecks

Com

pila

tion

Codi

ngRu

lesC

heck

s

Dep

loym

ent

Pack

agin

g

Uni

t tes

t

Java

Doc

s, A

SDoc

s,

Qua

lity

Repo

rts

Aut

omat

edTe

sts

ContinuousIntegration

Server

ModificationChecks

Trigger

Qua

lity

Das

hboa

rd

Changelist/ Jobs

RepositoryServer

Local Builds and Local App

Servers

Product Owner / User Champions / UX Designer

QA Engineers

SCMswc,swf, jar,war

push & pulldeploy

Update & CommitUpdate

Fetch swc,swf,jarand war

Checks/Notifications

Flex & Java Developers

Smoke / AcceptanceTest s

Func. and UX Feedbacks

Checks & Tests

Build

• Aim for a full IDE integration :• Plugins

•Mylin, hudson, SCM, FlexPMD, FlexFormatter, FlexUnit, CodeCoverage, etc…

• Shared properties and configuration• Scripts

Product Owner / User Champions / UX Designer

QA EngineersFlex & Java Developers

Page 120: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 120

References

Page 121: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved. 121

Books /Articles« Effective Java: Programming Language Guide », Joshua Bloch« OO Design Quality Metrics », Robert Martin

http://www.octo.com/Java-Productivity-Primer.10/Publicationshttp://lil.univ-littoral.fr/~oumoumsack/qualite/http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdfhttp://www.infoq.com/presentations/effective-api-designhttp://www.infoq.com/news/Ken-Schwaber-Sacrificing-Qualityhttp://www.quotegarden.com/programming.htmlhttp://www.slideshare.net/francois.le.droff/solutions-linux2008-construire-sa-vision-qualitehttp://www.slideshare.net/francoisledroff/flex-continuous-quality-builds-flex-ant-mavenhttp://www.slideshare.net/francoisledroff/tesytquality-best-practices-toolkit-for-enterprise-flex

Photo /Graphicshttps://duke.dev.java.net/images/comfyChair/index.htmlhttp://blog.theflashblog.com/?p=2436http://www.riagora.com/http://coenraets.org/blog/

Blogs:http://blog.theflashblog.com/?p=2436http://www.riagora.com/http://coenraets.org/blog/

ToolsCairngorm: https://sourceforge.net/adobe/cairngorm/home/FlexUnit: http://flexunit.org/Parsley/Spicelib: http://www.spicefactory.orgKapInsect: http://lab.kapit.fr/display/kapinspect/Kap+InspectThunderbolt: http://github.com/sectore/ThunderBoltAS3Flexlib: http://code.google.com/p/flexlib/FlexPMD: https://sourceforge.net/adobe/flexpmd/home/Ant: http://ant.apache.org/Maven: http://maven.apache.org/Ivy: http://www.jaya.free.fr/ivy/Sonar: http://www.sonarsource.org/PMD: http://pmd.sourceforge.net/Spring: http://www.springsource.org/JBoss: http://www.jboss.orgDozer: http://dozer.sourceforge.net/

Adobe DocsActionScript Developer Site-http://www.adobe.com/devnet/actionscript/Flex Developer Site -http://www.adobe.com/devnet/flex/documentation.htmlLCDS Doc Site -http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/help.html?content=lcconfig_4.html

References

Page 122: Soirée Flex/RIA au Nantes jug

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Questions ?