Image

IoT Development Tools Run on the Cloud

Sept. 21, 2015
Development tools are no longer rooted on your PC. Doing IoT development often means using the cloud to access your IDE.
Download this article in .PDF format
This file type includes high resolution graphics and schematics when applicable.

Running conventional development tools on the cloud is easy using virtual machines, but creating web-based tools is a major undertaking. These usually take the form of Infrastructure as a Service (IaaS) or Platform as a Service (PaaS). On the other hand, vendors see significant advantages to providing tools in the cloud. It minimizes setup and configuration time for new users. It allows developers access to the latest versions and possibly companion products like operating systems and IoT frameworks.

For developers, a cloud-based solution allows the cloud to do the (often-considerable) heavy lifting for large applications—especially for tasks like unit or regression testing. Development platforms can be lightweight hardware like Chromebooks.

The mbed IDE runs on the cloud. It can download applications to local hardware for debugging.

Of course, there are potential downsides: Fast, reliable Internet connections are a must. Security is also a major issue, and some environments may not allow code to be located offsite. Customization and updates can additionally be problematic. For example, a production environment may require a fixed version of the IDE and toolset. Many systems do automatic updates, and setting up multiple users on the same version—if it is not the latest one—can be a challenge.

Cloud-based development has been common for apps that target smartphones, but more platforms targeting embedded solutions have appeared. ARM mbed includes a cloud-based IDE (see figure), although that is just one aspect of the mbed environment (see "Development Tools Move To The Cloud"). The mbed environment includes an IoT framework and its own operating system, mbed OS. It targets ARM platforms and it supports partners like IBM that provide IoT services (see "mbed IoT Starter Kit Links to IBM's Cloud").

The mbed targets embedded applications that run on ARM Cortex-M microcontrollers, so it is a more focused development environment. It can be used for standalone applications running on devices without communication links, as well as connected IoT applications. ARM has announced the mbed Client, a set of libraries that will allow mbed OS programs to be ported to Cortex-A platforms running Linux. The IoT communication support standard protocols like MQTT, CoAP, and LWM2M (see "Engineering Essentials: IoT Standards and Frameworks"). These run on top of interfaces like Bluetooth, 6LoWPAN, IPv4, and IPv6.

Wind River’s Helix is another portfolio of software and services similar to mbed, but targeting a wider range of devices (including x86 architectures). The Helix Device Cloud is the cloud-based portion of Wind River’s IoT support providing device management. Wind River was showing new additions to Helix at the 2015 Intel Developers Forum, including a cloud-based IDE integrated with remote hardware and debug tools. It will also be useable with Wind River’s Simics virtualized hardware simulation support. Simulation can require heavy-duty hardware, but this is where the cloud has the advantage over local tools.

Cloud-based collaboration using existing desktop IDEs is another way to take advantage of the cloud. There are a number of platforms that use this approach, such as Microsoft's Visual Studio Online. Of course this works with Microsoft’s Visual Studio but is a team project system that works with projects written in any language using any IDE. For example, Visual Studio Online also supports Eclipse, a popular open-source IDE.

Visual Studio Online provides everything except the IDE from version control to agile development collaboration support. It is extensible using REST APIs and OAuth 2.0. OAuth 2.0 is an authorization framework that is used by a wide range of applications, including Google APIs.

Visual Studio Online also provides services like load testing. IoT applications need to scale and this feature can help make sure an application does scale properly.

Desktop IDEs are not going away, but they are no longer the only alternative—even for embedded development.

Download this article in .PDF format
This file type includes high resolution graphics and schematics when applicable.
About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!