13-04-2016 | By Electropages
Wind River’s Eva Skoglund and Intel’s Jakob Engblom discuss the possibilities of the Cloud for embedded systems.
Let’s think about the possibilities of the Cloud for embedded systems. What if development for embedded and IoT systems could be done using the cloud rather than local hardware? What if you could use a flexible Cloud system rather than physical boards? What would that do to your development efficiency? By using virtual platforms hosted in the cloud, new possibilities open up for any system!
Developers could code, test, integrate, run, and share their systems and results in a lab in the cloud. Access to hardware and tools is instant and immediate, with no local installation and no shipping needed. Setups including both hardware and software would be immediately sharable, without the hassles associated with physical equipment, sending files or scrounging around for missing components. Test platforms would be on-demand, scalable, and unbreakable. Have you ever come into your physical lab in the morning only to find that the nightly test suite stopped executing after one third of the time due to a board that refused to reboot correctly? Labs often also present developers with accessibility issues, with a limited number of boards and a long waiting list to get access to it.
A lab in the cloud is something different…. Just imagine what you could do with instant, unlimited and reliable lab access!
Improved collaboration and communication
Are you using social media to stay in contact with friends and family? Do you remember the days when you only used voice telephony or physical mail, and when your communication was mostly 1-to-1? If you compare that to modern social media, what’s the biggest difference? It’s about ease of sharing and scaling up – with easy access to both 1-to-1 and broadcast messages, and easy ways of sharing photos and other pieces of information, you can keep more relationships going and communicate more efficiently and effectively with a greater number of people.
Now think about this in the context of software development and IoT systems. With a virtual lab in the cloud, could you collaborate more effectively with your fellow developers? Using the cloud, you could share your work with colleagues, just like you would share a photo on Facebook. What you work on, the results of tests, and the inevitable bugs and issues that come up – it all becomes immediately sharable in the cloud.
With the lab in the cloud, you could create software and hardware setups, and share them with other people to show off an idea for a design or a particular piece of software. Rather than describing something, you can now show what you mean; and even better, let other people use it and try it for themselves, right away. As shown in the picture above, with the state of the target system stored in the cloud, anybody can gain access to it immediately just by going to an URL – instead of having to copy the state from one user to another, with the inevitable effect of diverging versions and unclear state.
Since the lab in the cloud is completely virtual and based on software, so you could also send your colleagues a snapshot of the current state of systems including both its hardware and software. Given the snapshot, they would just pick up the system and run. Imagine what this does for bug reporting and investigation of issues found in testing! Rather than having to first find the right hardware, boot the hardware, configure the software, and repeat all inputs to get to a failure, you could hand the failure to your colleagues with every detail intact. The cloud system could record all inputs and actions for you, so that you can replay the sequence of events that leads up to a failure – over and over again, perfectly.
In the cloud, you could even work together with your colleagues on the same system at the same time, just like you collaborate in a Google Docs document. In a shared session, a user can help another user work out a problem interactively, both seeing what the other user does, and provide direct inputs to the system to try things. Even better, once a problem has been resolved, the cloud system will contain the fixed system – no need to replicate the fix or follow instructions to create a local working setup.
Beyond its use within a single company, a lab in the cloud opens up collaboration between suppliers and users of hardware platforms. Using the Lab Cloud, a company can upload virtual platforms, complete with target software stacks, and make them available to users in other companies. This replaces sending prototype hardware, and can be done far in advance of actual hardware availability.
Hosting the platform in the cloud makes it very easy for a user to get started, and makes supporting and updating users with new versions also become easier. Updates to the target platform model can be deployed immediately, since there is no shipping or even downloading involved. The collaboration features we discussed above apply just as well between the platform provider and the platform user, making support much easier. When you can see what somebody else is doing as well as the state of the system they are using, debugging and analysis is greatly simplified.
It does not matter if the users are internal or external. An internal group can use Lab Cloud to distribute their platforms to their users, just like a company can use it to distribute platforms to other companies.
Automation and Scaling
Another benefit of a cloud-hosted lab is that it can provide an API for automation of target access and control. As shown in the picture below, with an API, it is possible to automatically start up any number of test machines, without the limitations of a hardware lab, and farm out test cases to all of them. Lab resources can be brought up when needed, as many as needed, without the user or organization having to build a lab.
The API can be used alongside other cloud lab features.
If a test run that is started via the API ends with an error, the developer can investigate the failure in full context by recording the events that led up to the error, replay it, and collaborate with other team mates to solve the underlying problems. With the test case stored in the cloud, bug databases can refer to the test case via an URL, and have a recording of the actual failure be part of the report!
A dream come true
Here’s some good news -- Wind River is transporting you to your own virtual lab in the Cloud and the benefits described above are now possible…and more. With Wind River Helix™ Lab Cloud, we are hosting heterogeneous virtual systems where you can access targets, share sessions and run software. You can experiment, develop, test, integrate and deploy virtual systems. It is cloud based, so no installation is required. It scales efficiently and it’s accessible from any device and from anywhere. It is user friendly, both in terms of the user experience and cost… anyone can have access to the basic service for free.
To find out how to create a free account, please visit this page. Since our inception, Wind River has constantly changed how engineers, managers and companies think about their business. We think Lab Cloud has the potential to redefine how embedded and IoT systems will be evaluated, developed and tested.Wind River www.windriver.com
By Eva Skoglund and Jakob Engblom