SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
© 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 Software Geek :
o  FlexPMD, Cairngorm
o  Ossgtp, ParisJUG, et TTFX
o  French JUGs, MAX, et Solution Linux
o  http://www.droff.com
o  http://blogs.adobe.com/francoisledroff/
o  http://twitter.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  http://blogs.adobe.com/yderidder/
o  http://twitter.com/yderidder/
o  yderidde<at>adobe.com
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
Hendrix : Helping more customers, first 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  Software 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 Identification &
Matching
At A Glance Case History
Selling More Of The 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 first 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 & software 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
Callcenterhttpproxy
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
PBXPBX PBX PBX
Hendrix
JBoss LCDS
Cluster
Server 1.2
Server 1.3
…
Server 1.n
Hendrix
LoadBalancer
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, Thunderbold, 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_flex_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
2015 Sept 2009Contrô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
LoadBalancer
PBX PBX PBX
User CTI
PhoneVOIP
AIL - RMI – TCP/IP
Internet Browser
Flash Player
Hendrix Flash application
User Desktop
Callcenterhttpproxy
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  After
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/Specific 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 configurations issues
•  Dev versus Prod
•  Avaya phone versus Nortel phone
•  Load/stress/endurance test early
•  Sockets consumptions
•  ulimit
•  Threads consumptions
•  Use LCDS NIO (or RTMP) channels
•  Use LCDS Message filtering
•  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 throttling
•  Channels and Endpoints –Choices, choices
•  Edge Server
•  Message filters
•  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 Definition 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.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
39
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
Flex & Java
Developers
Smoke / Acceptance
Test s
Func. and UX Feedbacks
Checks & Tests
Build
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
40
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
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 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. Adobe Confidential.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
41
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
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.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
42
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
Flex & Java
Developers
Smoke / Acceptance
Test s
Func. and UX Feedbacks
Checks & Tests
Build
SCM
Changelist
/ Jobs
Tasks /
Bug Tracking
Server
SCM
Dependencies
Checks
•  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. Adobe Confidential.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
43
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
Flex & Java
Developers
Smoke / Acceptance
Test s
Func. and UX Feedbacks
Checks & Tests
Build
SCM
Changelist
/ Jobs
Tasks /
Bug Tracking
Server
SCM
Repository
Server
CodingRulesChecks
•  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. Adobe Confidential.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
44
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
Flex & Java
Developers
Smoke / Acceptance
Test s
Func. and UX Feedbacks
Checks & Tests
Build
SCM
Changelist
/ Jobs
Tasks /
Bug Tracking
Server
SCM
Compilation
Packaging
Unittest
•  javac, mxmlc
• JUnit/TestNG, FlexUnit4
• swc, swf ,jar ,war ,ear ,zip ,etc
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
45
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
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
Deployment
•  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 configuration (jndi)
• Profiled build (when platform dependent)
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
46
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
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
AutomatedTests
• Automated Functional Test
• RIATest : http://www.riatest.com
• FlexMonkey
• QTP
• Leveraging the Flex SDK automation framework
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
47
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
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
JavaDocs,ASDocs,
QualityReports
• 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.
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
48
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
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
QualityDashboard
• Quality Dashboard
• Sonar : http://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
Software factory
Automation for the People (because Everybody Doing It Manually Hurts)
49
Dependencies
Checks
Compilation
CodingRulesChecks
Deployment
Packaging
Unittest
JavaDocs,ASDocs,
QualityReports
AutomatedTests
Continuous
Integration
Server
Modification
Checks
Trigger
QualityDashboard
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 &
CommitUpdate
Fetch swc,swf,jar
and war
Checks/Notifications
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,
FlexFormatter, FlexUnit,
CodeCoverage, etc…
• Shared properties and configuration
• 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  Software Factory Demo
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 51
One hour was not enough, but
But we’ll publish/release :
o Unified 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 software 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
http://www.octo.com/Java-Productivity-Primer.10/Publications
http://lil.univ-littoral.fr/~oumoumsack/qualite/
http://www.objectmentor.com/resources/articles/
Principles_and_Patterns.pdf
http://www.infoq.com/presentations/effective-api-design
http://www.infoq.com/news/Ken-Schwaber-Sacrificing-Quality
http://www.quotegarden.com/programming.html
http://www.slideshare.net/francois.le.droff/solutions-linux2008-
construire-sa-vision-qualite
http://www.slideshare.net/francoisledroff/flex-continuous-quality-
builds-flex-ant-maven
http://www.slideshare.net/francoisledroff/tesytquality-best-
practices-toolkit-for-enterprise-flex
Photo /Graphics
https://duke.dev.java.net/images/comfyChair/index.html
http://www.flickr.com/photos/purplemattfish/3918004964/
http://www.flickr.com/photos/lesloups/1907354379/
http://www.flickr.com/photos/summachphoto/3380254405/in/
pool- shocking#/photos/summachphoto/3380254405/in/
pool-566250@N24/
http://www.flickr.com/photos/slimcoincidence/594599028/
http://www.flickr.com/photos/seattlemunicipalarchives/
2680257100/sizes/o/in/photostream/
Tools
Cairngorm: https://sourceforge.net/adobe/cairngorm/home/
FlexUnit: http://flexunit.org/
Parsley/Spicelib: http://www.spicefactory.org
KapInsect: http://lab.kapit.fr/display/kapinspect/Kap+Inspect
Thunderbolt: http://github.com/sectore/ThunderBoltAS3
Flexlib: 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.org
Hibersap: http://hibersap.sourceforge.net/
Dozer: http://dozer.sourceforge.net/
Adobe Docs
ActionScript Developer Site- http://www.adobe.com/devnet/
actionscript/
Flex Developer Site -
http://www.adobe.com/devnet/flex/documentation.html
LCDS 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. 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 notified 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.
Software Factory: Demo
57
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software Factory: Demo
58
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software Factory: Demo
59
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 60
Streamline Flex Development
o  Project configurations
o  Use Linked Resources
o  Use external configuration file 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 configuration files
o  Define a Linked Resource
o  How to use the variables in the different configuration files
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 configuration file 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-config.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  ...

Contenu connexe

En vedette

Chapter 3 - Multimedia System Design
Chapter 3 - Multimedia System DesignChapter 3 - Multimedia System Design
Chapter 3 - Multimedia System DesignPratik Pradhan
 
Principles Of Multimedia
Principles Of MultimediaPrinciples Of Multimedia
Principles Of Multimediadborcoman
 
Design e multimedia
Design  e multimediaDesign  e multimedia
Design e multimediaSandro Lopes
 
Adobe photoshop cc - session1
Adobe photoshop cc - session1Adobe photoshop cc - session1
Adobe photoshop cc - session1Ahmed Mousa
 
Introduction to Multimedia Design and Development
Introduction to Multimedia Design and DevelopmentIntroduction to Multimedia Design and Development
Introduction to Multimedia Design and DevelopmentNana Kofi Annan PhD
 
7 Multimedia Principles
7 Multimedia Principles7 Multimedia Principles
7 Multimedia Principlesmcennamo
 
Chapter 11 Multimedia Development
Chapter 11 Multimedia DevelopmentChapter 11 Multimedia Development
Chapter 11 Multimedia Developmentshelly3160
 
Advantage and Disadvantages of MULTIMEDIA
Advantage and Disadvantages of MULTIMEDIAAdvantage and Disadvantages of MULTIMEDIA
Advantage and Disadvantages of MULTIMEDIAjopin_5
 
Photoshop tools and their functions
Photoshop tools and their functionsPhotoshop tools and their functions
Photoshop tools and their functionsGener Evangelista
 
Importance of Multimedia
Importance of MultimediaImportance of Multimedia
Importance of MultimediaSaíful Íslam
 
Multimedia presentation
  Multimedia presentation   Multimedia presentation
Multimedia presentation kamalesh2015
 
The photoshop CC book volume 1, 2014
The photoshop CC book volume 1, 2014The photoshop CC book volume 1, 2014
The photoshop CC book volume 1, 2014Vinh Nguyen
 
Importance of multimedia
Importance of multimediaImportance of multimedia
Importance of multimediaOnline
 
Photoshop cc Tutorial
Photoshop cc TutorialPhotoshop cc Tutorial
Photoshop cc TutorialGuru99
 
multimedia technologies Introduction
multimedia technologies Introductionmultimedia technologies Introduction
multimedia technologies IntroductionMohammed Fareed
 
Adobe Photoshop Basics - Session 1
Adobe Photoshop Basics - Session 1Adobe Photoshop Basics - Session 1
Adobe Photoshop Basics - Session 1xneptune
 
Presentation on adobe photoshop® tools
Presentation on adobe photoshop® toolsPresentation on adobe photoshop® tools
Presentation on adobe photoshop® toolsHarshit Dave
 

En vedette (19)

Chapter 3 - Multimedia System Design
Chapter 3 - Multimedia System DesignChapter 3 - Multimedia System Design
Chapter 3 - Multimedia System Design
 
Principles Of Multimedia
Principles Of MultimediaPrinciples Of Multimedia
Principles Of Multimedia
 
Design e multimedia
Design  e multimediaDesign  e multimedia
Design e multimedia
 
Adobe photoshop cc - session1
Adobe photoshop cc - session1Adobe photoshop cc - session1
Adobe photoshop cc - session1
 
Introduction to Multimedia Design and Development
Introduction to Multimedia Design and DevelopmentIntroduction to Multimedia Design and Development
Introduction to Multimedia Design and Development
 
Photo shop cc 2016 PPT
Photo shop cc 2016 PPTPhoto shop cc 2016 PPT
Photo shop cc 2016 PPT
 
7 Multimedia Principles
7 Multimedia Principles7 Multimedia Principles
7 Multimedia Principles
 
Chapter 11 Multimedia Development
Chapter 11 Multimedia DevelopmentChapter 11 Multimedia Development
Chapter 11 Multimedia Development
 
Advantage and Disadvantages of MULTIMEDIA
Advantage and Disadvantages of MULTIMEDIAAdvantage and Disadvantages of MULTIMEDIA
Advantage and Disadvantages of MULTIMEDIA
 
Photoshop tools and their functions
Photoshop tools and their functionsPhotoshop tools and their functions
Photoshop tools and their functions
 
Importance of Multimedia
Importance of MultimediaImportance of Multimedia
Importance of Multimedia
 
Multimedia presentation
  Multimedia presentation   Multimedia presentation
Multimedia presentation
 
The photoshop CC book volume 1, 2014
The photoshop CC book volume 1, 2014The photoshop CC book volume 1, 2014
The photoshop CC book volume 1, 2014
 
Importance of multimedia
Importance of multimediaImportance of multimedia
Importance of multimedia
 
Photoshop cc Tutorial
Photoshop cc TutorialPhotoshop cc Tutorial
Photoshop cc Tutorial
 
multimedia technologies Introduction
multimedia technologies Introductionmultimedia technologies Introduction
multimedia technologies Introduction
 
Adobe Photoshop Basics - Session 1
Adobe Photoshop Basics - Session 1Adobe Photoshop Basics - Session 1
Adobe Photoshop Basics - Session 1
 
Multimedia
MultimediaMultimedia
Multimedia
 
Presentation on adobe photoshop® tools
Presentation on adobe photoshop® toolsPresentation on adobe photoshop® tools
Presentation on adobe photoshop® tools
 

Similaire à Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX 2010)

Soirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugSoirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugFrançois Le Droff
 
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System zSHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System zFilipe Miranda
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFrançois Le Droff
 
IBM Edge2015 Las Vegas
IBM Edge2015 Las VegasIBM Edge2015 Las Vegas
IBM Edge2015 Las VegasFilipe Miranda
 
Clanavi: How to Manage Your Cloud by Drupal
Clanavi: How to Manage Your Cloud by DrupalClanavi: How to Manage Your Cloud by Drupal
Clanavi: How to Manage Your Cloud by DrupalDOCOMO Innovations, Inc.
 
Accelerate your digital transformation
Accelerate your digital transformationAccelerate your digital transformation
Accelerate your digital transformationMichael Dawson
 
Cooking security sans@night
Cooking security sans@nightCooking security sans@night
Cooking security sans@nightjtimberman
 
Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)
Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)
Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)DOCOMO Innovations, Inc.
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsMichael Chaize
 
JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?JBossArchitectForum
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
Adobe jax2010 1_dashboard
Adobe jax2010 1_dashboardAdobe jax2010 1_dashboard
Adobe jax2010 1_dashboardguest9776673
 
Technology And Life
Technology And LifeTechnology And Life
Technology And LifeSunil Swain
 
Technology And Life
Technology And LifeTechnology And Life
Technology And LifeSunil Swain
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overviewabhi1112
 
Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業Andy Hall
 
OpenStack and z/VM – What is it and how do I get it?
OpenStack and z/VM – What is it and how do I get it?OpenStack and z/VM – What is it and how do I get it?
OpenStack and z/VM – What is it and how do I get it?Anderson Bassani
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexMatthias Zeller
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 

Similaire à Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX 2010) (20)

Soirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugSoirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jug
 
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System zSHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
 
IBM Edge2015 Las Vegas
IBM Edge2015 Las VegasIBM Edge2015 Las Vegas
IBM Edge2015 Las Vegas
 
Clanavi: How to Manage Your Cloud by Drupal
Clanavi: How to Manage Your Cloud by DrupalClanavi: How to Manage Your Cloud by Drupal
Clanavi: How to Manage Your Cloud by Drupal
 
Accelerate your digital transformation
Accelerate your digital transformationAccelerate your digital transformation
Accelerate your digital transformation
 
Cooking security sans@night
Cooking security sans@nightCooking security sans@night
Cooking security sans@night
 
Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)
Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)
Clanavi: How to Manage Your Cloud by Drupal (BADCamp 2010)
 
FATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex appsFATC UK - Real time collaborative Flex apps
FATC UK - Real time collaborative Flex apps
 
JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?JBoss Architect Forum London - October 2013 - Platform as a What?
JBoss Architect Forum London - October 2013 - Platform as a What?
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
Adobe jax2010 1_dashboard
Adobe jax2010 1_dashboardAdobe jax2010 1_dashboard
Adobe jax2010 1_dashboard
 
Tizen Window System
Tizen Window SystemTizen Window System
Tizen Window System
 
Technology And Life
Technology And LifeTechnology And Life
Technology And Life
 
Technology And Life
Technology And LifeTechnology And Life
Technology And Life
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
 
Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業
 
OpenStack and z/VM – What is it and how do I get it?
OpenStack and z/VM – What is it and how do I get it?OpenStack and z/VM – What is it and how do I get it?
OpenStack and z/VM – What is it and how do I get it?
 
Developing RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe FlexDeveloping RIAs... 10 reasons to use Adobe Flex
Developing RIAs... 10 reasons to use Adobe Flex
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 

Plus de François Le Droff

Implémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeImplémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeFrançois Le Droff
 
Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014François Le Droff
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresFrançois Le Droff
 
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceSoirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceFrançois Le Droff
 
Quality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexQuality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexFrançois Le Droff
 
Flex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFlex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFrançois Le Droff
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingFrançois Le Droff
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)François Le Droff
 

Plus de François Le Droff (11)

Implémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeImplémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans code
 
Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
 
Flex & Java @ TourJUG
Flex & Java @ TourJUGFlex & Java @ TourJUG
Flex & Java @ TourJUG
 
Flex & Java @ NormandieJUG
Flex & Java @ NormandieJUGFlex & Java @ NormandieJUG
Flex & Java @ NormandieJUG
 
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open sourceSoirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source
 
Quality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexQuality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise Flex
 
Flash Catalyst Jug
Flash Catalyst JugFlash Catalyst Jug
Flash Catalyst Jug
 
Flex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFlex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJug
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex Remoting
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)
 

Dernier

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Dernier (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX 2010)

  • 1. © 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
  • 2. © 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 Software Geek : o  FlexPMD, Cairngorm o  Ossgtp, ParisJUG, et TTFX o  French JUGs, MAX, et Solution Linux o  http://www.droff.com o  http://blogs.adobe.com/francoisledroff/ o  http://twitter.com/francoisledroff o  ledroff<at>adobe.com
  • 3. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Yaniv De Ridder o  Flash Platform Expert o 9+ years in front-end development o  http://blogs.adobe.com/yderidder/ o  http://twitter.com/yderidder/ o  yderidde<at>adobe.com
  • 4. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4 Hendrix : Helping more customers, first time, in less time. Every time.
  • 5. © 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  Software Factory Demo
  • 6. © 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 …
  • 7. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hendrix : Key Features 7 Telephony integration Customer Identification & Matching At A Glance Case History Selling More Of The Right Product Customer Service Process Wizard More to come
  • 8. © 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 first phase o  Prepare for more, be scalable Hendrix : SLA 8
  • 9. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Hendrix : SLA & Non Functional Requirements o  Agent hardware & software constraints o  Reusing and leveraging of the legacy systems o  SAP CRM o  Phone, telecom switches and CTI solution 9
  • 10. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. User CTI Phone Callcenterhttpproxy 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 PBXPBX PBX PBX Hendrix JBoss LCDS Cluster Server 1.2 Server 1.3 … Server 1.n Hendrix LoadBalancer 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
  • 11. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11 Architecture Best Practices Encapsulation, Separation of Concern Make things as inaccessible as possible
  • 12. © 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
  • 13. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 13 Hendrix Flex Projects o  Hendrix High level Architecture with Cairngorm 3
  • 14. © 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, Thunderbold, Cairngorm3 14 Cairngorm 3 ≠Cairngorm 2
  • 15. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 15 Multiscreen and Modular Flex Application making o  Demo Mobile Application Desktop Browser Application
  • 16. © 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_flex_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
  • 17. © 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)
  • 18. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18 Multiscreen and Modular Flex Application making o  Todo Application Architecture
  • 19. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Demo 19 Demo
  • 20. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. API, API, API 2015 Sept 2009Contrôle Qualité Open Source ✔  Programming is pusblishing (an API) ✔  A Quality API : ✔  Simple ✔  Addictive
  • 21. © 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 LoadBalancer PBX PBX PBX User CTI PhoneVOIP AIL - RMI – TCP/IP Internet Browser Flash Player Hendrix Flash application User Desktop Callcenterhttpproxy 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
  • 22. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. o  Client-Side API 22 Hendrix Flex Projects
  • 23. © 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
  • 24. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 24 o  Before
  • 25. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. o  After 25
  • 26. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26
  • 27. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 27
  • 28. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28
  • 29. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Exception handling 29
  • 30. © 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/Specific Code • ErrorEvent & ErrorManager • Synchronous/Asynchronous • Client/Server roots
  • 31. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. LCDS Messaging & CTI Best Practices 31
  • 32. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. CTI pitfalls • Phone Hardware differences and configurations issues •  Dev versus Prod •  Avaya phone versus Nortel phone •  Load/stress/endurance test early •  Sockets consumptions •  ulimit •  Threads consumptions •  Use LCDS NIO (or RTMP) channels •  Use LCDS Message filtering •  And eventually leverage server side messaging/queueing technology • JMS / AMQP (MRG)
  • 33. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. LCDS Real Time Messaging helps •  Reliable Messaging •  Message throttling •  Channels and Endpoints –Choices, choices •  Edge Server •  Message filters •  Message priority
  • 34. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Distributed Agile Offshore process 34 Paris / Brussels Bucharest USA Edinburgh China
  • 35. © 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 Definition Of Done o  Collaboratively evaluate and manage the technical debt 35
  • 36. © 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
  • 37. © 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
  • 38. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Industrialization/Automation “Because Everybody Doing It Manually Hurts”
  • 39. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 39 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications Flex & Java Developers Smoke / Acceptance Test s Func. and UX Feedbacks Checks & Tests Build
  • 40. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 40 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications 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 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
  • 41. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 41 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications 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
  • 42. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 42 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications Flex & Java Developers Smoke / Acceptance Test s Func. and UX Feedbacks Checks & Tests Build SCM Changelist / Jobs Tasks / Bug Tracking Server SCM Dependencies Checks •  Dependency Management • Scope • Transitivity • Profile • One common artefacts (swc, swf, jar, war, ear) repository •  proxy, hosted, grouped repositories
  • 43. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 43 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications Flex & Java Developers Smoke / Acceptance Test s Func. and UX Feedbacks Checks & Tests Build SCM Changelist / Jobs Tasks / Bug Tracking Server SCM Repository Server CodingRulesChecks •  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
  • 44. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 44 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications Flex & Java Developers Smoke / Acceptance Test s Func. and UX Feedbacks Checks & Tests Build SCM Changelist / Jobs Tasks / Bug Tracking Server SCM Compilation Packaging Unittest •  javac, mxmlc • JUnit/TestNG, FlexUnit4 • swc, swf ,jar ,war ,ear ,zip ,etc
  • 45. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 45 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications 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 Deployment •  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 configuration (jndi) • Profiled build (when platform dependent)
  • 46. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 46 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications 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 AutomatedTests • Automated Functional Test • RIATest : http://www.riatest.com • FlexMonkey • QTP • Leveraging the Flex SDK automation framework
  • 47. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 47 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications 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 JavaDocs,ASDocs, QualityReports • Developer docs : • Compilation reports • Javadoc, ASdoc • Dev/QA docs • Unit Test reports • Test Coverage reports • PMD reports • Dependencies • Dependency convergent reports • etc …
  • 48. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 48 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications 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 QualityDashboard • Quality Dashboard • Sonar : http://www.sonarsource.org/ • Home made • Others
  • 49. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Tasks / Bug Tracking Server CI & QA Test Servers Quality & Doc Servers Software factory Automation for the People (because Everybody Doing It Manually Hurts) 49 Dependencies Checks Compilation CodingRulesChecks Deployment Packaging Unittest JavaDocs,ASDocs, QualityReports AutomatedTests Continuous Integration Server Modification Checks Trigger QualityDashboard 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 & CommitUpdate Fetch swc,swf,jar and war Checks/Notifications 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, FlexFormatter, FlexUnit, CodeCoverage, etc… • Shared properties and configuration • Scripts Product Owner / User Champions / UX Designer QA Engineers Flex & Java Developers
  • 50. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Demo 50 o  Streamlining Flex Developement o  Software Factory Demo
  • 51. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 51 One hour was not enough, but But we’ll publish/release : o Unified 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 software factory o Security & sso And we already published o Cairngorm 3 libraries and guidelines o Cairngorm 3 todo max sample o Devnet articles
  • 52. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 52 References
  • 53. © 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 http://www.octo.com/Java-Productivity-Primer.10/Publications http://lil.univ-littoral.fr/~oumoumsack/qualite/ http://www.objectmentor.com/resources/articles/ Principles_and_Patterns.pdf http://www.infoq.com/presentations/effective-api-design http://www.infoq.com/news/Ken-Schwaber-Sacrificing-Quality http://www.quotegarden.com/programming.html http://www.slideshare.net/francois.le.droff/solutions-linux2008- construire-sa-vision-qualite http://www.slideshare.net/francoisledroff/flex-continuous-quality- builds-flex-ant-maven http://www.slideshare.net/francoisledroff/tesytquality-best- practices-toolkit-for-enterprise-flex Photo /Graphics https://duke.dev.java.net/images/comfyChair/index.html http://www.flickr.com/photos/purplemattfish/3918004964/ http://www.flickr.com/photos/lesloups/1907354379/ http://www.flickr.com/photos/summachphoto/3380254405/in/ pool- shocking#/photos/summachphoto/3380254405/in/ pool-566250@N24/ http://www.flickr.com/photos/slimcoincidence/594599028/ http://www.flickr.com/photos/seattlemunicipalarchives/ 2680257100/sizes/o/in/photostream/ Tools Cairngorm: https://sourceforge.net/adobe/cairngorm/home/ FlexUnit: http://flexunit.org/ Parsley/Spicelib: http://www.spicefactory.org KapInsect: http://lab.kapit.fr/display/kapinspect/Kap+Inspect Thunderbolt: http://github.com/sectore/ThunderBoltAS3 Flexlib: 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.org Hibersap: http://hibersap.sourceforge.net/ Dozer: http://dozer.sourceforge.net/ Adobe Docs ActionScript Developer Site- http://www.adobe.com/devnet/ actionscript/ Flex Developer Site - http://www.adobe.com/devnet/flex/documentation.html LCDS Doc Site - http://livedocs.adobe.com/livecycle/8.2/programLC/ programmer/lcds/help.html?content=lcconfig_4.html References
  • 54. © 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 notified via e-mail at the end of each day 54
  • 55. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Questions ?
  • 56. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Appendix
  • 57. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software Factory: Demo 57
  • 58. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software Factory: Demo 58
  • 59. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software Factory: Demo 59
  • 60. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 60 Streamline Flex Development o  Project configurations o  Use Linked Resources o  Use external configuration file 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
  • 61. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 61 o  Use Linked Resources o  Avoid absolute paths in configuration files o  Define a Linked Resource o  How to use the variables in the different configuration files 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>
  • 62. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 62 Streamline Flex Development o  Use external configuration file for additional compiler arguments
  • 63. © 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>
  • 64. © 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">
  • 65. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 65 Streamline Flex Development o  Point your compiler to the right service-config.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>
  • 66. © 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  ...