Nuxeo 2015 Roadmap

about technical evolutions

Document Repository

Evolutions at the Core level

Goals

  • Push more logic inside the repository
    • Better management through REST APIs
       
  • More control over Blob management
    • Integration with Cloud File Services

Adapt Nuxeo Core to new usages !

Field Contraints

  • Let express constraints at field level (XSD)
    • Link to Directory entry
    • Relation to a Document
    • Link to  a User or Group
  • Don't rely on widget binding
     
  • REST API access enforce constraints
    • Create/Update 
  • REST API can resolve references
    • Read

BlobManager

  • Extend Blob attributes
    • renditions, conversions, thumbs, urls
  • Extract High Level Interface for BlobManager
    • can take storage decision based on Document attributes
  • Make Blob download process pluggable
  • Can have more custom BlobStores
     
  • Leverage CDN (ex : S3 + CloudFront)
     
  • Can take advantage of Google Drive or One Drive
    • additional meta-data
    • online editors

Document Based Storage

  • Continue tuning on DBS engine
    • distributed caching
    • recursive processing
       
  • Add more backends
    • PostgreSQL + JSON
    • AWS DynamoDB ?
    • Cassandra ?
    • ElasticSearch ?
  • Scale to several Billions documents in one repository !

Platform Infrastructure

About platform wide infrastructure changes

Goals

  • Make all components Cloud Scale ready
    • Distributed architecture
    • Scale out
    • Robustness

Actually, Nuxeo Plaform
already scales out very well :

but we have plans to make it even better !

Operations on large tree

  • Framework for recursive processing in the WorkManager
    • ACLs computation
    • Meta-data denormalization
    • Quota computation
    • Recursive deletes
       
  • Leverage storage backend features when available
     
  • Global transient state manager

More REDIS

  • Transient state manager
    • global shared about what objects are being processed
    • better handling of dirty updates
       
  • Continue integrating Redis as a Distributed Cache
    • VCS/DBS Cache
    • Cluster invalidations
       
  • Distributed Lock Manager

Multi-nodes management

  • NuxeoClusterCtl
    • Automate Marketplace package deployment
    • Rolling upgrade
       
  • Cluster Management Screens
    • Unified Cluster Wide Admin Center

Leverage the work done for nuxeo.io - 
embed inside the default platform

Online Services & Connectors

Nuxeo Cloud & nuxeo.io

Goals

  • Provide more online services
    • services we host for you
    • services we proxy for you
       
  • Provide a complete Software Factory in SaaS

Leverage Cloud opportunities

Build your application for the Cloud in the Cloud

Nuxeo Service HUB

  • Use Nuxeo.io / Connect as a gateway
    • Handles Authentication propagation
    • Handles visibility issues
  • Built-in integration with NuxeoPlatform

Nuxeo Services

  • Nuxeo IDM
    • Authentication bridge for 3rd party IDM
    • Manage and provision users


       
  • Nuxeo Transform (transform.nuxeo.io)
    • ​conversions and preview services
  • Easily manage and provision your users
  • Provide easy integration with IDM and MFA
  • Quality transform and preview without complex setup
  • Easy and transparent Scale Out

Connectors / Proxied Services

  • Notifications and Push
    • AWS SNS
  • Monitoring
    • DataDog
  • Mule ESB / CloudHub
    • continue work
  • IDM
    • SAML / SCIM
    • Okta, PingIdentity, OneLogin ...
  • SalesForce.com
    • Activity / Directories

Nuxeo.io

  • nuxeo.io infrastructure work
    • Extend deployment options
      • Cluster, Elasticsearch, Redis
      • Wider selection of packages
    • Centralized log management
       
  • Integration of Nuxeo Services
    • IDM
    • transformation
    • monitoring
       
  • Integration with the Software Factory
    • ​nuxeo.io is the final step of the Software Factory !

Software Factory

SOFTWARE FACTORY

Nuxeo Studio

Codeenvy

forge.nuxeo.io

nuxeo.io

UI and CLIENT SDK

WebApps for every devices

Goals

  • Provide tools for modern Web Apps
    • Html5, JavaScript, Web Components
    • Mobile devices
       
  • Leverage the existing infrastructure
    • Actions, Layout, Studio configuration
       
  • Provide a nice migration path

bleeding edge technologies yet smooth migration

WebComponents and EcmaScript 6

  • WebComponent is a great standard
    • Clean Web development
    • Modularity and Encapsulation
       
  • ECMAScript 6 may finally provide a clean solution
    • Modularity and OOP
  • Toward a clean and sustainable Web development !
     
  • Also need a solution for now !

Polymer, Tracer & Angular

  • Polymer
    • A nice Component model on top of WebComponents
  • Polyfills
    • A WebComponents "emulation" for current browsers
  • Tracer
    • A way to  write ES6 yet run it on current browsers
  • Angular 2 
    • A Web Framework that can integrate WebComponents
  • Leverage the work done on
    Polymer, AngularJS and AngularDart

About Nuxeo Framework

  • Continue working on Polymer and Web Components
    • provide a Nuxeo Component set (Nuxeo Elements)
    • integrate with Component Designer
       
  • Nuxeo BackOffice UI
    • Continue improve and optimize the JSF2 stack
    • Finish NXTheme removal
    • Streamline JavaScript integration
    • integrate Polymer fragment inside Nuxeo default UI
      • leverage Layout and Action systems to assemble  fragments
         
  • Upgrade AngularSDK/Samples to Angular 2 
    • ECMAScript 6
    • Web Component integration

Coding tool

Helping you building your application

Goals

  • Make advanced Nuxeo configuration easier
    • Give more power to Studio users
    • Help developers getting started with coding
       
  • Give access to most recent Web Technologies
    • without breaking existing applications

make extensions easier to build

{CODE}

Automation Scripting

  • High level scripting to assemble Automation Operations
    • more powerful than simple  Automation Chains
    • easier than bare scripting or Java coding
  • Easy control flow  : loops, conditions, sub functions ...
mailDocument = Document.Create(mailFolder, {
	'type' : 'MailMessage',
        'name' : mailDocumentName,
        'properties' : {
		'messageId' : messageId,
                'dc:title' : subject
	}});

for (attachment in attachments) {
    Blob.Attach(attachment, {'document' : mailDocument,
                             'save' : false,
                             'xpath' : 'files:files'});
}
Document.Save(mailDocument);

Java Coding

  • Online tools
    • Codenvy IDE
    • Marketplace Packaging service
    • Nuxeo Code Snippets
    • CI service with nuxeo.io
       
  • Java 8 support
     
  • Scripting plugins via Nashorn

forge.nuxeo.io

  • SCM and Code Sharing
  • Packaging services
  • Deploy and run tests on Nuxeo.io

NO more excuse for
not doing it the right way !!!

roadmap.nuxeo.com

jira.nuxeo.com