Tuesday, January 8, 2008

Tokens

UPDATE: For an intuitive demonstration of Petri Nets: http://www.informatik.uni-hamburg.de/TGI/PetriNets/introductions/aalst/

I spent today growing the Token object and I think I've made it to a mostly-stable beta version. The token is the developer's gateway to interacting with runtime process state. The current version is capable of:

  • Answering: where am I? (position in the workflow map)
  • Answering: what state am I in? (waiting, continuing, dead, lost in the void)
  • Answering: what is my parent/sibling up to? (present, elsewhere, alive, how many, etc)
  • Spawning children (when tokens hit a forked process the process engine will create child tokens for all possible transitions)
  • Answering: do I have cargo? Add/Remove cargo. (application data passed through the workflow)
  • Making a normal application object conveyable (it can ride a token)

The token object was built off the token spec (token_test.rb). In the next version, I'd like to add another chunk of functionality that will allow the Token to keep a historical record of its movement.

ProcessEngine is next...

Today:
  • Sabbatical beard made it out of the "stubble phase". This is dangerous territory, not yet lumberjack beard, no longer j. crew stubble...no rationalization to provide fiance Melissa
  • Learned that my cat loves crispy cheddar squares
  • Found that my cat's stomach has not evolved to properly digest crispy cheddar squares
  • Finished Token spec
  • Created Token, TokenCargo, TokenPlace and a bunch of exception classes
  • Created test classes TeaBox, Tea (for making_tea process)
  • Began spec for ProcessEngine

No comments: