SlideShare a Scribd company logo
1 of 52
Relational Won't Cut ItArchitecting Content-Centric Applications for Java Jeff Potts Chief Community Officer
Agenda What is a content-centric application? Do-it-yourself approaches A better way: The Platform Approach Content Management Interoperability Services (CMIS) Standard Alfresco technical overview Repository services APIs
What is a Content-Centric Application? Web application with a mix of structured and unstructured data Unstructured data is typically file-based Office documents Images Audio/Video Reports Usually collaborative May also include business processes
A Few Examples Expense report review & approval Contract negotiation, creation, & review Press request/fulfillment Research study authoring Sales/Marketing collateral creation & communication Course guide ("student packet") authoring/publishing
Or the business is saying I’ve got a ton of files I’ve got people that produce them, sometimes collaboratively, and people that consume them. I want to somehow make it easier to deal with all of this. Source: eqqman
Pains Inability to find important content Black hole process Re-creating the wheel Productivity loss Higher costs Using outdated content Legal/business risk Loss-of-life/injury Source: khainomore
Components of content-centric systems User Interface Persistence/Data Model/Metadata Business Processes/Workflow Library Services (Upload/Download, Versioning, & Check-in/Check-out) Security Search Transforms/Renditions/Thumbs Tagging/Categorization Authoring tool integration Remote API Scheduler Comments/Ratings/Activity Streams
Let’s Build it Ourselves!
DIY approach seems simple “What’s so special about content-centric apps?” Standard web app toolkit Favorite front-end/presentation framework Relational Database Data Model/Metadata Comments/Ratings Tagging/Categorization Files? Generally, a Bad Idea
Files: Relational may not cut it Relational is good at text and numbers. Binary data, YMMV Size limits Random seek (streaming) Search: Some relational databases can index into blobs, but not all
File storage options On disk Amazon S3 or an internal CAS filer Source code control repository XML database NoSQL document store Content repository Apache Jackrabbit Alfresco Other open source and proprietary repositories
Content repository ,[object Object]
File system
Content binaries
Search indexes
Database
Relations (associations)
Metadata
Repository
Abstraction layer,[object Object]
“What have we done?” Source: gobucks2
Factors that affect DIY reasonableness Number and size of documents Number and concurrency of users Number and nature of integration points Business process volatility & complexity Time and cost of Integrating all of these services/sub-systems Maintaining all of that code…forever
The Platform Approach
Platform approach Much of this has already been solved Content Platform = Repository + Services Find a platform that meets your needs Extend the platform with your own business logic Write your own front-end using whatever language or framework makes sense Or, customize the UI that the platform provides
What makes a great content platform? Agility Applicable to a broad set of solutions Scale up, scale down Fast/Friendly Development Model Open Source Troubleshooting Bug tracking Community Standards compliance Lower switching costs Easier integration
Bigpicture Web Applications Knowledge Portals Web Services Business Process Engine App Server CRM Portal Server Virtual File System High Availability FTP CIFS WebDAV
and
What is CMIS? Content Management Interoperability Services Language-independent, vendor-neutral API for content management CRUD functions for nodes Check-in/check-out Associations Permissions (Access Control Lists) Policies Queries Repository traversal
The Beauty of Presentation Tier REST SOAP Content Services Tier ? ? Enterprise Apps Tier
CMIS ,[object Object]
REST / Atom
WebServices
Use cases
Repository to repository
Application to repository
Federatedrepositories
CMIS Alfresco extensions,[object Object]
Implementations Already Available… Providers Consumers Developed by 30+ ECM Vendors
Open Source implementations of CMIS Apache Chemistry is the umbrella project for all CMIS related projects within the ASF OpenCMIS (Java, client and server) cmislib (Python, client) phpclient (PHP, client) DotCMIS (.NET, client)
Alfresco Overview Alfresco is an open source Enterprise Content Management platform Can manage any kind of file, any size Stores the file and metadata All content and metadata is searchable Files can be secured to specific users and groups CMIS-compliant
Alfresco Overview (Cont’d) Provides versioning and check-in/check-out Has a built-in workflow engine Can be accessed through a browser or from desktop applications via CIFS, WebDAV, FTP, IMAP, SMTP, SharePoint Three editions Community Team Enterprise
High-level Architecture Plus: ,[object Object]
SharePoint,[object Object]
Repository Services
Repository Services Services allow the content items within the repository to be managed : ,[object Object]
Creation, modification, deletion, …
 Control over the objects
Permissions, locks
 Content models
Properties, associations
 Workflows

More Related Content

What's hot

VMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabricVMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabricVMUG IT
 
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef AutomateAWS OpsWorks for Chef Automate
AWS OpsWorks for Chef AutomatePolarSeven Pty Ltd
 
AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...
AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...
AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...PolarSeven Pty Ltd
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven ArchitectureChris Patterson
 
Dropping ACID - Building Scalable Systems That Work
Dropping ACID - Building Scalable Systems That WorkDropping ACID - Building Scalable Systems That Work
Dropping ACID - Building Scalable Systems That WorkChris Patterson
 
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceExperiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceLucas Jellema
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practiceaegloff
 
Running an erlang based messaging system on AWS
Running an erlang based messaging system on AWSRunning an erlang based messaging system on AWS
Running an erlang based messaging system on AWSLahav Savir
 
CloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDCCloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDCChris Riley ☁
 
Creating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized WebsiteCreating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized WebsiteBrian Huff
 
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision MakersMicrosoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision MakersMicrosoft Private Cloud
 
Microservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationMicroservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationBizTalk360
 
Amazon.com Corporate IT apps Migration to AWS
Amazon.com Corporate IT apps Migration to AWSAmazon.com Corporate IT apps Migration to AWS
Amazon.com Corporate IT apps Migration to AWSAmazon Web Services
 
Cloud Migration, Application Modernization and Security for Partners
Cloud Migration, Application Modernization and Security for PartnersCloud Migration, Application Modernization and Security for Partners
Cloud Migration, Application Modernization and Security for PartnersAmazon Web Services
 
Integrations & Extensibility in Brightspace: Creating your ed-tech ecosystem
Integrations & Extensibility in Brightspace: Creating your ed-tech ecosystemIntegrations & Extensibility in Brightspace: Creating your ed-tech ecosystem
Integrations & Extensibility in Brightspace: Creating your ed-tech ecosystemD2L Barry
 
Agile Integration eBook from 2018
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018Kim Clark
 

What's hot (20)

sMash_for_zOS-users
sMash_for_zOS-userssMash_for_zOS-users
sMash_for_zOS-users
 
Alfresco CMIS
Alfresco CMISAlfresco CMIS
Alfresco CMIS
 
VMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabricVMUGIT UC 2013 - 05a VMware vFabric
VMUGIT UC 2013 - 05a VMware vFabric
 
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef AutomateAWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate
 
AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...
AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...
AWS CloudFormation Automation, TrafficScript, and Serverless architecture wit...
 
Coud discovery chap 3
Coud discovery chap 3Coud discovery chap 3
Coud discovery chap 3
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Dropping ACID - Building Scalable Systems That Work
Dropping ACID - Building Scalable Systems That WorkDropping ACID - Building Scalable Systems That Work
Dropping ACID - Building Scalable Systems That Work
 
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User InterfaceExperiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
Experiences with Oracle WebCenter 11g: Implementing SOA with a User Interface
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practice
 
Running an erlang based messaging system on AWS
Running an erlang based messaging system on AWSRunning an erlang based messaging system on AWS
Running an erlang based messaging system on AWS
 
CloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDCCloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDC
 
Creating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized WebsiteCreating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized Website
 
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision MakersMicrosoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
 
Microservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationMicroservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of Integration
 
Amazon.com Corporate IT apps Migration to AWS
Amazon.com Corporate IT apps Migration to AWSAmazon.com Corporate IT apps Migration to AWS
Amazon.com Corporate IT apps Migration to AWS
 
Cloud Migration, Application Modernization and Security for Partners
Cloud Migration, Application Modernization and Security for PartnersCloud Migration, Application Modernization and Security for Partners
Cloud Migration, Application Modernization and Security for Partners
 
EVOLVE'15 | Enhance | Loyola Baskar | Cisco - Multi-tenancy AEM Architectur...
EVOLVE'15 |  Enhance | Loyola Baskar | Cisco -  Multi-tenancy AEM Architectur...EVOLVE'15 |  Enhance | Loyola Baskar | Cisco -  Multi-tenancy AEM Architectur...
EVOLVE'15 | Enhance | Loyola Baskar | Cisco - Multi-tenancy AEM Architectur...
 
Integrations & Extensibility in Brightspace: Creating your ed-tech ecosystem
Integrations & Extensibility in Brightspace: Creating your ed-tech ecosystemIntegrations & Extensibility in Brightspace: Creating your ed-tech ecosystem
Integrations & Extensibility in Brightspace: Creating your ed-tech ecosystem
 
Agile Integration eBook from 2018
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018
 

Viewers also liked

Επαγγελματική Εξουθένωση
Επαγγελματική ΕξουθένωσηΕπαγγελματική Εξουθένωση
Επαγγελματική Εξουθένωσηmariaagiorgiti
 
H εργασιακή εξουθένωση και αντιμετώπισή της
H εργασιακή εξουθένωση και αντιμετώπισή τηςH εργασιακή εξουθένωση και αντιμετώπισή της
H εργασιακή εξουθένωση και αντιμετώπισή τηςChristos Agrogiannos
 
Avoid burnout at work
Avoid burnout at workAvoid burnout at work
Avoid burnout at workGraham Revel
 
Employee Burnout is a Complex Problem — But It Doesn’t Have to Be
Employee Burnout is a Complex Problem — But It Doesn’t Have to BeEmployee Burnout is a Complex Problem — But It Doesn’t Have to Be
Employee Burnout is a Complex Problem — But It Doesn’t Have to BeHuman Capital Media
 
Teacher Burnout
Teacher BurnoutTeacher Burnout
Teacher Burnoutnatalie S
 
Teacher Burnout powerpoint
Teacher Burnout powerpointTeacher Burnout powerpoint
Teacher Burnout powerpointLPBUTLER
 
Burnout Presentation
Burnout PresentationBurnout Presentation
Burnout PresentationJLS10
 
BURNOUT SYNDROME
BURNOUT SYNDROMEBURNOUT SYNDROME
BURNOUT SYNDROMEUma Binoy
 

Viewers also liked (9)

Επαγγελματική Εξουθένωση
Επαγγελματική ΕξουθένωσηΕπαγγελματική Εξουθένωση
Επαγγελματική Εξουθένωση
 
H εργασιακή εξουθένωση και αντιμετώπισή της
H εργασιακή εξουθένωση και αντιμετώπισή τηςH εργασιακή εξουθένωση και αντιμετώπισή της
H εργασιακή εξουθένωση και αντιμετώπισή της
 
Avoid burnout at work
Avoid burnout at workAvoid burnout at work
Avoid burnout at work
 
Employee Burnout is a Complex Problem — But It Doesn’t Have to Be
Employee Burnout is a Complex Problem — But It Doesn’t Have to BeEmployee Burnout is a Complex Problem — But It Doesn’t Have to Be
Employee Burnout is a Complex Problem — But It Doesn’t Have to Be
 
Teacher Burnout
Teacher BurnoutTeacher Burnout
Teacher Burnout
 
Elementary Happiness
Elementary HappinessElementary Happiness
Elementary Happiness
 
Teacher Burnout powerpoint
Teacher Burnout powerpointTeacher Burnout powerpoint
Teacher Burnout powerpoint
 
Burnout Presentation
Burnout PresentationBurnout Presentation
Burnout Presentation
 
BURNOUT SYNDROME
BURNOUT SYNDROMEBURNOUT SYNDROME
BURNOUT SYNDROME
 

Similar to Relational Won't Cut It: Architecting Content Centric Apps

Alfresco WCM Case Study: National Academy of Sciences
Alfresco WCM Case Study: National Academy of SciencesAlfresco WCM Case Study: National Academy of Sciences
Alfresco WCM Case Study: National Academy of Sciencesrivetlogic
 
Introducing Alfresco Community Edition 3.2
Introducing Alfresco Community Edition 3.2Introducing Alfresco Community Edition 3.2
Introducing Alfresco Community Edition 3.2Alfresco Software
 
Alfresco in an Hour
Alfresco in an HourAlfresco in an Hour
Alfresco in an HourPaul Hampton
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco Software
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3Jeff Potts
 
Application Portfolio Migration v1
Application Portfolio Migration v1Application Portfolio Migration v1
Application Portfolio Migration v1Arthur Ching
 
Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco Software
 
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other PlatformsAlfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other Platformsdavidocmillergmailcom
 
D8 - Bank Baltikums Case Study
D8 - Bank Baltikums Case StudyD8 - Bank Baltikums Case Study
D8 - Bank Baltikums Case Studyintalio_bpm
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition3scale
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionSteven Willmott
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for DevelopersJeff Potts
 
Cms an overview
Cms an overviewCms an overview
Cms an overviewkmusthu
 
Joomla Chicago Meeting July, 2009: CMS CageMatch II
Joomla Chicago Meeting July, 2009: CMS CageMatch IIJoomla Chicago Meeting July, 2009: CMS CageMatch II
Joomla Chicago Meeting July, 2009: CMS CageMatch IIJohn Coonen
 
SharePoint Overview
SharePoint OverviewSharePoint Overview
SharePoint OverviewAmy Phillips
 

Similar to Relational Won't Cut It: Architecting Content Centric Apps (20)

Alfresco WCM Case Study: National Academy of Sciences
Alfresco WCM Case Study: National Academy of SciencesAlfresco WCM Case Study: National Academy of Sciences
Alfresco WCM Case Study: National Academy of Sciences
 
Introducing Alfresco Community Edition 3.2
Introducing Alfresco Community Edition 3.2Introducing Alfresco Community Edition 3.2
Introducing Alfresco Community Edition 3.2
 
Alfresco in an Hour
Alfresco in an HourAlfresco in an Hour
Alfresco in an Hour
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Cfalfresco
CfalfrescoCfalfresco
Cfalfresco
 
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
 
Intro To Alfresco Part 3
Intro To Alfresco Part 3Intro To Alfresco Part 3
Intro To Alfresco Part 3
 
Application Portfolio Migration v1
Application Portfolio Migration v1Application Portfolio Migration v1
Application Portfolio Migration v1
 
Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture Overview
 
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other PlatformsAlfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
 
D8 - Bank Baltikums Case Study
D8 - Bank Baltikums Case StudyD8 - Bank Baltikums Case Study
D8 - Bank Baltikums Case Study
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for Developers
 
iPlanet presentation
iPlanet presentationiPlanet presentation
iPlanet presentation
 
Cms pres
Cms presCms pres
Cms pres
 
Cms an overview
Cms an overviewCms an overview
Cms an overview
 
Joomla Chicago Meeting July, 2009: CMS CageMatch II
Joomla Chicago Meeting July, 2009: CMS CageMatch IIJoomla Chicago Meeting July, 2009: CMS CageMatch II
Joomla Chicago Meeting July, 2009: CMS CageMatch II
 
SharePoint Overview
SharePoint OverviewSharePoint Overview
SharePoint Overview
 
Alfresco Architecture
Alfresco ArchitectureAlfresco Architecture
Alfresco Architecture
 

More from Jeff Potts

No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleJeff Potts
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesJeff Potts
 
Flexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesFlexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesJeff Potts
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryJeff Potts
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Jeff Potts
 
Connecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISConnecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISJeff Potts
 
The Challenges of Keeping Bees
The Challenges of Keeping BeesThe Challenges of Keeping Bees
The Challenges of Keeping BeesJeff Potts
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMISJeff Potts
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should knowJeff Potts
 
CMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentCMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentJeff Potts
 
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...Jeff Potts
 
Alfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM MarketAlfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM MarketJeff Potts
 
Join the Alfresco community
Join the Alfresco communityJoin the Alfresco community
Join the Alfresco communityJeff Potts
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public APIJeff Potts
 
Apache Chemistry in Action
Apache Chemistry in ActionApache Chemistry in Action
Apache Chemistry in ActionJeff Potts
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsJeff Potts
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMISJeff Potts
 
Alfresco SAUG: State of ECM
Alfresco SAUG: State of ECMAlfresco SAUG: State of ECM
Alfresco SAUG: State of ECMJeff Potts
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsJeff Potts
 

More from Jeff Potts (20)

No Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with AnsibleNo Docker? No Problem: Automating installation and config with Ansible
No Docker? No Problem: Automating installation and config with Ansible
 
Moving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to MicroservicesMoving From Actions & Behaviors to Microservices
Moving From Actions & Behaviors to Microservices
 
Flexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL TemplatesFlexible Permissions Management with ACL Templates
Flexible Permissions Management with ACL Templates
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
 
Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?Could Alfresco Survive a Zombie Attack?
Could Alfresco Survive a Zombie Attack?
 
Connecting Content Management Apps with CMIS
Connecting Content Management Apps with CMISConnecting Content Management Apps with CMIS
Connecting Content Management Apps with CMIS
 
The Challenges of Keeping Bees
The Challenges of Keeping BeesThe Challenges of Keeping Bees
The Challenges of Keeping Bees
 
Getting Started With CMIS
Getting Started With CMISGetting Started With CMIS
Getting Started With CMIS
 
Alfresco: What every developer should know
Alfresco: What every developer should knowAlfresco: What every developer should know
Alfresco: What every developer should know
 
CMIS: An Open API for Managing Content
CMIS: An Open API for Managing ContentCMIS: An Open API for Managing Content
CMIS: An Open API for Managing Content
 
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
Apache Chemistry in Action: Using CMIS and your favorite language to unlock c...
 
Alfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM MarketAlfresco: The Story of How Open Source Disrupted the ECM Market
Alfresco: The Story of How Open Source Disrupted the ECM Market
 
Join the Alfresco community
Join the Alfresco communityJoin the Alfresco community
Join the Alfresco community
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public API
 
Apache Chemistry in Action
Apache Chemistry in ActionApache Chemistry in Action
Apache Chemistry in Action
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 
Alfresco Community Survey 2012 Results
Alfresco Community Survey 2012 ResultsAlfresco Community Survey 2012 Results
Alfresco Community Survey 2012 Results
 
Getting Started with CMIS
Getting Started with CMISGetting Started with CMIS
Getting Started with CMIS
 
Alfresco SAUG: State of ECM
Alfresco SAUG: State of ECMAlfresco SAUG: State of ECM
Alfresco SAUG: State of ECM
 
Alfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & IntegrationsAlfresco SAUG: CMIS & Integrations
Alfresco SAUG: CMIS & Integrations
 

Recently uploaded

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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

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...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Relational Won't Cut It: Architecting Content Centric Apps

  • 1. Relational Won't Cut ItArchitecting Content-Centric Applications for Java Jeff Potts Chief Community Officer
  • 2. Agenda What is a content-centric application? Do-it-yourself approaches A better way: The Platform Approach Content Management Interoperability Services (CMIS) Standard Alfresco technical overview Repository services APIs
  • 3. What is a Content-Centric Application? Web application with a mix of structured and unstructured data Unstructured data is typically file-based Office documents Images Audio/Video Reports Usually collaborative May also include business processes
  • 4. A Few Examples Expense report review & approval Contract negotiation, creation, & review Press request/fulfillment Research study authoring Sales/Marketing collateral creation & communication Course guide ("student packet") authoring/publishing
  • 5. Or the business is saying I’ve got a ton of files I’ve got people that produce them, sometimes collaboratively, and people that consume them. I want to somehow make it easier to deal with all of this. Source: eqqman
  • 6. Pains Inability to find important content Black hole process Re-creating the wheel Productivity loss Higher costs Using outdated content Legal/business risk Loss-of-life/injury Source: khainomore
  • 7. Components of content-centric systems User Interface Persistence/Data Model/Metadata Business Processes/Workflow Library Services (Upload/Download, Versioning, & Check-in/Check-out) Security Search Transforms/Renditions/Thumbs Tagging/Categorization Authoring tool integration Remote API Scheduler Comments/Ratings/Activity Streams
  • 8. Let’s Build it Ourselves!
  • 9. DIY approach seems simple “What’s so special about content-centric apps?” Standard web app toolkit Favorite front-end/presentation framework Relational Database Data Model/Metadata Comments/Ratings Tagging/Categorization Files? Generally, a Bad Idea
  • 10. Files: Relational may not cut it Relational is good at text and numbers. Binary data, YMMV Size limits Random seek (streaming) Search: Some relational databases can index into blobs, but not all
  • 11. File storage options On disk Amazon S3 or an internal CAS filer Source code control repository XML database NoSQL document store Content repository Apache Jackrabbit Alfresco Other open source and proprietary repositories
  • 12.
  • 20.
  • 21. “What have we done?” Source: gobucks2
  • 22. Factors that affect DIY reasonableness Number and size of documents Number and concurrency of users Number and nature of integration points Business process volatility & complexity Time and cost of Integrating all of these services/sub-systems Maintaining all of that code…forever
  • 24. Platform approach Much of this has already been solved Content Platform = Repository + Services Find a platform that meets your needs Extend the platform with your own business logic Write your own front-end using whatever language or framework makes sense Or, customize the UI that the platform provides
  • 25. What makes a great content platform? Agility Applicable to a broad set of solutions Scale up, scale down Fast/Friendly Development Model Open Source Troubleshooting Bug tracking Community Standards compliance Lower switching costs Easier integration
  • 26. Bigpicture Web Applications Knowledge Portals Web Services Business Process Engine App Server CRM Portal Server Virtual File System High Availability FTP CIFS WebDAV
  • 27. and
  • 28. What is CMIS? Content Management Interoperability Services Language-independent, vendor-neutral API for content management CRUD functions for nodes Check-in/check-out Associations Permissions (Access Control Lists) Policies Queries Repository traversal
  • 29. The Beauty of Presentation Tier REST SOAP Content Services Tier ? ? Enterprise Apps Tier
  • 30.
  • 37.
  • 38. Implementations Already Available… Providers Consumers Developed by 30+ ECM Vendors
  • 39. Open Source implementations of CMIS Apache Chemistry is the umbrella project for all CMIS related projects within the ASF OpenCMIS (Java, client and server) cmislib (Python, client) phpclient (PHP, client) DotCMIS (.NET, client)
  • 40.
  • 41. Alfresco Overview Alfresco is an open source Enterprise Content Management platform Can manage any kind of file, any size Stores the file and metadata All content and metadata is searchable Files can be secured to specific users and groups CMIS-compliant
  • 42. Alfresco Overview (Cont’d) Provides versioning and check-in/check-out Has a built-in workflow engine Can be accessed through a browser or from desktop applications via CIFS, WebDAV, FTP, IMAP, SMTP, SharePoint Three editions Community Team Enterprise
  • 43.
  • 44.
  • 46.
  • 48. Control over the objects
  • 54. Rules and Automatic Actions
  • 55.
  • 58. Can beleveraged by workflows
  • 59.
  • 61. Run one or several actions
  • 64.
  • 65. Workflows Full BPM capabilities with jBPM/Activiti Rich features : Parallel or serial workflows Joins, forks, conditions … Group or individual assignees Actions and complex behaviors Implement your custom lifecycle model through workflows Extensible--Build your own business processes
  • 66. Security - Authentication Alfresco can handle it or pass it off to others ActiveDirectory LDAP Kerberos NTLM SSO Custom Source: rooreynolds
  • 67. Security - Authorization Spring Security Framework (ACEGI) under the covers Users & Groups Access Control Lists Permissions Hierarchical
  • 68.
  • 81. Sites
  • 84.
  • 85. Java & JavaScript Alfresco’s “foundation” API is Java Server-side JavaScript is also an option Remote APIs Web Services SOAP HTTP REST Webscripts - Java or JavaScript CMIS - Atom REST or SOAP Source: 96dpi
  • 86.
  • 87. Summary Platform = Repository + Services CMIS is an important standard Alfresco is a great CMIS server Even if you don’t pick Alfresco, try to leverage CMIS Alfresco provides the repository plus services pre-integrated and ready for your custom content-centric apps
  • 88. For More Information… Alfresco Community http://www.alfresco.org Alfresco Forums http://forums.alfresco.com Alfresco Wiki http://wiki.alfresco.com Alfresco Blogroll http://blogs.alfresco.com ECM Architect Blog http://ecmarchitect.com
  • 91. Data Modeling Repository is a collection of nodes Everything is a node, nodes are typed Content Model is expressed in XML Cold-deploy most common, hot deploy possible Types, aspects, properties, associations, constraints Hierarchical Types inherit from super types
  • 92. Types, Aspects, Properties, & Associations Content Types Type “report” (metadata : subject, abstract, …) Aspects Aspect “client” (metadata : name, reference, contact, …) Properties Property “customer id” [integer] Associations Association “related documents”
  • 93. Example Aspects Useful for Cross-Cutting Type = Report Type = Contract Type = Email Type = Case Type attributes Subject Abstract Type attributes Effectivitystart date Effectivity and date Type attributes Subject Sender Recipients Type attributes Format Aspect = Client Aspect attributes Client nameClient IdContact-> Related docs
  • 94.
  • 95. Services implemented through flexible components
  • 98.
  • 99. Transformations and metadata extractions are used by Share web interface : PNG thumbnail Flashpreview Metadata extraction Transformations

Editor's Notes

  1. "We're drowning in documents (or videos or images). We don't know what we have and none of it is organized. We waste so much time and money recreating stuff that probably already exists, if we could just find it.""We've got serious business risk caused by people using the first thing they find instead of the right thing.""We have a process for sending stuff around to the rest of the team for review and approval, but we have no idea what's in flight or who we're waiting on or why.""We have teams of people from both inside and outside the organization that need to be able to work together efficiently. They need to share files, of course, but really, it's more than that.""We've got business systems that generate, store, and process things like reports and images at an alarming rate."
  2. May start out simple, but the system tends to morph over time. Let’s look at three “levels” of content-centric app complexity.
  3. Process, Security, & SearchSome open source search engines that are out thereJBossjBPMActivitiIntalioBonitaSoftSome open source libraries that may be helpful in extraction/conversion: - Tikka - FOP - POI - ImageMagick - JAI
  4. You’ve built a system that’s pretty bad-ass, and it is customized to your specific needs, but at what cost?
  5. Is it easy to extend?Does it get out of the way?
  6. CMIS Alfresco extensions support CMIS 1.0 out-of-scopefeaturessuch as aspects and datalists.
  7. Founded in 2005John NewtonFounding developer of IngresCo-founded DocumentumJohn PowellCOO of Business ObjectsPresident of Oracle UKLots of Engineers from Documentum, Interwoven, VignetteAssembled from Open Source components
  8. Pick your stack:Linux / Windows OS servers : RHEL, Solaris, Ubuntu, Windows Server, …DBMS : MySQL, MS SQL, Oracle, PostgreSQL, DB2, …Application servers : Tomcat, JBoss, WebLogic, WebSphere, …Web browsers : Firefox, MSIE, SafariIdentity Management systems : LDAP, AD, Kerberos, …
  9. Activiti first appeared in theAlfresco 3.4 E preview release and willbe production readywith 4.0