alfresco web content management roadmap - 3.2 and beyond

28
Alfresco WCM Roadmap – 3.2 and Beyond Michael Uzquiano Director of WCM and Network Products www.alfresco.com

Upload: alfresco-software

Post on 08-May-2015

4.796 views

Category:

Technology


2 download

DESCRIPTION

Review the technical implementation of Alfresco Web Content Management, including architecture, and technology stack, and current direction forward. Clustering, High Availability, Web Delivery RUntime, Technology Agnosticism, SURF component services, and the Forms service are covered. Different use cases are also reviewed.

TRANSCRIPT

Page 1: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Alfresco WCMRoadmap – 3.2 and Beyond

Michael UzquianoDirector of WCM and Network Products

www.alfresco.com

Page 2: Alfresco Web Content Management Roadmap - 3.2 and Beyond

AgendaRoadmap – 3.2 and Beyond

● Recent Releases● Alfresco 2.1.7

● Upcoming Releases● Alfresco 2.2.3● Alfresco 3.1

● Web Content Management – Product Direction● Full Repository Clustering and High Availability● Web Delivery Runtime + API● Surf Component Services● Forms Service

● Q&A

Page 3: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Alfresco RoadmapAlfresco 3.2

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

20092009

2.1.72.1.7• February

Labs 3DLabs 3D• January

2.2.32.2.3• February

3.0.13.0.1• December

3.13.1• Mid-March

3.23.2• July

LabsLabs• Projected

2.2.42.2.4• TBD

3.1.13.1.1• Mid-May

3.1.23.1.2• Projected

3.2.13.2.1• Projected

LabsFamilyLabs

Family

2.1Family

2.1Family

2.2Family

2.2Family

3.0Family

3.0Family

3.1Family

3.1Family

3.2Family

3.2Family

LabsLabs• Start of June

Migrate to 3.1Migrate to 3.1

Migrate to 3.1Migrate to 3.1

Page 4: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Alfresco 2.1.7End of February 2009

Critical Fixes• Copy/Paste on a document does not copy the discussions

• The description textarea in the modify space properties web form eats one leading newline each time it is submitted

• XSS in forum code

• Behavior of delete cascade

• User doesn't go to "Detail of Content" page if "Start discussions" action was performed

• User doesn't go to "Details of Space" page if "Start discussions" action was performed

• JSF client DownloadContent URLs are not cachable by a forward proxy (such as Apache mod_proxy+mod_cache)

• Open Lucene ResultSet memory leaks in client code (mostly WCM and dialogs)

• Export of space with large number of items silently fails

• putContent() method in the org.alfresco.webservice.util.ContentUtils class fails to upload *.java, *.txt, *.xml/html files

• AVM index AUTO and FULL updates should amalgamate the snapshots to index to minimise the index work.

• Kerberos web filter checks the auth component type preventing startup

• CIFS\AVM stops responding and all folders are empty for a brief period

• XML parser apparently is not thread safe while the JSP container is trying to get lots of different HTTP threads to parse

• JavaScript copy of folder results in the same qname for all copies

• Webdav MOVE is refused by apache reverse proxy and rewritten as PUT and DELETE (loss of Alfresco version information)

• Error message appears on server B when category is deleted from server A

• ExceptionStackUtil - isAssignableFrom object and parameter interchanged!

• Delete Permission Not Checked When Marking A File For Delete On Close

Page 5: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Additional Fixes and Updates• Miscelleaneous FSR packaging items

• Total result set size returned for paged result sets via web services

• Incorrect info displaying on Summary screens

• javascript person.createGroup() does not thrown an exception if group already exists

• Add the property UUIDBinding to the bean org.alfresco.repo.importer.ImporterBootstrap

• When accessing Powerpoint 2007 (PPTX) via the JSF Client causes browser error on IE6 and IE7.

• After session has timed out, expanding a space in the Navigator results in unfriendly error

• Permission model may still throw null pointer exceptions when types are unknown in the DD

Optimizations• Configuration option for running NFS as non-root user (specify alternate binding port)

• Link Validation Service disabled by default due to high resource requirement

• Long query sort times on alf_transaction table

• Explicitly close BufferedInputStream in HibernateAuditDAO.java

• Patches may get applied twice

• Deployment to FSR needs to take into account the absolute paths

Alfresco 2.1.7End of February 2009

Page 6: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Alfresco 2.2.3End of February, 2009

Critical Fixes• Content publisher cannot submit modified assets (2.2.3-dev regress)

• Create content by Content Contributor or Content Publisher fails

• No row with the given identifier exists when submitting 30 items concurrently (org.hibernate.ObjectNotFoundException)

• Fast Attribute Service lookups

• Fix for WCM Regression (Revert Failing for Content Publisher)

• Fixes for Submit Action Queue (non-persistent)

• Fix for Web Form List Control (for IE6 and IE7)

• Content Contributor cannot edit their own items

• Staging Sandbox should be read only via CIFS and FTP

• Adding users to a web project is slow due to deep permission copies

• Renaming WCM folder makes it a shared folder

• Simultaneous Deployment to ASR & FSR results in a DuplicateChildNodeNameException in ASR

• Child key does not case insensitive name

• AVM console - add option to specify tag and description when creating snapshot

• AVM locking is not always against the correct store (it does not always strip to the staging area store)

• Adding new sandbox causes the modifier for all submitted items to change

• Script error on the bulk import action from Create menu on my sandbox page in IE7

Page 7: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Additional Fixes and Updates• Inline callouts can reference a web script maintained in the Data Dictionary

• Misleading exceptions reported during AVM flatten and update

• Upgrades from 2.1.7 and 2.2.1 failed on PostgreSQL

• Enable Logging of Leaked Transactions by Default

• Virtual Server Logging minimized (tweak)

• Display Formatting fixes for WCM wizards

Alfresco 2.2.3End of February, 2009

Performance Optimizations• Diff performance degrades on large data sets

• L2 Cache Optimization + Disable for specific AVM Model Objects

• Removal of AVM Lookup Cache + new strategy

• Fix for Workflow Performance Issue when displaying web forms in sandbox modified items

• WCM - performance of invite web user (content manager) has regressed

Page 8: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Additional Features• Hibernate Performance Improvements

• Remote API Improvements

• Repository Bugs and Improvements

• Enhanced Consistency Checking

• System Monitoring Metrics (JMX) – JSR 160, JConsole integration

• Hyperic Connector

• Kofax Integration

• Easy Clustering

• Composite Actions

• Share WebView Dashlet Contribution

• Sharepoint Protocol Links Tab support

• Theming Examples and Documentation for Share

• Switch from YUI Editor to TinyMCE for Share

• Support for MS Office 2007 Transformations

Alfresco 3.1Middle of March 2009

Features• Includes all WCM Fixes from Alfresco 2.2.3

• The “go-to” version for WCM in the Alfresco 3.x family

• Middle of March 2009

Page 9: Alfresco Web Content Management Roadmap - 3.2 and Beyond

WCM ServicesWCM Services

Alfresco SurfAlfresco Surf

WCMWCM

RepositoryRepository

Technology StackAlfresco 3.x

WCM Presentation Runtime• Alfresco Surf

• Lightweight and Scriptable Web Framework

• Pages, Templates, Components, Themes, Chrome and more.

• Stand-alone and scalable on its own tier

WCM Application• Web Forms and Content Transformations

• Collaboration Tools around Web Projects (Workflow, Notifications)

• User Interface, CIFS, FTP and more

Repository Services• REST API for Web Projects, Sandboxes, Web Assets, Users and Workflow

• Web Scripts Runtime (pluggable API)

• Web Services, CIFS, FTP, WebDAV and more

Repository• Subversion-like source control, branching, layers, locking, snapshots

• Auditing, Workflow, Integrated Access Control

• High Performance, Enterprise-class Scalability

Page 10: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Web Content ManagementProduct Direction

Enterprise Class• Full Repository Clustering and High Availability

• Web Delivery Runtime

• Web Delivery API

• Surf Component and Deploy Services

From the Desktop to the Web• Move content easily from Alfresco Share to Web Projects to Live Web Site

• Make it simple

• Make it low cost

• Harmonize the object models for DM and WCM

• Forms Service

DM WCM

Page 11: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Clustering / High AvailabilityProduct Direction

Clustering and High Availability• Should be a fundamental capability of Alfresco Repository

• Regardless of whether you are using Alfresco Repository for:

• Document Management

• Web Content Management

• Records Management

• Digital Asset Management

• Imaging

Implementation• Separate WCM Services from WCM Application

• Strong contract - formal public API that uses proper Spring beans and offers proper REST interfaces

• Allow Alfresco Repository to go “headless”

• Follow same pattern with implementation of RM Services (also in 3.2)

Page 12: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Web Delivery RuntimeProduct Direction

Web Delivery Runtime

• High Performance (Real-time Request Processing)

• Clustering and High Availability

• Integrated Deployment Receiver for Alfresco WCM

Web Delivery API

• CMIS – Content Management Interoperability Services

• AQL (Alfresco Query Language)

• SQL-like Query Language

• Support for full Alfresco model

• Node and Path interrogation interfaces

Page 13: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Technology AgnosticProduct Direction

• Web Delivery Tier must provide technology agnostic support

• CMIS

• SQL Query

• REST interfaces

• Compatible with Alfresco Surf

• Alfresco Surf components integrate to Web Delivery API

• Move your web application across environments without changing web app

• Compatible with other web frameworks

• Open-Standards and flexible HTTP based API allow for other web frameworks to easily integrate

• Portals, Groovy, PHP, .NET, mashup engines, more

Page 14: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Surf Component ServicesProduct Direction

Surf Component Services

• Import and Export Services for Alfresco Surf

• Start with any object type and traverse the Surf object tree to export all dependencies

• All Surf object types - pages, templates, components, themes, chrome, etc

• Standalone archive file which can be transported to other Alfresco Surf instances

• Discovery, upload and download services integrated to Alfresco Network

• Dependency tracking

• Internal – Surf object bindings

• External – Alfresco Repository version, AMP versions, Surf Runtime versions

Page 15: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Example: Alfresco Share

• Administrator loads up Alfresco Share administration tool

• Discover new Alfresco Share add-ons

• Dashlets

• Pages and Page Components

• Themes

• Dashboard Layouts

• Installs new add-ons

• They install into Alfresco Web Project – user sandbox

• Instantly preview changes to Alfresco Share site

• Submit changes for approval through Alfresco WCM workflow

• Deploy to Test Servers

• Deploy to Production (Live Site)

Surf Component ServicesProduct Direction

Page 16: Alfresco Web Content Management Roadmap - 3.2 and Beyond

User Generated ContentScenario #1: “Live” Share

Authoring

Production

2. Content is added to Share Site and reflects automatically on the Share instance.

4. Surf updates remote object store in authoring store. This reflects instantly on the Share instance.

1. Content Worker begins working with Alfresco Share.

3. Content Worker updates their user dashboard.

Collaborative ContentCollaborative Content

Content APIContent API

Web Project ContentWeb Project Content

Web APIWeb API

Page 17: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Business ContentScenario #2: Publish to “Live” Share

• Goal: Support content which originates inside the business

• Problem:

• James wants to write a new article for the home page of the “live” Share site

• He wants to preview his article “in-context” as he writes it

• He wants the article to be approved and then published to the “live” Share site

• Problem

• Holly wants to build a new dashlet for users of her Share collaboration site

• She wants to test it out on a test server to make sure she has it right

• She wants the dashlet to be approved and then deployed to the “live” Share site

Page 18: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Authoring

Collaborative ContentCollaborative Content

Content APIContent API

Web Project ContentWeb Project Content

Web APIWeb API

Preview

Collaborative ContentCollaborative Content

Content APIContent API

Web Project ContentWeb Project Content

Web APIWeb API

1. James writes new content using Alfresco Forms Service

2. Content is saved to his user sandbox in the Web Project

3. James previews the content using the Preview Server.

The Preview Server uses virtual content retrieval to pull content from James’ user sandbox.

4. James previews the content

Business ContentScenario #2: Publish to “Live” Share

Page 19: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Preview

Site (DM)Site (DM)

DM APIDM API

SiteStore (AVM)SiteStore (AVM)

WEB APIWEB API

Production

Collaborative ContentCollaborative Content

Content APIContent API

Runtime ContentRuntime Content

CMIS APICMIS API

Web Project ContentWeb Project Content

Web APIWeb API

Authoring

Collaborative ContentCollaborative Content

Content APIContent API

Web Project ContentWeb Project Content

Web APIWeb API

5. James submits the content for approval.

6. The content is approved through workflow and is published to the live site.

DeploymentDeployment

Business ContentScenario #2: Publish to “Live” Share

Page 20: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Forms ServiceProduct Direction

Ajax-driven UI Runtime

• Integrated into Alfresco Surf

• Embeddable into your own non-Surf web applications

• Javascript-driven via Ajax libraries

Universal Model

• Generators load content from ADM or from AVM

• Load into universal or intermediary “model” format

• Persisters write content back into either repository (as DM Node, Web Forms or XML)

IntermediaryModelFormat

IntermediaryModelFormat

XMLXML

JSONJSON

Custom FormatCustom Format

DM NodeDM Node

Web FormWeb Form

Page 21: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Forms ServiceProduct Direction

Content Modeling

• Validation

• Referential Integrity Checking

• Composite Objects (Associations, Categories)

Multiple Forms for a Single Content Type

• Simple Content Entry Forms

• Complex Administrator Forms

• Role-specific Forms

Forms Configuration Service

• Driven by XML Configuration Service (similar to Web Client)

• Classpath and Repository / Content Configuration

• Dynamic Forms

Page 22: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Base Config - Control Rendering Templates

<config> <default-controls> <type name="d:text" template="controls/textfield.ftl"> <control-param name="size">50</control-param> </type> <type name="d:mltext" template="controls/textarea.ftl" /> <type name="d:int" template="controls/textfield.ftl" /> <type name="d:float" template="controls/textfield.ftl" /> <type name="d:double" template="controls/textfield.ftl" /> <type name="d:long" template="controls/textfield.ftl" /> <type name="d:boolean" template="controls/checkbox.ftl" /> <type name="d:date" template="controls/date.ftl" /> <type name="d:datetime" template="controls/date.ftl" /> <type name="d:any" template="controls/textfield.ftl" /> <type name="association" template="controls/association.ftl" />

</default-controls></config>

<config> <default-controls> <type name="d:text" template="controls/textfield.ftl"> <control-param name="size">50</control-param> </type> <type name="d:mltext" template="controls/textarea.ftl" /> <type name="d:int" template="controls/textfield.ftl" /> <type name="d:float" template="controls/textfield.ftl" /> <type name="d:double" template="controls/textfield.ftl" /> <type name="d:long" template="controls/textfield.ftl" /> <type name="d:boolean" template="controls/checkbox.ftl" /> <type name="d:date" template="controls/date.ftl" /> <type name="d:datetime" template="controls/date.ftl" /> <type name="d:any" template="controls/textfield.ftl" /> <type name="association" template="controls/association.ftl" />

</default-controls></config>

Forms ServiceProduct Direction

Page 23: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Base Config - Constraint Handlers

<constraint-handlers> <constraint type="MANDATORY" validation-handler="Alfresco.forms.validation.mandatory" /> <constraint type="REGEX" validation-handler="Alfresco.forms.validation.regexMatch" message="The field contains an invalid character" /></constraint-handlers>

<constraint-handlers> <constraint type="MANDATORY" validation-handler="Alfresco.forms.validation.mandatory" /> <constraint type="REGEX" validation-handler="Alfresco.forms.validation.regexMatch" message="The field contains an invalid character" /></constraint-handlers>

Default Form for cm:content – simple String compare condition

<!-- Default form configuration for the cm:content type --> <config evaluator="string-compare" condition="cm:content"> <form> <field-visibility> <show id="cm:name" /> <show id="cm:title" /> <show id="cm:description" appearance=“fieldset” /> </field-visibility> </form> </config>

<!-- Default form configuration for the cm:content type --> <config evaluator="string-compare" condition="cm:content"> <form> <field-visibility> <show id="cm:name" /> <show id="cm:title" /> <show id="cm:description" appearance=“fieldset” /> </field-visibility> </form> </config>

Forms ServiceProduct Direction

Page 24: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Role-Based Forms - Example

<config evaluator="string-compare" condition="content"> <form submission-url="submission/url"> <view-form template="/path/view/template" requires-role="Consumer" /> <edit-form template="/path/edit/template/manager" requires-role="Manager" /> <edit-form template="/path/edit/template/contributor" requires-role="Contributor" /> <create-form template="/path/create/template" requires-role="Manager" /> <create-form template="/path/create/template/norole"/> <field-visibility> <show id="title" for-mode="view, create" /> </field-visibility> <appearance> <set id="details" appearance="fieldset" /> <set id="user" parent="details" appearance="panel" /> <field id="name" label="Name" label-id="field_label_name" disabled="true“ set="details“ help-text=“test1" help-text-id=“test2" > <control template="alfresco/extension/formcontrols/my-name.ftl"> <control-param name="foo">bar</control-param> </control> <constraint-message type="REGEX" message=“Bad character - '{0}'" /> </field> <field id="quota" set="user" requires-role="Coordinator" /> </appearance> </form></config>

<config evaluator="string-compare" condition="content"> <form submission-url="submission/url"> <view-form template="/path/view/template" requires-role="Consumer" /> <edit-form template="/path/edit/template/manager" requires-role="Manager" /> <edit-form template="/path/edit/template/contributor" requires-role="Contributor" /> <create-form template="/path/create/template" requires-role="Manager" /> <create-form template="/path/create/template/norole"/> <field-visibility> <show id="title" for-mode="view, create" /> </field-visibility> <appearance> <set id="details" appearance="fieldset" /> <set id="user" parent="details" appearance="panel" /> <field id="name" label="Name" label-id="field_label_name" disabled="true“ set="details“ help-text=“test1" help-text-id=“test2" > <control template="alfresco/extension/formcontrols/my-name.ftl"> <control-param name="foo">bar</control-param> </control> <constraint-message type="REGEX" message=“Bad character - '{0}'" /> </field> <field id="quota" set="user" requires-role="Coordinator" /> </appearance> </form></config>

Forms ServiceProduct Direction

Page 25: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Forms for WCM and Web Studio

• Will eventually replace existing Web Forms capability for WCM

• Retain XSD Compliance for WCM authored content

• Forms integrated to Alfresco Surf

• Forms integrated to Alfresco Web Studio

• In-Context Editing

• Should be part of next Alfresco Labs

• Future Plans

• Forms Designer

• Visual Layout of Forms

Forms ServiceProduct Direction

Page 26: Alfresco Web Content Management Roadmap - 3.2 and Beyond

WebDesigners

BusinessContent

Contributors

WebDevelopers

WebContent

Contributors

Project Collaboration• Source Documents

• Word, Excel, PDF, Text, Feeds

• Desktop Integration, Offline Edit

Easy to use Forms, Quick Entry• Web Forms

• In-Context / In-Place Editing

• Web Site Preview

Developer Tools• CIFS, FTP, WebDAV, NFS

• IDE Integration (Eclipse, etc)

• Source Control + AVM

Visual Designers, Iteration• In-Context Visual Designer

• Components, Templates, Pages

• Drag and Drop Assembly

Web Applications

and Web Sites

Web Applications

and Web Sites

CollaborationUsers and Roles

Page 27: Alfresco Web Content Management Roadmap - 3.2 and Beyond

BusinessContent

Contributors

WebDesigners

WebDevelopers

WebContent

Contributors

Alfresco ShareAlfresco Share

Alfresco Web StudioAlfresco FormsAlfresco Web StudioAlfresco Forms

Alfresco Web StudioAlfresco Surf

Alfresco Web StudioAlfresco Surf

Alfresco ApplicationsUsers and Roles

Intelligent File SystemIDE Integration

Intelligent File SystemIDE Integration

Page 28: Alfresco Web Content Management Roadmap - 3.2 and Beyond

Questions?

Alfresco Roadmap• http://wiki.alfresco.com/wiki/Roadmap

Alfresco Forms• http://wiki.alfresco.com/wiki/Forms

Alfresco Surf• http://wiki.alfresco.com/wiki/Surf_Platform

Alfresco Web Studio• http://wiki.alfresco.com/wiki/Web_Studio