Date post: | 10-May-2015 |
Category: |
Technology |
Upload: | francois-le-droff |
View: | 4,207 times |
Download: | 2 times |
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Flex & LCDS Best Practices from the Trenches
Technology & Experience Innovation
François Le Droff | Senior Computer Scientist Yaniv De Ridder | Senior Computer Scientist
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
François Le Droff
o “Just another Java guy” (doing Flex)
o +11 years in web 1+n.0 o Open Source So"ware Geek :
o FlexPMD, Cairngorm
o Ossgtp, ParisJUG, et TTFX
o French JUGs, MAX, et Solution Linux
o h#p://www.droff.com
o h#p://blogs.adobe.com/francoisledroff/ o h#p://twi#er.com/francoisledroff
o ledroff<at>adobe.com
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Yaniv De Ridder
o Flash Platform Expert
o 9+ years in front-end development
o h#p://blogs.adobe.com/yderidder/
o h#p://twi#er.com/yderidder/
o yderidde<at>adobe.com
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
Hendrix : Helping more customers, "rst time, in less time. Every time.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Flex & LCDS Best Practices from the Trenches
5
o Meet Hendrix
o Architecture
o Encapsulation, Separation of Concerns
o API, API, API
o Exception Handling
o LCDS Messaging & CTI Best Practices
o Distributed Agile Offshore Processes
o So"ware Factory
Demo
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6
One hour is not enough.
• Whitepapers • Blogposts • Solution accelerators • Open Source Projects
• Cairngorm3 • FlexPMD • etc …
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Key Features
7
Telephony integration Customer Identi!cation & Matching
At A Glance Case History
Selling More Of "e Right Product
Customer Service Process Wizard More to come
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
o 24/7 usage and a minimum speed requirements o Uptime of 99.95%
o 400 concurrent users for the !rst phase o Prepare for more, be scalable
Hendrix : SLA
8
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : SLA & Non Functional Requirements
o Agent hardware & so#ware constraints
o Reusing and leveraging of the legacy systems
o SAP CRM
o Phone, telecom switches and CTI solution
9
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
User CTI Phone
Call
cent
er h
#p p
roxy
VOIP
Internet Browser
Flash Player
Hendrix Flash application
User Desktop
AMF
BI (cluster/group)
Server 3.1
Server 3.2
Server 3.3
…
Server 3.p
ECC (cluster/group)
Server 2.1
Server 2.2
Server 2.3
…
Server 1.m
CRM (cluster/group)
Server 1.1
Server 1.2
Server 1.3
…
Server 1.n
SAP
TServer Server 2.1
…
Server 1.m
AIL Server Server 1.1
…
Server 1.n
Genesys CTI
PBX PBX PBX PBX
Hendrix JBoss LCDS
Cluster
Server 1.2
Server 1.3
…
Server 1.n
Hendrix
Load
Bal
ance
r
AIL - RMI – TCP/IP
JCO - JNI – TCP/IP
Hendrix: Physical Architecture
Adobe Dylan ColdFusion Product Catalog
Adobe Content Publishing System RSS / HTTPS
Serial Number Server
Adobe LiveCycle Collaboration Service RTMPS/RTMFP
AMF
Hendrix AIR application
User Desktop
Hendrix AIR application
User Mobile Phone
AMF
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11
Architecture Best Practices
Encapsulation, Separation of Concern
Make things as inaccessible as possible
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix Middleware Projects
12
JVM - JBoss/JEE application server [ Web container, Transaction Manager, JMX, AOP, Cache, JNDI, Logging support)
hendrix_webapp (war)
Flash Player
Spring [Micro Container, IOC, AOP, Security, LCDS integration support]
NIO Server Flex-Data Management Flex-Messaging Flex-Remoting
hendrix_java_cti (jar)
Genesys AIL SDK
hendrix_java_cat (jar)
AMF/HTTP
hendrix_java_service_api (jar)
Dev/CI/QA/Stage/Prod Parameters : JNDI
Dozer [CRM and CTI entity 2 DTOs mapper]
hendrix_java_core_service (jar)
hendrix_java_crm (jar)
JCO
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 13
Hendrix Flex Projects
o Hendrix High level Architecture with Cairngorm 3
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
IOC, utilities
o IoC o Spring o Parsley
o Utilities o Leverage JEE o Java OSS (Apache, Codehaus, Spring, JBoss, etc..) o Spicelib, KapInspect, $underbold, Cairngorm3
14
Cairngorm 3 ≠ Cairngorm 2
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 15
Multiscreen and Modular Flex Application making
o Demo
Mobile Application Desktop Browser Application
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Project setup and structure : Best Practice sample : Todo-Max
16
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_$ex_service (jar)
NIO Server Flex-Data Management Flex-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. Adobe Confidential.
Use this Sample app as a skeleton
17
JVM - JBoss/JEE application server
todo_webapp (war)
Spring
todo_java_service (jar)
NIO Server Flex-Data Management Flex-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 Server Flex-Data Management Flex-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. Adobe Confidential. 18
Multiscreen and Modular Flex Application making
o Todo Application Architecture
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Demo
19
Demo
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
API, API, API
20 15 Sept 2009 Contrôle Qualité Open Source
✔ Programming is pusblishing (an API)
✔ A Quality API :
✔ Simple ✔ Addictive
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
BI (cluster/group) Server 3.1
Server 3.2
Server 3.3
…
Server 3.p
ECC (cluster/group) Server 2.1
Server 2.2
Server 2.3
…
Server 1.m
CRM (cluster/group) Server 1.1
Server 1.2
Server 1.3
…
Server 1.n
SAP
Adobe Content Publishing System
Adobe Dylan ColdFusion Product Catalog
Hendrix JBoss LCDS
Cluster
Server 1.2
Server 1.3
…
Server 1.n
Hendrix
TServer Server 2.1
…
Server 1.m
AIL Server Server 1.1
…
Server 1.n
Genesys CTI
PBX Lo
ad B
alan
cer
PBX PBX PBX User CTI Phone VOIP
AIL - RMI – TCP/IP
Internet Browser
Flash Player
Hendrix Flash application
User Desktop
Call
cent
er h
#p p
roxy
RSS / HTTPS
AMF / HTTPS
AMF / HTTPS
JCO - JNI – TCP/IP
Hendrix: Physical Architecture
Serial Number Server
Adobe LiveCycle Collaboration Service RTMPS/RTMFP
Hendrix AIR application
User Desktop
Hendrix AIR application
User Mobile Phone
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
o Client-Side API
22
Hendrix Flex Projects
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 23
JVM - JBoss/JEE application server [ Web container, Transaction Manager, JMX, AOP, Cache, JNDI, Logging support)
hendrix_webapp (war) Spring [Micro Container, IOC, AOP, Security, LCDS integration support]
hendrix_java_core_service (jar)
NIO Server Flex-Data Management Flex-Messaging Flex-Remoting
hendrix_java_crm (jar)
JCO
Dozer [CRM and CTI entity 2 DTOs mapper]
Flash Player
hendrix_java_cti (jar)
Genesys AIL SDK
hendrix_java_cat (jar)
AMF/HTTP
hendrix_java_service_api (jar)
Dev/CI/QA/Stage/Prod Parameters : JNDI
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 24
o Before
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
o A#er
25
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 27
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Exception handling
29
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 30
JVM - JBoss/JEE application server [ Web container, Transaction Manager, JMX, AOP, Cache, JNDI, Logging support)
hendrix_webapp (war) Spring [Micro Container, IOC, AOP, Security, LCDS integration support]
hendrix_java_core_service (jar)
NIO Server Flex-Data Management Flex-Messaging Flex-Remoting
hendrix_java_crm (jar)
JCO
Dozer [CRM and CTI entity 2 DTOs mapper]
Flash Player
hendrix_java_cti (jar)
Genesys AIL SDK
hendrix_java_cat (jar)
AMF/HTTP
hendrix_java_service_api (jar)
Dev/CI/QA/Stage/Prod Parameters : JNDI
• Business/System Messages • Error/Warning/Info
• Business/System Exception • Checked/Unchecked
• Messaging Exception • General/Speci!c Code
• ErrorEvent & ErrorManager • Synchronous/Asynchronous • Client/Server roots
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
LCDS Messaging & CTI Best Practices
31
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
CTI pitfalls
• Phone Hardware differences and con%gurations issues • Dev versus Prod • Avaya phone versus Nortel phone
• Load/stress/endurance test early
• Sockets consumptions • ulimit
• $reads consumptions • Use LCDS NIO (or RTMP) channels • Use LCDS Message %ltering • And eventually leverage server side messaging/queueing technology
• JMS / AMQP (MRG)
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
LCDS Real Time Messaging helps
• Reliable Messaging
• Message thro%ling
• Channels and Endpoints –Choices, choices
• Edge Server
• Message "lters
• Message priority
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Distributed Agile Offshore process
34
Paris / Brussels Bucharest USA
Edinburgh
China
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Distributed Agile offshore process
o Don't Underestimate the Culture Gaps
o Separate Scrum teams by functionality not activity
o Collaboratively agree on the De"nition Of Done
o Collaboratively evaluate and manage the technical debt
35
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Distributed Agile offshore process
36
o Get multiple communication modes working early o Expect to need more documents
Use wikis to contain common information
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Distributed Agile offshore process
o Make Short Iterations
o Produce Customer Test Data & Test Scripts Early
o to Help Understand the Requirements
o Use Continuous Integration to
o Avoid Integration Headaches
o Get Early Feedback on Functionality
o Allow Early functional and performance tests
o Monitor your technical debt
37
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Industrialization/Automation
“Because Everybody Doing It Manually Hurts”
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
39
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Changelist/ Jobs
Tasks / Bug Tracking
Server
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
SCM swc,swf, jar,war
push & pull deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
40
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
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 !xes • 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. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
41
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
Changelist/ Jobs
Tasks / Bug Tracking
Server
SCM Continuous Integration
Server
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
42
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
Changelist/ Jobs
Tasks / Bug Tracking
Server
SCM
Dep
ende
ncie
s Ch
ecks
• Dependency Management • Scope • Transitivity • Pro!le
• One common artefacts (swc, swf, jar, war, ear) repository • proxy, hosted, grouped repositories
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
43
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
Changelist/ Jobs
Tasks / Bug Tracking
Server
SCM
Repository Server
Codi
ng R
ules
Che
cks
• PMD for java • h$p://pmd.sourceforge.net/
• FlexPMD for AS3/Flex • h$p://sourceforge.net/adobe/%expmd/home/ • FlexPMD: Your Canary in a Coal Mine – MAX 2010
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
44
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
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. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
45
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
Changelist/ Jobs
Tasks / Bug Tracking
Server
SCM
• Maven • Ant + Ivy • Graddle • BuildR • EasyAnt • Ant • Make
Repository Server
Dep
loym
ent
• Automated deployment on • Artefacts repository (for developers, for dependent projects) • CI test server (for developers’s check, automated functional testing) • QA test servers
• On demand for Release Candidate smoke test • UX review & Product review
• Test, stage and production ready deployment • Externalized con!guration (jndi) • Pro!led build (when platform dependent)
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
46
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
Changelist/ Jobs
Tasks / Bug Tracking
Server
SCM
Repository Server
• javac, mxmlc • JUnit/TestNG, FlexUnit4 • swc, swf ,jar ,war ,ear ,zip ,etc
Auto
mat
ed T
ests
• Automated Functional Test • RIATest : h$p://www.riatest.com • FlexMonkey • QTP
• Leveraging the Flex SDK automation framework
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
47
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
Changelist/ Jobs
Tasks / Bug Tracking
Server
SCM
• Maven • Ant + Ivy • Graddle • BuildR • EasyAnt • Ant • Make
Repository Server
• javac, mxmlc • JUnit/TestNG, FlexUnit4 • swc, swf ,jar ,war ,ear ,zip ,etc
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
• 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. Adobe Confidential.
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
48
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Repository Server
CI & QA Test Servers Quality & Doc Servers
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
swc,swf, jar,war push & pull
deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build SCM
Changelist/ Jobs
Tasks / Bug Tracking
Server
SCM
Repository Server
• javac, mxmlc • JUnit/TestNG, FlexUnit4 • swc, swf ,jar ,war ,ear ,zip ,etc
Qua
lity
Das
hboa
rd
• Quality Dashboard • Sonar : h$p://www.sonarsource.org/ • Home made • Others
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Tasks / Bug Tracking
Server
CI & QA Test Servers Quality & Doc Servers
So#ware factory Automation for the People (because Everybody Doing It Manually Hurts)
49
Dep
ende
ncie
s Ch
ecks
Com
pila
tion
Codi
ng R
ules
Che
cks
Dep
loym
ent
Pack
agin
g
Uni
t tes
t
Java
Doc
s, A
SDoc
s, Q
ualit
y Re
port
s
Auto
mat
ed T
ests
Continuous Integration
Server
Modi!cation Checks
Trigger
Qua
lity
Das
hboa
rd
Changelist/ Jobs
Repository Server
Local Builds and Local App
Servers
Product Owner / User Champions / UX Designer
QA Engineers
SCM swc,swf, jar,war
push & pull deploy
Update & Commit Update
Fetch swc,swf,jar and war
Checks/Noti!cations
Flex & Java Developers
Smoke / Acceptance Test s
Func. and UX Feedbacks
Checks & Tests
Build
• Aim for a full IDE integration : • Plugins
• Mylin, hudson, SCM, FlexPMD, FlexForma$er, FlexUnit, CodeCoverage, etc…
• Shared properties and con!guration • Scripts
Product Owner / User Champions / UX Designer
QA Engineers Flex & Java Developers
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Demo
50
o Streamlining Flex Developement
o So#ware Factory Demo
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 51
One hour was not enough, but
But we’ll publish/release :
o Uni!ed Agent desktop Solution Accelerator o LCDS SAP connector o LCDS Remote Data Management o Spring-Flex NIO support o Whitepapers & blogpost on
o Multiscreen app making o so&ware factory o Security & sso
And we already published o Cairngorm 3 libraries and guidelines o Cairngorm 3 todo max sample o Devnet articles
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 52
References
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 53
Books /Articles « Effective Java: Programming Language Guide », Joshua Bloch « OO Design Quality Metrics », Robert Martin
h$p://www.octo.com/Java-Productivity-Primer.10/Publications h$p://lil.univ-li$oral.fr/~oumoumsack/qualite/ h$p://www.objectmentor.com/resources/articles/Principles_and_Pa$erns.pdf h$p://www.infoq.com/presentations/effective-api-design h$p://www.infoq.com/news/Ken-Schwaber-Sacri!cing-Quality h$p://www.quotegarden.com/programming.html h$p://www.slideshare.net/francois.le.droff/solutions-linux2008-construire-sa-vision-qualite h$p://www.slideshare.net/francoisledroff/%ex-continuous-quality-builds-%ex-ant-maven h$p://www.slideshare.net/francoisledroff/tesytquality-best-practices-toolkit-for-enterprise-%ex
Photo /Graphics h$ps://duke.dev.java.net/images/comfyChair/index.html h$p://www.%ickr.com/photos/purplema$!sh/3918004964/ h$p://www.%ickr.com/photos/lesloups/1907354379/ h$p://www.%ickr.com/photos/summachphoto/3380254405/in/pool- shocking#/photos/summachphoto/3380254405/in/pool-566250@N24/ h$p://www.%ickr.com/photos/slimcoincidence/594599028/ h$p://www.%ickr.com/photos/sea$lemunicipalarchives/2680257100/sizes/o/in/photostream/
Tools Cairngorm: h$ps://sourceforge.net/adobe/cairngorm/home/ FlexUnit: h$p://%exunit.org/ Parsley/Spicelib: h$p://www.spicefactory.org KapInsect: h$p://lab.kapit.fr/display/kapinspect/Kap+Inspect "underbolt: h$p://github.com/sectore/"underBoltAS3 Flexlib: h$p://code.google.com/p/%exlib/ FlexPMD: h$ps://sourceforge.net/adobe/%expmd/home/ Ant: h$p://ant.apache.org/ Maven: h$p://maven.apache.org/ Ivy: h$p://www.jaya.free.fr/ivy/ Sonar: h$p://www.sonarsource.org/ PMD: h$p://pmd.sourceforge.net/ Spring: h$p://www.springsource.org/ JBoss: h$p://www.jboss.org Hibersap: h$p://hibersap.sourceforge.net/ Dozer: h$p://dozer.sourceforge.net/
Adobe Docs ActionScript Developer Site- h$p://www.adobe.com/devnet/actionscript/ Flex Developer Site - h$p://www.adobe.com/devnet/%ex/documentation.html LCDS Doc Site - h$p://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/help.html?content=lccon!g_4.html
References
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Turn in your Surveys for a chance to WIN!
o Hand in your surveys to the room monitors
o One survey will be selected as a winner of the Adobe Press e-book
Adobe Flash Platform from Start to Finish: Working Collaboratively Using Adobe Creative Suite 5
o Winners will be noti"ed via e-mail at the end of each day
54
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Questions ?
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Appendix
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware Factory: Demo
57
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware Factory: Demo
58
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
So#ware Factory: Demo
59
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 60
Streamline Flex Development
o Project con"gurations
o Use Linked Resources
o Use external con%guration %le for additional compiler arguments
o Link your bin folder to a deployed server folder
o Don’t mix project nature
o Use multiple source path folders
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 61
o Use Linked Resources
o Avoid absolute paths in con%guration %les
o De%ne a Linked Resource
o How to use the variables in the different con%guration %les
o .actionscriptProperties
o .project
<libraryPathEntry kind="3" linkType="1" path="/Users/yaniv/Developer/Repositories/todo_max/todo_flex_todolist_lib/bin/todo_flex_todolist_lib.swc" useDefaultLinkType="false"/>
Streamline Flex Development
<libraryPathEntry kind="3" linkType="1" path="${M2_REPO}/org/spicefactory/parsley-flex4/2.3.1/parsley-flex4-2.3.1.swc" useDefaultLinkType="false"/>
<locationURI>TODO_BLZ_KISS/bin</locationURI>
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 62
Streamline Flex Development
o Use external con"guration "le for additional compiler arguments
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 63
Streamline Flex Development
o Don’t mix project nature
<natures> <nature>com.adobe.flexbuilder.project.flexnature</nature> <nature>com.adobe.flexbuilder.project.actionscriptnature</nature> <nature>com.adobe.ac.pmd.eclipse.flexpmdnature</nature> <nature>org.eclipse.wst.common.project.facet.core.nature</nature> </natures>
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 64
Streamline Flex Development
o Link your bin folder to a deployed server folder
<compiler outputFolderLocation="${TODO_BLZ_KISS}/bin" outputFolderPath="bin-debug">
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 65
Streamline Flex Development
o Point your compiler to the right service-con"g.xml
o Use the -services compiler argument
o Use the <services> tag in the additional compiler arguments
-service "${TODO_BLZ_KISS}/WEB-INF/flex/services-config.xml"
<!-- compiler.services: path to Flex Data Services configuration file--> <services>${TODO_BLZ_KISS}/WEB-INF/flex/services-config.xml</services>
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 66
Streamline Flex Development
o Use multiple source path folders for
o Unit Tests / Integration Tests
o Resources
o Monkey-patching
o ...