Network Architecture

The EvE Network is the sum of all Habitat nodes within the P2P Network. A habitat node is a DBE software service that runs on top of a Servent. Therefore, the EvE does not implement its own networking algorithms, but uses the underlying P2P system infrastructure.

The following features must be provided by the infrastructure:

  • Discovery of new habitat nodes
  • Connect to a habitat node using the node's unique id
  • Provide a proxy for a connected habitat

Migration

Whenever a new service manifest is published in the DBE, the service description and a link to this service implementation is stored in the local service pool of the habitat. One of the key features of the Habitat Network is the distribution of this service information through spreading of this service descriptions. This mechanism is called Service Migration.

The migration mainly depends on two factors:

  • Migration Probability
  • Service Usage History

Migration can be random or targeted. Random migration sends a service to all connected habitats, depending in the migration probability of a link. Random migration is done periodically by the habitat and does not require an external trigger.

Targeted migration tries to send a service to a specific habitat. This habitat does not need to be known currently. However, if the migration of a service to this possibly unkown habitat is succesful, it is added to the list of connected nodes.

Obviously, targeted migration must be invoked by sub-components of the habitat. At the moment, this feature is used by the DIS.

Migration Probability

The migration probability is a per-link value between 0 and 1, that defines the probability by which services are migrated to this link. A higher value means higher migration probability. This value can be set static (see NetworkManager documentation), or can be calculated during run-time.

The calculation of the migration probability can be changed by providing an implementation of the MigrationProbability Interface and defining its name in the habitat service' deployment.properties file.