SlideShare a Scribd company logo
1 of 50
Download to read offline
Motivation
            Architecture
         Implementation
                  Demo




        Deme Architecture

       Todd Davies         Mike Mintz

               Stanford University


Stanford Open Source (un)conference ’08




          Davies, Mintz    Deme Architecture
Motivation
                            Architecture
                         Implementation
                                  Demo


Outline


  1   Motivation

  2   Architecture
        Item Structure
        Item Ontology
        Viewers

  3   Implementation

  4   Demo



                          Davies, Mintz    Deme Architecture
Motivation
                            Architecture
                         Implementation
                                  Demo


Outline


  1   Motivation

  2   Architecture
        Item Structure
        Item Ontology
        Viewers

  3   Implementation

  4   Demo



                          Davies, Mintz    Deme Architecture
Motivation
                            Architecture
                         Implementation
                                  Demo


Outline


  1   Motivation

  2   Architecture
        Item Structure
        Item Ontology
        Viewers

  3   Implementation

  4   Demo



                          Davies, Mintz    Deme Architecture
Motivation
                            Architecture
                         Implementation
                                  Demo


Outline


  1   Motivation

  2   Architecture
        Item Structure
        Item Ontology
        Viewers

  3   Implementation

  4   Demo



                          Davies, Mintz    Deme Architecture
Motivation
                         Architecture
                      Implementation
                               Demo


Objectives


     Hierarchy of item types with shared functionality
     Versioning for every item type
         Not just documents
     Highly collaborative
         Every item type supports discussion
     Very granular permissions
     Easily Extensible
     Embedded views




                         Davies, Mintz   Deme Architecture
Motivation
                         Architecture
                      Implementation
                               Demo


Objectives


     Hierarchy of item types with shared functionality
     Versioning for every item type
         Not just documents
     Highly collaborative
         Every item type supports discussion
     Very granular permissions
     Easily Extensible
     Embedded views




                         Davies, Mintz   Deme Architecture
Motivation
                         Architecture
                      Implementation
                               Demo


Objectives


     Hierarchy of item types with shared functionality
     Versioning for every item type
         Not just documents
     Highly collaborative
         Every item type supports discussion
     Very granular permissions
     Easily Extensible
     Embedded views




                         Davies, Mintz   Deme Architecture
Motivation
                         Architecture
                      Implementation
                               Demo


Objectives


     Hierarchy of item types with shared functionality
     Versioning for every item type
         Not just documents
     Highly collaborative
         Every item type supports discussion
     Very granular permissions
     Easily Extensible
     Embedded views




                         Davies, Mintz   Deme Architecture
Motivation
                         Architecture
                      Implementation
                               Demo


Objectives


     Hierarchy of item types with shared functionality
     Versioning for every item type
         Not just documents
     Highly collaborative
         Every item type supports discussion
     Very granular permissions
     Easily Extensible
     Embedded views




                         Davies, Mintz   Deme Architecture
Motivation
                         Architecture
                      Implementation
                               Demo


Objectives


     Hierarchy of item types with shared functionality
     Versioning for every item type
         Not just documents
     Highly collaborative
         Every item type supports discussion
     Very granular permissions
     Easily Extensible
     Embedded views




                         Davies, Mintz   Deme Architecture
Motivation
                                           Item Structure
                            Architecture
                                           Item Ontology
                         Implementation
                                           Viewers
                                  Demo


Outline


  1   Motivation

  2   Architecture
        Item Structure
        Item Ontology
        Viewers

  3   Implementation

  4   Demo



                          Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


What is an item?


     All persistent data abstracted as items
         E.g., documents, users, settings, etc.
     Items are instances of “item types”
         Item types specify structure of fields
         Items provide values for fields
     E.g. “Person” is item type, “Mike” and “Todd” are items of
     that type
      First Name Last Name
          Mike           Mintz
          Todd          Davies



                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


What is an item?


     All persistent data abstracted as items
         E.g., documents, users, settings, etc.
     Items are instances of “item types”
         Item types specify structure of fields
         Items provide values for fields
     E.g. “Person” is item type, “Mike” and “Todd” are items of
     that type
      First Name Last Name
          Mike           Mintz
          Todd          Davies



                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


What is an item?


     All persistent data abstracted as items
         E.g., documents, users, settings, etc.
     Items are instances of “item types”
         Item types specify structure of fields
         Items provide values for fields
     E.g. “Person” is item type, “Mike” and “Todd” are items of
     that type
      First Name Last Name
          Mike           Mintz
          Todd          Davies



                        Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Item inheritance



     Item types can inherit from other item types
         “Item” is at top of the hierarchy
         E.g., Item -> Document -> Comment
     Item types inherit existing fields, add additional fields
         Item: name, description
         Document: name, description, body
         Comment: name, description, body, commented_item




                       Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Item inheritance



     Item types can inherit from other item types
         “Item” is at top of the hierarchy
         E.g., Item -> Document -> Comment
     Item types inherit existing fields, add additional fields
         Item: name, description
         Document: name, description, body
         Comment: name, description, body, commented_item




                       Davies, Mintz    Deme Architecture
Motivation
                                           Item Structure
                            Architecture
                                           Item Ontology
                         Implementation
                                           Viewers
                                  Demo


Outline


  1   Motivation

  2   Architecture
        Item Structure
        Item Ontology
        Viewers

  3   Implementation

  4   Demo



                          Davies, Mintz    Deme Architecture
Motivation
                                       Item Structure
                        Architecture
                                       Item Ontology
                     Implementation
                                       Viewers
                              Demo


Overview

     Agents
     Collections
     Documents
     Relationships
     Permissions
     URLs




                      Davies, Mintz    Deme Architecture
Motivation
                                          Item Structure
                           Architecture
                                          Item Ontology
                        Implementation
                                          Viewers
                                 Demo


All Items



      All items share metadata structure:
            Unique ID
            Name
            Description
            Creator / Create Time
            Updater / Update Time
            Versions
            Trashed?




                         Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Agents


     Agents
         Item that can “do” things
              (Given permissions, can appear as creator/updater)
         Application user is always a specific Agent
         Subclasses: Person, AnonymousAgent, Group
     Groups
         Collection of Agents
         Members can share common permissions
     Accounts
         Channel of authentication
         Subclasses: PasswordAccount, OpenId



                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Agents


     Agents
         Item that can “do” things
              (Given permissions, can appear as creator/updater)
         Application user is always a specific Agent
         Subclasses: Person, AnonymousAgent, Group
     Groups
         Collection of Agents
         Members can share common permissions
     Accounts
         Channel of authentication
         Subclasses: PasswordAccount, OpenId



                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Agents


     Agents
         Item that can “do” things
              (Given permissions, can appear as creator/updater)
         Application user is always a specific Agent
         Subclasses: Person, AnonymousAgent, Group
     Groups
         Collection of Agents
         Members can share common permissions
     Accounts
         Channel of authentication
         Subclasses: PasswordAccount, OpenId



                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Collections



     ItemSets
         Arbitrary collection of items
         Subclasses: Folio
     Folio
         Every group has one folio
         Contains items shared among all members




                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Collections



     ItemSets
         Arbitrary collection of items
         Subclasses: Folio
     Folio
         Every group has one folio
         Contains items shared among all members




                        Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Documents


    Main unit of collaborative work
    Different item types for different formats
    Subclasses
        TextDocument
             HtmlDocument
             DjangoTemplateDocument
             Comment
        FileDocument
             ImageDocument
    Comments refer to other Items
        Sometimes specific versions and locations



                       Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Documents


    Main unit of collaborative work
    Different item types for different formats
    Subclasses
        TextDocument
             HtmlDocument
             DjangoTemplateDocument
             Comment
        FileDocument
             ImageDocument
    Comments refer to other Items
        Sometimes specific versions and locations



                       Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Documents


    Main unit of collaborative work
    Different item types for different formats
    Subclasses
        TextDocument
             HtmlDocument
             DjangoTemplateDocument
             Comment
        FileDocument
             ImageDocument
    Comments refer to other Items
        Sometimes specific versions and locations



                       Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Relationships




     Explicit items for relationships between items
     Subclasses: GroupMembership, ItemsetMembership




                       Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Permissions


     Specifies who can do what to which items
         Agent
         Ability
         Item
     Three levels
         Direct
         Groupwide
         Default
     Roles
         Customizable sets of abilities




                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Permissions


     Specifies who can do what to which items
         Agent
         Ability
         Item
     Three levels
         Direct
         Groupwide
         Default
     Roles
         Customizable sets of abilities




                        Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                          Architecture
                                         Item Ontology
                       Implementation
                                         Viewers
                                Demo


Permissions


     Specifies who can do what to which items
         Agent
         Ability
         Item
     Three levels
         Direct
         Groupwide
         Default
     Roles
         Customizable sets of abilities




                        Davies, Mintz    Deme Architecture
Motivation
                                      Item Structure
                       Architecture
                                      Item Ontology
                    Implementation
                                      Viewers
                             Demo


Custom URLs




    Users can create custom URLs to point to items
    Each domain can have separate namespace of URLs




                     Davies, Mintz    Deme Architecture
Motivation
                                      Item Structure
                       Architecture
                                      Item Ontology
                    Implementation
                                      Viewers
                             Demo


Custom URLs




    Users can create custom URLs to point to items
    Each domain can have separate namespace of URLs




                     Davies, Mintz    Deme Architecture
Motivation
                                           Item Structure
                            Architecture
                                           Item Ontology
                         Implementation
                                           Viewers
                                  Demo


Outline


  1   Motivation

  2   Architecture
        Item Structure
        Item Ontology
        Viewers

  3   Implementation

  4   Demo



                          Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


What is a viewer?



     A Django class that processes browser or API requests
     URLs that begin with /resource/ are routed to viewers
     Viewers handle items of specific type
     Viewers inherit from other viewers
         Everything ultimately inherits from ItemViewer
         ItemViewer is about 80% of view code




                       Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


What is a viewer?



     A Django class that processes browser or API requests
     URLs that begin with /resource/ are routed to viewers
     Viewers handle items of specific type
     Viewers inherit from other viewers
         Everything ultimately inherits from ItemViewer
         ItemViewer is about 80% of view code




                       Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


What is a viewer?



     A Django class that processes browser or API requests
     URLs that begin with /resource/ are routed to viewers
     Viewers handle items of specific type
     Viewers inherit from other viewers
         Everything ultimately inherits from ItemViewer
         ItemViewer is about 80% of view code




                       Davies, Mintz    Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


What is a viewer?



     A Django class that processes browser or API requests
     URLs that begin with /resource/ are routed to viewers
     Viewers handle items of specific type
     Viewers inherit from other viewers
         Everything ultimately inherits from ItemViewer
         ItemViewer is about 80% of view code




                       Davies, Mintz    Deme Architecture
Motivation
                                         Item Structure
                        Architecture
                                         Item Ontology
                     Implementation
                                         Viewers
                              Demo


RESTful URLs


    Entry actions
        /resource/<viewer>/<id>/<action>
        E.g., /resource/person/5/edit
        E.g., /resource/person/5
    Collection actions
        /resource/<viewer>/<action>
        E.g., /resource/person/new
        E.g., /resource/person
        E.g., /resource/person.json




                         Davies, Mintz   Deme Architecture
Motivation
                                         Item Structure
                        Architecture
                                         Item Ontology
                     Implementation
                                         Viewers
                              Demo


RESTful URLs


    Entry actions
        /resource/<viewer>/<id>/<action>
        E.g., /resource/person/5/edit
        E.g., /resource/person/5
    Collection actions
        /resource/<viewer>/<action>
        E.g., /resource/person/new
        E.g., /resource/person
        E.g., /resource/person.json




                         Davies, Mintz   Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Authentication




     There is always an authenticated agent in a viewer
         (If user does not log in, it is AnonymousAgent.)
     Viewer takes care of checking permissions for
     authenticated agent




                        Davies, Mintz   Deme Architecture
Motivation
                                        Item Structure
                         Architecture
                                        Item Ontology
                      Implementation
                                        Viewers
                               Demo


Authentication




     There is always an authenticated agent in a viewer
         (If user does not log in, it is AnonymousAgent.)
     Viewer takes care of checking permissions for
     authenticated agent




                        Davies, Mintz   Deme Architecture
Motivation
                           Architecture
                        Implementation
                                 Demo


Deme is written in Django



     Deme is:
         A collection of Django models
         A system of hierarchical viewers that use Django templates
         Additional components that handle Deme-specific features
                Versioning
                Permissions
                Commenting




                         Davies, Mintz    Deme Architecture
Motivation
                       Architecture
                    Implementation
                             Demo


Why Django?




    Big developer community
    Now supports multi-table inheritance




                     Davies, Mintz    Deme Architecture
Motivation
                        Architecture
                     Implementation
                              Demo


Models –> Item types




     A Django model corresponds to an item type
     An item is:
         A Django model instance
         A row in a table




                      Davies, Mintz    Deme Architecture
Motivation
                        Architecture
                     Implementation
                              Demo


Models –> Item types




     A Django model corresponds to an item type
     An item is:
         A Django model instance
         A row in a table




                      Davies, Mintz    Deme Architecture
Motivation
                     Architecture
                  Implementation
                           Demo


Database Visual




                   Davies, Mintz    Deme Architecture
Motivation
                         Architecture
                      Implementation
                               Demo


Versioning



     Every table has a dual version-table
  Person
   ID First Name    Last Name
    1    Mike         Mintz
  PersonVersion
   ID Version First Name                Last Name
    1     1     Michael                   Mintz
    1     2      Mike                     Mintz




                       Davies, Mintz      Deme Architecture
Motivation
                Architecture
             Implementation
                      Demo


Demo time!




              Davies, Mintz    Deme Architecture

More Related Content

Similar to Deme Presentation at Stanford Open Source (un)conference '08

Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data ModelingEelco Visser
 
Software Architecture is written with lowercase a
Software Architecture is written with lowercase aSoftware Architecture is written with lowercase a
Software Architecture is written with lowercase aRuben Gonzalez Blanco
 
Development with TYPO3 5.0
Development with TYPO3 5.0Development with TYPO3 5.0
Development with TYPO3 5.0Robert Lemke
 
[Webinar] Introduction to the Nuxeo Platform
[Webinar] Introduction to the Nuxeo Platform[Webinar] Introduction to the Nuxeo Platform
[Webinar] Introduction to the Nuxeo PlatformNuxeo
 
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...recsysfr
 
Affordances analysis prezi 3
Affordances analysis prezi 3Affordances analysis prezi 3
Affordances analysis prezi 3MaryCog
 
Preservation Planning: Choosing a suitable digital preservation strategy
Preservation Planning: Choosing a suitable digital preservation strategyPreservation Planning: Choosing a suitable digital preservation strategy
Preservation Planning: Choosing a suitable digital preservation strategyGarethKnight
 
Web 2.0 And The End Of DITA
Web 2.0 And The End Of DITAWeb 2.0 And The End Of DITA
Web 2.0 And The End Of DITAJoe Gollner
 
Domain driven design and model driven development
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven developmentDmitry Geyzersky
 
[Webinar] Nuxeo Platform 5.6 Overview
[Webinar] Nuxeo Platform 5.6 Overview[Webinar] Nuxeo Platform 5.6 Overview
[Webinar] Nuxeo Platform 5.6 OverviewNuxeo
 
Clean architecture with ddd layering in php
Clean architecture with ddd layering in phpClean architecture with ddd layering in php
Clean architecture with ddd layering in phpLeonardo Proietti
 

Similar to Deme Presentation at Stanford Open Source (un)conference '08 (15)

Software Series ]5
Software Series  ]5Software Series  ]5
Software Series ]5
 
Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data Modeling
 
Software Architecture is written with lowercase a
Software Architecture is written with lowercase aSoftware Architecture is written with lowercase a
Software Architecture is written with lowercase a
 
The Three Core Topic Types
The Three Core Topic TypesThe Three Core Topic Types
The Three Core Topic Types
 
Development with TYPO3 5.0
Development with TYPO3 5.0Development with TYPO3 5.0
Development with TYPO3 5.0
 
[Webinar] Introduction to the Nuxeo Platform
[Webinar] Introduction to the Nuxeo Platform[Webinar] Introduction to the Nuxeo Platform
[Webinar] Introduction to the Nuxeo Platform
 
oops
oopsoops
oops
 
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...
 
Affordances analysis prezi 3
Affordances analysis prezi 3Affordances analysis prezi 3
Affordances analysis prezi 3
 
Preservation Planning: Choosing a suitable digital preservation strategy
Preservation Planning: Choosing a suitable digital preservation strategyPreservation Planning: Choosing a suitable digital preservation strategy
Preservation Planning: Choosing a suitable digital preservation strategy
 
Web 2.0 And The End Of DITA
Web 2.0 And The End Of DITAWeb 2.0 And The End Of DITA
Web 2.0 And The End Of DITA
 
Domain driven design and model driven development
Domain driven design and model driven developmentDomain driven design and model driven development
Domain driven design and model driven development
 
[Webinar] Nuxeo Platform 5.6 Overview
[Webinar] Nuxeo Platform 5.6 Overview[Webinar] Nuxeo Platform 5.6 Overview
[Webinar] Nuxeo Platform 5.6 Overview
 
NISO Webinar: Metadata for Preservation: A Digital Object's Best Friend
NISO Webinar: Metadata for Preservation: A Digital Object's Best Friend NISO Webinar: Metadata for Preservation: A Digital Object's Best Friend
NISO Webinar: Metadata for Preservation: A Digital Object's Best Friend
 
Clean architecture with ddd layering in php
Clean architecture with ddd layering in phpClean architecture with ddd layering in php
Clean architecture with ddd layering in php
 

Recently uploaded

Employablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptxEmployablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptxryandux83rd
 
4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptx4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptxmary850239
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Osopher
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptxmary850239
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6Vanessa Camilleri
 
An Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPAn Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPCeline George
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
6 ways Samsung’s Interactive Display powered by Android changes the classroom
6 ways Samsung’s Interactive Display powered by Android changes the classroom6 ways Samsung’s Interactive Display powered by Android changes the classroom
6 ways Samsung’s Interactive Display powered by Android changes the classroomSamsung Business USA
 
DBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdfDBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdfChristalin Nelson
 
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFEPART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFEMISSRITIMABIOLOGYEXP
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxDhatriParmar
 
Indexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdfIndexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdfChristalin Nelson
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...HetalPathak10
 

Recently uploaded (20)

Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of EngineeringFaculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
 
Employablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptxEmployablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptx
 
4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptx4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptx
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6
 
An Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPAn Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERP
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
6 ways Samsung’s Interactive Display powered by Android changes the classroom
6 ways Samsung’s Interactive Display powered by Android changes the classroom6 ways Samsung’s Interactive Display powered by Android changes the classroom
6 ways Samsung’s Interactive Display powered by Android changes the classroom
 
DBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdfDBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdf
 
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFEPART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
 
Indexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdfIndexing Structures in Database Management system.pdf
Indexing Structures in Database Management system.pdf
 
Chi-Square Test Non Parametric Test Categorical Variable
Chi-Square Test Non Parametric Test Categorical VariableChi-Square Test Non Parametric Test Categorical Variable
Chi-Square Test Non Parametric Test Categorical Variable
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
 

Deme Presentation at Stanford Open Source (un)conference '08

  • 1. Motivation Architecture Implementation Demo Deme Architecture Todd Davies Mike Mintz Stanford University Stanford Open Source (un)conference ’08 Davies, Mintz Deme Architecture
  • 2. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  • 3. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  • 4. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  • 5. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  • 6. Motivation Architecture Implementation Demo Objectives Hierarchy of item types with shared functionality Versioning for every item type Not just documents Highly collaborative Every item type supports discussion Very granular permissions Easily Extensible Embedded views Davies, Mintz Deme Architecture
  • 7. Motivation Architecture Implementation Demo Objectives Hierarchy of item types with shared functionality Versioning for every item type Not just documents Highly collaborative Every item type supports discussion Very granular permissions Easily Extensible Embedded views Davies, Mintz Deme Architecture
  • 8. Motivation Architecture Implementation Demo Objectives Hierarchy of item types with shared functionality Versioning for every item type Not just documents Highly collaborative Every item type supports discussion Very granular permissions Easily Extensible Embedded views Davies, Mintz Deme Architecture
  • 9. Motivation Architecture Implementation Demo Objectives Hierarchy of item types with shared functionality Versioning for every item type Not just documents Highly collaborative Every item type supports discussion Very granular permissions Easily Extensible Embedded views Davies, Mintz Deme Architecture
  • 10. Motivation Architecture Implementation Demo Objectives Hierarchy of item types with shared functionality Versioning for every item type Not just documents Highly collaborative Every item type supports discussion Very granular permissions Easily Extensible Embedded views Davies, Mintz Deme Architecture
  • 11. Motivation Architecture Implementation Demo Objectives Hierarchy of item types with shared functionality Versioning for every item type Not just documents Highly collaborative Every item type supports discussion Very granular permissions Easily Extensible Embedded views Davies, Mintz Deme Architecture
  • 12. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  • 13. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo What is an item? All persistent data abstracted as items E.g., documents, users, settings, etc. Items are instances of “item types” Item types specify structure of fields Items provide values for fields E.g. “Person” is item type, “Mike” and “Todd” are items of that type First Name Last Name Mike Mintz Todd Davies Davies, Mintz Deme Architecture
  • 14. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo What is an item? All persistent data abstracted as items E.g., documents, users, settings, etc. Items are instances of “item types” Item types specify structure of fields Items provide values for fields E.g. “Person” is item type, “Mike” and “Todd” are items of that type First Name Last Name Mike Mintz Todd Davies Davies, Mintz Deme Architecture
  • 15. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo What is an item? All persistent data abstracted as items E.g., documents, users, settings, etc. Items are instances of “item types” Item types specify structure of fields Items provide values for fields E.g. “Person” is item type, “Mike” and “Todd” are items of that type First Name Last Name Mike Mintz Todd Davies Davies, Mintz Deme Architecture
  • 16. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Item inheritance Item types can inherit from other item types “Item” is at top of the hierarchy E.g., Item -> Document -> Comment Item types inherit existing fields, add additional fields Item: name, description Document: name, description, body Comment: name, description, body, commented_item Davies, Mintz Deme Architecture
  • 17. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Item inheritance Item types can inherit from other item types “Item” is at top of the hierarchy E.g., Item -> Document -> Comment Item types inherit existing fields, add additional fields Item: name, description Document: name, description, body Comment: name, description, body, commented_item Davies, Mintz Deme Architecture
  • 18. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  • 19. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Overview Agents Collections Documents Relationships Permissions URLs Davies, Mintz Deme Architecture
  • 20. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo All Items All items share metadata structure: Unique ID Name Description Creator / Create Time Updater / Update Time Versions Trashed? Davies, Mintz Deme Architecture
  • 21. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Agents Agents Item that can “do” things (Given permissions, can appear as creator/updater) Application user is always a specific Agent Subclasses: Person, AnonymousAgent, Group Groups Collection of Agents Members can share common permissions Accounts Channel of authentication Subclasses: PasswordAccount, OpenId Davies, Mintz Deme Architecture
  • 22. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Agents Agents Item that can “do” things (Given permissions, can appear as creator/updater) Application user is always a specific Agent Subclasses: Person, AnonymousAgent, Group Groups Collection of Agents Members can share common permissions Accounts Channel of authentication Subclasses: PasswordAccount, OpenId Davies, Mintz Deme Architecture
  • 23. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Agents Agents Item that can “do” things (Given permissions, can appear as creator/updater) Application user is always a specific Agent Subclasses: Person, AnonymousAgent, Group Groups Collection of Agents Members can share common permissions Accounts Channel of authentication Subclasses: PasswordAccount, OpenId Davies, Mintz Deme Architecture
  • 24. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Collections ItemSets Arbitrary collection of items Subclasses: Folio Folio Every group has one folio Contains items shared among all members Davies, Mintz Deme Architecture
  • 25. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Collections ItemSets Arbitrary collection of items Subclasses: Folio Folio Every group has one folio Contains items shared among all members Davies, Mintz Deme Architecture
  • 26. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Documents Main unit of collaborative work Different item types for different formats Subclasses TextDocument HtmlDocument DjangoTemplateDocument Comment FileDocument ImageDocument Comments refer to other Items Sometimes specific versions and locations Davies, Mintz Deme Architecture
  • 27. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Documents Main unit of collaborative work Different item types for different formats Subclasses TextDocument HtmlDocument DjangoTemplateDocument Comment FileDocument ImageDocument Comments refer to other Items Sometimes specific versions and locations Davies, Mintz Deme Architecture
  • 28. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Documents Main unit of collaborative work Different item types for different formats Subclasses TextDocument HtmlDocument DjangoTemplateDocument Comment FileDocument ImageDocument Comments refer to other Items Sometimes specific versions and locations Davies, Mintz Deme Architecture
  • 29. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Relationships Explicit items for relationships between items Subclasses: GroupMembership, ItemsetMembership Davies, Mintz Deme Architecture
  • 30. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Permissions Specifies who can do what to which items Agent Ability Item Three levels Direct Groupwide Default Roles Customizable sets of abilities Davies, Mintz Deme Architecture
  • 31. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Permissions Specifies who can do what to which items Agent Ability Item Three levels Direct Groupwide Default Roles Customizable sets of abilities Davies, Mintz Deme Architecture
  • 32. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Permissions Specifies who can do what to which items Agent Ability Item Three levels Direct Groupwide Default Roles Customizable sets of abilities Davies, Mintz Deme Architecture
  • 33. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Custom URLs Users can create custom URLs to point to items Each domain can have separate namespace of URLs Davies, Mintz Deme Architecture
  • 34. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Custom URLs Users can create custom URLs to point to items Each domain can have separate namespace of URLs Davies, Mintz Deme Architecture
  • 35. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  • 36. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo What is a viewer? A Django class that processes browser or API requests URLs that begin with /resource/ are routed to viewers Viewers handle items of specific type Viewers inherit from other viewers Everything ultimately inherits from ItemViewer ItemViewer is about 80% of view code Davies, Mintz Deme Architecture
  • 37. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo What is a viewer? A Django class that processes browser or API requests URLs that begin with /resource/ are routed to viewers Viewers handle items of specific type Viewers inherit from other viewers Everything ultimately inherits from ItemViewer ItemViewer is about 80% of view code Davies, Mintz Deme Architecture
  • 38. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo What is a viewer? A Django class that processes browser or API requests URLs that begin with /resource/ are routed to viewers Viewers handle items of specific type Viewers inherit from other viewers Everything ultimately inherits from ItemViewer ItemViewer is about 80% of view code Davies, Mintz Deme Architecture
  • 39. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo What is a viewer? A Django class that processes browser or API requests URLs that begin with /resource/ are routed to viewers Viewers handle items of specific type Viewers inherit from other viewers Everything ultimately inherits from ItemViewer ItemViewer is about 80% of view code Davies, Mintz Deme Architecture
  • 40. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo RESTful URLs Entry actions /resource/<viewer>/<id>/<action> E.g., /resource/person/5/edit E.g., /resource/person/5 Collection actions /resource/<viewer>/<action> E.g., /resource/person/new E.g., /resource/person E.g., /resource/person.json Davies, Mintz Deme Architecture
  • 41. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo RESTful URLs Entry actions /resource/<viewer>/<id>/<action> E.g., /resource/person/5/edit E.g., /resource/person/5 Collection actions /resource/<viewer>/<action> E.g., /resource/person/new E.g., /resource/person E.g., /resource/person.json Davies, Mintz Deme Architecture
  • 42. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Authentication There is always an authenticated agent in a viewer (If user does not log in, it is AnonymousAgent.) Viewer takes care of checking permissions for authenticated agent Davies, Mintz Deme Architecture
  • 43. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Authentication There is always an authenticated agent in a viewer (If user does not log in, it is AnonymousAgent.) Viewer takes care of checking permissions for authenticated agent Davies, Mintz Deme Architecture
  • 44. Motivation Architecture Implementation Demo Deme is written in Django Deme is: A collection of Django models A system of hierarchical viewers that use Django templates Additional components that handle Deme-specific features Versioning Permissions Commenting Davies, Mintz Deme Architecture
  • 45. Motivation Architecture Implementation Demo Why Django? Big developer community Now supports multi-table inheritance Davies, Mintz Deme Architecture
  • 46. Motivation Architecture Implementation Demo Models –> Item types A Django model corresponds to an item type An item is: A Django model instance A row in a table Davies, Mintz Deme Architecture
  • 47. Motivation Architecture Implementation Demo Models –> Item types A Django model corresponds to an item type An item is: A Django model instance A row in a table Davies, Mintz Deme Architecture
  • 48. Motivation Architecture Implementation Demo Database Visual Davies, Mintz Deme Architecture
  • 49. Motivation Architecture Implementation Demo Versioning Every table has a dual version-table Person ID First Name Last Name 1 Mike Mintz PersonVersion ID Version First Name Last Name 1 1 Michael Mintz 1 2 Mike Mintz Davies, Mintz Deme Architecture
  • 50. Motivation Architecture Implementation Demo Demo time! Davies, Mintz Deme Architecture