1 / 10

dasBlog 3.5 Architecture

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?”

joshua
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. dasBlog 3.5Architecture Clemens Vasters(clemens_vasters@hotmail.com)

  2. 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?”

  3. “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?

  4. 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, …)

  5. 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 …

  6. 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

  7. 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

  8. 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

  9. 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); }

  10. 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

More Related