Navigation


Features

General

Multiple Transports

Flexible Architecture

Security

  • DAC sessions


Comparison with other frameworks


Feature/Framework GridGain Hadoop Hazelcast Jade DAC
Map/Reduce paradigm Yes Yes Yes No Yes
Load balancing and scheduling Yes Yes Yes Yes Yes
JMX-based Management & Monitoring Yes Yes Yes (1) Yes
Fail-safe Yes Yes Yes No Yes
Zero deployment model Yes Yes Yes Yes Yes
Hybrid Cloud Yes Yes Yes Yes Yes
Multiple nodes in one VM Yes Yes Yes No Yes
JEE integration Yes No Yes No No

(1) uses jademx - an open source implementation of Java JMX


Map/Reduce paradigm
Allows developers to write programs that process massive amounts of unstructured data in parallel across a distributed cluster of processors or stand-alone computers.
Load balancing and scheduling
Technique to distribute workload evenly across agents, in order to minimize response time, and avoid overload.
JMX-based Management & Monitoring
All major monitoring and statistical information about all nodes in the grid available via programmatic interface as well as through any JMX-compliant Web or standalone GUI viewer such as JConsole.
Fail-safe
During computation the tasks of failed node(s) are re-distributed among the remaining nodes.
Zero deployment model
Allows to start multiple nodes on the same computer without any changes in configuration.
Hybrid Cloud
Environment in which some resources are provided and managed in-house and others provided externally.
Multiple nodes in one VM
Allows to start multiple nodes in the same Vrtual Machine.
JEE integration
Allows frameworks to be integrated into the application servers.



Framework specific features

GridGain

  • Cloud Aware Communication & Deployment - allows GridGain runtime to adapt to different environment without affecting any business logic that is running on it
  • Annotation-based grid-enabling with AOP - allows to grid-enable existing code without any modification by using Java annotations and AOP-style (Aspect-oriented programming) crosscutting effectively forming a grid-enabling DSL (Domain Specific Language)


Hadoop

  • File system - provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster
  • Master/slave architecture of Map/Reduce framework - a single master server or jobtracker and several slave servers or tasktrackers, one per node in the cluster
  • Master/slave architecture of HDFS - a single Namenode, master server that manages the filesystem namespace and regulates access to files by clients and a number of Datanodes, one per node in the cluster


Hazelcast

  • Distributed implementations of java.util.{Queue, Set, List, Map}
  • Distributed implementation of java.util.concurrency.locks.Lock
  • Distributed implementation of java.util.concurrent.ExecutorService
  • Distributed MultiMap - for one-to-many relationships
  • Distributed Topic - for publish/subscribe messaging
  • Socket level encryption - for secure clusters
  • Persistence - synchronous (write-through) and asynchronous (write-behind) persistence
  • Second level cache provider - for Hibernate
  • Sessions - dynamic HTTP session clustering
  • Information - support for cluster info and membership events
  • Dynamic discovery - solved by multicasting
  • Data management - dynamic partitioning with backups


Jade

  • Compliant with the FIPA specifications - for interoperable intelligent multi-agent systems
  • Agent communication - Peer-to-Peer intelligent agent communication performed through FIPA ACL (Agent Communication Language) messages
  • API - extensive set of API’s, alongside with an excellent suite of programming and testing tools
  • GUI - graphical user interface to manage several agents and agent containers from a remote host
  • Transport mechanism - adapts to each situation, by transparently choosing the best available protocol (currently: Java RMI, event-notification, HTTP, and IIOP)
  • Protocols - more protocols can be added via the MTP and IMTP JADE interfaces
  • JessBehaviour - allows full integration with JESS rule engine
  • Secure work - allows to work in a proactive way, according to usage rules given by owners
  • Coordination - allows to coordinate in order to solve complex problems in a distributed way



Examples/problems solved/delivered by Frameworks

GridGain

  • Hello World - demonstrates direct grid task execution
  • Distributed JUnit - demonstrate how GridGain can distribute JUnit tests or test suites across grid
  • MapReduce with Prime Numbers - demonstrates how prime number check it can be grid-enabled using GridGain
  • Resize Images - demonstrates how to scale and convert images on the grid using JDK encoders
  • JBoss Cache Affinity Split Example - shows how with GridGain and JBoss Cache you can co-locate data access with your processing logic
  • MapReduce with Node Metrics - jobs will be routed to the nodes that have at least 2 physical CPUs and average idle time more than 50%
  • Grid Task Events Processing - being deployed/executed task produces number of events which can be queried later to analyze
  • Grid Discovery Events Processing - during startup new node communicates with remote ones to set up a connection and exchange attributes
  • Grid Direct Task Deployment - explicitly deploy a task
  • Resource injection - work with some storage (or with database the same way)
  • Monte-Carlo - calculates a risk value for a portfolio of loans


Hadoop

  • WordCount - reads text files and counts how often words occur
  • Python WordCount - WordCount example translated into Python and translated using Jython into a Java jar file
  • C/C++ WordCount - WordCount example using C/C++
  • Grep - extracts matching strings from text files and counts how many time they occured
  • Sort - simply uses the map/reduce framework to sort the input directory into the output directory


Hazelcast

  • None


Jade

  • Hello World - shows a minimal agent printing "Hello World!" and then terminating
  • Behaviours - includes examples showing the usage of simple and composite behaviours
  • Messaging - includes examples showing how to make JADE agents communicate
  • Yellow Pages - includes examples showing how to use the Yellow Pages service provided by the DF agent
  • Topic-based communication - includes examples showing how to use the topic-based message delivery mechanism introduced with release 3.5
  • Book Trading - shows a very simple multi agent system for trading books online
  • Protocols - shows the usage of the support provided by JADE for interaction protocols
  • Ontology - shows how to use the support for application specific ontologies
  • In Process - shows the usage of the jade.wrapper package to start a JADE runtime and control a number of agents from an external application
  • Base 64 - shows how to encode serialized Java objects into the content of an ACLMessage; it also shows how to force the platform to use bit-efficient and/or XML ACLCodec
  • Mobile - an example of a mobile agent