The Internet of Things (IoT) is not a buzzword anymore. It has become a key enabling technology and innovation driver for modern businesses. IoT systems are connecting traditional products to a broader ecosystem and are unlocking new innovation streams. Smart and inexpensive Things are creating opportunities for new practices and business processes that were impossible to imagine just few years ago. And above all, we are seeing dramatic changes in new business models that are creating a connected world.
The numbers don’t lie. According to Gartner, approximately 3.9 billion connected things were in use in 2014 and this figure is expected to rise to 25 billion by 2020. 75% of companies are exploring or using IoT in the business in some respects (internally/externally), and there is 36% year to year growth in processing, sensing and communications semiconductor devices.
IoT is here to stay, and is changing everything we know about modern business applications. This change also has dramatic effect on application developers, engineers and system integrators, as they adopt new IoT technologies.
Today there are 500K developers contributing to the Internet of Things, expected to grow to 4.5M by 2020 (a 57% CAGR) [link]. Almost 29% of Chinese developers are currently developing software for the IoT and 41% plan to start within the next 12 months [Evans Data, 06/01/2014]. Recently, an Eclipse developer survey showed that 33% of developers are engaged with IoT apps and over 50% are in learning and discover mode [link].
The Internet of Things personas
We see (at least) four roles in the Internet of Things development landscape:
1. Device/Thing developers - these developers are focused on the device logic/control, usually implemented as embedded software for particular hardware with memory/energy/time constraint (typical example are sensors and actuators). IoT changes the traditional embedded space by enabling every device to be connected to larger IoT networks and by utilizing standards for connectivity.
2. Server-side/cloud developers - these developers are focuses on developing the business logic and computation-intensive part of the IoT system. Usually, these component will include a data aggregation/filtering component (receiving large amount of data from the Things), data analytic component (running advance algorithm to analyze patterns and predict future behavior) and reporting.
3. Client-side developers - these developers are focused on the UX aspect of the IoT system, most of the time integrating via APIs with the Server-side logic. In a typical IoT system users interact, get feedback and send actions via mobile or browser based applications.
4. IoT System Integration engineers - these engineers are in charge of the overall IoT System throughout its lifecycle. They are making sure that the devices, the server-side and client side components interact in a meaningful and correct way, and that the system achieves its desired goals. They are in charge of the overall design, integration testing, deployment and validation of the final product before it is being released to its users.
Typically, the development of complete IoT system will cross the boundaries of a single organization while different IoT developer personas will need to collaborate to accomplish a joint task. Alternatively, IoT System Integration engineers might use 3rd party components to integrate/assemble a solution from available COTS components. In the Internet of Things Workbench (IoTWB) project we are trying to better understand these scenarios and the role of the IoT System Integration engineers.
What is Internet of Things Workbench?
IoTWB is a cloud-based design tool for IoT System Integration engineers to visually design, integrate, simulate, test and deploy end-to-end Internet of Things systems. We are collaborating with IoT developers to understand the pain points, the needs and the opportunities in this space, and looking for innovative way to increase the quality and security of IoT systems while improving the productivity of IoT system development.
Initially, we are focusing on the following aspects:
1. Design & Simulate an end-to-end IoT System - rapid prototyping of IoT system using simple visual design techniques and verification of the system behavior via easy-to-use simulation.
2. Integration of device Software - the embedded device maker integrates detailed device designs with the overall system to verify interfaces are aligned and verify system level behavior.
3. Testing - from within their testing environment, the IoT developers uses IoTWB to validate test cases and perform system level testing before the real system is operational.
4. Design Based Security - ensure the devices and the overall system meet security best practices with minimal coding.
5. Analytic Services - the IoT developer can integrate a range of ‘off the shelf’ Analytic services into their system using simple APIs.
What have we discovered so far?
While IoT systems are growing fast, we already see significant challenges in current methods and tools used for IoT systems development. Generally, we can divide these challenges into two categories:
1. IoT systems are error prone. Errors are causes mainly due to mismatches across interfaces, security and privacy vulnerabilities, integration with multiple hardware targets and unpredictable behavior at scale.
2. It is hard to predict the cost of an IoT development project, and we are already seeing many projects the go off-time and off-budget. Typical reasons are the need for tools and languages expertise of different domains, deployment of different versions on different hardware, no/little automation across tools and the need to perform complex analytics on large quantities of data.
In order to be successful and scale, IoT organization will need to overcome these challenges. IoTWB is a necessary ingredient in this transformation and provides necessary capabilities to make transformation successful.
How can you be involved?
IoTWB is released as experimental service in IBM Bluemix and you can test it first hand by exploring IoTWB experimental service. We are looking for early IoT developers and organizations adopters that are willing to take this journey with us and influence the future of IoT systems development.
Want to learn more? Feel free to contact us at at firstname.lastname@example.org and we will be happy to engage.
Fariz Saracevic (@FarizSaracevic)
IBM Internet of Things Workbench Product Manager