Post on 10-May-2015
description
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 ?