dasblog 3 5 architecture n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
dasBlog 3.5 Architecture PowerPoint Presentation
Download Presentation
dasBlog 3.5 Architecture

Loading in 2 Seconds...

play fullscreen
1 / 10

dasBlog 3.5 Architecture - PowerPoint PPT Presentation


  • 63 Views
  • Updated on

dasBlog 3.5 Architecture. Clemens Vasters (clemens_vasters@hotmail.com). What is dasBlog?. dasBlog is a lightweight server for managing and providing access to personal lists of stuff “What was I thinking yesterday?” “What pictures did I take?” “Who are my friends?”

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

dasBlog 3.5 Architecture


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
dasblog 3 5 architecture

dasBlog 3.5Architecture

Clemens Vasters(clemens_vasters@hotmail.com)

what is dasblog
What is dasBlog?
  • dasBlog is a lightweight server for managing and providing access to personal lists of stuff
  • “What was I thinking yesterday?”
  • “What pictures did I take?”
  • “Who are my friends?”
  • “Which are my favorite websites?”
hey website xyz does that already
“Hey, website XYZ does that already!”
  • Yes, they do. But ..
  • … did you read their privacy policy?
  • … do you like all of your stuff being public?
  • … do you like them making megabucks selling advertising on what’s your personal property?
  • … are you really in control with whom you can share?
all my stuff is in tagged lists
All My Stuff Is In Tagged Lists
  • Blog entries are lists with titles and tags
  • Photo albums are lists with titles and tags
  • Video collections are lists with titles and tags
  • Contacts are lists with names and tags
  • Common properties (Tags, Titles, ChangeDate)
  • Different primary media type (Text, Image, ..)
  • Annotations are lists (Comments, Referrals, …)
architecture overview
Architecture Overview

Gadgets

Editor Clients

RSS Readers

XAML Client

HTML Clients

Internet Service Bus

Plain Old HTTP

Services(WS-*, XML-RPC, Web-Style)

Site(HTML, CSS,AJAX)

Macro Engine

Event Engine

Authorization Policies and Filters

Con-tacts

Favo-rites

Pictures A/V

Stories

Blog Entries

Lists

List Management Engine

Storage Provider Manager

XML Files

SQL CE

SQL Server

authorization
Authorization
  • Contacts managed using Information Cards
    • User/pass and web-form escape hatch for the platform challenged
  • Contacts register at site with self-issued card
    • Owner(s) approve(s) and tags contacts
      • Family, Work, Sports-Club, etc.
    • Engine retains claims in list; AuthN updates
  • AuthZ driven by tags on Contacts
storage
Storage
  • Provider model
    • Supports multiple physical storage providers
    • Data format is ATOM oriented
    • Provider instances form hierarchy on URI
  • Web-compatible CRUD API, but:
    • No constrained to HTTP (no REST purism)
    • Not based on ATOM-Pub
storage1
Storage

Outcome Enlistment Notification

Storage Node

OCE

Config

Storage Provider Manager

LTM

All storage writes done in cheap LTM Transaction scope (Partial Trust)

XML Files

SQL CE

SQL Server

“Cloud”

TxF

.sdf

.mdb

Local SQL Tx

KTM

DTC

Support Transactional file system on W2K8

Support DTC Escalation if needed

storage node
Storage Node
  • Each storage node manages one list
    • Upsert (PUT)
    • Delete (DELETE)
    • Query (GET)
  • All input/output is using Feed/FeedItem

[ServiceContract]interface IStorageNode{ [OperationContract, WebGet(UriTemplate=“/?...”)] Feed GetList(…); [OperationContract, WebGet(UriTemplate=“/{id}/”)] FeedItem GetItem(string id); [OperationContract, WebInvoke(“DELETE”,UriTemplate=“/{id}/”)] FeedItem DeleteItem(string id); [OperationContract, WebInvoke(“PUT”,UriTemplate=“/{id}/”)] FeedItem UpsertItem(string id);

}

storage node organization
Storage Node Organization

/

/

/

/

/

/

entries

pictures

streams

friends

1

1

1

1

1

?

?

tags

[default]

 List of entries

/entries

x

 Single entry

/entries/123

 Comments for entry

/entries/123/comments

/

/

 Single comment

/entries/123/comments/1

comments

annotations

/entries/tags/home

 Query alias

1

1