SkyNet is P2P agent system framework for creating
distributed applications. It offers functionality of immediate
implementation of decentralized, self-balancing network of agents
using .NET technology.
- Recycling of computer power and memory
- Usage of existing infrastructure
- Saving electricity
- Easly building strong and flexible infrastructure for future development
- Binds whole organization's network into one cooperating organism
SkyNet framework offers simple functionality of building various tools that requires
high computational resources. It is not an answer to any higly scallable problem, but
a solution that helps to reuse working computers into long-term computational tasks.
- Splitting high computational tasks
- Creating distributed operating system for sharing physical devices across the network
- Creating system of backup copies
- Monitoring computers inside the network
- Creating an infrastructure of flexible and easly updatable platform for processing data
- Biological/chemistry simulations of interaction between individuals/bacteria/particles
All above ideas concern deployment in the intranet.
The framework is implemented in .NET 4.0. Library is shipped as dll file that
needs to be referenced. To implement a solution using SkyNet you need to fullfil
- Download SkyNetCore.dll and add reference to your project
- Create instance of Host object that is the single node of the network
- Create class that derives from Agent class and implement 1 abstract function
- Create class that derives from AgentStep class and implement 1 abstract function
- Set connections.xml file for each instance of host you want to use
- Run host, inject instance of your agent class and watch it compute and jumps over the network!
- Nodes of the network communicate via TCP/IP connections
- The framework measures the workload of each computer that is the parent of the host
and automatically sends agents to the parts of the network that has lower processor overload.
- There are three basic concepts of SkyNet Cloud framework
- Host - node of the network. Running application can contain any number of hosts instances.
On the one installation of windows can run any number of applications running any number of hosts.
All can be part of one network or different ones.
- Agent - base entity that exists inside the network. Each agent has unique Id. Agents can
communicate between each other, create new agents or move. Each Agent must have [Serializable]
- AgentStep - basic action that agent execute. It is very importand the split the algorithm between
steeps as much as possible. Agents can move in the network between the two AgentSteps. Each AgentStep
must have [Serializable] attribute.
Here you can download
Visual Studio 2010 project. In this example of two hosts swapping dwo agents that exchange messages you can see the proof of architecture concept.
Under this link
there is a ready and compiled set up of above project. It can be runned on Windows with .NET 4.0. Should also work on Unix systems with Mono.
This is very brief example of the whole idea. More information you can find in Overview section. Laptop icons in the following graph symbolize Nodes
of SkyNetCloud network - not the physical machines. Icons of man visualize Agents - part of the code injected into the network.