Apache Jackrabbit Oak - Scale your content repository to the cloud

5,797 views

Published on

Apache Jackrabbit Oak is a content repository which supports the most desired features from both SQL and NoSQL approaches. Some of its key features include ACLs, versioning, efficient blob storage, transactions, structured and unstructured content and multiple query languages.

This talk introduces Oak as a new implementation of the Content Repository API for Java, rewritten from scratch to ensure that it can scale out to support massive content repositories.

You will find out how you can start using Oak now to support use cases as varied as content management, document management, digital asset management or business rule management systems.

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,797
On SlideShare
0
From Embeds
0
Number of Embeds
120
Actions
Shares
0
Downloads
97
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Apache Jackrabbit Oak - Scale your content repository to the cloud

  1. 1. http://robert.muntea.nu @rombert Apache Jackrabbit Oak – Scale your content repository to the cloud Apache Jackrabbit Oak Scale your content repository to the cloud Robert Munteanu http://robert.muntea.nu
  2. 2. http://robert.muntea.nu @rombert Who I am  $DAYJOB  Adobe Experience Manager − Apache Sling − Apache Jackrabbit − Apache Felix  FOSS  MantisBT  Mylyn Connector for MantisBT  Mylyn Connector for Review Board  Apache Sling
  3. 3. http://robert.muntea.nu @rombert Before we begin - some key terms ● JCR ● Apache Jackrabbit ● Apache Jackrabbit Oak
  4. 4. http://robert.muntea.nu @rombert Agenda ● Content ● Repository ● Scale ● Cloud
  5. 5. http://robert.muntea.nu @rombert Content – What is content?
  6. 6. http://robert.muntea.nu @rombert Content – Node type defintions [nt:resource] > mix:referenceable - jcr:encoding - jcr:mimeType mandatory - jcr:data (binary) mandatory - jcr:lastModified (date) mandatory ignore [nt:unstructured] orderable - * (UNDEFINED) - * (UNDEFINED) multiple + * = nt:unstructured multiple VERSION
  7. 7. http://robert.muntea.nu @rombert Content - Hierarchy blog hello-world images jcr:content some-cat.jpg other-cat.jpg media cats-singing.ogg
  8. 8. http://robert.muntea.nu @rombert Content - Properties some-cat.jpg - jcr:primaryType = app:asset - jcr:title = Some Cat - jcr:description = A longer description of this picture of a cat - jcr:created = 2014-06-03T00:00:00.000+02:00 - jcr:lastUpdated = 2014-06-03T11:00:00.000+02:00 - tags = [Animal, Cat, Color] - width = 400 - height = 600
  9. 9. http://robert.muntea.nu @rombert Repository – the Content Repository Api for Java
  10. 10. http://robert.muntea.nu @rombert Repository – who implements the JCR standard
  11. 11. http://robert.muntea.nu @rombert Repository – who interfaces with JCR
  12. 12. http://robert.muntea.nu @rombert Repository – Apache Jackrabbit Oak ● Open Source implementation of JCR ● Developed under the Jackrabbit umbrella ● Not “only” fast, but built to scale from the ground up ● Aims to be a successor of Jackrabbit in a later version ● #7 most active project in the ASF, according to Ohloh
  13. 13. http://robert.muntea.nu @rombert Repository – Digital Asset Management Sample images some-cat.jpg renditions small.jpg annotations initial-review Uploaded by author Event-based generation Restricted by ACLs ripple.jpg
  14. 14. http://robert.muntea.nu @rombert Repository – storing configurations etc rendition ripple - orientation = /etc/rendition/ripple/options↵ /vertical - antialiasing = true - edges = /etc/rendition/ripple/options/wrap - wave type = /etc/rendition/ripple/options/↵ wave_type - period = 20 - amplitude = 5 - phase shift = 0
  15. 15. http://robert.muntea.nu @rombert Repository – Adding Apache Sling to the mix images some-cat.jpg renditions small.jpg annotations initial-review http://oak/images/some-cat.jpg http://oak/images/some-cat.pdf http://oak/images/some-cat/renditions.zip http://oak/images/some-cat/annotations.odt ripple.jpg
  16. 16. http://robert.muntea.nu @rombert Repository – Invoice Management Sample invoices $BIGCLIENT 2014 ABC-00014 original.pdf renditions jcr:content Access restricted by ACLs Used for previews Changes denied by ACLs
  17. 17. http://robert.muntea.nu @rombert Repository – Content Management Sample par_2_with_image - jcr:description = “Lorem ipsum...” - image = /content/images/cats/tabby.jpg blog hello-world jcr:content heading_1 par_1 par_2_with_image par_3
  18. 18. http://robert.muntea.nu @rombert Scaling – Oak topologies TarMK ● Standalone ● Fast ● Easy to maintain ● Supports failover ● No horizontal scalability MongoMK ● Horizontally scales for read and write access ● Supports failover ● Not as fast as TarMK
  19. 19. http://robert.muntea.nu @rombert Scaling – MongoMK standalone Oak Server 1 Mongo Primary Oak Server 2 Oak Server 3 Read and w rite Readandwrite Read and write
  20. 20. http://robert.muntea.nu @rombert Scaling – MongoMK replica sets Mongo Primary Oak Server 1 Readandwrite Oak Server 2 Mongo Secondary Oak Server 3 Read Read Write Mongo Primary Readandwrite W rite Mongo Secondary
  21. 21. http://robert.muntea.nu @rombert Scaling – MongoMK Sharding Oak Server 1 + mongos Mongo Primary Oak Server 2 + mongos Readandwrite Readandwrite Oak Server 3 + mongos Mongo Shard Primary Oak Server 4 + mongos Readandwrite Readandwrite Mongo Shard Primary Readandwrite Readandwrite
  22. 22. http://robert.muntea.nu @rombert Scaling – BlobStore implementations ● FileBlobStore ● MongoBlobStore ● S3DataStore ● FileDataStore ● CloudBlobStore ( experimental ) ● MongoGridFSBlobStore ( experimental )
  23. 23. http://robert.muntea.nu @rombert Cloud ● Blob storage ● S3DataStore ● CloudBlobStore ( experimental ) ● Node storage ● MongoMK ● DevOps friendliness ● Easy deployment with oak-run or Apache Sling
  24. 24. http://robert.muntea.nu @rombert Wrapping up ● Content ● Repository ● Scale ● Cloud
  25. 25. http://robert.muntea.nu @rombert Resources ● https://jackrabbit.apache.org/oak ● https://jackrabbit.apache.org/ ● https://sling.apache.org/
  26. 26. http://robert.muntea.nu @rombert Credits ● Icons courtesy of the Tango Icon Library - http://tango.freedesktop.org/Tango_Icon_Library ● Images courtesy of http://www.freedigitalphotos.net

×