Soirée Flex/RIA au Nantes jug

2,111 views

Published on

Durant cette soirée, nous avons discuté de RIA:

* de Flash, de Flex, d’HTML5
* d’application multi-écrans: desktop, tablette, téléphone, télévision

* des solutions offertes par Adobe dans ce domaine :
o nous verrons comment les technologies Adobe permettent aux développeurs et architectes de construire des applications internet riches et multi-écrans, tout en faisant fructifier leurs anciens investissements, notamment sur les technologies Java/JEE (EJB3, Spring, Hibernate JPA, Maven...)

Speaker : Francois Le Droff
cf. http://www.nantesjug.org/

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

  • Be the first to like this

No Downloads
Views
Total views
2,111
On SlideShare
0
From Embeds
0
Number of Embeds
908
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Soirée Flex/RIA au Nantes jug

  1. 1. © 2010 Adobe Systems Incorporated. All Rights Reserved. Soirée Flex & RIA Nantes JUG
  2. 2. © 2010 Adobe Systems Incorporated. All Rights Reserved. About me : François Le Droff o “Just another Java guy” (doing Flex) o 11 years in web 1+n.0 o Open Source Software Geek : o FlexPMD, Cairngorm o Ossgtp, ParisJUG, et TTFX o French JUGs, MAX, et Solution Linux o http://www.droff.com o http://twitter.com/francoisledroff o ledroff adobe.com<at>
  3. 3. © 2010 Adobe Systems Incorporated. All Rights Reserved.3
  4. 4. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  5. 5. © 2010 Adobe Systems Incorporated. All Rights Reserved. RIA?
  6. 6. © 2010 Adobe Systems Incorporated. All Rights Reserved. Sexy and funky applications !
  7. 7. © 2010 Adobe Systems Incorporated. All Rights Reserved. ® Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential. What Are Intuitive User Experiences?  Effective, Efficient, Engaging, Easy to learn, Error free  Personalized, responsive experiences across devices and channels  Communication & collaboration in context  Harmonization of backend processes and services
  8. 8. © 2010 Adobe Systems Incorporated. All Rights Reserved. 8 Rich User Experiences: Opportunities for internal users Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential.
  9. 9. © 2010 Adobe Systems Incorporated. All Rights Reserved. ® Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential. Rich User Experiences: Opportunities for internal users 5 mins 20 secs Increase productivity & improve decision making
  10. 10. © 2010 Adobe Systems Incorporated. All Rights Reserved. 10Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential. NATO
  11. 11. © 2010 Adobe Systems Incorporated. All Rights Reserved. ® Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential. NATO
  12. 12. © 2010 Adobe Systems Incorporated. All Rights Reserved. ® Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential. NATO From a system-centric view to a user-centric application.
  13. 13. © 2010 Adobe Systems Incorporated. All Rights Reserved. 13 Hendrix
  14. 14. © 2010 Adobe Systems Incorporated. All Rights Reserved. 14 o Before Hendrix
  15. 15. © 2010 Adobe Systems Incorporated. All Rights Reserved. o After 15 Hendrix
  16. 16. © 2010 Adobe Systems Incorporated. All Rights Reserved. 16 Hendrix: APIs , UIs, avoid unnecessary complexity and training
  17. 17. © 2010 Adobe Systems Incorporated. All Rights Reserved. First-class interfaces
  18. 18. © 2010 Adobe Systems Incorporated. All Rights Reserved. Productive users Productive developers Productivity by Design Productivity by design
  19. 19. © 2010 Adobe Systems Incorporated. All Rights Reserved. Flash?
  20. 20. © 2010 Adobe Systems Incorporated. All Rights Reserved. FLASH PLAYER 10.1
  21. 21. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  22. 22. © 2010 Adobe Systems Incorporated. All Rights Reserved. Consumer Electronics Personal Computers Mobile Phones
  23. 23. © 2010 Adobe Systems Incorporated. All Rights Reserved. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Partenaires technologiques Open Screen Project Diffuseurs de contenu
  24. 24. © 2010 Adobe Systems Incorporated. All Rights Reserved. Flash Player 10.1 Flash Player 10.1 Google TV
  25. 25. © 2010 Adobe Systems Incorporated. All Rights Reserved. Increased software rendering performance on mobile over 87% Reduced memory consumption on mobile by over 55% Flash Player 10.1 is designed for mobility  Performance  Graphics hardware acceleration  Audio/video hardware decoding  Memory, battery & CPU optimizations  Optimized SWF Management  Sleep mode  Device integration  Multi-touch and gestures  Accelerometer  Screen orientation  Mobile text input  Porting kit for OSP partners
  26. 26. © 2010 Adobe Systems Incorporated. All Rights Reserved. o Brings full Flash Player feature set to devices o New Features: o Multi-touch & gestures o Accelerometer o Screen orientation o Mobile text input o Device capabilities discovery o Globalization support (GSLib) o Mobile settings manager o Global error handling Flash Player 10.1
  27. 27. © 2010 Adobe Systems Incorporated. All Rights Reserved. AIR ?
  28. 28. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE AIR 2.0
  29. 29. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE AIR 2.0 Flash Player 10.1 + WebKit + SQLite + Desktop APIs --------------------- = Adobe AIR
  30. 30. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE AIR 2.0 Xplatform runtime Drag & Drop files / Desktop Local system access Multiple windows Transparent applications Native Process, UDP, USB...
  31. 31. © 2010 Adobe Systems Incorporated. All Rights Reserved. DETECT AND BROWSE USB STORAGE
  32. 32. © 2010 Adobe Systems Incorporated. All Rights Reserved. UDP Network Protocols PEER 2 PEER
  33. 33. © 2010 Adobe Systems Incorporated. All Rights Reserved. Documents and Processes OS INTEGRATION
  34. 34. © 2010 Adobe Systems Incorporated. All Rights Reserved. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Demos
  35. 35. © 2010 Adobe Systems Incorporated. All Rights Reserved. Flex ?
  36. 36. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4
  37. 37. © 2010 Adobe Systems Incorporated. All Rights Reserved. Basics Flash Builder IDE Flex SDK Flex Class Library MXML ActionScript Compile SOAP HTTP/S AMF/S RTMP/S Web Server Existing Applications & Infrastructure J2EE Application Server LC Data Services XML/HTTP REST SOAP Web Services Browser Flash Player
  38. 38. © 2010 Adobe Systems Incorporated. All Rights Reserved. OLD COMPONENT MODEL FLEX FRAMEWORK 3 Graphics Layout Animation Parts States Behavior Logic Data Component / Skin
  39. 39. © 2010 Adobe Systems Incorporated. All Rights Reserved. SPARK COMPONENT MODEL FLEX FRAMEWORK 4 ActionScript MXML Graphics Layout Animation Parts States Component Skin CSS properties Behavior Logic Data
  40. 40. © 2010 Adobe Systems Incorporated. All Rights Reserved. SPARK COMPONENT THEME FLEX FRAMEWORK 4
  41. 41. © 2010 Adobe Systems Incorporated. All Rights Reserved. NEW VIDEO COMPONENT FLEX FRAMEWORK 4
  42. 42. © 2010 Adobe Systems Incorporated. All Rights Reserved. TEXT LAYOUT FRAMEWORK SUPPORT FLEX FRAMEWORK 4
  43. 43. © 2010 Adobe Systems Incorporated. All Rights Reserved. NEW STATES MODEL FLEX FRAMEWORK 4
  44. 44. © 2010 Adobe Systems Incorporated. All Rights Reserved. NEW LAYOUT MODEL FLEX FRAMEWORK 4 http://www.rialvalue.com/coverflow/
  45. 45. © 2010 Adobe Systems Incorporated. All Rights Reserved. OLD MX COMPONENTS FLEX FRAMEWORK 4 http://tinyurl.com/notspark
  46. 46. © 2010 Adobe Systems Incorporated. All Rights Reserved. HTML5 ?
  47. 47. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  48. 48. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  49. 49. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  50. 50. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  51. 51. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  52. 52. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  53. 53. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  54. 54. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  55. 55. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  56. 56. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  57. 57. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  58. 58. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  59. 59. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  60. 60. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  61. 61. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  62. 62. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  63. 63. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  64. 64. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  65. 65. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  66. 66. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  67. 67. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  68. 68. © 2010 Adobe Systems Incorporated. All Rights Reserved. &
  69. 69. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 HTTP Request & WebServices
  70. 70. © 2010 Adobe Systems Incorporated. All Rights Reserved.2008 Adobe Systems Incorporated. All Rights Reserved. Flex/JSP architecture UI LAYER SERVER PRESENTATION /SERVICES/DAO LAYER DATABASE/ STORAGE LAYER listEvents.jsp Java servlet container (tomcat, WAS…) JDBC Web browser JAVA classes/services Webapp (WAR) EventService.java public getEvents() WSDL XML on HTTP(s)
  71. 71. © 2010 Adobe Systems Incorporated. All Rights Reserved.  Same with PHP, Ruby, Perl, ASP...  Returns XML, text, tabulated text, JSON...  Use send() to launch the request  Result and Fault events  New data-services wizard in Flash Builder 4 to generate a STUB on the client side Flex and <HTTPRequest>
  72. 72. © 2010 Adobe Systems Incorporated. All Rights Reserved.  Web Services Description Language 1.1 (WSDL 1.1) document  The Flex web service API generally supports Simple Object Access Protocol (SOAP) 1.1, XML Schema 1.0, and WSDL 1.1 RPC-encoded, RPC-literal, and document-literal (bare and wrapped style parameters).  Flex supports web service requests and results that are formatted as SOAP messages Flex and <Webservice>
  73. 73. © 2010 Adobe Systems Incorporated. All Rights Reserved. AMFPublished in December 2007 XML 5000 rows ?1.1Mo 29Ko
  74. 74. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Remoting AMF
  75. 75. © 2010 Adobe Systems Incorporated. All Rights Reserved. LiveCycle Data Services ES LiveCycle Data Services is a set of Java EE components and APIs used to: Create data-intensive RIAs with less code, less risk, and accelerated time to market due to an innovative client- server programming model Integrate RIAs with existing applications, back-end data, and JEE infrastructure Easily integrate RIAs with LiveCycle document and process services Enable collaboration, offline AIR and real-time data streaming applications to be built in a scalable and reliable manner with robust publish and subscribe messaging Generate PDF documents from RIAs that include graphical assets LiveCycle Data Services ES Data Management RPC Services Messaging Service Adapters Data Synchronization Off-line Applications Data Paging Web Service HTTP Service Remote Object Service Publish & Subscribe Collaboration Real Time Data Push Proxy Service Web-tier Compiler Portal Deployment RIA-PDF Generation LiveCycle ColdFusion Hibernate SQL JMS Java Custom…
  76. 76. © 2010 Adobe Systems Incorporated. All Rights Reserved. BlazeDS is a set of Java EE components and APIs, and a subset of LiveCycle Data Services: - Free and open source. - High performance data transfer for more responsive applications using AMF - Real-time server push over standard HTTP - Full pub/sub messaging that extends existing messaging infrastructure LiveCycle Data Services ES Data Management RPC Services Messaging Service Adapters Data Synchronization Off-line Applications Data Paging Web Service HTTP Service Remote Object Service Publish & Subscribe Collaboration Real Time Data Push Proxy Service Web-tier Compiler Portal Deployment RIA-PDF Generation LiveCycle ColdFusion Hibernate SQL JMS Java Custom…
  77. 77. © 2010 Adobe Systems Incorporated. All Rights Reserved. LCDS.war  Structure of the WAR file:  +WEB-INF/classes To place your Java classes  +WEB-INF/lib Hosts the JAVA libraries of LCDS  +WEB-INF/flex Hosts the XML configuration files  Remoting-config.xml Destinations to Java classes for remoting  Messaging-config.xml Destinations for messaging  Data-Management-config.xml Destinations to Java assemblers  Proxy-config.xml Destinations to HTTP services  Services-config.xml Channels configurations A file named « LCDS.war » is provided to start your Flex/Java projects.
  78. 78. © 2010 Adobe Systems Incorporated. All Rights Reserved. Java and ActionScript value objects Java VO ActionScript VO
  79. 79. © 2010 Adobe Systems Incorporated. All Rights Reserved. Java and ActionScript types STRING STRING BOOLEAN BOOLEAN INT, SHORT, BYTE INT DOUBLE, FLOAT, LONG NUMBER CALENDAR, DATE DATE OBJECT OBJECT COLLECTION ARRAYCOLLECTION OBJECT[] ARRAY ORG.W3C.DOCUMENT XML OBJECT NULL NULL
  80. 80. © 2010 Adobe Systems Incorporated. All Rights Reserved. Flex/Java classic architecture UI LAYER SERVER PRESENTATION /SERVICES/DAO LAYER DATABASE/ STORAGE LAYER LiveCycle Data Services Java servlet container (tomcat, WAS…) JDBC Web browser JAVA classes/services Webapp (WAR) RPC services Messaging Data Mgt WSDL AMF over HTTPs JAVA <-> AMF EventService.java public getEvents()
  81. 81. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Spring BlazeDS Integration
  82. 82. © 2010 Adobe Systems Incorporated. All Rights Reserved. Spring & Flex Services o Intégrer Spring & Flex, c’est donc : o exposer les interfaces de ces services Flex, o en laissant le conteneur Spring gérer o leurs instanciations, o leurs configurations, o le cycle de vie de leurs implémentations o leurs sécurité, o leurs aspects (transactionels …)
  83. 83. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Messaging
  84. 84. © 2010 Adobe Systems Incorporated. All Rights Reserved. Channels Flex client Servlet-based endpoints AMF Endpoint HTTPEndpoint StreamingAMFEndpoint NIO-based endpoints NIOAMFEndpoint NIOHTTPEndpoint RTMPEndpoint Socket Server (LCDS only) HTTPProxy Message Data Management
  85. 85. © 2010 Adobe Systems Incorporated. All Rights Reserved. Publish/Subscribe Messaging Message Service LiveCycle DS / Blaze DS Endpoint Publisher Subscriber RTMP AMF HTTP Client A Client B Client C
  86. 86. © 2010 Adobe Systems Incorporated. All Rights Reserved. Data Push - Messaging Message Services LiveCycle DS / Blaze DS Adapter Y Adapter X Messaging System Y Messaging System X Endpoint JMS Provider JMS Adapter Publisher Subscriber RTMP AMF HTTP
  87. 87. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Data Management Services
  88. 88. © 2010 Adobe Systems Incorporated. All Rights Reserved. Data Management Services LiveCycle Data Services Data Service DAO Object Adapter Hibernate Adapter JDBC Adapter Hibernate RDBMS CFC Adapter ColdFusion Endpoint Client A Client B Client C
  89. 89. © 2010 Adobe Systems Incorporated. All Rights Reserved. Data Management Benefits 1. Automatic Client to Middle-Tier Synchronization  Change Tracking  Automatic invocation of remote services 1. Highlander Principle: there is only one instance of a given entity in memory at any given time 2. Conflict resolution 3. Offline Synchronization (thanks to Adobe AIR) 4. Lazy loading 5. Paging 6. Cross-client synchronization
  90. 90. © 2010 Adobe Systems Incorporated. All Rights Reserved. Today’s LiveCycle Data Services Flex Client Flex Client Flex Client LCDS Java Classes •Thing1.class •Thing2.class •Thing3.class
  91. 91. © 2010 Adobe Systems Incorporated. All Rights Reserved. Tomorrow’s LiveCycle Data Services LCDS NET •??.??? •??.??? •??.??? Java Classes •Thing1.class •Thing2.class •Thing3.class .NET C# Classes •Thing1.dll •Thing2.dll •Thing3.dll IIS Plugin •.NET Remoting •Messaging •MSMQ Messaging .NET Adapter •Remoting •Messaging •Data Mgmt .NETAdapter Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client
  92. 92. © 2010 Adobe Systems Incorporated. All Rights Reserved. Tomorrow’s LiveCycle Data Services LCDS NET •??.??? •??.??? •??.??? Java Classes •Thing1.class •Thing2.class •Thing3.class .NET C# Classes •Thing1.dll •Thing2.dll •Thing3.dll IIS Plugin •.NET Remoting •Messaging •MSMQ Messaging .NET Adapter •Remoting •Messaging •Data Mgmt .NETAdapter Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client
  93. 93. © 2010 Adobe Systems Incorporated. All Rights Reserved. Native Java Client  Java calling of remoting and messaging destinations  Full Java implementations of:  RemoteObject  Producer  Consumer  Channel implementations, etc.  Includes support for native Android applications
  94. 94. © 2010 Adobe Systems Incorporated. All Rights Reserved. Tomorrow’s LiveCycle Data Services LCDS NET •??.??? •??.??? •??.??? Java Classes •Thing1.class •Thing2.class •Thing3.class .NET C# Classes •Thing1.dll •Thing2.dll •Thing3.dll IIS Plugin •.NET Remoting •Messaging •MSMQ Messaging .NET Adapter •Remoting •Messaging •Data Mgmt .NETAdapter Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client
  95. 95. © 2010 Adobe Systems Incorporated. All Rights Reserved. HTML5/JavaScript Client  JavaScript calling of remoting and messaging destinations without using Flash  Utilizes HTML5 WebSockets  Full JavaScript implementations of:  RemoteObject  Producer  Consumer  Channel implementations, etc.
  96. 96. © 2010 Adobe Systems Incorporated. All Rights Reserved. Tomorrow’s LiveCycle Data Services LCDS NET •??.??? •??.??? •??.??? Java Classes •Thing1.class •Thing2.class •Thing3.class .NET C# Classes •Thing1.dll •Thing2.dll •Thing3.dll IIS Plugin •.NET Remoting •Messaging •MSMQ Messaging .NET Adapter •Remoting •Messaging •Data Mgmt .NETAdapter Flex Client Flex Client Flex ClientJava Client Android ClientHTML5/JS Client ObjC Client
  97. 97. © 2010 Adobe Systems Incorporated. All Rights Reserved. Native Objective C Client o Objective C calling of remoting and messaging destinations o MacOSX and iOS client support o Full Objective C implementations of: o RemoteObject o Producer o Consumer o Channel implementations – at least one polling and one real-time.
  98. 98. © 2010 Adobe Systems Incorporated. All Rights Reserved. iOS APN Push Notifications and Multitasking o Apple push notifications are used by iPhone, iPad and iPod Touch (iOS 3.x and higher) o LCDS/Server-generated notifications to iOS applications o Notifications: Badges, sounds and custom text alerts oRespectful of Apple’s rules about message size, type, frequency, etc. o iSO Multitasking support (iOS 4.x and higher): oConvenience client-side functions are provided to handle various multitasking-related events such as when iOS shuts down an app. Functions handle clean disconnects, server notification of disconnect, etc.
  99. 99. © 2010 Adobe Systems Incorporated. All Rights Reserved. LCDS NEXT LiveCycle Data Services Devices & Clients <HTML> JavaScript / AJAX iOS preview in January 2011
  100. 100. © 2010 Adobe Systems Incorporated. All Rights Reserved. JEE integration sample ?
  101. 101. © 2010 Adobe Systems Incorporated. All Rights Reserved. Multiscreen and Modular Flex Application making o Demo Mobile Application Desktop Browser Application
  102. 102. © 2010 Adobe Systems Incorporated. All Rights Reserved. IOC, utilities oIoC oSpring oParsley oUtilities o Leverage JEE o Java OSS (Apache, Codehaus, Spring, JBoss, etc..) o Spicelib, KapInspect, Thunderbold, Cairngorm3 102
  103. 103. © 2010 Adobe Systems Incorporated. All Rights Reserved. Project setup and structure : Best Practice sample : Todo-Max 103 JVM - JBoss/JEE application server [ Web container, Transaction Manager, JMX, AOP, Cache, JNDI, Logging support) todo_webapp (war) Spring [Micro Container, IOC, AOP, Security, LCDS integration support] todo_java_flex_service (jar) NIO 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
  104. 104. © 2010 Adobe Systems Incorporated. All Rights Reserved. Use this Sample app as a skeleton 104 JVM - JBoss/JEE application server todo_webapp (war) Spring todo_java_service (jar) NIO 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)
  105. 105. © 2010 Adobe Systems Incorporated. All Rights Reserved. Multiscreen and Modular Flex Application making o Todo Application Architecture todo_flex_core Parsley Spicelib todo_flex_remoting_dto Common domain objects Cairngorm 3 Module Common infrastructure components Common application layer (controllers, tasks, commands, ...) todo_flex_shell todo_flex_android todo_flex_todolist todo_flex_todolist_lib Cairngorm 3 Integration Presentation layer Presentation layer Application layer Domain layer Infrastructure layer
  106. 106. © 2010 Adobe Systems Incorporated. All Rights Reserved. Demo 106 Demo
  107. 107. © 2010 Adobe Systems Incorporated. All Rights Reserved. Software factory ?
  108. 108. © 2010 Adobe Systems Incorporated. All Rights Reserved. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 108 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
  109. 109. © 2010 Adobe Systems Incorporated. All Rights Reserved. 109 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
  110. 110. © 2010 Adobe Systems Incorporated. All Rights Reserved. 110 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 Software factory Automation for the People (because Everybody Doing It Manually Hurts)
  111. 111. © 2010 Adobe Systems Incorporated. All Rights Reserved. 111 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 SCM Changelist / Jobs Tasks / Bug Tracking Server SCM Dependencies Checks • Ant + Ivy • Maven • Graddle • … Build
  112. 112. © 2010 Adobe Systems Incorporated. All Rights Reserved. 112 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
  113. 113. © 2010 Adobe Systems Incorporated. All Rights Reserved. 113 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
  114. 114. © 2010 Adobe Systems Incorporated. All Rights Reserved. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 114 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
  115. 115. © 2010 Adobe Systems Incorporated. All Rights Reserved. 115 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)
  116. 116. © 2010 Adobe Systems Incorporated. All Rights Reserved. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 116 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
  117. 117. © 2010 Adobe Systems Incorporated. All Rights Reserved. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 117 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 …
  118. 118. © 2010 Adobe Systems Incorporated. All Rights Reserved. Software factory Automation for the People (because Everybody Doing It Manually Hurts) 118 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
  119. 119. © 2010 Adobe Systems Incorporated. All Rights Reserved. Tasks / Bug Tracking Server CI & QA Test Servers Quality & Doc Servers 119 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
  120. 120. © 2010 Adobe Systems Incorporated. All Rights Reserved. 120 References
  121. 121. © 2010 Adobe Systems Incorporated. All Rights Reserved. 121 Books /Articles « Effective Java: Programming Language Guide », Joshua Bloch « OO Design Quality Metrics », Robert Martin http://www.octo.com/Java-Productivity-Primer.10/Publications http://lil.univ-littoral.fr/~oumoumsack/qualite/ http://www.objectmentor.com/resources/articles/Principles_and_Pa tterns.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://blog.theflashblog.com/?p=2436 http://www.riagora.com/ http://coenraets.org/blog/ Blogs: http://blog.theflashblog.com/?p=2436 http://www.riagora.com/ http://coenraets.org/blog/ 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 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/program mer/lcds/help.html?content=lcconfig_4.html References
  122. 122. © 2010 Adobe Systems Incorporated. All Rights Reserved. Questions ?

×