ioBridge RealTime.io Cloud Server and RealTime.io Iota technology make it easy and cost effective for manufacturers to internet-enable their products. The ioBridge RealTime.io cloud server technology acts as a bridge between devices or products running RealTime.io Iota software and user applications running on smart phones, browser applications or with other third-party systems.
The Iota is available as modules or as firmware and may be integrated into products to monitor and control them over the Internet.
Main Benefits of the RealTime.io Technology
Ease of installation and operation. Our embedded devices are designed to be easy to install and manage. They bypass firewalls and communicate directly to an ioBridge server on the web. No port-forwarding or dynamic DNS configuration is required in most cases making installation easy for the everyday user.
Low cost. Rather than using linux running on expensive CPUs, ioBridge’s embedded hardware and firmware uses low-cost microcontrollers and can leverage existing designs.
Easy to create new applications. ioBridge provides a web API that can be used by customers to develop their own custom applications or to integrate with their own or other third-party systems. With our off-the-shelf gateways, ioBridge provides a free web-interface and user configurable dashboard. Customers can create new a dashboard to monitor and control almost anything without writing any software.
Highly scalable and expandable. ioBridge’s cloud server technology is able to support 100,000 to 1,000,000 devices per server in low-traffic situations common to many internet-enabled devices.
Iota-enabled Device Configurations
RealTime.io Iota technology is available in three configurations:
Iota Firmware using the ioDP Core Library
The protocol used to communicate with the RealTime.io server called ioDP is available as a Library to be implemented on devices of your choice. This includes implementation on various microcontrollers with suitable Ethernet connectivity options.
ioBridge currently offers an Ethernet and a WiFi module based implementations of the Iota firmware using Microchip technology. These are called the Iota Ethernet and the Iota WiFi modules. » More
ioBridge offers an off-the-shelf implementations of our technology. This includes ioBridge gateways such as the IO-204 and ioBridge Dashboard Applications provided free with the purchase of an off-the-shelf gateway.
The ioBridge RealTime.io system diagram is shown below and illustrates the relationship core ioBridge Technology offerings and the technology that is typically customer specific and that can optionally be developed by ioBridge.
The RealTime.io Server is a central connection point for remote devices, web/mobile clients, backend services and system management tools. The server can be thought of as having public side that is open to internet traffic and an administrative side that is only exposed to the private enterprise network.
The public side exposes a pool UDP sockets that listen for data from devices as well as send data to devices. The public side also exposes a pool of HTTP/HTTPS API sockets that serve web clients / mobile clients and back-end services. Back-end services are applications that consume device generated data or control devices from automated software. For example a back-end service could keep a record of data sent from devices in a database or generate emails to be sent when certain conditions are met.
On the private side of the RealTime.io server is a pool a HTTP sockets for handling administrative tasks. These sockets can be bound to a separate internal IP address and protected from unwanted access. Through API calls to the administrative sockets, server statistics can be monitored and the credentials used by devices and web clients can be managed.
Another important function performed by the RealTime.io server is access authentication. Upon startup, the server pulls all relevant credential information into memory where is can be accessed instantly during device or web client communications. After start-up, an API is provided to dynamically add, change or remove privileges as needed.
ioDP (input output Data Protocol)
At the core of the communication between remote devices and the RealTime.io server is the ioDP protocol. This protocol is transparent to the end points and serves as an open, asynchronous, bidirectional data pipe. This pipe can handle plain text data as well as raw binary data. The ioDP protocol use the lightweight UDP method of transport. Although UDP is an unreliable transport on its own, reliability is added in at the ioDP layer to provide guaranteed, ordered delivery of data. To aid in situations where several different types of data are being sent simultaneously by a device, ioDP has the ability to divide data into channels that can be separated into the appropriate data streams by the server. For example, a device may need to send video as well as sensor data to the cloud. Using ioDP, the video data can be sent on a different channel from sensor data. Upon receiving the data, the RealTime.io server will route the data to the correct back-end service. The ioDP protocol provides security through AES128 encryption and a randomizing scheme to ensure that packets with identical payloads appear different after encryption is applied. For applications that require higher throughput, there is a secondary “best effort” mode in which ioDP can operate. This mode helps in applications that can tolerate a small amount of data loss such as audio and video. Finally, to keep the line of communication open for unsolicited commands to the device, an automated mechanism of keep-alive transactions is employed that is transparent to the end application. This means that the device will always be available to receive data from the cloud.
Every remote device is authenticated with its own ID and encryption key. Additional device credentials can be added live, while the server is running or removed if it is thought that a device has been compromised.
Web clients connect to the RealTime.io server using HTTPS or HTTP. In addition to the secure socket, the API calls performed by clients are authenticated by API keys. A single API key can give a client access to one or more devices. An API key can also assign read and write privileges separately. For example, a web application that displays sensor data may not require the ability to send commands back to the end device. In that case, an API key with read only privilege would be generated and used with the web application. API keys are managed live, through the administrative API. API keys can be added, removed or changed dynamically.
ioBridge currently offers an Ethernet and a WiFi module based implementations of the Iota firmware using Microchip technology. These are called the Iota Ethernet and the Iota WiFi modules. » More Info
The Iota Evaluation Board allows you to evaluate RealTime.io Cloud Services and either the Iota Ethernet or Iota Wi-Fi modules. The evaluation board exposes the serial UART as a USB connection, so you can easily send and receive serial messages to and from a web service using a terminal application. Each pin on the Iota Ethernet or Iota Wi-Fi module are broken out for easy access to standard female strip terminals on the evaluation board. Common configuration pins are tied to a DIP switch and jumpers to get started quickly. The status indicators of the Iota Ethernet or Iota Wi-Fi are wired to LEDs to visualize network and cloud state of the Iota. » More Info
The Iota WiFi Evaluation Board makes it easy for developers to evaluate the functionality of ioBridge’s Iota and RealTime.io technology. This ioBridge technology makes it simple to connect new and existing products to the internet. The Iota module connects via a Wi-Fi to the ioBridge RealTime.io cloud server on the internet. Wi-Fi is simple to setup using a mobile device or by using WPS buttons on the Wi-Fi router or Hot Spot mode. » More Info
Use the Web Client API to interact with Iota-enabled devices connected to RealTime.io cloud servers. This API provides access to HTTP streaming from one device or multiple devices, reading / writing to GPIO registers on devices, and requesting the connection state and IP address of devices. » More Info