Social Content Management with MongoDB
 

Social Content Management with MongoDB

on

  • 1,456 views

We will provide an overview of the architecture and design of a lightweight content management system built on MongoDB. Ideally suited for managing social content -- creating a blog site, a discussion ...

We will provide an overview of the architecture and design of a lightweight content management system built on MongoDB. Ideally suited for managing social content -- creating a blog site, a discussion forum, or adding user generated content to an existing website -- Crafter Social is an open source Java app built on MongoDB. Our talk will focus on design considerations and MongoDB's unique features that make it perfectly suitable as a highly-scalable, multi-tenant social object store. We use MongoDB to store social objects of all types: user comments, threaded discussions, blog entries, and more. The document-oriented approach of MongoDB provides the foundation for social content management applications that need high-performance, high-scalability, and rapid speed of development. We also cover our design approach for user profile management, which supports configurable (on-the-fly) profile attributes, roles management, and pluggable authentication.

Statistics

Views

Total Views
1,456
Views on SlideShare
1,224
Embed Views
232

Actions

Likes
0
Downloads
18
Comments
0

6 Embeds 232

http://www.10gen.com 144
http://cms.craftersoftware.com 47
http://www.mongodb.com 35
http://beta.rivetlogic.com 3
https://www.mongodb.com 2
http://drupal1.10gen.cc 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • The presentation discusses our solution which provides social content management built on top of MongoDB. When we talk about Social Content, we mean blogs, forums, comments, ratings
  • The specific area we are addressing is enhancing your existing websites with UGC. 1. Add content to all of your websites. 2. It shouldn’t matter what type of website it is PHP/Java/Grails/.NET etc.
  • Support the most common use cases Blog engine, forums, commenting, like, flagging content, moderation, auditing
  • Multi-tenant - Multiple sites can be managed in the same system - Blogging website, product
  • Scalable - horizontally scalable - nature of the content => highly scalable - a lot of users using the different sites accessing/updating the UGC
  • Administration Security e.g. granting access to users to the site, or creating users 2. Secure the generated content i. Authentication ii. Authorization
  • Minimal Integration UGC is draped over an existing site For example, your website could be written in PHP, Grails, Java, and UGC capabilities are a draped over using JS
  • Use different image
  • Responsibilities of Crafter Profile 1. User profile services 2. Authentication 3. Tenant services What’s important to mention is that authentication services can be delegated in enterprises that have users repositories Profile services augment but do not necessarily replace existing user repositories (even though they can if desired). The functionality is there. Base profile consists of a first name, last name. The attributes associated with a user profile are schema-less. Easy to drape a richer set of user attributes relevant to the UGC system.
  • Crafter Social handles all the actions related to user generated content. For example, you have a product, (a particular book), on your site and you would produce something and attach it to the book. This would be the root ID for the user generated content to hang off of. Then a user will comment on the book and other users will like the book and so on. And these would also be user generated content. These are the type of scenarios that are being handled by Crafter Social.
  • Together Profile & Social provide a standalone solution.
  • Use different image
  • UGC = element or item, attached to something or is the root Description of UGC - blog, wiki, forum topic as root
  • Social communicates with profile for authentication, roles and other attributes Social doesn’t know what the application is. It could be ratings, wiki etc. Profile & Social web applications work in their own databases - potentially two different mongo installations Headless RESTful applications - easy to integrate with - stateless
  • JQuery Client - ootb user experience built on our API - Use directly, or as a reference
  • Provided profile client as a reference, but you can build your own admin client with Ruby/PHP etc.
  • Schemaless storage of content makes it easy to store these UGCs. i.e. fits the use case Document-oriented storage => flexible schema - different documents can have different structures, beneficial for varying types of UGC - base profile properties with ability to easily add custom properties
  • An example of where this would be important is with ratings.
  • => Scalable In the same database, so easy to back-up and restore
  • Multi-Tenancy - Each profile is associated with a particular tenant - Can have 1 to many tenants in the DB A target is any object in system that can attach UGC to. For example, a shoe or a book people are going to rate.
  • SSO infrastructure across these two systems and any other system that relies on Crafter Can use spring security provider in any application that uses Java Spring Security Provider - extension of the profile project - Initial authentication is carried out against the profile application - After that point a ticket is passed to the social application
  • Authorization - A user is assigned a role in the Profile Admin application - The roles available are stored in the role collection in the database - Additional application specific roles can be created - For each UGC created, a list of roles for each action [create, read, update, delete] can be passed in - If no roles are passed in, default roles are se
  • Blog Commenting on blog Link to down application Repeat open source

Social Content Management with MongoDB Social Content Management with MongoDB Presentation Transcript

  • Social Content Management with MongoDB by Rivet LogicCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Solution RequirementsCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Common UGC Use CasesCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Multi-tenantCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • ScalableCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Secure UGC RepositoryCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Lightweight IntegrationCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Solution Requirements• Covers common UGC use cases• Multi-tenant• Scalable• Secure UGC repository• Lightweight IntegrationCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Crafter Social & Crafter ProfileCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Crafter ProfileCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Crafter SocialCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Crafter Profile & SocialCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Use CasesCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • BlogCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • ProductCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Architecture OverviewCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Social IntegrationCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Profile IntegrationCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • OOTB ApplicationsCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Why MongoDB?Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Document-Oriented StorageCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Full Index SupportCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Rich QueriesCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Fast In-place UpdatesCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • ReplicationCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • GridFSCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Auto-shardingCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Map/ReduceCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Why MongoDB?o Document-oriented storageo Full Index Supporto Rich queries & fast in-place updateso Replication & high availabilityo GridFSo Auto-shardingo Map/ReduceCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • System DesignCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Database DesignCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Multi-TenancyCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Security - AuthenticationCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Security - AuthorizationCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • ScalabilityCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Example - Simple Blog DemoCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Copyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE
  • Q&A wiki.rivetlogic.com/display/Crafter/Crafter+Social rivetlogic.com blogs.rivetlogic.com facebook.com/rivetlogic youtube.com/rivetlogic twitter.com/rivetlogic crafterrivet.orgCopyright © 2013. Rivet Logic Corporation. All rights reserved. ARTISANS OF OPEN SOURCE