Aranea

Project Information
A really amazing node-based enterprise architecture.Category: soa, middleware
Operating System: all
License: MIT License
Programming Language: Eiffel, Java
Project description:DOAP

Welcome to Aranea!

Aranea is a node based enterprise service bus technology stack. Aranea enabled applications can be distributed into computational units and communicate via Message Passing.

Aranea is a Java and Eiffel library on top of Apache ActiveMQ, the underlying MP system.

Check out the Doc and Development pages for more details about Aranea, and to start with Aranea enabling your applications!

Example

With Aranea you can send messages between Aranea nodes. A message to send a status message to another node looks like this:

  1. [project AraneaDemo prefix=A_] {       
  2.         [namespace Core] {
  3.                 [message Status] {
  4.                         properties={
  5.                                 message: string notVoid
  6.                         }
  7.                 }
  8.         }
  9. }
Aranea then generates Java and Eiffel code out of this messages. The Java class for the Status message looks like this:
  1. package aranea.demo.core;
  2.  
  3. /**
  4.  * Message implementation for message of type Status defined in the
  5.  * araneademo.core namespace.
  6.  *
  7.  * GENERATED DO NOT MODIFY
  8.  */
  9. public class StatusMessage extends AraneaMessage {
  10.  
  11.         public final String message;
  12.  
  13.         public StatusMessage(String message) {
  14.                 super();
  15.  
  16.                 this.message = message;
  17.                 if (message == null)
  18.                         throw new IllegalArgumentException("message must not be null");
  19.  
  20.         }
  21.  
  22. }
You can then send this message from one Aranea node to another Aranea node:
  1. public static void test() throws IOException, AraneaException {
  2.         AraneaNode node = new AraneaNode(AraneaNodeConfiguration.createDefault()) {
  3.                 @Override
  4.                 public String getVersion() {
  5.                         return "1.0";
  6.                 }
  7.                 @Override
  8.                 public String getName() {
  9.                         return "TEST_SENDER";
  10.                 }
  11.         };
  12.         node.start();
  13.        
  14.         StatusMessage message = new StatusMessage("I'm fine");
  15.         node.sendMessage(message, "ARANEA.TEST_RECEIVER");
  16. }
The example assumes, that Active MQ is installed and running, that a receiver node is running and that the nodes are configured to use the installed Active MQ. See the Sudoku example in the SVN repository for an example.