Grid Ops Java - Tutorial
Grid Ops for Java is an open source distributed systems toolkit implemented in Java. The purpose of Grid Ops is to make it easy to implement different distributed systems architectures. This flexibility lets you more easily experiment with different architectures so you can find the right one for your system.
To achieve the flexibility we are aiming at, we have developed Grid Ops from the ground up, with as few external dependencies as possible (0 dependencies right now). While using external toolkits might help us get the Grid Ops toolkit working quicker, external toolkits have a way of impacting your your design options. Toolkits and platforms often contain design decisions, and sometimes these design decisions may conflict with yours. To avoid that, we decided to develop everything ourselves.
Because we are implementing everything ourselves, Grid Ops evolves somewhat slower than other frameworks which bundle together a set of common open source tools. However, it is our hope that the flexibility achieved will make up for the slower development time.
Additionally, the different parts of Grid Ops stabilizes at different speeds. Some parts are already pretty stable and well tested, whereas others are still experimental and might be removed or replaced. The documentation (in these tutorials) will mention whether the given part is stable or experimental, so watch out for that.
Grid Ops does not communicate via HTTP. Instead, Grid Ops uses IAP (Internet Application Protocol) which is a network protocol we have designed ourselves. We chose to design our own network protocol to avoid being limited by what is possible with existing protocols.
IAP is designed around a common message format which can be used to implement custom protocols, with the only requirement that these protocols break their communication up into messages. These custom protocols are referred to as "semantic protocols", as it is these protocols that define the semantic meaning of the messages exchanged.
We will be designing a set of standard semantic protocols that you can use. If these standard semantic protocols do not fit your needs, you can implement your own.
Grid Ops can support multiple semantic protocols at the same time. Incoming messages tell what semantic protocol they belong to, and what message type within that protocol they represent, and can be routed and processed accordingly. Thus, you can implement multi protocol applications with Grid Ops. This is by design - to increase the flexibility of Grid Ops.
IAP uses a binary data format to encode messages which is called ION (IAP Object Notation). ION is similar to a binary version of JSON, but with several improvements, like the ability to carry binary data more optimally, more compact representations of integers, datas, and support for more optimal encoding of tabular data (like in a CSV file).
ION can also be used as a general purpose data format. You can store ION encoded data to files, and you can send data structures encoded with ION inside IAP messages.
To learn more about how Grid Ops works, go the Grid Ops Overview page.
Note: At the moment, the Maven dependency is not up to date. We hope to fix that in the future. You can download a JAR file from the Grid Ops GitHub repository and put into your local Maven repository. When we get the Maven deployment up-to-date again, it will look like this:
<dependency> <groupId>com.nanosai</groupId> <artifactId>grid-ops</artifactId> <version>0.4.0</version> </dependency>
Remember to replace the version number with the version of Grid Ops you intend to use.
The Grid Ops GitHub repository can be found here: