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

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

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