Introduction

Learn about benefits of using a cloud based truly scalable IoT device simulator.

As Billions of IoT devices connect to the internet, IoT application platforms are rapidly evolving and offering more and more features to ingest, analyze, ingest, and monetize your data. Developing applications on IoT platforms is also getting more challenging due to the increasing complexity of the devices and the introduction of digital Twin concepts. IoTIFY offers a scalable and flexible IoT device simulation platform that works with your favorite IoT cloud Application Enablement Platform and enables rapid development, test, and deployment for your IoT solution handling millions of devices at scale. Let's learn more about IoTIFY.

Device Simulation in IoT

Getting started with an IoT idea is exciting - however, building an end to end IoT solution comes with its own challenges. One of the first and perhaps most crucial steps in developing IoT applications is to create a device simulator. Usually, this could be a simple script, a tiny program or even a third-party tool customized to mimic the behavior of your IoT device. Initially, for the straightforward "hello world" kind of application, these homegrown simulators are usually fine and deliver the fastest time to market. But as the complexity of your IoT application starts growing, you may end up writing more and more features into your simulator. The scalability of your IoT platform becomes critical, and then you may need to launch multiple instances of this simulator and control its orchestration. Time flies by, and so far, it's good until you quickly realize that collecting results of the simulation, measuring response latencies, and troubleshooting the problems using those homegrown simulators is getting more and more challenging. Eventually - as more and more features are shipped - the complexity of simulator reaches a tipping point, where you realize that writing a scalable and efficient simulator is getting as hard as designing your scalable and functional IoT cloud application itself. At this point, you wonder whether solving this problem twice makes sense? Or could there be an alternate solution that simplifies large scale IoT simulation so that you could focus entirely on building your cloud-based applications?

Introducing IoTIFY

IOTIFY overview

If you are a manager handling cloud application development, you want all hands on deck for delivering a compelling IoT solution, not building an equally challenging test framework for it. At this point, you wonder whether solving this problem twice makes sense? Or could there be an alternate solution that simplifies large scale IoT simulation so that you could focus entirely on building your cloud-based applications?

IoTIFY is an intelligent IoT system simulation platform on the cloud, which makes it super easy to simulate a large scale Cloud-based IoT device deployment. Our Rapid IoT application development environment helps you prototype, scale, and manage your IoT application with ultimate flexibility and ease.

Our Features

At IoTIFY, we are focused on building an intelligent IoT system simulation platform on the cloud, which makes it super easy to simulate a large scale realistic IoT device deployment. Our platform helps you prototype, scale and manage your IoT application with ultimate flexibility and ease. What are the features of IoTIFY?

Purpose built from ground up - focusing on IoT

What separates us from the rest is that unlike other commercial or other open-source testing tools which were initially designed for the web and subsequently added IoT protocol to their features, IoTIFY is designed from the ground up - exclusively for the IoT. But how does it matter?

Being exclusively focused on IoT use cases enable us to leave the baggage from the past and develop features that are exclusively for IoT. E.g., a web client doesn't interact with another web client in the vicinity, but IoT devices do talk to each other all the time. Then there are actuator devices which most of the time, do not send any data but wait to receive actions. Being focused on IoT means that we no longer need to worry about web-specific features such as Cookies, Browser version, etc. However, the most crucial difference is the fundamental design, which we discuss in detail as follows.

Designed for scalability

One of the biggest challenges in IoT is to handle scalability. Millions of sensors and hundreds of thousands of gateway could connect to any IoT platform at any given point of time. The dynamic nature of connectivity media (3G/4G/LoRaWAN/Satellite) adds packet loss, latency, and out-of-order delivery and replication to the networking. To ensure that IOTIFY could truly match and even outperform the capabilities of the IoT Platform under test, we have built it on the same principles used to build the scalable cloud platforms. E.g., every module of IoTIFY is fully modular; we use in-memory databases, focus on read and write latencies, use messaging protocols such as NATS to speed things up, and heavily use replication and load balancing. We use a dynamic and responsive orchestration of containers to deliver the best performance with minimal resource consumption, passing cost benefits to our consumer.

Stateful device Modeling

Jut like the real-world; each simulated IoT device has its own temporary and persistent memory. The simulated devices could save any meta-information to these memories, which could also be retrieved and edited by external APIs/UI. E.g., a serial number of the device is usually a static field that remains valid throughout the lifetime of the device. This information could be saved into persistent glob storage for each device and could be used as an identifier for every test case run.

Device to Device and Cloud to Device Interaction

Device to Device interaction is one of the unique feature of IoT. Devices could talk to each other either directly (through LAN), via gateway or via cloud itself. However, there are also ways in which devices could communicate with each other via out-of-band means. E.g.

Consider a fire extinguisher spraying water on a device having temperature and humidity sensors. The action of spraying water is actually causing the temperature to drop and humidity to increase. Similarly a garbage pickup truck emptying a smart trash container is causing the ultrasound sensor to report empty bin. Such out of band or physical behavior could be simulated in IOTIFY using global stores - which enable devices to affect each other's internal states.

IoT multi-protocol support

IoT has a wide standard of protocols, which are also evolving with time. IOTIFY supports a wide variety of these protocols and continues to keep on adding newer versions. Our current SaaS version supports MQTT, HTTP, CoAP, LWM2M as well as UDP and TCP raw protocols (binary).Adding a new protocol is also quite easy- thanks to our flexible architecture.

Configuring and administrating IoT devices in the cloud platform require some scripting to be setup beforehand. At IoTIFY we have listened to the feedback of testers and observed their day to day workflow. The result is Connectors - UI Wizards which make provisioning and enrollment of virtual IoT devices extremely easy. With the wizards, configuring hundreds of thousands of IoT devices becomes a matter of just few clicks. And not only provisioning - cleaning up resources after test execution is also super easy.

Feeling excited? Let's dig deeper into understanding our approach a bit more.

In the next sections, we will learn more about how IoTIFY helps you develop super complex scalable simulations with ease.