SlideShare a Scribd company logo
A Content Management Primer:
What I Wish I Knew




Richard Esplin
Community Technology
Patterns for Handling Content in
Applications



Richard Esplin
Community Technology
Why Relational Won't Cut It




Richard Esplin
Community Technology
Solving SharePoint Type Problems
With An Open Source Stack



Richard Esplin
Community Technology
Agenda
●   Making the case for content management
●   Best practices: the platform approach
●   Introducing CMIS
●   Live examples
What is Alfresco?

         Enterprise content management




1
         platform across cloud, on-premise, or
         both
         API for content applications that can
         run in the cloud, on-premise, or both
         Content hub for your enterprise tablets



        cloud      on-premise   hybrid cloud sync
What is “content”?
●   Data
    ●   Don't mistake Code for Content
●   Unstructured Data
    ●   Structured data works well in a relational data store, XML store, or
        key-value store
●   Unstructured Binary Data
    ●   Unstructured non-binary data works well in source control
●   Examples:
    ●   Audio, Video, Images, Office Documents, Engineering Files,
        Reports
What is a “content-centric application”?
●   Applications that access binary files
●   Files are often generated collaboratively
●   Often must deal with large numbers of files
●   May include a mix of structured and unstructured
    content
●   May also include business processes
A few examples
●   Web site with catalogs, white papers, and videos
●   Expense report review and approval
●   Contract negotiation, creation, and review
●   Research study authoring
●   Sales / Marketing collateral creation and communication
●   Course guide authoring and publishing
●   Images and media in games
●   Media curation, transformation, and delivery
●   Legal compliance and corporate records management
Or the business is saying . . .
●   I've got a ton of files,
●   I've got people that
    produce and consume
    them,
●   I've got systems that
    use them,
●   I want to make it
    easier!
                               Doug Waldron (cc attribution share-alike)
                               http://www.flickr.com/photos/dougww/922328173/
Let's build it ourselves!




           Pasukaru76 (cc attribution) http://www.flickr.com/photos/pasukaru76/4277763808/
DIY approach seems simple . . .
●   “This is simple stuff.”
●   Grab a web-application toolkit
●   Favorite front-end / presentation framework
●   Store a bunch of files
●   Relational Database
    ●   Data Model / Metadata
    ●   Comments / Ratings
    ●   Tagging / Categorization
File storage options
●   On disk
●   Amazon S3 or an internal CAS filer
●   Source code control repository
●   XML database
●   NoSQL document store
Relational may not cut it
●   Good at text and numbers. Not so good at
    binary.
●   Good at static table definitions. Not so good at
    dynamic aspects.
●   Size limits.
●   Random seek (streaming).
●   Search: Some relational databases can index
    into blobs, but not all.
Once files are figured out . . .
●   Ensure security
    Execute a workflow
                                      Lots
●


●   Transform the content between
    types
                                       of
●   Schedule a job
●   Provide shared drive access      custom
    Versioning
                                     code!
●


●   Replication
●   API Access
●   Integrate with authoring tools
The optimistic scenario




      gobucks2 (cc attribution non-commercial share-alike) http://www.flickr.com/photos/69331170@N00/2854583096
The pessimistic scenario




             http://commons.wikimedia.org/wiki/File:Professor_Lucifer_Butts.gif
Evaluating DIY reasonableness
●   Number and size of documents
●   Number and concurrency of users
●   Number and nature of integration points
●   Business process volatility and complexity
●   Time and cost of
    ●   Integrating all of these services / sub-systems
    ●   Maintaining all of that code . . . forever
●   Access to off-the-shelf alternatives
Introducing the content repository
●   Content = a file + metadata
●   File system
    ●   Content binaries
    ●   Search indexes
●   Database
    ●   Relations (associations)
    ●   Metadata
●   Repository
    ●   Abstraction layer
Components of content-centric systems
●   User Interface             ●   Transformation /
●   Persistence / Data Model       Rendition / Thumbnails
    / Metadata                 ●   Tagging / Categorization
●   Business Process /         ●   Authoring tool integration
    Workflow                   ●   Remote API
●   Library Services           ●   Transfer / Publication
    (Upload / Download,
    Versioning, Check-in /     ●   Comments
    Check-out)                 ●   Ratings
●   Security                   ●   Activity Streams /
●   Search                         Notification
Packaged systems
Open source content management
●   Alfresco
●   Nuxeo
●   Knowledge Tree
●   Magnolia
●   Apache Jackrabbit
●   Plone
    ●   (cmis4plone)
Best Practice: The Platform Approach
Platform approach
●   The common problems have been solved
●   Content Platform = Repository + Services
    ●   Find a platform that meets your needs
    ●   Extend the platform with your own business logic
    ●   Customize the UI that the platform provides
    ●   Or write your own front-end using whatever language or
        framework makes sense
●   Meets your current needs while providing a roadmap
    for the future
Evaluating content platforms
●   Agility                          ●   Open Source
    ●   Applicable to a broad set        ●   Troubleshooting
        of solutions vs a vertical       ●   Bug tracking
        specific solution
                                         ●   Community
    ●   Scale up, scale down
                                     ●   Standards compliance
●   Developer ergonomics
                                         ●   Easier integration
    ●   Fast and friendly
        developer model
                                         ●   Lower migration costs
                                         ●   Developer familiarity
General architecture

Web Applications               Knowledge Portals   Web Services

                      App                           CRM       Business
                      Server                                  Process
                                                              Engine




                                 Portal Server




Virtual File System                                    High Availability
Corporate Systems
                                                                Desktop



                                                WebDAV
                                                 CMIS
                                                  CIFS
                                   CMIS        SharePoint
                                 JSR-168        Protocol
                                Connectors

Social Media Channels
                                                                          Mobile
                                                        CMIS
                                                       WebDAV
                    Open Web APIs




                                 Open Web     CMIS-based
                 Web Services      APIs      Alfresco Sync   Public Alfresco Cloud
                                   CMIS
and
What is CMIS?
●   Content Management Interoperability Services
●   Language-independent, vendor-neutral API for content
    management
●   Least-common-denominator (some vendors have extensions)
    ●   CRUD functions for nodes
    ●   Check-in / check-out
    ●   Associations
    ●   Permissions (Access Control Lists)
    ●   Policies
    ●   Queries
    ●   Repository Traversal
What is CMIS?
●   OASIS standard
    ●   30+ ECM vendors agreed to implement
●   Two parts
    ●   Interoperability through standard SOAP and AtomPub
        bindings
        –   JSON bindings coming soon
    ●   SQL-based query language for rich content
        repositories
●   Vendor specific extensions may be useful
Use cases

                                      Content
                Client                                           Client
                                     Repository



               Content                Content                 Content
                                                               Content
              Repository             Repository              Repository
                                                                 Content
                                                              Repository
                                                                Repository


●   Collaborative content creation                ●   Workflow & BPM
●   Portals                                       ●   Archival
●   Client application Integration                ●   Documents generation
●   Mashups                                       ●   Digital Asset Management (DAM)
●   Embedded content store                        ●   Web Content Mangaement (WCM)
The beauty of CMIS



   Presentation
       Tier

                   REST   SOAP




                                 ?
     Content
   Services Tier




    Enterprise
    Apps Tier                        ?
Meet CMIS
  Consumer



                Client



              read   write

               Services
             Domain Model
  Provider




                                    Content
               Vendor               Management
               Mapping              Interoperability
                                    Services
               Content
              Repository     CMIS lets you read, search, write, update,
                             delete, version, control, … content and
                             metadata!
Types

  Document                     Folder
  ●
    Content                    ●
                                 Container
  ●
    Renditions                 ●
                                 Hierarchy
  ●
    Version History            ●
                                 Filing

                       Described by
                      Type Definitions

  Relationship                 ACL
  ●
    Source Object              ●
                                 Target Object
  ●
    Target Object
                               Policy
                               ●
                                 Target Object
Type Definitions

             Object                 Property
             ●
               Type Id              ●
                                      Property Id
             ●
               Parent          *    ●
                                      Display Name
             ●
               Display Name         ●
                                      Type
             ●
               Queryable            ●
                                      Required
             ●
               Controllable         ●
                                      Default Value
                                    ●
                                      …



 Document           Folder         Relationship       Policy
 ●
   Versionable                     ●
                                     Source Types
 ●
   Allow Content                   ●
                                     Target Types


                         Custom Type
Apache Chemistry
●   Open Source implementations of CMIS
●   Umbrella project for all CMIS related projects within the
    ASF
    ●   OpenCMIS (Java, client and server)
    ●   cmislib (Python, client)
    ●   phpclient (PHP, client)
    ●   DotCMIS (.NET, client)
●   De-facto reference for CMIS and used by CMIS technical
    committee to test 1.1 features
Examples
My setup
●   Debian Mint Wheezy
●   OpenJDK 1.6.0_24
●   Python 2.7.2
●   Alfresco Community Edition 4.0.d
●   Open CMIS Workbench 0.7.0
CMIS Workbench
●   Download
    ●   http://chemistry.apache.org/java/developing/tools
        /dev-tools-workbench.html
●   Connect to Alfresco
    ●   http://localhost:8080/alfresco/cmisatom
●   Good tool for figuring out what CMIS can do
●   Check out the Groovy Console!
Python
●   In the shell:                            ●   Continued:

virtualenv .                                 props = {}
./bin/easy_install cmislib                   props["cmis:objectTypeId"]="cmis:document"
./bin/python                                 doc = folder.createDocumentFromString(
                                             'testdoc.txt', props, contentString="This
from cmislib.model import CmisClient         is a test showing how to create a text
client = CmisClient(                         document", contentType='text/plain')
"http://192.168.56.1:8080/alfresco/cmisato   doc.isCheckedOut()
m", "admin", "admin")                        props = {}
repo = client.defaultRepository              props['cmis:name'] = "test-updated.txt"
repo.id                                      doc = doc.updateProperties(props)
repo.name                                    doc.name
for (k,v) in                                 doc.delete()
repo.getCapabilities().iteritems():          len(folder.getChildren())
  print "%s: %s" %(k,v)                      result = repo.query("select * from
                                             cmis:folder where cmis:name like '%alf%'")
for (k,v) in                                 len(result)
repo.getRepositoryInfo().iteritems():        for i in result:
  print "%s: %s" %(k,v)                        print i.name
root = repo.getRootFolder()                  result = repo.query("select * from
root.name                                    cmis:document where contains('name')")
folder = root.createFolder('cmis-demo')      for i in result:
folder.id                                      print i.name
folder.name
for (k,v) in
folder.properties.iteritems():
  print "%s: %s" %(k,v)
PHP and Drupal
●   Drupal CMIS Views
    ●   http://drupal.org/project/cmis_views
●   Built on Drupal CMIS
    ●   http://drupal.org/project/cmis
    ●   Configure a repository in settings.php
    ●   Enable cmis_sync
    ●   Bundles an early release of phplib
●   Currently read-only
●   Good for exposing unstructured data alongside a
     structured web page
Where to learn more
●   cmis.alfresco.com includes a public CMIS server and links
    to CMIS resources (check out the cheet sheet)
●   Read the CMIS specification
●   Apache Chemistry site has clients, lightweight server,
    documentation
●   “Getting Started with CMIS” tutorial shows how to use
    "cURL to hit AtomPub bindings directly"
●   Slideshare has some CMIS related presentations from
    Alfresco DevCon here and here
Questions?
Attribution and Licensing
●   Copyright 2012, Alfresco Software
●   Some images used in this presentation are
    licensed under the Creative Commons by-
    attribution non-commercial share-alike license.
●   Original work in this presentation is licensed
    under the Creative Commons by-attribution
    license.
●   Thanks to Jeff Potts for allowing me to base my
    presentation on his.

More Related Content

What's hot

Introduction to eXo ECM Suite
Introduction to eXo ECM SuiteIntroduction to eXo ECM Suite
Introduction to eXo ECM Suite
Tugdual Grall
 
What's new in alfresco enterprise 3 3
What's new in alfresco enterprise 3 3What's new in alfresco enterprise 3 3
What's new in alfresco enterprise 3 3Alfresco Software
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
Jen Wei Lee
 
What's New in Microsoft Dynamics CRM 2011
What's New in Microsoft Dynamics CRM 2011What's New in Microsoft Dynamics CRM 2011
What's New in Microsoft Dynamics CRM 2011
Audra_Carlisle
 
Windows Server 2012 Beta Storage Overview
Windows Server 2012 Beta Storage OverviewWindows Server 2012 Beta Storage Overview
Windows Server 2012 Beta Storage Overview
Harold Wong
 
Alfresco Records Management 2.0
Alfresco Records Management  2.0Alfresco Records Management  2.0
Alfresco Records Management 2.0
Paul Hampton
 
Sense/Net 6.0 technical
Sense/Net 6.0 technicalSense/Net 6.0 technical
Sense/Net 6.0 technical
Sense/Net Inc.
 
Sense/Net ECM Product Presentation
Sense/Net ECM Product PresentationSense/Net ECM Product Presentation
Sense/Net ECM Product Presentation
Kristóf Molnár
 
Sense/Net workflow
Sense/Net workflowSense/Net workflow
Sense/Net workflow
Sense/Net Inc.
 
CMIS is here, did you know?
CMIS is here, did you know?CMIS is here, did you know?
CMIS is here, did you know?
Symphony Software Foundation
 
CMIS overview
CMIS overviewCMIS overview
CMIS overview
Nuxeo
 
Developing Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClientDeveloping Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClient
CM First Group
 
Web Development - Lecture 1
Web Development - Lecture 1Web Development - Lecture 1
Web Development - Lecture 1
Syed Shahzaib Sohail
 
Hello SharePoint 2007!!!
Hello SharePoint 2007!!!Hello SharePoint 2007!!!
Hello SharePoint 2007!!!
Marwan Tarek
 
Share Point, The Right CMS For Your Website?
Share Point, The Right CMS For Your Website?Share Point, The Right CMS For Your Website?
Share Point, The Right CMS For Your Website?
NavigationArts
 
Sense/Net 6.0 product
Sense/Net 6.0 productSense/Net 6.0 product
Sense/Net 6.0 product
Sense/Net Inc.
 
CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA Plex
CM First Group
 
Share point 2010 comparacion de versiones
Share point 2010 comparacion de versionesShare point 2010 comparacion de versiones
Share point 2010 comparacion de versionesVielka Rojas
 
CM WebClient Datasheet
CM WebClient DatasheetCM WebClient Datasheet
CM WebClient Datasheet
CM First Group
 

What's hot (20)

Introduction to eXo ECM Suite
Introduction to eXo ECM SuiteIntroduction to eXo ECM Suite
Introduction to eXo ECM Suite
 
What's new in alfresco enterprise 3 3
What's new in alfresco enterprise 3 3What's new in alfresco enterprise 3 3
What's new in alfresco enterprise 3 3
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
 
What's New in Microsoft Dynamics CRM 2011
What's New in Microsoft Dynamics CRM 2011What's New in Microsoft Dynamics CRM 2011
What's New in Microsoft Dynamics CRM 2011
 
Windows Server 2012 Beta Storage Overview
Windows Server 2012 Beta Storage OverviewWindows Server 2012 Beta Storage Overview
Windows Server 2012 Beta Storage Overview
 
Alfresco Records Management 2.0
Alfresco Records Management  2.0Alfresco Records Management  2.0
Alfresco Records Management 2.0
 
Sense/Net 6.0 technical
Sense/Net 6.0 technicalSense/Net 6.0 technical
Sense/Net 6.0 technical
 
Sense/Net ECM Product Presentation
Sense/Net ECM Product PresentationSense/Net ECM Product Presentation
Sense/Net ECM Product Presentation
 
Sense/Net workflow
Sense/Net workflowSense/Net workflow
Sense/Net workflow
 
CMIS is here, did you know?
CMIS is here, did you know?CMIS is here, did you know?
CMIS is here, did you know?
 
CMIS overview
CMIS overviewCMIS overview
CMIS overview
 
Developing Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClientDeveloping Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClient
 
Web Development - Lecture 1
Web Development - Lecture 1Web Development - Lecture 1
Web Development - Lecture 1
 
Samba management Console
Samba management ConsoleSamba management Console
Samba management Console
 
Hello SharePoint 2007!!!
Hello SharePoint 2007!!!Hello SharePoint 2007!!!
Hello SharePoint 2007!!!
 
Share Point, The Right CMS For Your Website?
Share Point, The Right CMS For Your Website?Share Point, The Right CMS For Your Website?
Share Point, The Right CMS For Your Website?
 
Sense/Net 6.0 product
Sense/Net 6.0 productSense/Net 6.0 product
Sense/Net 6.0 product
 
CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA Plex
 
Share point 2010 comparacion de versiones
Share point 2010 comparacion de versionesShare point 2010 comparacion de versiones
Share point 2010 comparacion de versiones
 
CM WebClient Datasheet
CM WebClient DatasheetCM WebClient Datasheet
CM WebClient Datasheet
 

Viewers also liked

Gerenciamento de Documentos com Software Alfresco
Gerenciamento de Documentos com Software AlfrescoGerenciamento de Documentos com Software Alfresco
Gerenciamento de Documentos com Software Alfresco
Jose Eduardo Santarem Segundo
 
Demonstracao alfresco
Demonstracao alfrescoDemonstracao alfresco
Demonstracao alfrescoFlavio Torres
 
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning AlfrescoMeet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Richard Esplin
 
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAlfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Ambiente Livre
 
Gestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutionsGestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutionsAlfresco Software
 
Alfresco share pt
Alfresco share ptAlfresco share pt
Alfresco share pt
Richard Esplin
 

Viewers also liked (6)

Gerenciamento de Documentos com Software Alfresco
Gerenciamento de Documentos com Software AlfrescoGerenciamento de Documentos com Software Alfresco
Gerenciamento de Documentos com Software Alfresco
 
Demonstracao alfresco
Demonstracao alfrescoDemonstracao alfresco
Demonstracao alfresco
 
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning AlfrescoMeet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
Meet-ups in Brazil: Aprendendo sobre o Alfresco / Learning Alfresco
 
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAlfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
 
Gestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutionsGestao arquivistica de documentos usando alfresco infused solutions
Gestao arquivistica de documentos usando alfresco infused solutions
 
Alfresco share pt
Alfresco share ptAlfresco share pt
Alfresco share pt
 

Similar to FISL: Content Management Primer

"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
Fwdays
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
Alexandr Savchenko
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
Nirmal Fernando
 
Serverless architecture
Serverless architectureServerless architecture
Serverless architecture
Amazon Web Services
 
Extend IBM Enterprise Content Management Solutions with Content Navigator
Extend IBM Enterprise Content Management Solutions with Content NavigatorExtend IBM Enterprise Content Management Solutions with Content Navigator
Extend IBM Enterprise Content Management Solutions with Content Navigator
Perficient, Inc.
 
Inroduction of Oracle Enterprise Content Managment
Inroduction of Oracle Enterprise Content ManagmentInroduction of Oracle Enterprise Content Managment
Inroduction of Oracle Enterprise Content ManagmentMohamed Atef
 
Makersbay Overview
Makersbay OverviewMakersbay Overview
Makersbay Overviewslodha
 
Inaugural address manjusha - Indicthreads cloud computing conference 2011
Inaugural address manjusha -  Indicthreads cloud computing conference 2011Inaugural address manjusha -  Indicthreads cloud computing conference 2011
Inaugural address manjusha - Indicthreads cloud computing conference 2011
IndicThreads
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB
 
Android application development
Android application developmentAndroid application development
Android application developmentLinh Vi Tường
 
Gilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesGilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence Strategies
Eric Barroca
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
Jeff Potts
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Vidyasagar Machupalli
 
Content Management: No Mystery
Content Management: No MysteryContent Management: No Mystery
Content Management: No MysteryClearPath, LLC
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
WSO2
 
Agile Integration Workshop
Agile Integration WorkshopAgile Integration Workshop
Agile Integration Workshop
Judy Breedlove
 
Wcms2009Open Source Web Content Management System
Wcms2009Open Source Web Content Management SystemWcms2009Open Source Web Content Management System
Wcms2009Open Source Web Content Management System
Umesha Naik
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen Apps
Khalid Ahmed
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
VMware Tanzu
 

Similar to FISL: Content Management Primer (20)

"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIs
 
Serverless architecture
Serverless architectureServerless architecture
Serverless architecture
 
Extend IBM Enterprise Content Management Solutions with Content Navigator
Extend IBM Enterprise Content Management Solutions with Content NavigatorExtend IBM Enterprise Content Management Solutions with Content Navigator
Extend IBM Enterprise Content Management Solutions with Content Navigator
 
Inroduction of Oracle Enterprise Content Managment
Inroduction of Oracle Enterprise Content ManagmentInroduction of Oracle Enterprise Content Managment
Inroduction of Oracle Enterprise Content Managment
 
Makersbay Overview
Makersbay OverviewMakersbay Overview
Makersbay Overview
 
Inaugural address manjusha - Indicthreads cloud computing conference 2011
Inaugural address manjusha -  Indicthreads cloud computing conference 2011Inaugural address manjusha -  Indicthreads cloud computing conference 2011
Inaugural address manjusha - Indicthreads cloud computing conference 2011
 
Web Sphere Portal
Web Sphere PortalWeb Sphere Portal
Web Sphere Portal
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 
Android application development
Android application developmentAndroid application development
Android application development
 
Gilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence StrategiesGilbane SF - Content Convergence Strategies
Gilbane SF - Content Convergence Strategies
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
 
Content Management: No Mystery
Content Management: No MysteryContent Management: No Mystery
Content Management: No Mystery
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
 
Agile Integration Workshop
Agile Integration WorkshopAgile Integration Workshop
Agile Integration Workshop
 
Wcms2009Open Source Web Content Management System
Wcms2009Open Source Web Content Management SystemWcms2009Open Source Web Content Management System
Wcms2009Open Source Web Content Management System
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen Apps
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 

More from Richard Esplin

The Impact of Emerging Technology on Digital Transformation
The Impact of Emerging Technology on Digital TransformationThe Impact of Emerging Technology on Digital Transformation
The Impact of Emerging Technology on Digital Transformation
Richard Esplin
 
Alfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with AlfrescoAlfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with Alfresco
Richard Esplin
 
Alfresco DevCon 2018: Product Direction Keynote
Alfresco DevCon 2018: Product Direction KeynoteAlfresco DevCon 2018: Product Direction Keynote
Alfresco DevCon 2018: Product Direction Keynote
Richard Esplin
 
Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...
Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...
Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...
Richard Esplin
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Richard Esplin
 
Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...
Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...
Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...
Richard Esplin
 

More from Richard Esplin (6)

The Impact of Emerging Technology on Digital Transformation
The Impact of Emerging Technology on Digital TransformationThe Impact of Emerging Technology on Digital Transformation
The Impact of Emerging Technology on Digital Transformation
 
Alfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with AlfrescoAlfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with Alfresco
 
Alfresco DevCon 2018: Product Direction Keynote
Alfresco DevCon 2018: Product Direction KeynoteAlfresco DevCon 2018: Product Direction Keynote
Alfresco DevCon 2018: Product Direction Keynote
 
Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...
Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...
Alfresco DevCon 2018 Lighting Talk: Lessons on Open Source from the French Re...
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
 
Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...
Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...
Meet-ups Brazil: Padrões de Gerenciamento de Conteúdo / Patterns in Content M...
 

Recently uploaded

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 

Recently uploaded (20)

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

FISL: Content Management Primer

  • 1. A Content Management Primer: What I Wish I Knew Richard Esplin Community Technology
  • 2. Patterns for Handling Content in Applications Richard Esplin Community Technology
  • 3. Why Relational Won't Cut It Richard Esplin Community Technology
  • 4. Solving SharePoint Type Problems With An Open Source Stack Richard Esplin Community Technology
  • 5. Agenda ● Making the case for content management ● Best practices: the platform approach ● Introducing CMIS ● Live examples
  • 6. What is Alfresco? Enterprise content management 1 platform across cloud, on-premise, or both API for content applications that can run in the cloud, on-premise, or both Content hub for your enterprise tablets cloud on-premise hybrid cloud sync
  • 7. What is “content”? ● Data ● Don't mistake Code for Content ● Unstructured Data ● Structured data works well in a relational data store, XML store, or key-value store ● Unstructured Binary Data ● Unstructured non-binary data works well in source control ● Examples: ● Audio, Video, Images, Office Documents, Engineering Files, Reports
  • 8. What is a “content-centric application”? ● Applications that access binary files ● Files are often generated collaboratively ● Often must deal with large numbers of files ● May include a mix of structured and unstructured content ● May also include business processes
  • 9. A few examples ● Web site with catalogs, white papers, and videos ● Expense report review and approval ● Contract negotiation, creation, and review ● Research study authoring ● Sales / Marketing collateral creation and communication ● Course guide authoring and publishing ● Images and media in games ● Media curation, transformation, and delivery ● Legal compliance and corporate records management
  • 10. Or the business is saying . . . ● I've got a ton of files, ● I've got people that produce and consume them, ● I've got systems that use them, ● I want to make it easier! Doug Waldron (cc attribution share-alike) http://www.flickr.com/photos/dougww/922328173/
  • 11. Let's build it ourselves! Pasukaru76 (cc attribution) http://www.flickr.com/photos/pasukaru76/4277763808/
  • 12. DIY approach seems simple . . . ● “This is simple stuff.” ● Grab a web-application toolkit ● Favorite front-end / presentation framework ● Store a bunch of files ● Relational Database ● Data Model / Metadata ● Comments / Ratings ● Tagging / Categorization
  • 13. File storage options ● On disk ● Amazon S3 or an internal CAS filer ● Source code control repository ● XML database ● NoSQL document store
  • 14. Relational may not cut it ● Good at text and numbers. Not so good at binary. ● Good at static table definitions. Not so good at dynamic aspects. ● Size limits. ● Random seek (streaming). ● Search: Some relational databases can index into blobs, but not all.
  • 15. Once files are figured out . . . ● Ensure security Execute a workflow Lots ● ● Transform the content between types of ● Schedule a job ● Provide shared drive access custom Versioning code! ● ● Replication ● API Access ● Integrate with authoring tools
  • 16. The optimistic scenario gobucks2 (cc attribution non-commercial share-alike) http://www.flickr.com/photos/69331170@N00/2854583096
  • 17. The pessimistic scenario http://commons.wikimedia.org/wiki/File:Professor_Lucifer_Butts.gif
  • 18. Evaluating DIY reasonableness ● Number and size of documents ● Number and concurrency of users ● Number and nature of integration points ● Business process volatility and complexity ● Time and cost of ● Integrating all of these services / sub-systems ● Maintaining all of that code . . . forever ● Access to off-the-shelf alternatives
  • 19. Introducing the content repository ● Content = a file + metadata ● File system ● Content binaries ● Search indexes ● Database ● Relations (associations) ● Metadata ● Repository ● Abstraction layer
  • 20. Components of content-centric systems ● User Interface ● Transformation / ● Persistence / Data Model Rendition / Thumbnails / Metadata ● Tagging / Categorization ● Business Process / ● Authoring tool integration Workflow ● Remote API ● Library Services ● Transfer / Publication (Upload / Download, Versioning, Check-in / ● Comments Check-out) ● Ratings ● Security ● Activity Streams / ● Search Notification
  • 22. Open source content management ● Alfresco ● Nuxeo ● Knowledge Tree ● Magnolia ● Apache Jackrabbit ● Plone ● (cmis4plone)
  • 23. Best Practice: The Platform Approach
  • 24. Platform approach ● The common problems have been solved ● Content Platform = Repository + Services ● Find a platform that meets your needs ● Extend the platform with your own business logic ● Customize the UI that the platform provides ● Or write your own front-end using whatever language or framework makes sense ● Meets your current needs while providing a roadmap for the future
  • 25. Evaluating content platforms ● Agility ● Open Source ● Applicable to a broad set ● Troubleshooting of solutions vs a vertical ● Bug tracking specific solution ● Community ● Scale up, scale down ● Standards compliance ● Developer ergonomics ● Easier integration ● Fast and friendly developer model ● Lower migration costs ● Developer familiarity
  • 26. General architecture Web Applications Knowledge Portals Web Services App CRM Business Server Process Engine Portal Server Virtual File System High Availability
  • 27. Corporate Systems Desktop WebDAV CMIS CIFS CMIS SharePoint JSR-168 Protocol Connectors Social Media Channels Mobile CMIS WebDAV Open Web APIs Open Web CMIS-based Web Services APIs Alfresco Sync Public Alfresco Cloud CMIS
  • 28. and
  • 29. What is CMIS? ● Content Management Interoperability Services ● Language-independent, vendor-neutral API for content management ● Least-common-denominator (some vendors have extensions) ● CRUD functions for nodes ● Check-in / check-out ● Associations ● Permissions (Access Control Lists) ● Policies ● Queries ● Repository Traversal
  • 30. What is CMIS? ● OASIS standard ● 30+ ECM vendors agreed to implement ● Two parts ● Interoperability through standard SOAP and AtomPub bindings – JSON bindings coming soon ● SQL-based query language for rich content repositories ● Vendor specific extensions may be useful
  • 31. Use cases Content Client Client Repository Content Content Content Content Repository Repository Repository Content Repository Repository ● Collaborative content creation ● Workflow & BPM ● Portals ● Archival ● Client application Integration ● Documents generation ● Mashups ● Digital Asset Management (DAM) ● Embedded content store ● Web Content Mangaement (WCM)
  • 32. The beauty of CMIS Presentation Tier REST SOAP ? Content Services Tier Enterprise Apps Tier ?
  • 33. Meet CMIS Consumer Client read write Services Domain Model Provider Content Vendor Management Mapping Interoperability Services Content Repository CMIS lets you read, search, write, update, delete, version, control, … content and metadata!
  • 34. Types Document Folder ● Content ● Container ● Renditions ● Hierarchy ● Version History ● Filing Described by Type Definitions Relationship ACL ● Source Object ● Target Object ● Target Object Policy ● Target Object
  • 35. Type Definitions Object Property ● Type Id ● Property Id ● Parent * ● Display Name ● Display Name ● Type ● Queryable ● Required ● Controllable ● Default Value ● … Document Folder Relationship Policy ● Versionable ● Source Types ● Allow Content ● Target Types Custom Type
  • 36. Apache Chemistry ● Open Source implementations of CMIS ● Umbrella project for all CMIS related projects within the ASF ● OpenCMIS (Java, client and server) ● cmislib (Python, client) ● phpclient (PHP, client) ● DotCMIS (.NET, client) ● De-facto reference for CMIS and used by CMIS technical committee to test 1.1 features
  • 38. My setup ● Debian Mint Wheezy ● OpenJDK 1.6.0_24 ● Python 2.7.2 ● Alfresco Community Edition 4.0.d ● Open CMIS Workbench 0.7.0
  • 39. CMIS Workbench ● Download ● http://chemistry.apache.org/java/developing/tools /dev-tools-workbench.html ● Connect to Alfresco ● http://localhost:8080/alfresco/cmisatom ● Good tool for figuring out what CMIS can do ● Check out the Groovy Console!
  • 40. Python ● In the shell: ● Continued: virtualenv . props = {} ./bin/easy_install cmislib props["cmis:objectTypeId"]="cmis:document" ./bin/python doc = folder.createDocumentFromString( 'testdoc.txt', props, contentString="This from cmislib.model import CmisClient is a test showing how to create a text client = CmisClient( document", contentType='text/plain') "http://192.168.56.1:8080/alfresco/cmisato doc.isCheckedOut() m", "admin", "admin") props = {} repo = client.defaultRepository props['cmis:name'] = "test-updated.txt" repo.id doc = doc.updateProperties(props) repo.name doc.name for (k,v) in doc.delete() repo.getCapabilities().iteritems(): len(folder.getChildren()) print "%s: %s" %(k,v) result = repo.query("select * from cmis:folder where cmis:name like '%alf%'") for (k,v) in len(result) repo.getRepositoryInfo().iteritems(): for i in result: print "%s: %s" %(k,v) print i.name root = repo.getRootFolder() result = repo.query("select * from root.name cmis:document where contains('name')") folder = root.createFolder('cmis-demo') for i in result: folder.id print i.name folder.name for (k,v) in folder.properties.iteritems(): print "%s: %s" %(k,v)
  • 41. PHP and Drupal ● Drupal CMIS Views ● http://drupal.org/project/cmis_views ● Built on Drupal CMIS ● http://drupal.org/project/cmis ● Configure a repository in settings.php ● Enable cmis_sync ● Bundles an early release of phplib ● Currently read-only ● Good for exposing unstructured data alongside a structured web page
  • 42. Where to learn more ● cmis.alfresco.com includes a public CMIS server and links to CMIS resources (check out the cheet sheet) ● Read the CMIS specification ● Apache Chemistry site has clients, lightweight server, documentation ● “Getting Started with CMIS” tutorial shows how to use "cURL to hit AtomPub bindings directly" ● Slideshare has some CMIS related presentations from Alfresco DevCon here and here
  • 44. Attribution and Licensing ● Copyright 2012, Alfresco Software ● Some images used in this presentation are licensed under the Creative Commons by- attribution non-commercial share-alike license. ● Original work in this presentation is licensed under the Creative Commons by-attribution license. ● Thanks to Jeff Potts for allowing me to base my presentation on his.