11.07.2015 Views

content apps - Stefane Fermigier

content apps - Stefane Fermigier

content apps - Stefane Fermigier

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Stefane</strong> <strong>Fermigier</strong>, Chairman5.2


AgendaBusiness needs and use casesHistoryTechnology and architectureWhat’s new in Nuxeo 5.2Case studiesThe future: Nuxeo 5.2.x and Nuxeo 6


Who Am I?


Who am I?Founder and Chairman of Nuxeo (2000)Pioneer Open Source ECM software vendorSustained effort on R&D since 2003 (JEI, FP6, FP7,System@tic, Eureka...)Sustained growth: from 0 to 3 ME turnover in 2008International organization: customers, partners,community (US subsidiary launched in Jan 2009)50 employees worldwide


Problems our customers arefacing


avoid this


Nuxeo NewsWave


NuxeoCorrespondanceReportingScannerWorkflowDistributeMailUnifiedmailboxProcessArchiveShareFindFaxContent Repository


NuxeoDigital Asset ManagementCaptureExplore & FindProcess & ManageAssembly& Delivery


History


A Bit of HistoryCompany started in 20002002-2005: Zope-based CPS project2005: First Eclipse RCP based project2005: Zope/Java hybrid: CPS42006-now: Full switch to Java


Our Original GoalsAddress the full ECM scopeInitial focus on Document ManagementArchitecture must be extensible and modularEnable and sustain the EcosystemEasy to work with, design for participation


Our Original VisionDon't reinvent the wheelLeverage existing standards, work on new ones (ex: JCR2,CMIS)Build on proven open source libraries and components(JBoss, Apache, Sun, Eclipse)Use a robust software engineering processMake it transparent for our community


Lesson LearnedZope EraValue of components-based architecturesBasics of ECMEclipseOSGi and extension pointsJava EraValue of standards (Java EE, additional JSRs, OSGi)With proper tools, you can be as productive and havebetter quality w/ Java 5 than w/ Python


Technology and Architecture


Our technology“More than a product, a platform!”Ubiquitous ECM platformBuild around components& services (“Lego bricks”)AdvantagesExtensibility & customizabilityWide functional scopeScalability & Security


Nuxeo GalaxyBusinessSolutionsNewsWaveDAM for IntelligenceYour Own ProjectPackagedApplicationsDocumentManagementDigital AssetManagementCorrespondenceManagementContentAggregatorYour Own AppTechPlatformsNuxeo Enterprise Platformcomplete set of components covering all aspects of ECMNuxeo Corelightweight, scalable, embedable <strong>content</strong> repository


JavaEE5Nuxeo EPDoc Mgmt / CollabNuxeo WebEngineSocial NetworkingJAX-RSNuxeo RCPDesktop IntegrationEclipseRCPSI IntegrationWikis / BlogsBusiness AppsEnterprise AppContent PublishingProductivity AppsThin Client (Web)Web ApplicationsRich ClientJCRCMISNuxeo CoreNuxeo RuntimeOSGiJava5JEE5


Content Store Details (1/2)Hierarchy of objects (folderish / <strong>content</strong>ish)Formerly based on JCR / Jackrabbit (still supported)Now native SQL engine: “Visible Content Storage”Already supports PostgreSQL (prefered), MySQL, Oracle,MS-SQL, H2Uses text indexes native to the RDBMSMay be extended someday to include a triple or quadstore


Content Store Details (1/2)Documents are constrained by Document TypesData models are defined by one or more schemas (ex:Dublin Core)Behaviour is expressed by “facets” (ex: Folderish,Indexable, Versionable, etc.)Also room for unconstrained <strong>content</strong>Access rights (ACLs)Replications, synchronisation, scalability


Other Persistence NeedsWorkflow: state stored by jBPMRelation engine: Jena triple store (currently)Directories: store in LDAP or SQLAudit: every action in the CMS can be logged to aspecific DB for auditing purposes, for social timelines...User preferences (personal dashboard, notifications...)Conversion: cache for time-expensive transformations(ex: Word -> PDF rendering)


Workflow DetailsBased on jBPMWorkflows can be graphically designed using jBPMdesign tools, then seamlessly deployed in NuxeoUsed for publication and for more complex documentmanagement tasksOther WF engines might be plugged with some effort


Searching and Indexing (1/2)Used to use Lucene (via Compass) for full text searchDidn’t prove very reliable (transactionality issues)Now text index in the RDBMSEnables mixing fulltext queries with “classical” relationalqueries (in JOINs...)Performance is DBMS-dependent


Searching and Indexing (2/2)Open API for external search engineEnables integration of classical search engine (SOLR) orsemantic ones (Sinequa, Exalead, etc.)But not integrated with NXQL / CMISQLTags are usually expressed as “dc:subject” propertiesCan be controled or freeformWe still need a dedicated service and UI to manage thewhole tag spaceContent can be published (w/ WF) in a hierarchical “fileplan” as in traditional document management


RelationsBased on JenaQueries can be expressed in SPARQLCurrent uses:“Depend on”, “Obsoletes”, “Supercedes”... relationsbetween documentsAnnotationsWiki links (forward / backwards)


Interfaces: WebCurrent “Collaborative DM” interfaceBased on JSF/SeamMultiple front-ends deployment using standard Java EEarchitecture (Session Beans)WebEngine: lightweight “RESTful” interfaceBased on the JAX-RS APIEasier to customise for mobile devicesUsed by BBC for mobile site (for instance)


Interfaces: Rich ClientsRCPEclipse RCP based, used by AFP and PAeRCPEmbedded RCP client developed by Yerbabuena Software(community member)GWTFlexUsed for complex interaction (ex: annotations)


Interfaces: Remote APIWeb services:JAX-WS API based on MetroSoon: CMIS WS profileRESTJAX-RS API (WebEngine)Soon: CMIS AtomPub / REST profileJava API: EJB remoting (RMI)


Metrics300 KLOC (non-comments)5000 Java classesIncluding 600 test classes174 modules73 external (open source) libraries


Development toolsMaven for dependency managementMostly Eclipse for developmentStandard Java / Java EE pluginsSpecific “Nuxeo IDE” used for faster code->build->testturnaroundWork on UML models -> document types, lifecycles andworkflow specification generator has recently started


Metrics300 KLOC (non-comments)5000 Java classesIncluding 600 test classes174 modules73 external (open source) libraries


What’s New in 5.2?


Nuxeo Enterprise Platform 5.2aka ChicagoA full-featured software platform for ECM


Nuxeo Enterprise Platform 5.2aka ChicagoAVAILABLEA full-featured software platform for ECMUnbreakablestable & scalableEasy to useand to customizeSupportedVery wide scopefeatures (func & tech)Great packagingWindows, Linux, SolarisDocumented


From 5.1.x ... 5.1.x has evolved a lotperformances and scalability improvementssearch service improvements A lot of new features via addons VirtualNavigation / Annotations / Preview ... but no API / Model changes


Major new featuresContent Annotations (annotate docs & pictures)Content Preview (see your docs, in your browser)Visible Content Store (keep control of your data)WebWorkspaces (expose your work on the web)Windows® Sharepoint® Services interoperabilityand 30+ more!


... to 5.2Based on developer's feedback infrastructure improvements simpler and extended APIs better consistency of model and extensions partially merge some addons into infrastructure bring new features


What is new in 5.2Web side


WebEngine New light and flexible web framework<strong>content</strong> and object publisherFreeMarker templating systemscripting support More than WCM: <strong>content</strong> <strong>apps</strong>easy web developmentfull access to ECM platform Based on JAX-RS binding modeleasily expose REST APIs


Make nice web sites with Nuxeo!


JSF WebApp Major infrastructure upgrade Seam 2.0 JSF Sun RI / RichFaces 3.2 Better infrastructure~ 90 RPS on a 2K€ server(40% faster than 5.1 & 100% faster than 5.2-m2)fully Ajax-enabledeasier and more consistent development model


WebEngine and JSF together Common infrastructure Auth / Cache / Transactions ... Different characteristicsWebEngine: Stateless / Light / RestJSF: Stateful / PageFlow / JEE Different use casesJSF: back office, business applicationWebEngine: front office, WCM, web widgets


Theme manager Theme management has been improvedWebEngine enabledWebWidgetsOpenSocial supportWait for presentations from Jean-Marc and Damien ! :)


What is new in 5.2Document repository


Nuxeo SQL Repository Native SQL persistencecan be used as a replacement of Jackrabbitdefault repository implementation for 5.2.GA Advantagesintrospectable storage (DBA friendly)easy low level importseasy reporting using standard BI toolsbetter blob storage managementfull support for query


Jackrabbit 1.4 Repository JCR Connector is maintainedwith an upgraded version of Jackrabbit Improvementsfasterbetter blob store Better support for Query


Core Repository Model Operation managementeasily inject custom code into Repository Core API Event handler modelbetter separation between handler types Better handling for complex properties Complete search APIrepository now implements SearchService's API


What is new in 5.2improved ECM services


Events and Audit Service Unified event and event handler modeleasier contribution (will add scripting support) Audit customization is now a lot easierno more JPA contribution Timeline service added to Audit logview co-worker's activity from audit records


Transformers Integrate transformers created into addons any2html, zip2text, image converters ... Integrate cache system from addons temporarily store HTML or PDF view, tiles ... Tools for command-line based transformersgeneric transformercommand-line registration/configuration service


Workflow and BPM 5.1 WF API is too complexbased on WFMC meta-model 5.2 introduces a new WF APIdirect binding to JBPM 5.2 WF is simpleronly have to know JBPM and Nuxeo basic API 5.2 WF is fasterdirect access to JBPM / Hibernate APIs


Search and Indexing Drop Compass based SearchService in 5.2 SearchService now provided by the Repository Jackrabbit 1.4 / Lucene 2.2SQL Repository / FullText implementation is vendordependent but NXQL compliant WebService API for external indexersSinequa CSExaleadAntidot


What is new in 5.2new clients


New RIA clients Adds support for browser-based rich clients Flex clientsusing plain REST or AMF via Nuxeo flex connector GWT clientsusing plain REST


True multi-clients supportDedicatedRIAGWTContent <strong>apps</strong> &WebSitesWebEngineNuxeo PlatformFlex / AirGeneral publicApplicationEclipse RCPJSFNXShellProductivity-focusedbusiness <strong>apps</strong>AdministrationBusinessApplication


What is new in 5.2new features


HTML preview and annotations Preview servicepluggable html transformerspreview adapter model Annotation serviceannotate text & imagesstandard-compliant (W3C Annotea)RDF Based GWT based annotation client


Preview & Annotations in action


Annotations & pictures Annotations on pictureannotate an image fragmentextends W3C Annotea Tiling Servicetiles computation service based on ImageMagicmanages cache and preprocessed tiles GWT based clientnavigate in large picturesmanage annotations


Tiling & annotations in action


Rendering Engine rendering frameworkextensible and pluggabledefault engine based on freemarker Can be used for very different purposesWebEngine : Wiki markupTeleText rendering(from PA's system)


Mail connector Fetch mails from a mailboxinject mails as Documents into Nuxeo View a mailbox as a Folder in Nuxeo


Query Wizard Provides a wizard to create a complex querylet end user access search full power Creates a virtual folder from a Querydefine custom view on Document repository


What is new in 5.2for developers


Nuxeo 5.2 – more productivity


What has changed Improved API for a lot of services New web development modelWebEngine + scripting Packages for developers, with fast start upJetty / GlassFish / Tomcat Nuxeo StudioBetter IDE integration (hg & m2 plugins)Artifacts wizardsCustom editors


What is new in 5.2Deployment target


More deployment optionsApplication Servers supportJBoss 4.2.3GlassFish 3JettyTomcat 6could be planned : :)Java 5 and Java 6


Target servers: why does itmatter ?More options is always more freedomTo meet the requirements of our customersTo provide lightweight deployment solutionsTo provide a lighter and faster dev environmentThe exercise is healthy for the platform


Who Uses It?


Major Nuxeo Customers


Some SI Partners


AFP Console NGMultimedia news authoring and publishingTargeted to multimedia DesksXHTML WYSIWYG EditorFull NewsML 1.2IPTC supportReal-time collaboration and news feedsSpellchecking support (with custom dictionnaries)Photos / Videos / FlashsJava EE on the server sideEclipse RCP on the client side


From


The WorkspaceCollaborativeWorkspaceIncomingFeedsMetadata & Rich TextEditorPublishingSectionsQuick ViewSearch Results


WorkflowCollaborativeWorkspace3IncomingFeeds12Metadata & Rich TextEditor4PublishingSectionsQuick ViewSearch Results1b


It’s even bigger, actually


Rich Text Editor


Flexible Picture Editor


Delivered to customers


NUTXT ProjectNew editorial system for PA to serve analog and digitalTeletext in the UKCreate the foundation for other systems at PA thatmight migrate to it (photo, text)100+ users, 4 locations (UK, India)


WorkspaceCollaborative“Baskets”Collection / SlotsManagementMetadataand Content EditorPublishing areaStaging / On AirSearchPhoto Collectionetc.


Live Preview


Custom Dictionnaries


The future:Nuxeo 5.2.x and 6


RoadmapMarch 2009: Nuxeo 5.2 RC (done)April 2009: Nuxeo 5.2 GAJune 2009: Nuxeo 5.2.1Bugfixes + addons + toolsLater: Nuxeo 5.2.2, 5.2.3, etc. (one every 2 months?)End of 2009(?): Nuxeo 6


Nuxeo WorkshopLean environment to imagineand create next-generation<strong>content</strong> <strong>apps</strong>


Nuxeo WorkshopLean environment to imagineand create next-generation<strong>content</strong> <strong>apps</strong>Deep integration with dev tools (ex: m2, hudson, hg)


Nuxeo WorkshopLean environment to imagineand create next-generation<strong>content</strong> <strong>apps</strong>Deep integration with dev tools (ex: m2, hudson, hg)Handy editors (doctypes, forms, query, etc.)


Nuxeo WorkshopLean environment to imagineand create next-generation<strong>content</strong> <strong>apps</strong>Deep integration with dev tools (ex: m2, hudson, hg)Handy editors (doctypes, forms, query, etc.)Fast code/deploy/test cycle


Nuxeo WorkshopIN PROGRESSLean environment to imagineand create next-generation<strong>content</strong> <strong>apps</strong>Deep integration with dev tools (ex: m2, hudson, hg)Handy editors (doctypes, forms, query, etc.)Fast code/deploy/test cycleLive <strong>content</strong> browser & debugger


Nuxeo Command Center


Nuxeo Command CenterMonitoring Servicesextensible sensorsnagios integration


Nuxeo Command CenterPREVIEWAVAILABLEMonitoring Servicesextensible sensorsnagios integrationAdmin Consolelive monitoring (operations, jobs, stores, pools, etc.)visual operations (backup, restore, cluster, etc.)


CMIS & Unified ECM API Exposes CMIS API and modelas main api for <strong>content</strong> access Extends CMIS to expose more services audit, multi-files support, complex properties ... New high level APIsimpler modelsmaller set of interfacesJava and REST APIs


New Unified ECM API: why ? Easier for developers and integratorssimpler modelsmaller set of interfaces Standard compliantbusiness application's core logic is not bound toNuxeocreate vendor-neutral <strong>apps</strong> Technology-neutral (http based)can be called remotely from any technology


Nuxeo in the Skythe first ECM platform builton and for the cloudGrid technologies at the coreEverything distributedCloud storage for Nuxeo Core (sky's the limit)Grid for distributed job executionBuilt-in horizontal scaling


New servicesRemote publishing (multi-sites management)Replication and offline modeUnified ECM API with CMIS support


Remote publishingCurrent publishing servicepublish via proxies in the same Repositorypublish XML/FOP transformed <strong>content</strong> to local/remotefilesystem (ftp/http ...)Target: one generic publishing servicepublish locally or remotelypublish on filesystem or on Nuxeohave a unified publishing interfaceAddress multi-sites management challenges


Unified publishingNuxeoDMsFile System XML File HTMLHTML publishinghttp ftp restSystemLocal publishingNuxeo remote publishing(DocumentModels)XML publishingjavaNuxeo(proxies)DMs


Nuxeo Sync: use casesDecentralized architectureslocal read-only copy for centralized <strong>content</strong>“reverse distant publishing”Apogee mobile userslocal working copy for offline usagepush back data when back online


NuxeoRepository NationalDataNuxeoServerNational SiteDistant publishing(push)Data sync (pull)NuxeoRepositoryNuxeoServerNationalDataRegionalDataReadOnlyRegional Site


Nuxeo Enterprise Platform 6aka New YorkContent <strong>apps</strong> for enterprises


Nuxeo Enterprise Platform 6aka New YorkContent <strong>apps</strong> for enterprisesBetter UIsimplify, streamline, lighten


Nuxeo Enterprise Platform 6aka New YorkContent <strong>apps</strong> for enterprisesBetter UIsimplify, streamline, lightenLeverage the cloudall things distributed


Nuxeo Enterprise Platform 6aka New YorkContent <strong>apps</strong> for enterprisesBetter UIsimplify, streamline, lightenLeverage the cloudall things distributedFocus on <strong>content</strong> <strong>apps</strong>


Nuxeo Enterprise Platform 6aka New YorkContent <strong>apps</strong> for enterprisesBetter UIsimplify, streamline, lightenSocial FeaturesOpen Social, “Widgets”Leverage the cloudall things distributedFocus on <strong>content</strong> <strong>apps</strong>


Nuxeo Enterprise Platform 6aka New YorkContent <strong>apps</strong> for enterprisesBetter UIsimplify, streamline, lightenLeverage the cloudall things distributedSocial FeaturesOpen Social, “Widgets”Nuxeo Core 2CMIS, fully distributedFocus on <strong>content</strong> <strong>apps</strong>


Nuxeo Enterprise Platform 6aka New YorkContent <strong>apps</strong> for enterprisesBetter UIsimplify, streamline, lightenLeverage the cloudall things distributedFocus on <strong>content</strong> <strong>apps</strong>Social FeaturesOpen Social, “Widgets”Nuxeo Core 2CMIS, fully distributedBetter packaging


How You Can HelpTest, file bug reports or RFEsComment on proposed new API or API refactoringsWrite or improve pieces of documentation (FAQ,howtos, Nuxeo Books...)Use our Wiki for easier collaborationWrite or improve translation filesAlready: EN, FR, DE, IT, ES, VN, CN


How You Can Help (contd.)Become a commiterFirst, submit your patches to the JiraYou must adhere to the projects coding rules andquality standardsWe will give you direct access after a whileYou’re also free to develop your own extensionsWe can host them if you wantIncluding putting them under CI, etc.


Questions?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!