Moving toward an open-standard platform for M2M development
One company serves its cloud customers with some practical, surefire techniques--techniques that may influence M2M standards.
Eurotech, the international board, subsystem, and high-performance computer manufacturer, is at the forefront of developing an open-standard platform for M2M software development. Using the lightweight publish/subscribe MQTT protocol, along with Java and Eclipse, Eurotech has devised an approach that makes it easier for their clients to connect Eurotech's (and other companies') boards and devices in a machine-to-machine (M2M) network.
Here's a barebones explanation of how they devised the system, what it is, and how Eurotech made it into a new product.
Mother of invention
Eurotech ended up in a "helping profession" out of necessity. As a board and module systems manufacturer, they developed a way to help customers who struggled to connect Eurotech's boards and devices to some type of cloud or M2M network. The hardware wasn't the problem. Eurotech's CTO Arlen Nipper described working with customers, who "had no business doing embedded systems" but who knew exactly what hardware they wanted. When it came to the operating systems and firmware, he says these same customers frequently made uneducated choices that didn't work well with hardware. Eurotech's team ended up fixing the software or at least counseling the customer on what software they should be using.
These integration issues were derailing projects. Half of projects fail because the customer can't do the integration, says Nipper.
Therefore, Eurotech created a development platform to help programmers develop applications and components in the form of bundles that can be added, removed, or updated without affecting the operating system or other components and devices. "I'm blowing dust off techniques done 10 to 15 years ago that are now coming to fruition," Nipper said. Using Open Services Gateway Initiative (OSGi) specification http://en.wikipedia.org/wiki/OSGI, which was originally designed in 1998 for home automation, Eurotech devised the software framework (shown as OSGi application framework in Figure 1), which holds the Java bundles. Developers code the bundles themselves using the Eclipse Equinox IDE (integrated development environment) or use some existing bundles. Developers then can add, remove, and update bundles via the Equinox IDE.
Figure 1. The ESF software framework. (Image courtesy of Eurotech.)
Click on image to enlarge.
The OSGi framework sits on top of the Java Virtual Machine (JVM)--JavaME Virtual Machine, to be precise. The JVM sits between the operating system and OSGi bundles to virtualizes the operating system. The JVM makes it possible to use Java bytecode; it also makes it possible to add different devices to the system.
As does the OSGi. The 10+-year old OSGi specifications started as a way to design applications for disparate, independent components, says OSGi on www.osgi.org/About/WhyOSGi. "Today, most software is largely wiring up open source artifacts that were often not designed to work together," according to the OSGi web site. "This is similar to the problem that OSGi was designed to solve. Many open source projects are therefore adopting the OSGi specifications because they see that they can focus on the real problem and worry less about infrastructure, as well as becoming easier to use in other projects."
Eurotech, as of 2009, has offered this software framework under the name ESF (Everywhere Software Framework) as a ready-to-use application programming interface for customers. They offer standard bundles and specific bundles for different enterprise types.