JASocket
| License: LGPL | GitHub: Commits, Issues | Free (Code): All Releases | Google Group |
JASocket is a lock-free, scalable and robust server framework with no single point of failure. Servers are run on a cluster of nodes. Servers interact with other servers using mobile agents, which reduces the number of messages and thus reduces the overall system latency. Administration is handled via ssh.
Benchmarks:
Latency for agents sent between 2 JVM’s on the same machine (round trip): 84 microseconds.
Throughput for agents sent between 2 JVM’s on the same machine: 137,000 per second.
(Test Machine: i7-3770 @ 3.40 GHz, ASUS P8Z77-M Motherboard, 16 GB Corsair DDR3 1600 MHz RAM and Vertex 3 SATA III SSD)

Maven:
JASocket is available on The (Maven) Central Repository, so Maven users just need to add this to their POM file:
<dependency>
<groupId>org.agilewiki.jasocket</groupId>
<artifactId>jasocket</artifactId>
<version>3.2.1.0</version>
</dependency>
(Be sure to update the version number appropriately, of course.)
Dependencies: Java 7, sshd, jline, joda-time, slf4j, JActor, JID
Documentation
- JASocket, a light-weight Cluster for Mobile Agents
JASocket is a lock-free, scalable and robust server framework with no single point of failure. Servers are run on a cluster of nodes and interact with other servers using mobile agents… more - Getting Started with JASocket
To run JASocket you will need the JAR files for compatible versions of JActor, JID and JASocket. Download these projects from… more - Configuring JASocket
The Node class provides a default configuration for a node in the cluster and also has a main method for running a simple node, e.g. a node without a console. Configuring a node is a matter of… more - A Basic Console for JASocket
The Console class provides JASocket with a basic console. It starts up a node and then repeatedly reads lines of text from System.in and evaluates them using EvalAgent. Here is the code… more - Mobile Agents
JASocket’s mobile agents are subclasses of the AgentJid class… more - Commands
Commands are implemented as agents and can be run in any node. A command is defined as… more - Command Agents
Commands are implemented as subclasses of CommandAgent… more - The Command Set
JASocket includes a number of commands for managing the cluster. An understanding of their implementation will be helpful in learning the the JASocket API… more - Server API
The HelloWorld class implements a very simple Server… more
