© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Flex & LCDS
Best Practices from the Trenches
T...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
François Le Droff
o  “Just another Java guy” (d...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Yaniv De Ridder
o  Flash Platform Expert
o 9+ ...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
Hendrix : Helping more customers, first time...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Flex & LCDS Best Practices from the Trenches
5...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6
One hour is not enough.
• Whitepapers
• Blog...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Key Features
7
Telephony integration...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
o  24/7 usage and a minimum speed requirements...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : SLA & Non Functional Requirements
o ...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
User CTI
Phone
Callcenterhttpproxy
VOIP
Intern...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11
Architecture Best Practices
Encapsulation, ...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix Middleware Projects
12
JVM - JBoss/JEE...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 13
Hendrix Flex Projects
o  Hendrix High level...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
IOC, utilities
o IoC
o Spring
o Parsley
o Util...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 15
Multiscreen and Modular Flex Application ma...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Project setup and structure : Best Practice sa...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Use this Sample app as a skeleton
17
JVM - JBo...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18
Multiscreen and Modular Flex Application ma...
© 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é O...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
BI (cluster/
group)
Server 3.1
Server 3.2
Serv...
© 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 co...
© 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 co...
© 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 c...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
LCDS Real Time Messaging helps
•  Reliable Mes...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Distributed Agile Offshore process
34
Paris / B...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Distributed Agile offshore process
o ...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Distributed Agile offshore process
36...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Hendrix : Distributed Agile offshore process
o ...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Industrialization/Automation
“Because Everybod...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Software factory
Automation for the People (be...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Tasks /
Bug Tracking
Server
CI & QA Test Serve...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Demo
50
o  Streamlining Flex Developement
o  S...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 51
One hour was not enough, but
But we’ll publ...
© 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: Programmi...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Turn in your Surveys for a chance to WIN!
o  H...
© 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 conf...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 61
o  Use Linked Resources
o  Avoid absolute p...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 62
Streamline Flex Development
o  Use external...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 63
Streamline Flex Development
o  Don’t mix pr...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 64
Streamline Flex Development
o  Link your bi...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 65
Streamline Flex Development
o  Point your c...
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 66
Streamline Flex Development
o  Use multiple...
Upcoming SlideShare
Loading in …5
×

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

4,393
-1

Published on

Join us as we share several of the key best practices we have learned over time while building Hendrix, a large business-critical Adobe enterprise application built with Flex and Adobe LiveCycle Data Services. Hendrix was built to leverage many existing systems within Adobe IT (such as our SAP customer relationship management system and computer telephony integration system). Some of these best practices may be familiar to you, and some may not. All come from the collective experience of the people who design, develop, and operate the Hendrix application.

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,393
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
93
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

  1. 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. 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. 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. 4. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4 Hendrix : Helping more customers, first time, in less time. Every time.
  5. 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. 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. 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. 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. 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. 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. 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. 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. 13. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 13 Hendrix Flex Projects o  Hendrix High level Architecture with Cairngorm 3
  14. 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. 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. 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. 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. 18. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18 Multiscreen and Modular Flex Application making o  Todo Application Architecture
  19. 19. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Demo 19 Demo
  20. 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. 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. 22. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. o  Client-Side API 22 Hendrix Flex Projects
  23. 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. 24. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 24 o  Before
  25. 25. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. o  After 25
  26. 26. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26
  27. 27. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 27
  28. 28. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28
  29. 29. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Exception handling 29
  30. 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. 31. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. LCDS Messaging & CTI Best Practices 31
  32. 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. 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. 34. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Distributed Agile Offshore process 34 Paris / Brussels Bucharest USA Edinburgh China
  35. 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. 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. 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. 38. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Industrialization/Automation “Because Everybody Doing It Manually Hurts”
  39. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 50. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Demo 50 o  Streamlining Flex Developement o  Software Factory Demo
  51. 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. 52. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 52 References
  53. 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. 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. 55. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Questions ?
  56. 56. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Appendix
  57. 57. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software Factory: Demo 57
  58. 58. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software Factory: Demo 58
  59. 59. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Software Factory: Demo 59
  60. 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. 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. 62. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 62 Streamline Flex Development o  Use external configuration file for additional compiler arguments
  63. 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. 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. 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. 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  ...

×