SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler 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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Último

Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfSanaAli374401
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterMateoGardella
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 

Último (20)

Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 

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