Hello, > # Is there any documentation of DRuby/Rinda/TupleSpace in english? > > I haven't found anything either. I think you need to look elsewhere. > > JavaSpaces in Java are Sun's implementation of TupleSpaces. > Rinda is the Ruby version of Linda :-) > > If you already know this, then there's code samples left to look at in the > downloads. Rinda's small sample is included in drb-1.3.2. drb-1.3.2 --> http://www2a.biglobe.ne.jp/~seki/ruby/drb-1.3.2.tar.gz == Code * drb-1.3.2/sample/rindac.rb (client) ---------------------------- require 'drb/drb' require 'drb/rinda' uri = ARGV.shift || raise("usage: #{$0} <server_uri>") DRb.start_service tuple = TupleSpaceProxy.new(DRbObject.new(nil, uri)) tuples = (1..10).collect do |n| ['sum', DRb.uri, n] end tuple.out(*tuples) (1..10).each do |n| ans = tuple.in(['ans', DRb.uri, n, nil]) p [ans[2], ans[3]] end * drb-1.3.2/sample/rindas.rb ('sum' server) ---------------------------- require 'drb/drb' require 'drb/rinda' def do_it(v) puts "do_it(#{v})" v + v end uri = ARGV.shift || raise("usage: #{$0} <server_uri>") DRb.start_service tuple = TupleSpaceProxy.new(DRbObject.new(nil, uri)) while true r = tuple.in(['sum', nil, nil]) v = do_it(r[2]) tuple.out(['ans', r[1], r[2], v]) end * your_tuplespace.rb -------------------- require 'drb/drb' require 'drb/rinda' uri = ARGV.shift DRb.start_service(uri, TupleSpace.new) puts DRb.uri puts '[return] to exit' gets == How to play? host A % ruby your_tuplespace.rb druby://hostA:12345 host B % ruby rindas.rb druby://hostA:12345 % ruby rindas.rb druby://hostA:12345 host C % ruby rindac.rb druby://hostA:12345 == Tuple Tuple is Array. * ['abc', 2, 5] * 'matrix-1', 1, 6, 3.14] * ["family", "is-sister", "Caronlyn", "Elinor"] nil is wildcard. * in(['abc'. 2, 5]) # --> ['abc', 2, 5] * in(['matrix-1'. nil, nil, 3.14]) # --> ['matrix-1', 1, 6, 3.14] * in(['family'. 'is-sister', String, String]) # --> ["family", "is-sister", "Caronlyn", "Elinor"] Seki