Having collected the data from devices and filtered/aggregated them as required, the results must be forwarded to external systems which can automatically react to certain situations. For this purpose, the Oracle IoT Cloud Service allows the registration of enterprise systems. These can be configured to receive messages from the IoT cloud, but can also use the operations provided by the devices registered in the cloud.
Lets stay at the vehicle example: the engine temperature can be monitored and if it is nearing critical values, a BPM system can be notified. The process started can include multiple steps for checking the current situation and depending on the result the BPM process can notify the engine controller to limit the engine perfomance so that the engine does not overheat.
Enterprise applications can be configured in the menu Integration. These are applications you control, they can be either in the cloud or on premise, they must only provide a URL where REST messages can be sent to.
For the configuration of an enterprise application only the name and the connection URL is required. The connection can also be secured, meaning that the IoT cloud will authenticate itself against the enterprise application.
Once the registration is complete, the enterprise application is assigned an ID and a secret. The application can use this data to authenticate itself against the IoT cloud (the authentication works just like in case of devices, for authentication details see device management). Having authenticated itself, the application can call operations provided by devices registered with the IoT cloud.
In the menu Streams you can configure which streams or explorations should be forwarded to the enterprise application. Having configured these, the Messages menu shows the messages which are really sent to the application. Please note that the application must acknowledge this data with an HTTP return code 200, otherwise the IoT cloud will mark the endpoint as failed and will not forward messages to the endpoint for a couple of seconds.
Apart from configuring enterprise applications, data can also be sent to the Oracle BI Cloud Service. Generally this is a good idea because this way analysis can be made on data accumulated over a longer period of time (the IoT cloud is not meant to store the data for years).
Having registered a BI cloud instance, the Integration menu can be used to configure the connection between the IoT cloud and the BI cloud. Simply enter the details you have received from Oracle while signing up for the instance. Streams or explorations can then be added. For each stream or exploration you must enter the name of the database table in BI cloud where the data will be stored. The table will be generated at the first synchronisation automatically.
Note that messages from configured streams and explorations are not automatically sent to the BI cloud (contrary to the integration of enterprise applications). The synchronisation has to be started manually by pushing the button in the UI. All messages gathered by the IoT cloud since the last synchronisation fulfilling the configuration of the BI cloud instance will be then pushed to the BI cloud.
The data is pushed to the configured table. As mentioned above, the table is automatically generated if it does not exist.
We have shown how to gather data from devices, analyse it and forward the analysis results to external systems. Next, we will show you how to implement the communication with the IoT cloud – both from a device as well as from an enterprise application.