Voyage - PharoConf 2012
Upcoming SlideShare
Loading in...5
×
 

Voyage - PharoConf 2012

on

  • 462 views

Voyage is a persistence framework for object models.

Voyage is a persistence framework for object models.

Statistics

Views

Total Views
462
Views on SlideShare
462
Embed Views
0

Actions

Likes
1
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Voyage - PharoConf 2012 Voyage - PharoConf 2012 Presentation Transcript

  • Voyage The adventure of persisting object-modelsWednesday, June 27, 12
  • A glimpse of Seaside • Stateful • Component model • Maybe aged, but still the best :)Wednesday, June 27, 12
  • Continuations I still prefer:Wednesday, June 27, 12
  • Continuations Over:Wednesday, June 27, 12
  • A glimpse of Pier • A CMS • Component based • You can embed almost anything • You can decorate almost anythingWednesday, June 27, 12
  • A perfect worldWednesday, June 27, 12
  • A perfect world • Objects collaborate inside your image, creating a perfect choreography of interacting elements...Wednesday, June 27, 12
  • A perfect world • Objects collaborate inside your image, creating a perfect choreography of interacting elements... • INSIDE your imageWednesday, June 27, 12
  • Why to persist? • Space • Reliability • ScalabilityWednesday, June 27, 12
  • Persisting Pier • A complex* object model • Looking for • Scalability • Update capabilities • Backup *And I mean really complex: take a look to all those commands, decorations and dictionaries :)Wednesday, June 27, 12
  • Show time!Wednesday, June 27, 12
  • Voyage • A “non-abstract” persistence layer • An “implementation pattern” which provides some services as wellWednesday, June 27, 12
  • A simple layered approach Voyage Memory Mongo ... Magritte- MongoTalk MongoWednesday, June 27, 12
  • Use cases Singleton mode: Regular mode:Wednesday, June 27, 12
  • A simple API • #save: • #remove: • #removeAll: • #selectAll: • #selectMany:where: • #selectOne:where:Wednesday, June 27, 12
  • A simple API • #save: Where clauses are what the back-end needs, • #remove: no something intermediate • #removeAll: • #selectAll: • #selectMany:where: • #selectOne:where:Wednesday, June 27, 12
  • A simple API • #save: Where clauses are what the back-end needs, • #remove: no something intermediate • #removeAll: • #selectAll: Memory: [ :each | each key = 42 ] • #selectMany:where: • #selectOne:where:Wednesday, June 27, 12
  • A simple API • #save: Where clauses are what the back-end needs, • #remove: no something intermediate • #removeAll: • #selectAll: Memory: [ :each | each key = 42 ] • #selectMany:where: • #selectOne:where: Mongo: { #key->42 } asDictionaryWednesday, June 27, 12
  • What Voyage provides • Common API • Centralized management - Preserve identity (caching live objects) - Error handling - Reconnection - Pluggable connection poolWednesday, June 27, 12
  • Voyage-Memory • Is just a centralized dictionary of collections. • Used for prototyping and early stages of development (no need to choose a persistent repository at first instance) • Works for “stateless” applications which need readonly data (I made one once, yes)Wednesday, June 27, 12
  • Voyage-Mongo • Uses MongoTalk • Adds - Object cache - Error handling/reconnection - Transparent mapping (magritte guided)Wednesday, June 27, 12
  • Magritte-Mongo • “Object-Document mapper” • Magritte base implementation is intended to UI and there is some difference with mongo needs. - Explicit (static) declaration vs. dynamic type inference. (i.e. Pier persistence is nearly impossible with an explicit declaration approach) • I changed it a lot since Norbert saw him (more and more inference... and still needs more)Wednesday, June 27, 12
  • SerializerWednesday, June 27, 12
  • SerializerWednesday, June 27, 12
  • SerializerWednesday, June 27, 12
  • Serializer • Uses become, so yes, it is slow • So far, no need more speed. • Other possible approaches: Two phases (mark and persist)Wednesday, June 27, 12
  • Status ✓First version working (make it work) • Need cleanup (make it right) • Need some optimization (make it fast)Wednesday, June 27, 12
  • Future • Finish it (collaborators would be fine :) • Add/Update some backends (Just if/when needed) - Fuel - Phriak - Glorp?Wednesday, June 27, 12
  • Thanks! Voyage and PierVoyage are available at: http://smalltalkhub.com/#!/~estebanlm/Voyage Already a tester who is blogging about! http://articles.tulipemoutarde.be/Wednesday, June 27, 12