A cloud storage gateway is a network appliance or server which translates cloud storage APIs such as SOAP or REST to block-based storage protocols such as iSCSI, Fiber Channel or file-based interfaces such as NFS or CIFS. Cloud storage gateways enable companies to integrate private cloud storage into applications without moving the applications into a public cloud, thereby simplifying data protection. An Internet of things (IoT) gateway provides the bridge between IoT devices in the field, the cloud, and user equipment such as smartphones. The IoT gateway provides a communication link between the field and the cloud, and may provide offline services and real-time control of devices in the field. To achieve sustainable interoperability in the Internet of things ecosystem, two dominant architectures for data exchange protocols are used: bus-based (DDS, REST, XMPP) and broker-based (AMQP, CoAP, MQTT, JMI). Protocols that support information exchange between interoperable domains are classified as message-centric (AMQP, MQTT, JMS, REST) or data-centric (DDS, CoAP, XMPP). Interconnected devices communicate using lightweight protocols that don't require extensive CPU resources. C, Java, Python and some scripting languages are the preferred choices of IoT application developers. IoT nodes use separate IoT gateways to handle protocol conversion, database storage or decision making (e.g. collision handling), in order to supplement the low intelligence of devices.