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

As billions of IoT devices are being connected every day to the internet, IoT platforms are rapidly evolving to offer more features to ingest, analyze, and monetize data. Developing these applications on different IoT platforms is also getting more challenging due to the increasing complexity of the devices and the introduction of new concepts like digital twins.

IoTIFY offers a scalable and flexible IoT device simulation platform that works with your favourite IoT Application Enablement Platform and enables rapid development, testing, 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 behaviour of your IoT device.

For a very basic application, these homegrown simulators are fine and will deliver fast time to market. However, as the complexity of your IoT application starts growing, you will need to put in extra effort to get the simulator to support all these features. Then, as scalability comes into the picture, you'll have to look into scaling the simulator instances, and it's orchestration. After all of that, you need to collect different results, measure different latencies, and the whole time, keep troubleshooting the simulator, which will keep getting more and more challenging.

Eventually, as more and more features are shipped, the complexity of the simulator reaches a tipping point. Where you realize that writing a complex, scalable and efficient simulator is taking up as many resources, as designing and implementing your scalable and functional IoT cloud application itself. At this point, it makes sense to ask whether solving the same problem twice has any benefits? 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

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. That's where IoTIFY comes into the picture.

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

Our Features

At IoTIFY, we are focused on building an intelligent IoT system simulation platform on the cloud, which will enable you to simulate a large scale and realistic IoT device deployment. With IoTIFY, you can prototype, scale and manage your IoT application easily and quickly. What sets IoTIFY apart from other testing tools?

Purpose-built for IoT

The fundamental difference between IoTIFY and other commercial or open-source testing tools is the fact that IoTIFY was built specifically for IoT applications. While other testing tools were built for the web, and later added support for IoT protocols, IoTIFY was designed from the ground up to deliver the best experience for testing IoT applications. How does that matter?

Focusing exclusively on IoT use cases enables us to leave a lot of baggage from the past behind and build features that are needed for IoT use cases. For example, while a web client doesn't interact with another web client in its vicinity. IoT devices do communicate with each other all the time. Another example could be actuators, which do not send any data but wait to receive actions.

Being focused on IoT means we do not need to worry about web-specific features such as cookies and browser versions. 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 scalable cloud platforms. For example, 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

Just 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. For example, 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 features of IoT. Devices could talk to each other either directly (through LAN), via gateway or via the cloud. All of these scenarios can be simulated with IoTIFY. Our mailbox APIs allow multiple different devices or gateways to talk to each other in real-time simulating local connections like those over WiFi, Bluetooth or ZigBee.

Additionally, there are also ways in which devices could communicate with each other via out-of-band means. 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.

Last updated