| ... | ... | @@ -39,6 +39,23 @@ After the selection of a configuration on system startup the following steps hap |
|
|
|
1. The configuration actor is created the akka way using a `Props` object and a provided ConfigurationCreator.
|
|
|
|
2. The preStart method of the akka actor is called. This method is predefined to simply call the `run()` method.
|
|
|
|
|
|
|
|
## Gephi Integration
|
|
|
|
It is now possible to create a overlay network. This network is completely transparent to the Distributed Commit layer, which still uses the knowledge of all nodes, but allows for a reproducible and more realistic execution of algorithms like gossiping.
|
|
|
|
To create the overlay graphs we are using the Gephi toolkit. The implementation is currently WIP and visible in the `dev-group3-gephi` branch.
|
|
|
|
This allows you to create gexf files using Gephi or custom code and use these to create an overlay network according to this graph.
|
|
|
|
Let's take a look at the `GephiConfiguration` class. At first we tell the Gephi toolkit to load a provided topology (in case of the committed code, it currently is a simple ring network of 4 nodes, whereas one link is bidirectional and the other are unidirectional).
|
|
|
|
Now the spawns a wallet for each node in the graph. Afterwards, the application looks for every node at all incident edges and tells the associated wallet the neighbours it should know, according to the graph.
|
|
|
|
|
|
|
|
In your own algorithms you can let the wallets send messages based on this overlay and thus get rid of the "everyone knows everyone" and supervisor-centric design of the distributed commit layer and you are able to create reproducible test scenarios for your algorithms.
|
|
|
|
As you can see, if you run the configuration, there is also a display of the loaded topology.
|
|
|
|
We will go on and improve the implementation, but would like to know, what you would like to add.
|
|
|
|
|
|
|
|
The following features are planned, but no guarantees on implementation are given:
|
|
|
|
* Allow for the creation of random graphs and exporting these
|
|
|
|
* Provide a base framework to handle interaction with the display of the topology (e.g. to trigger actions)
|
|
|
|
* Generalize the code to make the integration easier
|
|
|
|
* Looking into what tools Gephi provides for Graphs and try to integrate these (due to the limited time left, it is very unlikely that we can achieve a lot here)
|
|
|
|
|
|
|
|
## Remoting
|
|
|
|
|
|
|
|
Besides creating local wallets (i.e. wallets running in the same JVM as the supervisor), it is also possible to create a remote wallet in a different JVM (on the same computer or on a different computer in the same network). When starting a remote wallet, you will be prompted to enter the address of a __wallet__ which is already part of the network. This wallet will then be used as the preknown neighbour for the remote wallet.
|
| ... | ... | |
| ... | ... | |