Relational Won't Cut It: Architecting Content Centric Apps

52
Relational Won't Cut It Architecting Content- Centric Applications for Java Jeff Potts Chief Community Officer

description

In the past, developers have chosen to develop their own content-centric apps from scratch or by leveraging low level libraries. A content repository like Alfresco can save time and cost. Even if you don't choose Alfresco, you should still consider leveraging a standard API like CMIS as much as possible.

Transcript of 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
Ive got a ton of files
Ive 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. Lets Build it Ourselves!
9. DIY approach seems simple
Whats 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. Content repository

  • Content =a file + metadata

13. File system 14. Content binaries 15. Search indexes 16. Database 17. Relations (associations) 18. Metadata 19. Repository 20. Abstraction layer