SlideShare a Scribd company logo
1 of 22
Download to read offline
A content repository for your
 PHP application or CMS?


  August 20, 2011   Sankt Augustin




  Paul Borgermans & Henri Bergius
About me
●   Active in open source / PHP community for a while
           –   PHP based CMS solutions (mostly eZ Publish)
           –              board member
●   Fancying :
     –   Apache family of projects (mainly Solr)
     –   NoSQL (Not only SQL) and scalable architectures
     –   eZ Publish & CMS systems in general
     –   Semantic aspects
●   Contact
               paul.borgermans@gmail.com
               @paulborgermans
The Pitch


In many cases of web based
applications, a content repository is
a better alternative for managing
and serving content


   (as opposed to the lower level SQL stores)
Architecture

Traditional integrated approach      Decoupled approach




 Content Management System

       Web Application

                                           Framework

                   Abstraction?


                                     CR                CR
           Database
OK, but what is a content repository?
A content repository is a provider of ...
●   Storage
       –   Flexibility in content modeling
       –   Durability
       –   Scalability / Performance
●   Services
       –   Read/Write of content, versioning
       –   Access control
       –   Information retrieval
       –   (Analytics)
       –   (Semantics)
Flexibility
●   You want it to swallow anything
●   The less data design implications, the better
●   Run-time, scriptable schema's

●   Let it map to your data-model effortlessly
        –   Mixing structured and un-structered data/blobs
●   From SQL to Object/Document oriented access
        –   Much more natural for most application domains
Durability


●   ACID, damn you!
         Of course you want it to be safe
          .. But it might be a trade-off for performance
●   Implicit / Explicit versioning (when desired)
Performance / Scalability
●   Maybe not always a
    concern




●   But should not be your
    concern beyond checking
    that it is scalable!
Services
●   Versioning
●   Information retrieval
        –   Rich, complex queries/fetches
        –   Full-text search
        –   References / Relations
●   Access control
        –   Plug-in mechanisms desired
        –   Mapping of domain specific rules (to the CR)
●   Analytics / Semantics
        –   Plugins / Tools
Challenges
●   Standardisation in API's
        –   Main API is very proper to
             underlying systems
        –   CMIS
        –   PHPCR
●   Mobile
        –   Content optimisation
        –   Extra analytics (location,
             context)
        –   Off-line use
A selection of possible engines to drive a CR
               (in NoSQL land)
CouchDB
●   Content modeling:
    Document oriented, schema free
●   API: RESTful, (PHP wrapper @koredn)
●   Scalability: distributed, master-master
●   Robustness: ACID compliant
●   Built-in full text search: no
●   Extra
        –   Off-line use cases
        –   Map / Reduce
MongoDB
●   Content modeling:
    Document oriented, schema free
●   API: binary protocol, PHP extension available
●   Scalability: Master-Slave, Sharding
●   Robustness: at a cost
●   Built-in full text search: no
●   Extra
        –   Updates in place for fields
        –   Rich (ugly?) query syntax
Hbase
●   Content modeling:
    Google big table clone, column oriented
●   API: Thrift, HTTP
●   Scalability: excellent
●   Robustness:
    Not entirely ACID, but still very good
●   Built-in full text search: no
●   Extra
         –   Built in versioning
         –   Swallows large blobs easily
Apache Solr
●   Not so much storage
    (but can be a caching storage layer too)
●   Very rich and powerful Information Retrieval Engine
●   API: HTTP, Java, several PHP wrappers
●   Scalability: very good, and getting even better*
●   Robustness
        –   SolrCloud*
●   Extra: join-like queries*



              * Solr 4.0
Lily

http://www.lilyproject.org/
Lily, “big data” content repository
●   Provides a very rich feature set
●   RESTful, Java API
●   Building on




●   Apache license
Over to Henri …
http://www.slideshare.net/bergie/phpcr-standard-content-repository-for-php

More Related Content

What's hot

ORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate OverviewORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate Overview
Brett Meyer
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01
jgregory1234
 

What's hot (20)

Serialization (Avro, Message Pack, Kryo)
Serialization (Avro, Message Pack, Kryo)Serialization (Avro, Message Pack, Kryo)
Serialization (Avro, Message Pack, Kryo)
 
ApacheCon09: Avro
ApacheCon09: AvroApacheCon09: Avro
ApacheCon09: Avro
 
ORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate OverviewORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate Overview
 
Not Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and CapabilitiesNot Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and Capabilities
 
Orm and hibernate
Orm and hibernateOrm and hibernate
Orm and hibernate
 
lessons from managing a pulsar cluster
 lessons from managing a pulsar cluster lessons from managing a pulsar cluster
lessons from managing a pulsar cluster
 
Serialization and performance in Java
Serialization and performance in JavaSerialization and performance in Java
Serialization and performance in Java
 
Hibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance TechniquesHibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance Techniques
 
Design and architecture of Jackrabbit
Design and architecture of JackrabbitDesign and architecture of Jackrabbit
Design and architecture of Jackrabbit
 
File System On Steroids
File System On SteroidsFile System On Steroids
File System On Steroids
 
Level DB - Quick Cheat Sheet
Level DB - Quick Cheat SheetLevel DB - Quick Cheat Sheet
Level DB - Quick Cheat Sheet
 
Open Source SQL Databases
Open Source SQL DatabasesOpen Source SQL Databases
Open Source SQL Databases
 
Get Django, Get Hired - An opinionated guide to getting the best job, for the...
Get Django, Get Hired - An opinionated guide to getting the best job, for the...Get Django, Get Hired - An opinionated guide to getting the best job, for the...
Get Django, Get Hired - An opinionated guide to getting the best job, for the...
 
Ruby on rails for beginers
Ruby on rails for beginersRuby on rails for beginers
Ruby on rails for beginers
 
Stardog 1.1: An Easier, Smarter, Faster RDF Database
Stardog 1.1: An Easier, Smarter, Faster RDF DatabaseStardog 1.1: An Easier, Smarter, Faster RDF Database
Stardog 1.1: An Easier, Smarter, Faster RDF Database
 
How pulsar stores data at Pulsar-na-summit-2021.pptx (1)
How pulsar stores data at Pulsar-na-summit-2021.pptx (1)How pulsar stores data at Pulsar-na-summit-2021.pptx (1)
How pulsar stores data at Pulsar-na-summit-2021.pptx (1)
 
Introduction to Apache solr
Introduction to Apache solrIntroduction to Apache solr
Introduction to Apache solr
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01
 
Qcon
QconQcon
Qcon
 
PHP Profiling/performance
PHP Profiling/performancePHP Profiling/performance
PHP Profiling/performance
 

Viewers also liked

5.2 pembangunan atur cara
5.2 pembangunan atur cara5.2 pembangunan atur cara
5.2 pembangunan atur cara
dean36
 
PHP 5 + MySQL 5 = A Perfect 10
PHP 5 + MySQL 5 = A Perfect 10PHP 5 + MySQL 5 = A Perfect 10
PHP 5 + MySQL 5 = A Perfect 10
Adam Trachtenberg
 
Slot 5 proses pembangunan multimedia
Slot 5 proses pembangunan multimediaSlot 5 proses pembangunan multimedia
Slot 5 proses pembangunan multimedia
ramly5597
 
Nota Pembangunan Laman Web
Nota Pembangunan Laman WebNota Pembangunan Laman Web
Nota Pembangunan Laman Web
Farah Waheda
 

Viewers also liked (12)

5.2 pembangunan atur cara
5.2 pembangunan atur cara5.2 pembangunan atur cara
5.2 pembangunan atur cara
 
Why You Should Choose PHP For Your Future Web Development?
Why You Should Choose PHP For Your Future Web Development?Why You Should Choose PHP For Your Future Web Development?
Why You Should Choose PHP For Your Future Web Development?
 
Fitur baru
Fitur baruFitur baru
Fitur baru
 
PHP Application Frameworks
PHP Application FrameworksPHP Application Frameworks
PHP Application Frameworks
 
Best Practices in PHP Application Deployment
Best Practices in PHP Application DeploymentBest Practices in PHP Application Deployment
Best Practices in PHP Application Deployment
 
PHP & The secure development lifecycle
PHP & The secure development lifecyclePHP & The secure development lifecycle
PHP & The secure development lifecycle
 
PHP 5 + MySQL 5 = A Perfect 10
PHP 5 + MySQL 5 = A Perfect 10PHP 5 + MySQL 5 = A Perfect 10
PHP 5 + MySQL 5 = A Perfect 10
 
Slot 5 proses pembangunan multimedia
Slot 5 proses pembangunan multimediaSlot 5 proses pembangunan multimedia
Slot 5 proses pembangunan multimedia
 
PHP & MySQL 教學
PHP & MySQL 教學PHP & MySQL 教學
PHP & MySQL 教學
 
Konsep pembangunan tapak web & laman web
Konsep pembangunan tapak web & laman webKonsep pembangunan tapak web & laman web
Konsep pembangunan tapak web & laman web
 
Nota Pembangunan Laman Web
Nota Pembangunan Laman WebNota Pembangunan Laman Web
Nota Pembangunan Laman Web
 
Anatomy of a Modern PHP Application Architecture
Anatomy of a Modern PHP Application Architecture Anatomy of a Modern PHP Application Architecture
Anatomy of a Modern PHP Application Architecture
 

Similar to A content repository for your PHP application or CMS?

Drill architecture 20120913
Drill architecture 20120913Drill architecture 20120913
Drill architecture 20120913
jasonfrantz
 
Stateful Interaction In Serverless Architecture With Redis: Pyounguk Cho
Stateful Interaction In Serverless Architecture With Redis: Pyounguk ChoStateful Interaction In Serverless Architecture With Redis: Pyounguk Cho
Stateful Interaction In Serverless Architecture With Redis: Pyounguk Cho
Redis Labs
 
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
Qian Lin
 

Similar to A content repository for your PHP application or CMS? (20)

FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
 
Apache drill
Apache drillApache drill
Apache drill
 
Backend & Frontend architecture scalability & websockets
Backend & Frontend architecture scalability & websocketsBackend & Frontend architecture scalability & websockets
Backend & Frontend architecture scalability & websockets
 
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
JPoint'15 Mom, I so wish Hibernate for my NoSQL database...
 
WEBINAR: ZF, Ext JS and noSQL, the perfect alchemy to build the next CMS gene...
WEBINAR: ZF, Ext JS and noSQL, the perfect alchemy to build the next CMS gene...WEBINAR: ZF, Ext JS and noSQL, the perfect alchemy to build the next CMS gene...
WEBINAR: ZF, Ext JS and noSQL, the perfect alchemy to build the next CMS gene...
 
CI_CONF 2012: Scaling - Chris Miller
CI_CONF 2012: Scaling - Chris MillerCI_CONF 2012: Scaling - Chris Miller
CI_CONF 2012: Scaling - Chris Miller
 
CI_CONF 2012: Scaling
CI_CONF 2012: ScalingCI_CONF 2012: Scaling
CI_CONF 2012: Scaling
 
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management SystemBarcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
 
Drill architecture 20120913
Drill architecture 20120913Drill architecture 20120913
Drill architecture 20120913
 
Stateful Interaction In Serverless Architecture With Redis: Pyounguk Cho
Stateful Interaction In Serverless Architecture With Redis: Pyounguk ChoStateful Interaction In Serverless Architecture With Redis: Pyounguk Cho
Stateful Interaction In Serverless Architecture With Redis: Pyounguk Cho
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
 
Cross-platform interaction
Cross-platform interactionCross-platform interaction
Cross-platform interaction
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
 
Oracle OpenWo2014 review part 03 three_paa_s_database
Oracle OpenWo2014 review part 03 three_paa_s_databaseOracle OpenWo2014 review part 03 three_paa_s_database
Oracle OpenWo2014 review part 03 three_paa_s_database
 
HDFCloud Workshop: HDF5 in the Cloud
HDFCloud Workshop: HDF5 in the CloudHDFCloud Workshop: HDF5 in the Cloud
HDFCloud Workshop: HDF5 in the Cloud
 
Big SQL Competitive Summary - Vendor Landscape
Big SQL Competitive Summary - Vendor LandscapeBig SQL Competitive Summary - Vendor Landscape
Big SQL Competitive Summary - Vendor Landscape
 
Apache Arrow: Present and Future @ ScaledML 2020
Apache Arrow: Present and Future @ ScaledML 2020Apache Arrow: Present and Future @ ScaledML 2020
Apache Arrow: Present and Future @ ScaledML 2020
 
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
A Survey of Advanced Non-relational Database Systems: Approaches and Applicat...
 
REST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookREST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical Look
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - 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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

A content repository for your PHP application or CMS?

  • 1. A content repository for your PHP application or CMS? August 20, 2011 Sankt Augustin Paul Borgermans & Henri Bergius
  • 2. About me ● Active in open source / PHP community for a while – PHP based CMS solutions (mostly eZ Publish) – board member ● Fancying : – Apache family of projects (mainly Solr) – NoSQL (Not only SQL) and scalable architectures – eZ Publish & CMS systems in general – Semantic aspects ● Contact paul.borgermans@gmail.com @paulborgermans
  • 3. The Pitch In many cases of web based applications, a content repository is a better alternative for managing and serving content (as opposed to the lower level SQL stores)
  • 4. Architecture Traditional integrated approach Decoupled approach Content Management System Web Application Framework Abstraction? CR CR Database
  • 5. OK, but what is a content repository?
  • 6. A content repository is a provider of ... ● Storage – Flexibility in content modeling – Durability – Scalability / Performance ● Services – Read/Write of content, versioning – Access control – Information retrieval – (Analytics) – (Semantics)
  • 7. Flexibility ● You want it to swallow anything ● The less data design implications, the better ● Run-time, scriptable schema's ● Let it map to your data-model effortlessly – Mixing structured and un-structered data/blobs ● From SQL to Object/Document oriented access – Much more natural for most application domains
  • 8. Durability ● ACID, damn you! Of course you want it to be safe .. But it might be a trade-off for performance ● Implicit / Explicit versioning (when desired)
  • 9. Performance / Scalability ● Maybe not always a concern ● But should not be your concern beyond checking that it is scalable!
  • 10. Services ● Versioning ● Information retrieval – Rich, complex queries/fetches – Full-text search – References / Relations ● Access control – Plug-in mechanisms desired – Mapping of domain specific rules (to the CR) ● Analytics / Semantics – Plugins / Tools
  • 11. Challenges ● Standardisation in API's – Main API is very proper to underlying systems – CMIS – PHPCR ● Mobile – Content optimisation – Extra analytics (location, context) – Off-line use
  • 12. A selection of possible engines to drive a CR (in NoSQL land)
  • 13. CouchDB ● Content modeling: Document oriented, schema free ● API: RESTful, (PHP wrapper @koredn) ● Scalability: distributed, master-master ● Robustness: ACID compliant ● Built-in full text search: no ● Extra – Off-line use cases – Map / Reduce
  • 14. MongoDB ● Content modeling: Document oriented, schema free ● API: binary protocol, PHP extension available ● Scalability: Master-Slave, Sharding ● Robustness: at a cost ● Built-in full text search: no ● Extra – Updates in place for fields – Rich (ugly?) query syntax
  • 15. Hbase ● Content modeling: Google big table clone, column oriented ● API: Thrift, HTTP ● Scalability: excellent ● Robustness: Not entirely ACID, but still very good ● Built-in full text search: no ● Extra – Built in versioning – Swallows large blobs easily
  • 16. Apache Solr ● Not so much storage (but can be a caching storage layer too) ● Very rich and powerful Information Retrieval Engine ● API: HTTP, Java, several PHP wrappers ● Scalability: very good, and getting even better* ● Robustness – SolrCloud* ● Extra: join-like queries* * Solr 4.0
  • 18. Lily, “big data” content repository ● Provides a very rich feature set ● RESTful, Java API ● Building on ● Apache license
  • 19.
  • 20.
  • 21.
  • 22. Over to Henri … http://www.slideshare.net/bergie/phpcr-standard-content-repository-for-php