Considerations for Connecting Devices

You have several options for how to connect your device network to your Oracle IoT application instance.

Once you have determined how your devices will connect to a network, you need to send data from your devices to yourOracle IoT. Your four choices for connecting devices to the cloud service are shown in this architectural diagram:

Description of connectivity-options.png follows
Description of the illustration connectivity-options.png

The strategy you select for connecting your devices depends on the capability of the device, and how you choose to send data from the device to your Oracle IoT application:

  • Your device is programmable: If your device is capable of communicating using an internet protocol (IP) and you can modify the programming of your device, or add additional software to the device, you can elect to send data from the device directly to your Oracle IoT Cloud instance.
  • Your device is not programmable: When you can't change the programming of your device, you can connect the device to another device in the field that acts as a gateway, and proxies communication to your Oracle IoT Cloud application. Your device sends data to the gateway using the native protocol of the device. The gateway forwards data from your devices to your Oracle IoT Cloud Service.
  • You can't add a gateway device in the field: When your environment doesn't support a gateway in the field, you can connect your devices to a gateway running in your Oracle Cloud instance (for example, Oracle IoT Cloud Gateway). Your devices can use any internet protocol to communicate with the gateway. The gateway forwards data from your devices to your Oracle IoT Cloud Service.
  • Your devices are already connected to a third-party (non-Oracle) cloud service: When you're using a third-party cloud service to collect data from your devices, you can forward the device data to a gateway. The gateway forwards data from your devices to your Oracle IoT Cloud Service.

Connect Devices Directly

You can connect devices directly to your Oracle Fusion Cloud IoT Intelligent Applications instance, using REST calls, message queuing telemetry transport (MQTT), or through any internet protocol (IP) via a gateway. Choose this approach when you can program your device to send data to a specific endpoint on your cloud instance.

Connect Devices by Using Oracle IoT Direct Data Ingestion

Direct Ingestion provides a method to connect devices most efficiently, with minimal communication bandwidth and with lowest administration overhead. Direct Data Ingestion is available for Oracle IoT Asset Monitoring Cloud Service.

Connect Devices by Using Oracle IoT Connectors

To support a variety of connection protocols and data formats it is suggested to use Connectors which can be configured for most devices, for both connectivity and interpretation of device specific data formats.

Connect Devices by Using Oracle Client Libraries

Create a device application with Oracle client libraries to communicate directly with your Oracle Fusion Cloud IoT Intelligent Applications instance.

If your devices is programmable and supports software deployment, you can choose between several language options. Oracle Fusion Cloud IoT Intelligent Applications provides several software development client libraries you can use to create applications that support your device connectivity and function, including:

  • Java Standard Edition
  • JavaScript
  • C POSIX
  • Mbed
  • Microsoft Windows
  • Android
  • Apple iOS

Developing a device application using one of the Oracle client software libraries provides benefits to your device environment:

  • Device activation and identity management: The client software handles the initial device activation process and identity management of the device.
  • JSON message composition: Oracle IoT Cloud uses a JSON message format that consists of metadata headers and key-value pair payload. The client software simplifies composition of messages with just a key-value map as input.
  • Store and forward of messages: The client libraries perform automatic store and forward to handle intermittent network connectivity issues.
  • Callback handlers for device commands: Oracle IoT applications can send commands back to the device to affect change on the device. The client library handles receipt of messages and distribution of the messages to appropriate callback handler.
  • Software Defined Edge Analytics: Users may define simple policies in Oracle IoT Cloud for performing edge analytics on the device. These policies are automatically pushed down to devices and executed on the edge. Examples of policies include change in latency of messages, obfuscation, changing sample rates, data aggregation, simple statistical expressions, among others.

Connect Devices Indirectly

You can connect your device indirectly by using a proxy to communicate with your Oracle Fusion Cloud IoT Intelligent Applicationsinstance. Choose this approach when your device is not programmable, or is already connected to another non-Oracle service.

Indirectly connected devices leverage another service or gateway to forward data from your device to your Oracle Fusion Cloud IoT Intelligent Applications instance. Indirectly connected devices send data using any protocol to your gateway application which translates the device native protocol into REST calls to your Oracle Fusion Cloud IoT Intelligent Applications instance.

Connecting Devices by Using a Gateway

To proxy communication from your devices to your Oracle Fusion Cloud IoT Intelligent Applications instance, implement a gateway.

A gateway is a client application that can be created using any software development environment you choose, and deployed to a standalone computer, dedicated hardware, or in a cloud environment.

The Oracle IoT Cloud Gateway is a Java-based software development kit (SDK) you can use to build your gateway client application. Gateway client applications built with the SDK can be deployed to any hardware and operating system that support Java, and Linux-based micro-platforms, include ARMv6 and x86.

Creating and deploying a gateway client application using the SDK provides the same benefits as Oracle's client libraries.