What is Gateway?
Thing Interaction Framework provides the feature for connecting things via a gateway.
You can realize the following features with the gateway.
Connecting End Nodes
You can connect things that have no direct internet capability to Thing Interaction Framework by introducing the gateway. We will call the things that are connected via the gateway as end nodes.
Suppose, for example, that the things you want to control only support Bluetooth or ZigBee. They have no capability to connect to the Internet, so they cannot connect to Thing Interaction Framework by themselves. As illustrated in the figure below, you can connect these things (end nodes) to Thing Interaction Framework and integrate them with the mobile app by introducing the gateway and by performing the protocol translation.
The gateway supports connecting multiple end nodes at the same time. Requests sent from each end node will be aggregated by the gateway and will be sent to Thing Interaction Framework.
Thing Interaction Framework manages the relationship between the gateway and end nodes. This mechanism will allow mobile apps to send commands using the target end node's ID. Thing Interaction Framework will automatically search the corresponding gateway and deliver the command by sending the push notification to the gateway.
The figure below illustrates this mechanism:
A mobile app sends a command with End Node 2's ID.
Thing Interaction Framework finds the gateway that provides the connection to End Node 2.
Thing Interaction Framework delivers the command to End Node 2 by sending an MQTT push notification to the gateway.
The gateway checks the end node ID in the MQTT message payload and forwards the push message to End Node 2.
Developing Mobile Apps
You can develop a mobile app to control end nodes via the gateway. You can, for example, realize the following features on the mobile app:
You can browse various data (e.g., sensor data) of an end node as the thing state.
You can send commands to the end nodes and control the end node hardware.
You can execute commands automatically based on the thing state.
See Implementing Features for more details.
If the gateway or end nodes break, you can replace them while preserving the data and gateway-end nodes managed in Thing Interaction Framework. Replacing the hardware will cause their ID change, but you can make the effect of the replacement minimal by assigning the ID wisely.
See Replacing Hardware for more details.
Note: The device replacement feature is not implemented yet. The feature is planned to be released in the future.
Releasing Gateway and End Nodes Independently
The API is designed to allow different vendors to release the gateway and end nodes. For example, one vendor can release a home gateway product while allowing other vendors to release sensors that will be hooked onto this gateway. In such a situation, Thing Interaction Framework will let all vendors to develop their mobile app without any confusion.