Features
General |
Multiple Transports |
|
|
Flexible Architecture |
Security |
|
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



