Select Page

What IoT means for embedded software development

An analysis of trends, opportunities and risks

Author: Prof. Dr. Dr.-Ing. Matthias König, Bielefeld University of Applied Sciences, Minden Campus

Contribution – Embedded Software Engineering Congress 2015

Software development for embedded systems encompasses a broad range of applications, with the Internet of Things (IoT) representing a relatively new category. In IoT applications, networking and communication with the "thing" play a crucial role; for example, users will demand web-based access or mobile applications. Current trends indicate that the use of SDKs with powerful APIs will increasingly influence IoT development, similar to the trend observed in smartphones. Furthermore, the next generation of developers will be shaped by the advantages of using often open SDKs and APIs with extensive documentation. This article provides an overview of current trends influencing IoT software development and highlights the resulting tension between current and future "ideal" developer competencies.

Introduction

The Internet of Things (IoT) can be most easily understood as a network (Internet) of interconnected embedded systems with sensors/actuators (Things). The term cyber-physical system is often used synonymously with IoT. Estimates predict a rapidly growing market for IoT [1], with applications ranging from smart garden tools and controllable lighting systems to wearable fitness trackers. These devices are typically interwoven with cloud-based applications for data storage and analysis, and often with associated mobile applications.

IoT trends and their analysis

The biggest driver of the IoT is its projected economic market potential. This potential motivates a multitude of activities by companies large and small. Several standardization efforts in the IoT sector are being led by various industry consortia and organizations. What unites them all is their desire to participate in the IoT value chain. This value chain can be represented according to the layers of IoT architecture models (su).

Another driver of the IoT is the ongoing technological advancement (smaller, more efficient multicore microcontrollers). Furthermore, the success of smartphones influences the demand for devices that connect to them and are intended to be similarly user-friendly and easy to operate.

The maker movement and crowdfunding have had a significant impact on IoT development. The maker movement and the availability of open-source and open-source hardware have made it possible to implement one's own IoT ideas without in-depth technical expertise. Crowdfunding helps overcome the barriers to entry for startups seeking to realize their IoT ideas. For example, websites like kickstarter.com feature IoT projects whose prototypes were initially developed using maker technology and then brought to mass production.

In the context of the development of embedded systems, a market study conducted by UBM Tech in 2014 shows, among other things, an increase in the number of embedded systems projects for IoT, a trend towards the use of open-source operating systems (especially Android, FreeRTOS), the use of software APIs as a source of information, and the importance of IDEs and software libraries as tools [2].

IoT and APIs

Most IoT architecture models are multi-layered, with a rough division into at least device, network, and application layers [1,3]. The complexity associated with system connectivity is made easier to manage through architecture models and their abstraction.

From a developer's perspective, Application Programming Interfaces (APIs) with good documentation and numerous examples are helpful for implementing a multi-layered architecture. Ideally, an API encompasses a broad range of functions that are easy to program through encapsulation and abstraction. Such APIs are therefore powerful tools for implementing a complete IoT application and enable rapid and efficient development with good portability. Developers should ideally have a functionality that covers as much of the IoT spectrum as possible (embedded systems, connectivity, cloud computing, mobile apps, etc.). Ideally, an API should be "tested" with regard to security and safety requirements, which arise, among other things, from the connectivity inherent in IoT. Open-source APIs can be advantageous in this respect.

The use of an API for IoT begins at the device/thing level. This aligns with the trends mentioned above. Open operating systems and prototyping platforms, for example, typically feature extensive APIs.

Some examples will illustrate the consistent use of APIs; API-centric frameworks that are clearly considered effective by organizations and companies include AllJoyn from the AllSeen Alliance [4], IoTivity from the Open Interconnect Consortium [5], Xively from LogMeIn Inc. [6], Cumulocity from Cumulocity [7]… These IoT frameworks typically utilize third-party APIs for hardware abstraction at the device level. These device-level APIs range, for example, from Arduino [8] or mbed [9] to operating systems such as FreeRTOS [10] or Android [11].

Relating the above points to one another, it can generally be concluded that SDKs with powerful APIs will simplify software development for embedded systems with IoT applications in a similar way to how the availability of corresponding APIs simplified the development of smartphone applications. This conclusion is also supported by new course concepts in university teaching, which take into account the influence of software concepts for mobile apps on the development of embedded systems [12].

Generally, it can be assumed that the next generation of developers, especially computer science students, will have experience developing user-friendly APIs for mobile applications. This experience leads to expectations for development in other areas, such as embedded systems and IoT.

Conclusions

The required skills of an embedded systems developer are diverse. In addition to general software engineering knowledge, they include specialized expertise in areas such as computer architecture (especially microcontrollers), programming languages (e.g., Assembler, C, C++, Matlab), operating systems (especially RTOS), modeling (UML, SysML) or MDD, safety and security, and standards (e.g., IEC 61508, ISO 26262). Furthermore, domain knowledge of the application and business acumen are essential.

For the IoT sector, in addition to the skills required by the architectural models, knowledge of internet protocols (e.g., REST, MQTT), databases, cloud computing, and mobile applications will be necessary in the future to ensure a holistic development approach. Even in projects with larger teams and the associated division of tasks, it is essential that every team member is at least familiar with all these areas.

The next generation of developers is gaining experience with IoT APIs. This will have a positive impact on managing IoT projects. The higher abstraction layers associated with APIs make a wider range of necessary knowledge manageable, enabling efficient and rapid IoT development.

However, there are risks that can arise from a lack of engagement with the layers of abstraction. For example, an understanding of low-level functionalities, which are important for safety-related assessments, could be lost.

IoT developers will need to engage with higher levels of abstraction and knowledge beyond that of typical embedded systems development. Abstraction using models (UML/SysML) and high-level programming will be essential. For IoT platforms, powerful, well-documented APIs with examples will have an advantage over other approaches. The quality of SDKs will be measured by the ease of use of SDKs for mobile applications. Similarly, IoT system providers will adopt and be measured against development cycles more commonly associated with mobile applications.

Furthermore, it is to be expected that an open API, with strong developer acceptance, will establish itself as a quasi-standard sooner than a standard adopted by a consortium. Therefore, it will be interesting to see how the initiatives (Brillo [13] and HomeKit [14]) towards IoT by the two currently leading providers of mobile operating systems will develop.

Summary

Software development for IoT encompasses a broad spectrum of technical expertise. Open, powerful APIs enable efficient and rapid IoT development through a higher level of abstraction. Embedded systems developers should familiarize themselves with these APIs before starting an IoT project.

Bibliography and list of sources

[1] A. Al-Fuqaha, M. Guizani, M. Mohammadi, M. Aledhari, M. Ayyash, Internet of things: a survey on enabling technologies, protocols and applications, IEEE Communications Surveys & Tutorials, Vol. PP, No. 99, 2015

[2] UBM Tech, 2014 Embedded Market Study: Then, Now: What's Next?, 2014

[3] https://www.iot-a.eu

[4] https://allseenalliance.org/developers

[5] https://www.iotivity.org

[6] https://xively.com

[7] https://www.cumulocity.com

[8] https://www.arduino.cc

[9] https://www.mbed.com

[10] https://www.freertos.org

[11] https://developer.android.com

[12] G. Jeong, D. Kang, S. Lim, N. Dutt, An advanced course design for mobile embedded software through Android programming, Proc. Workshop on Embedded and Cyber-Physical Systems Education, Tampere, Finland 2013

[13] https://developers.google.com/brillo

[14] https://developer.apple.com/homekit

Download the article as a PDF


System and hardware development – our training & coaching

Do you want to bring yourself up to date with the latest technology?

Then find out more here MircoConsult offers training courses/seminars/workshops and individual coaching on the topic of Internet of Things/system and hardware development.

Training & coaching on the other topics in our portfolio can be found here. here.


Systems and Hardware Engineering – Expertise

Valuable expertise in the field of Internet of Things/system and hardware development is available. here Available for you to download free of charge.

To the specialist information

You can find expertise on other topics in our portfolio here. here.

MicroConsult Newsletter

With the MicroConsult newsletter, you'll stay on the pulse of the embedded world. Look forward to proven practical knowledge, real professional tips, and current events – directly from our experts for your project success.

Subscribe now!

Published by

weissblau media

weissblau media