OUR HERITAGE global servicing model 96 countries in tradiSonal and modern trade comparable metrics across all media world-‐class analyScs leading innovaSon global servicing model 100+ countries in tradiSonal and modern trade comparable metrics across all media world-‐class analyScs leading innovaSon
ISSUES WITH FLEX • Mobile support • Support • Microso\ plugin statement direcSon • Adobe open sources Flex • Not inline with HTML5 direcSon • Technology • Complexity • Time to add features steadily increasing • Basic behavior easy to code, but complex features not • Blaze DS • ProliferaSon of DTOs and duplicate code • Non-‐standard, no schema • CompilaSon and Build issues
FEATURES • Full drag and drop of reporSng objects • Objects know what they are and how to interact with others • “Where to drop?” assistance • Full “Undo” of acSons • LocalStorage browser cache backup • Responsive design adapts to client hardware • Improved BI capabiliSes • User expressions • CondiSonal formaeng • Smart text • Smart linking of report objects
TECHNOLOGY STACK • UI built on Ext JS 4.2.0 • Extensive use of MVC Architecture • De\ JS used for managing mulSple instances of same views ,IOC, Promises • AM Charts used for charSng • D3 used in some edge case chart types • AM Charts used as we had experience with it on Flex applicaSon • Middle Ser composed of Spring MVC and Spring IOC • JSON REST endpoints through configuraSon • XML to JSON conversion where needed • Report Player using Ext Direct • SOA Tier using Tibco AMX 3.2 • Couchbase 2.x – Storage, Caching and Search • Hudson, ArSfactory, Gradle, Jasmine, JS Duck
COUCHBASE – CACHE, STORAGE AND SEARCH • Couchbase 2.x • Schema-‐less clustered JSON storage • Key/value cache based on memcached • Full text search with integraSon to ElasSc Search • JSON • NaSve JSON encoding down the stack • No transforms • No tables • Incremental Map Reduce • Views on data • Full Text Search • IntegraSon with ElasScSearch
COUCHBASE – USAGE • Storage of naSve JSON data from applicaSon • User customizaSons of reports • Report definiSons • Request instances – Data selecSons • BI Responses
MAKE IT RESPONSIVE • Asynchronous UI • ProgressQueueManager class with Promises and Deffereds • Uses De\.js • Controllers extend base controller • Incorporates access to PQM • Data fetches can be truly asynchronous • ReporSng data gets BIG • Breaking up a report into objects • Asynchronously store chunked data in Couchbase • UI only requests chunk needed
ISSUES • IE 8!!!! Do people really sSll use this? • Load Smes sSll high • How to be more responsive, with more incremental data loading • Are we componenSzed enough for future feature expansion? • Move to Sencha CharSng to remove our external dependencies
TAKE THE SURVEY! • Session Survey • Available on the SenchaCon mobile app • http://app.senchacon.com • Be Social! • @SenchaCon • #SenchaCon • @darrellpratt • Hackathon!