SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to eXo ECM Suite
Introduction to eXo ECM SuiteIntroduction to eXo ECM Suite
Introduction to eXo ECM SuiteTugdual 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 WorkplaceJen 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 2011Audra_Carlisle
 
Windows Server 2012 Beta Storage Overview
Windows Server 2012 Beta Storage OverviewWindows Server 2012 Beta Storage Overview
Windows Server 2012 Beta Storage OverviewHarold Wong
 
Alfresco Records Management 2.0
Alfresco Records Management  2.0Alfresco Records Management  2.0
Alfresco Records Management 2.0Paul Hampton
 
Sense/Net 6.0 technical
Sense/Net 6.0 technicalSense/Net 6.0 technical
Sense/Net 6.0 technicalSense/Net Inc.
 
Sense/Net ECM Product Presentation
Sense/Net ECM Product PresentationSense/Net ECM Product Presentation
Sense/Net ECM Product PresentationKristóf Molnár
 
CMIS overview
CMIS overviewCMIS overview
CMIS overviewNuxeo
 
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 WebClientCM First Group
 
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
 
CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA PlexCM 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 DatasheetCM First Group
 

Was ist angesagt? (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
 

Andere mochten auch

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 AlfrescoRichard 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 SourceAmbiente 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
 

Andere mochten auch (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
 

Ähnlich wie FISL: Content Management Primer

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
 
"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
 
Cloud Native Application Integration With APIs
Cloud Native Application Integration With APIsCloud Native Application Integration With APIs
Cloud Native Application Integration With APIsNirmal Fernando
 
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 NavigatorPerficient, 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 2011IndicThreads
 
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 CloudMongoDB
 
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 StrategiesEric Barroca
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMISJeff 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 - GIDS17Vidyasagar 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 WorkshopJudy Breedlove
 
Wcms2009Open Source Web Content Management System
Wcms2009Open Source Web Content Management SystemWcms2009Open Source Web Content Management System
Wcms2009Open Source Web Content Management SystemUmesha 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 AppsKhalid Ahmed
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 

Ähnlich wie FISL: Content Management Primer (20)

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 ...
 
"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...
 
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
 

Mehr von 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 TransformationRichard Esplin
 
Alfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with AlfrescoAlfresco DevCon 2018: Collaborating with Alfresco
Alfresco DevCon 2018: Collaborating with AlfrescoRichard Esplin
 
Alfresco DevCon 2018: Product Direction Keynote
Alfresco DevCon 2018: Product Direction KeynoteAlfresco DevCon 2018: Product Direction Keynote
Alfresco DevCon 2018: Product Direction KeynoteRichard 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.2Richard 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
 

Mehr von 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...
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

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.