The Artima Developer Community
Sponsored Link

Agile Buzz Forum
SRP

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
SRP Posted: May 4, 2004 1:19 AM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: SRP
Feed Title: Michael Lucas-Smith
Feed URL: http://www.michaellucassmith.com/site.atom
Feed Description: Smalltalk and my misinterpretations of life
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Michael Lucas-Smith

Advertisement

The first presentation of the day along with another one in the other room. I ended up in the main room by the flow of people with Jim Robertson, not out of any particular choice. I'm glad I ended up there though because it was a good talk.

Take BOSS and make it multidialect and well written and you've got SRP. Here's what I wrote down from the presentation:

Ported to 8 dialects. Binary for effeciency and speed. You can't even use things like Dictionarys - VA has LookupTable's for example. Higher order types - float widths for example, are no good since you lose platform portability. He likes XML, but obviously it's not great for mass network transfer.

SRP has high portability of basic and high-order data types. Simple parsing rules on a /stream/. Everything is just a string or unsigned integers Integer can be from 0 to inf. Object state can be loaded regardless of schema or behavior changes..

Everything in the binary stream is strings or integers. The integers use a least significant bit like UTF-8 to continue being a larger number.

SRP is mature - 8 years old. He's done all dialects from a single code base - cool. He's got SUnit tests too. Gets over issue of Dictionary shapes, etc, with a module called SrpPortableObjects. Very similar to IBM's SST and Opentalk's marshaller structure. A very common pattern for these systems it seems. Nice and standard, probably very worth while adopting. SRP can marshal as text or binary configurable from a subclass of the Configuration class. SRP can, naturally, be serialised to disk. BOSS is very similar as well. Perhaps I should drop BOSS and pick up SRP instead as a step towards x-dialectability. You can load in data from a class that you don't have defined in your image.. of a complex data structure.

Doesn't use become: - fast in some like VW but slow in most like VAST. Uses place-holder objects pattern. Used that pattern in the 'importer' at Wizard. I'm sure he's done it better than we did. Quite like the proxy objects in Glorp/Toplink.

Similar to DTD's - SRP has a 'meta state table' as a separate entity to the data itself. The data needs the MST if you use it. When using an MST, the data is smaller.

Serialized out some source code and it ended up smaller than the source code itself. Has he tried applying gzip over that data as well?

The biggest value of SRP is all the exchange knowledge between dialects at the object level.

Question: What applications is SRP in and how do you compare SRP to BOSS in VW?. a) Existed for 8 years. A few people have said they're using it but he hasn't kept touch on how it's being used. b) With BOSS you write directly to a stream. Objects may not be loadable if your behaviour changes - Jim knows this well. What about shape changes? BOSS is insecure because its datafile specifies perform:'s inside it. SRP only executes by its own rules. Each dialect has their own serialization tool. Some are faster than SRP. SRP is more space effecient - and its cross dialect. VAST swapper will save an object in 10k. SRP will save the same object in 1.6k.

Main objectives: Portability and Space effeciency

Hasn't tested externalising blocks lately. Used to do it, not sure if it still works.

Question: How SRP deals with shape changes to classes. a) Define a loader rule, when you load a particular class - define rules to map it however you want. Class based, inherit based, inst based loading rules. SRP v3 allows you to store a version number like BOSS - should give you enough of a hook to 'upgrade' your data.

SRP is open source under the Mozilla license.

Read: SRP

Topic: StS 2003 presentations online Previous Topic   Next Topic Topic: More new stuff for Bf

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use