14th August 1997

VirtualNet (over RMI)

Interface

Despite the fact that there are two versions of VirtualNet, the local and the remote, there is a shared interface, defined by the classe vnet.NetLayout. This interface allows mainly to:

  • Add a new node to the net.
  • Remove an existing node.
  • Insert a new link between two nodes.
  • Remove any existing link.

In the operations on this NetLayout, it is also possible to define a delay general and also particular delays for each node and each link; this delay would be the equivalent to the inherent delay on any net.

The class vnet.BuildNetLayout allows the construction of a net from a string. This string indicates the nodes and links to be created (or to be destroyed).

The server operations: [bind, rebind, unbind, lookup] are defined in the local and remote version of VirtualNet. The remote version tries to be transparent with respect to the java.rmi.Naming interface and it defines the same functionality, even it is defined the method list, with the same exceptions. These operations are:

  • Bind a server to a node, with an specific name. The remote version allows, as RMI does, to bind a server in a different machine, that is, in a different node.
  • Rebind a server to a node, with a specific name, even if the name is already in use.
  • Unbind a server
  • Lookup a server, that is look for a node in the net. It is possible to specify the node on which the server is binded.
  • For the remote version, it is possible to get a list of the servers binded to the virtual net.
For the remote version, this interface is given by vnet.remote.HostImpl, a RMI server. The class vnet.remote.VirtualNet is not a remote server; to make it possible to modify the net layout, there is a class, vnet.remote.VirtualNetRemote that allows to do the NetLayout operations using RMI.