Tech and Media Labs
This site uses cookies to improve the user experience.

Grid Ops Java - Overview

Jakob Jenkov
Last update: 2017-03-13

Grid Ops features are divided into three different "layers". These layers are illustrated here:

Overview of the functionality layers in Grid Ops for Java

Each of these layers will be described below.


ION is the binary data format we developed to encode IAP messages. ION is fast, compact, flexible, and can be used completely independently of IAP. You can use it inside HTTP or as a data format for files, if you want.

The ION features in Grid Ops consists of components to read and write ION. These components are:

The IonReader and IonWriter can read and write ION in its binary form. They work directly on the raw bytes in byte arrays. These components give you maximum read and write speed, but they require more work to use than the IonObjectReader and IonObjectWriter.

The IonObjectReader and IonObjectWriter can read and write ION data to and from Java objects. These components use Java Reflection internally to read and write ION from and to Java Objects. These components make it easy to convert between Java objects and ION, but their performance is not as high as that of the IonReader and IonWriter.

IAP + Infrastructure

IAP is the network protocol used by Grid Ops. The infrastructure components help you use IAP to implement distributed applications.

The IAP and Infrastructure features are intertwined and are thus harder to use separately from each other. It is possible to use the infrastructure components with other protocols than IAP, but many of these components are designed to work with IAP first and foremost.

So far Grid Ops has the following IAP + infrastructure components:

The TcpServer is a simple TCP server implementation. The TcpServer requires its own thread to accept incoming connections. Incoming connections are then handed off to other components for processing (e.g. the TcpSocketsPort).

The TcpSocketsPort is a "port" for IAP messages received and sent via TCP sockets. In order to receive and send IAP messages you connect a TcpSocketsPort to a TcpServer. The TcpSocketsPort enables you to read a batch of incoming messages from across all the TCP sockets, and write responses back to reach TCP socket separately.

The NodeContainer can route IAP messages to the component that is to process it. The NodeContainer does this based on the semantic protocol id + version and the receiver node id in the IAP message. You do not have to use the NodeContainer. You can also just process all the IAP messages yourself.

We have many more components planned than the above. We will add these components over time as the Grid Ops project progresses.

Jakob Jenkov

Copyright  Jenkov Aps
Close TOC