Next Previous Contents

23. <6.3>: Distribuert Ruby - druby

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.


Next Previous Contents