use cases and technologies for integrating magnolia with alfresco
DESCRIPTION
In this session Axel Faust, PRODYNA will outline capabilities of the Alfresco content platform relevant to potential integration use cases and how those can help integrate indirect participants into editorial processes and general collaboration with Magnolia.TRANSCRIPT
USE CASES AND TECHNOLOGIES FOR INTEGRATING MAGNOLIA WITH ALFRESCO
Credit: Christmas Lights by Abhishek Shirali Some Rights Reserved CC-BY 2.0
https://www.flickr.com/photos/abhishekshirali/11397502823
AXEL FAUST PRODYNA AG
SENIOR IT CONSULTANT / SOFTWARE ARCHITECT
“The open platform for business-critical content management and collaboration.”
In a (very) few words o Secure collaboration
o Content-centric business processes
o Compliant records management
o Open ECM for on-premise, cloud and mobile
Subject Expert Group
Marketing
COLLABORATION
Repository
(on-premise)
Enterprise Sync
Hybrid Workflow
External
Agency
Cloud Media
Services
Cloud API
B2B / CLOUD ON-PREMISE
Authors
Publisher
Direct
Access
SME
Marketing
External
Agency
Authors
Publisher
Direct
Access
SME
Marketing
External
Agency
Create draft video
Create storyboard
Fill with subject detail
and sketch
Submit for „overhaul“
Review draft Submit for
review / inclusion
Asset collaboration
Authors
Publisher
Direct
Access
SME
Marketing
External
Agency
Submission / Cherry-picking
Browse & Import
Create synchronization
Ask / submit for inclusion
Review & feedback
OR
Import
alternatively
RELEVANT APIS
REST(-like)
Generic domain model / API
Different protocol bindings
URL discovery
Focus on file/folder (+ item)
Formal type mechanism
Existing full-featured libraries
Proprietary API
Typically JSON-based
REST: focus on resources
REST-like: anything
(just make sure it‘s JSON)
CMIS ISSUES „Everyone integrate with ME!“ syndrome
CMIS „transition phase“ – Magnolia 4.x – 5.x
Some key DMS concepts not yet supported
REST ISSUES Majority of exposed API is „internal“
Discoverability of parameters / conditions
Identifiers typically non-universal / non-uniform
HYBRID
INTEGRATION
CONCEPT Best of both worlds
CMIS core + ReST add-ons to “flesh out”
Both platforms = active participants
Reusable / adaptable
Generic CMIS services / API
Pluggable actions, authentication, metadata mapping…
DEMO
CMIS CORE
MODULE STRUCTURE
CMIS COMMON
CMIS CLIENT
CMIS MAPPING
CMIS BROWSER APP
CMIS CHEMISTRY
CLIENT
MODULE STRUCTURE
CMIS COMMON
CMIS CLIENT
CMIS MAPPING
CMIS BROWSER APP
CMIS CHEMISTRY
CLIENT
provides
serivces
implements
data types
Server configuration (JCR)
Connector configuration (JCR)
Logic configuration (JCR)
„Standard“ content app
SERVICE ABSTRACTION Service
Manager
Service Factory
Service
Service FactoryImpl
Service Impl
Session Aspect
produces
produces
retrieve service
Apache Chemistry
OpenCMIS provider
API
SESSION ASPECT?
CMIS session setup
Host and binding
Authentication
Cache, proxy, compression…
EXAMPLE ASPECT
External authentication (Alfresco)
Magnolia trusted to authenticate user
ReST setup call to obtain “user ticket”
Verification “Magnolia as client” + user exists
User ticket => CMIS “password”
CONFIGURATION
CONFIGURATION
METAMODEL
MAPPING
MAPPING ELEMENTS
Mapping Rule
Mapping Service
MappingManager
ApplicabilityDefinition
CompositeRule
XY Rule
MAPPING ELEMENTS Mapping Service
MappingManager
Context • direction
• CMIS: identifier / parentIdentifier
• JCR: identifier / parentIdentifier
+ path / parentPath
• JCR workspace
• contextData (arbitrary)
Result • Primary / secondary type(s)
• Mapped properties (key-value)
• Binary stream
• Property / type removals
• Mapped children
Mapping Rule
ApplicabilityDefinition
CompositeRule
XY Rule
CONFIGURATION
REST INTERACTION
1) Initiate asset process (REST)
2) Fetch / push asset(s) (CMIS)
N) Post/fetch updates to/for Pulse (REST)
N+1) Trigger review (REST)
N+2) Fetch / view result (CMIS)
N+3) Import asset(s) (CMIS)
N+4) Notify completion (REST)
BASIC FRAMEWORK
Primarily Magnolia
Abstract service facades
JAX-RS / ReSTEasy client
Commands vs. actions / „remote forms“
MODULES
CMIS
CLIENT
CMIS
MAPPING
CMIS
BROWSER APP
CMIS
CHEMISTRY
CLIENT
CMIS
COMMON
MODULES
CMIS
CLIENT
CMIS
MAPPING
CMIS
BROWSER APP
CMIS
CHEMISTRY
CLIENT
ALFRESCO
CORE
ALFRESCO
UI
ALFRESCO
CHEMISTRY
CMIS
COMMON
REMOTE FORM ACTION Action X
REMOTE FORM ACTION Action X
1) Instantiate
with form / item ID
(ALF) Form
Definition
REMOTE FORM ACTION Action X
1) Instantiate
with form / item ID
(ALF) Form
Definition (MGNL) Form
Definition
Item
2) Build
3) Mix-in cust.
fields
REMOTE FORM ACTION Action X
1) Instantiate
with form / item ID
(ALF) Form
Definition Item
2) Build
3) Mix-in cust.
fields
(MGNL) Form
Definition
FormData 4) Submit Editor
Callback
CONCLUSIONS &
FINAL REMARKS
CONCLUSIONS
Highest „effort per progress“ in Magnolia UI
(#1: replacing JCR dependancies)
Wanted #1: CMIS module update (5.x)
Wanted #2: Command parameter exposure
Improbable: full identifier decoupling
FINAL REMARKS
Magnolia 5.2.2 / Alfresco 4.0+ (minor fix req.)
Plan: basic modules => Community • CMIS browser + client services
• Simple submission / collaboration process
Thanks for your attention!
QUESTIONS &
ANSWERS