Getting Started: Subscribing to Real-time Data

This guide introduces how to configure a real-time data subscription job on EnOS Management Console and consume data with the Java SDK provided by EnOS.

Prerequisites

  • Access permission to the Data Subscription module.
  • Device connection is completed, and the devices are uploading data to EnOS.
  • The service account (SA) for subscribing data has been authorized to access asset data.
  • A workstation with IDE (IDEA or Eclipse) installed.

About This Task

Goal

The goal of this guide is to subscribe to the real-time data of the test_raw measuring point.

Data Preparation

  • Model configuration: Detailed information about the (testModel) for this guide is as follows:
Feature Type Name Identifier Point Type Data Type
Measuring Point test_raw test_raw AI DOUBLE

For information about device connection and data ingestion, see Device Connection.

Procedure

The steps for subscribing and consuming real-time data are as follows:

  • Create and configure a real-time data subscription job
  • Save and enable the subscription job
  • Get subscribed data with Java SDK
  • Check the data consumption results

Step 1. Create and Configure a Data Subscription Job

Log in EnOS Management Console and select the Data Subscription module. All the subscription jobs created for the current organization are listed in the table. Take the following steps to create and configure a real-time data subscription job.

  1. Create job: Click the New Subscription button and complete the configuration for the job. For this guide, select Time Series Data Subscription as the type.

  2. Subscription ID: Choose to input or generate an ID for the subscription job.

  3. Select SA account: Each consumer instance must have an associated SA account, which can be generated by registering an application on EnOS. For instructions, see Managing Applications.

    Note

    The SA account associated with the data subscription job must be authorized to access the asset data. Otherwise, the data subscription job will fail because of authentication failure. For more information about authorizing the SA account, see Managing Service Accounts.

  4. Select the message channel of the subscribed data. For this guide, select Real-Time message channel.

  5. Enter short description of the data subscription job.

  6. Select data to be subscribed: Each SA can access the data of multiple clients (through purchasing applications). Select the clients whose data are to be subscribed to.

  7. Set model and measuring point filter: Select the model and measuring points to be subscribed to. For this guide, select test_raw the testModel. The subscription system will filter data to meet the specified conditions.

  8. Set device tag filter: Specify tags of devices so that data of the selected devices will be subscribed to.

Step 2. Save and Enable the Subscription Job

After the subscription job is configured, click Save to save the configuration. On the Data Subscription page, find the created job, click the Enable icon to run the subscription job.

Step 3. Get Subscribed Data with Java SDK

EnOS provides Java SDK to help you with offline application development and data consumption.

<dependency>
  <groupId>com.envisioniot</groupId>
  <artifactId>enos-subscribe</artifactId>
  <version>2.4.1</version>
</dependency>
  • Use IDE for offline application development. See the following code sample:
String sub_server_host ="sub_server_host";
int sub_server_port ="sub_server_port";
String accessKey ="access_Key";
String secretKey ="secret_Key";
String subId = "subscriptionId";   /* Optional */

/* service */
EOSClient eosClient = new EOSClient(sub_server_host, sub_server_port, accessKey, secretKey);
IDataService dataService = eosClient.getDataService();

/* handler */
IDataHandler dataHandler = new IDataHandler(){
    @Override
    public void dataRead(StreamMessage message) {
        System.out.println(message);
    }
};
/* subscribe */
dataService.subscribe(dataHandler, subId);

/* (Optional) subscribe with consumer group */
dataService.subscribe(dataHandler, subId, consumerGroup);

Note

In this sample, the sub_server_host and sub_server_port are the host and port of the subscription server, which vary with the cloud region and instance. For private cloud instances, contact your Envision project manager or support representative to get the host and port information.

For more information about the SDK, see Data Subscription SDK Reference.

Step 4. Check the Data Consumption Results

Run the application for data consumption and check the data consumption results in the logs of the application.