Distribuert Ruby (druby a.k.a. DRb) lar oss kommunisere og samhandle enkelt med andre Ruby-programmer over nettet, ikke ulikt RMI, CORBA ( rinn), XML-RPC ( xmlrpc4r) eller lignende.
Et lite eksempel hvor vi deler ut et tjenerobjekt over nettet. Serveren:
1| require 'drb' 2| class Tjener 3| def si_hei 4| puts 'Hei!' 5| return 'Hei fra tjeneren!' 6| end 7| end 8| tjener = Tjener.new 9| DRb.start_service( 'druby://localhost:4242', tjener ) 10| DRb.thread.join |
... hvor vi må vente på at druby sin tråd skal avslutte, slik at serveren ikke stopper med en gang.
Dernest kobler vi oss opp med en klient:
1| require 'drb' 2| DRb.start_service 3| tjener = DRbObject.new( nil, 'druby://localhost:4242' ) 4| svar = tjener.si_hei 5| print "Fikk fra tjener: '", svar, "'.\n" |
Merk at vi angir nil
som første argument til DRbObject
-konstruktøren, siden vi ikke har et ordentlig objekt på "vår" side.