Your SlideShare is downloading. ×
Soirée Flex/RIA au Nantes jug
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Soirée Flex/RIA au Nantes jug

1,726
views

Published on

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

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
1,726
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. © 2010 Adobe Systems Incorporated. All Rights Reserved. Soirée Flex & RIA Nantes JUG
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved.3
  • 4. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 5. © 2010 Adobe Systems Incorporated. All Rights Reserved. RIA?
  • 6. © 2010 Adobe Systems Incorporated. All Rights Reserved. Sexy and funky applications !
  • 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. © 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. 10Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential. NATO
  • 11. © 2010 Adobe Systems Incorporated. All Rights Reserved. ® Copyright 2009Adobe Systems Incorporated. All rights reserved. Adobe confidential. NATO
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. 13 Hendrix
  • 14. © 2010 Adobe Systems Incorporated. All Rights Reserved. 14 o Before Hendrix
  • 15. © 2010 Adobe Systems Incorporated. All Rights Reserved. o After 15 Hendrix
  • 16. © 2010 Adobe Systems Incorporated. All Rights Reserved. 16 Hendrix: APIs , UIs, avoid unnecessary complexity and training
  • 17. © 2010 Adobe Systems Incorporated. All Rights Reserved. First-class interfaces
  • 18. © 2010 Adobe Systems Incorporated. All Rights Reserved. Productive users Productive developers Productivity by Design Productivity by design
  • 19. © 2010 Adobe Systems Incorporated. All Rights Reserved. Flash?
  • 20. © 2010 Adobe Systems Incorporated. All Rights Reserved. FLASH PLAYER 10.1
  • 21. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 22. © 2010 Adobe Systems Incorporated. All Rights Reserved. Consumer Electronics Personal Computers Mobile Phones
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. Flash Player 10.1 Flash Player 10.1 Google TV
  • 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. AIR ?
  • 28. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE AIR 2.0
  • 29. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE AIR 2.0 Flash Player 10.1 + WebKit + SQLite + Desktop APIs --------------------- = Adobe AIR
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. DETECT AND BROWSE USB STORAGE
  • 32. © 2010 Adobe Systems Incorporated. All Rights Reserved. UDP Network Protocols PEER 2 PEER
  • 33. © 2010 Adobe Systems Incorporated. All Rights Reserved. Documents and Processes OS INTEGRATION
  • 34. © 2010 Adobe Systems Incorporated. All Rights Reserved. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Demos
  • 35. © 2010 Adobe Systems Incorporated. All Rights Reserved. Flex ?
  • 36. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. OLD COMPONENT MODEL FLEX FRAMEWORK 3 Graphics Layout Animation Parts States Behavior Logic Data Component / Skin
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. SPARK COMPONENT THEME FLEX FRAMEWORK 4
  • 41. © 2010 Adobe Systems Incorporated. All Rights Reserved. NEW VIDEO COMPONENT FLEX FRAMEWORK 4
  • 42. © 2010 Adobe Systems Incorporated. All Rights Reserved. TEXT LAYOUT FRAMEWORK SUPPORT FLEX FRAMEWORK 4
  • 43. © 2010 Adobe Systems Incorporated. All Rights Reserved. NEW STATES MODEL FLEX FRAMEWORK 4
  • 44. © 2010 Adobe Systems Incorporated. All Rights Reserved. NEW LAYOUT MODEL FLEX FRAMEWORK 4 http://www.rialvalue.com/coverflow/
  • 45. © 2010 Adobe Systems Incorporated. All Rights Reserved. OLD MX COMPONENTS FLEX FRAMEWORK 4 http://tinyurl.com/notspark
  • 46. © 2010 Adobe Systems Incorporated. All Rights Reserved. HTML5 ?
  • 47. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 48. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 49. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 50. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 51. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 52. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 53. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 54. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 55. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 56. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 57. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 58. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 59. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 60. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 61. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 62. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 63. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 64. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 65. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 66. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 67. © 2010 Adobe Systems Incorporated. All Rights Reserved.
  • 68. © 2010 Adobe Systems Incorporated. All Rights Reserved. &
  • 69. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 HTTP Request & WebServices
  • 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. © 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. AMFPublished in December 2007 XML 5000 rows ?1.1Mo 29Ko
  • 74. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Remoting AMF
  • 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. © 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. Java and ActionScript value objects Java VO ActionScript VO
  • 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Spring BlazeDS Integration
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Messaging
  • 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. © 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. ADOBE FLEX 4 Data Management Services
  • 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. LCDS NEXT LiveCycle Data Services Devices & Clients <HTML> JavaScript / AJAX iOS preview in January 2011
  • 100. © 2010 Adobe Systems Incorporated. All Rights Reserved. JEE integration sample ?
  • 101. © 2010 Adobe Systems Incorporated. All Rights Reserved. Multiscreen and Modular Flex Application making o Demo Mobile Application Desktop Browser Application
  • 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. © 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. © 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. Demo 106 Demo
  • 107. © 2010 Adobe Systems Incorporated. All Rights Reserved. Software factory ?
  • 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. 120 References
  • 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. © 2010 Adobe Systems Incorporated. All Rights Reserved. Questions ?

×