Read Message On Blackboard
To finish the overview of the backboard operations, let’s show how to use the read operation. It only checks, if a blackboard contains a wanted tuple (in the previous posts I used the term message, but now we are more experienced :).
The following functionalities will be shown:
- Creation of an agent.
- Locating the blackboard.
- Read a message.
The agent source code is stored in the read.rb file:
require 'rinda/ring'
DRb.start_service
ts = Rinda::RingFinger.primary
result = ts.read [:message, nil], 0
puts “[0]: #{result[0]}”
puts “[1]: #{result[1]}”
See a screencast
.
Firstly, start the rinda.rb code (for more details see the post about starting multi-agent system environment), then, in a separate console, start the write.rb (for more details see the post about writing a message to the blackboard) and finally, in a separate console or in the same console where you started the write.rb file, type:
ruby read.rb
The agent connects to the blackboard, reads a tuple and shows two lines:
[0]: message
[1]: Hi there!
Of course, you could repeat this step any number of times, because this operation only checks if a tuple is there.