Skip to end of metadata
Go to start of metadata

Autonomous Components

The Autonomous components can be though of as little robots, working on an assembly line. They all know their place at the assembly line, relative to the other robots. That is to say, each robot knows which events must have transpired for a batch before the batch reaches him. Please note, the robots are virtual, so several robots can occupy the same spot on the assembly line, and several robots can work on the same batch simultaneously.

Most of their life is spent sleeping. Periodically, they open their eyes, to check if a new piece of work have arrived for them. This is what we call "The Polling Step". They poll the Newspaper Batch Event Framework, SBOI, to find all batches, which have experienced a set of events corresponding to this robot's place. 

If the robot finds that a batch is ready to work on, it starts working on this batch. The robot will not poll for more work while working.

Some of the robots will be able to multitask, and others will not. Multitasking is done in a slightly different way for robots than for humans. The multitasking robot will build a new little non-multitasking robot child, give him the batch to work on, and then go back to sleep. Next time it polls for work, it will have to remember not the start work on batches that already have been assigned to any of the robots children. This also means that there must only ever be one instance of each type of multitasking robot running.

When a robot have finished work on a batch, it must record this, so the assembly line can move forward. It records the event Batch Object, stored in the Digital Object Management System, DOMS, system, in the form of an event somewhat like "I, <ROBOT>, did this <THIS WORK> on batch <ID> with <THIS RESULT>". The SBOI will then periodically (often) query DOMS for updates to the Batch objects. When the SBOI discover a batch object update, it updates the index, so that robots further along the assembly line can work on the batch.

Autonomous Dependency Graph

  • No labels