Alfresco Web Content Management Roadmap - 3.2 and Beyond
-
Upload
alfresco-software -
Category
Technology
-
view
4.796 -
download
2
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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