Motivation
            Architecture
         Implementation
                  Demo




        Deme Architecture

       T...
Motivation
                            Architecture
                         Implementation
                              ...
Motivation
                            Architecture
                         Implementation
                              ...
Motivation
                            Architecture
                         Implementation
                              ...
Motivation
                            Architecture
                         Implementation
                              ...
Motivation
                         Architecture
                      Implementation
                               Demo
...
Motivation
                         Architecture
                      Implementation
                               Demo
...
Motivation
                         Architecture
                      Implementation
                               Demo
...
Motivation
                         Architecture
                      Implementation
                               Demo
...
Motivation
                         Architecture
                      Implementation
                               Demo
...
Motivation
                         Architecture
                      Implementation
                               Demo
...
Motivation
                                           Item Structure
                            Architecture
            ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                           Item Structure
                            Architecture
            ...
Motivation
                                       Item Structure
                        Architecture
                    ...
Motivation
                                          Item Structure
                           Architecture
              ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                         Item Structure
                          Architecture
                ...
Motivation
                                      Item Structure
                       Architecture
                      ...
Motivation
                                      Item Structure
                       Architecture
                      ...
Motivation
                                           Item Structure
                            Architecture
            ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                         Item Structure
                        Architecture
                  ...
Motivation
                                         Item Structure
                        Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                                        Item Structure
                         Architecture
                  ...
Motivation
                           Architecture
                        Implementation
                                ...
Motivation
                       Architecture
                    Implementation
                             Demo


Why ...
Motivation
                        Architecture
                     Implementation
                              Demo


M...
Motivation
                        Architecture
                     Implementation
                              Demo


M...
Motivation
                     Architecture
                  Implementation
                           Demo


Database V...
Motivation
                         Architecture
                      Implementation
                               Demo
...
Motivation
                Architecture
             Implementation
                      Demo


Demo time!




          ...
Upcoming SlideShare
Loading in …5
×

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

714 views

Published on

Published in: Education, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
714
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

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

  1. 1. Motivation Architecture Implementation Demo Deme Architecture Todd Davies Mike Mintz Stanford University Stanford Open Source (un)conference ’08 Davies, Mintz Deme Architecture
  2. 2. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  3. 3. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  4. 4. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  5. 5. Motivation Architecture Implementation Demo Outline 1 Motivation 2 Architecture Item Structure Item Ontology Viewers 3 Implementation 4 Demo Davies, Mintz Deme Architecture
  6. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 19. Motivation Item Structure Architecture Item Ontology Implementation Viewers Demo Overview Agents Collections Documents Relationships Permissions URLs Davies, Mintz Deme Architecture
  20. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 45. Motivation Architecture Implementation Demo Why Django? Big developer community Now supports multi-table inheritance Davies, Mintz Deme Architecture
  46. 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. 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. 48. Motivation Architecture Implementation Demo Database Visual Davies, Mintz Deme Architecture
  49. 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. 50. Motivation Architecture Implementation Demo Demo time! Davies, Mintz Deme Architecture

×