soirée flex/ria au nantes jug

Post on 10-May-2015

1.739 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Soirée Flex & RIANantes 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>

© 2010 Adobe Systems Incorporated. All Rights Reserved. 3

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

RIA?

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Sexy and funkyapplications !

© 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

© 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.

© 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

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

NATO

© 2010 Adobe Systems Incorporated. All Rights Reserved.

11

®

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

NATO

© 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.

© 2010 Adobe Systems Incorporated. All Rights Reserved. 13

Hendrix

© 2010 Adobe Systems Incorporated. All Rights Reserved. 14

o Before

Hendrix

© 2010 Adobe Systems Incorporated. All Rights Reserved.

o After

15

Hendrix

© 2010 Adobe Systems Incorporated. All Rights Reserved. 16

Hendrix: APIs , UIs, avoid unnecessary complexity and training

© 2010 Adobe Systems Incorporated. All Rights Reserved.

First-class interfaces

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Productive users Productive developers

Productivity by Design

Productivity by design

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Flash?

© 2010 Adobe Systems Incorporated. All Rights Reserved.

FLASH PLAYER 10.1

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Consumer Electronics

Personal Computers

Mobile Phones

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

Partenaires technologiques

Open Screen Project

Diffuseurs de contenu

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Flash Player 10.1

Flash Player 10.1

Google TV

© 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

© 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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

AIR ?

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE AIR 2.0

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE AIR 2.0

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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE AIR 2.0

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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

DETECT AND BROWSE

USB STORAGE

© 2010 Adobe Systems Incorporated. All Rights Reserved.

UDP Network Protocols

PEER 2 PEER

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Documents and Processes

OS INTEGRATION

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

Demos

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Flex ?

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

© 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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

OLD COMPONENT MODEL

FLEX FRAMEWORK 3

GraphicsLayoutAnimationPartsStatesBehaviorLogicData

Component / Skin

© 2010 Adobe Systems Incorporated. All Rights Reserved.

SPARK COMPONENT MODEL

FLEX FRAMEWORK 4

ActionScript MXML

GraphicsLayout

AnimationPartsStates

Component Skin

CSS properties

BehaviorLogic

Data

© 2010 Adobe Systems Incorporated. All Rights Reserved.

SPARK COMPONENT THEME

FLEX FRAMEWORK 4

© 2010 Adobe Systems Incorporated. All Rights Reserved.

NEW VIDEO COMPONENT

FLEX FRAMEWORK 4

© 2010 Adobe Systems Incorporated. All Rights Reserved.

TEXT LAYOUT FRAMEWORK SUPPORT

FLEX FRAMEWORK 4

© 2010 Adobe Systems Incorporated. All Rights Reserved.

NEW STATES MODEL

FLEX FRAMEWORK 4

© 2010 Adobe Systems Incorporated. All Rights Reserved.

NEW LAYOUT MODEL

FLEX FRAMEWORK 4

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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

OLD MX COMPONENTS

FLEX FRAMEWORK 4

http://tinyurl.com/notspark

© 2010 Adobe Systems Incorporated. All Rights Reserved.

HTML5 ?

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

&

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

HTTP Request& WebServices

© 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)

© 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>

© 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>

© 2010 Adobe Systems Incorporated. All Rights Reserved.

AMFPublished in December 2007

XML5000 rows ?1.1Mo 29Ko

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Remoting AMF

© 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…

© 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…

© 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.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Java and ActionScript value objects

Java VO ActionScript VO

© 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

© 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()

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Spring BlazeDS Integration

© 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 …)

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Messaging

© 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

© 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

© 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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

ADOBE FLEX 4

Data ManagementServices

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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.

© 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

© 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.

© 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.

© 2010 Adobe Systems Incorporated. All Rights Reserved.

LCDS NEXT

LiveCycle Data Services

Devices & Clients <HTML>JavaScript / AJAXiOS

preview in January 2011

© 2010 Adobe Systems Incorporated. All Rights Reserved.

JEEintegration sample ?

© 2010 Adobe Systems Incorporated. All Rights Reserved.

101

Multiscreen and Modular Flex Application making

o Demo

Mobile Application Desktop Browser Application

© 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

© 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

© 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)

© 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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Demo

106

Demo

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Software factory ?

© 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

© 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

© 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)

© 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

© 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

© 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

© 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

© 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)

© 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

© 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 …

© 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

© 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

© 2010 Adobe Systems Incorporated. All Rights Reserved. 120

References

© 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

© 2010 Adobe Systems Incorporated. All Rights Reserved.

Questions ?

top related