90 likes | 219 Views
Madara KaRL Updates. James Edmondson October 6, 2010. MADARA KaRL Motivations. DAnCE Deployments Currently a three phase component loading process that requires some trial and error to get working properly
E N D
MadaraKaRLUpdates James Edmondson October 6, 2010
MADARA KaRL Motivations • DAnCE Deployments • Currently a three phase component loading process that requires some trial and error to get working properly • May take up dozens of seconds to minutes to load 2,000 components properly in a deployment • MADARA aims to reduce deployment load time to a fraction of previous load time
MADARA KaRL Motivations • DAnCE Deployments Component 2 Requires Component2.Stage >= 5 Component 1 Requires Component17.Stage >= 1 Component 17 Requires Component245.Stage >= 1 Component 245
MADARA KaRL Motivations • DAnCE Deployments Knowledge.set (“Component2.Stage = 5”); Knowledge.wait (“Component2.Stage >= 5 && Component17.Stage >= 1 && Component245.Stage >= 1”); Component 2 Requires Component2.Stage >= 5 Component 1 Knowledge.set (“Component17.Stage = 1”); Requires Component17.Stage >= 1 Component 17 Requires Component245.Stage >= 1 Wait condition Is true. Proceed. Component 245 Knowledge.set (“Component245.Stage = 1”);
MADARA KaRL Updates • Knowledge domains • Users may now specify a subset of the global domain to reduce message traffic and target knowledge events to only interested parties global “emergencies” knowledge Domain can be specified as An argument to the Knowledge_Base emergencies
MADARA KaRL Updates • Bridge pattern for main class • Allows user to use the Knowledge Base without worrying about effects of copy-by-value Knowledge_Base Knowledge_Base_Impl KB_Implimpl_
MADARA KaRL Updates • Variable expansion • Variable names may now be combinations of strings and evaluations of other variables • Allows for rich expressiveness Knowledge.evaluate (“ .id = 1; .state = 3 State{.id}.{.state} = -2 // State1.3 = -2 “);
MADARA KaRL Updates • Added two Wiki pages to project site • http://code.google.com/p/madara/wiki/KnowledgeEngineMechanisms • Includes explanations of core KaRL Engine mechanisms • Includes commented example of tagalong process creation, which can aid in fault tolerant active replication service creation • http://code.google.com/p/madara/wiki/LanguageSpecification • Includes full language specification and precedence levels • Includes commented example of 3-state synchronization ring, which can aid in emergent programming techniques
MADARA KaRL GME Updates • GME Paradigm • Provides developers with modeling environment for processes • Each process can have multiple stages • Each stage may have one or more expressions to evaluate or wait for • Eventually will allow users to specify dependencies, build finite-state-machines, etc. • Process building aspect • State transition aspect