Skip to main content

Sparkplug: From Specification to Standard

This week, the Eclipse Foundation announced that the Sparkpug® 3.0 specification has been published as an International Standard. That sounds impressive. But what does it mean, exactly? And how will this impact the evolution of Sparkplug? To answer this question, let’s take a step back and consider what standards are.

The technology industry loves standards. For example, USB is a set of standards managed by the USB Implementers Forum, Inc. (USB-IF), a non-profit corporation founded by the companies that developed the USB specification. The Eclipse Foundation describes Jakarta EE as a standard: a set of specifications for enterprise Java application development. In the IoT and Industrial Automation world, OASIS Open also presents the MQTT protocol as a standard. However, standards play a much more pervasive role in society. There are standards for building homes and others that define how cars should work. Standards permeate our lives.

To understand the significance of this week’s announcement, we need to take a broader view of standards. The website of the Standards Council of Canada features a very good definition of what a standard is:

A standard is a document that provides a set of agreed-upon rules, guidelines or characteristics for activities or their results. Standards establish accepted practices, technical requirements, and terminologies for diverse fields. They can be mandatory or voluntary and are distinct from Acts, regulations and codes, although standards can be referenced in those legal instruments.
There are several standards organizations with a global scope worldwide. Their scopes sometimes overlap. For example, the International Organization for Standardization and International Electrotechnical Commission (ISO/IEC) are global organizations that facilitate the development of International Standards that support innovation, sustainability, and global trade. There are others, such as the Institute of Electrical and Electronics Engineers (IEEE) or the Internet Engineering Task Force (IETF).

The publication of Sparkplug as an international standard is the outcome of a transposition of the specification through the Publicly Available Specification (PAS) transposition process offered by the ISO and IEC Joint Technical Committee (JTC 1) for information technology, a consensus-based, voluntary international standards group. Going forward, Sparkplug will also be known as ISO/IEC 20237. This mirrors the case of MQTT, which has been standardized as ISO/IEC 20922 in 2016.

The publication of ISO/IEC 20237 is a significant milestone for the Eclipse Foundation. In 2018, we implemented the Eclipse Foundation Specification Process (EFSP) to support the transition of the Java Enterprise Edition (Java EE) specifications to the Eclipse Foundation. At the time, we hoped to see other specification projects being contributed to the Foundation. The first was Sparkplug, which became an Eclipse project in 2019. And now, it is the first to become an international standard.

I can hear you think: “Great. But what does this mean for me as a developer?”

From a code or governance perspective, nothing changes. The Eclipse Foundation is still the steward of Sparkplug, and future versions of the specification will still be managed under the Eclipse Foundation specification process. The specification project team is hard at work on Sparkplug v4.0. If you are curious about the scope and release plan for that version, everything is available on GitHub. As for Sparkplug v3.0 and ISO/IEC 20237, they are rigorously equivalent. Any faithful implementation of one or the other will pass the Sparkplug Technology Compatibility Kit (TCK) published by the Eclipse Foundation. We intend to submit Sparkplug v4.0 for transposition once it is ratified under the EFSP.

What’s the point, then? Sparkplug, as an international standard, is all about broadening the reach and audience of the specification. ISO/IEC International Standards offer guidance for safety features, quality measures, and interoperability. By becoming an ISO/IEC standard, Sparkplug benefits from global acceptance and accelerated adoption. It joins a globally recognized technical ecosystem. In particular, existing and future ISO/IEC standards will be able to refer to ISO/IEC 20237.

To sustain its involvement in PAS transpositions and its contributions to standardization, the Eclipse Foundation established liaisons with two ISO/IEC JTC 1 subcommittees: SC 38 (Cloud Computing and Distributed Platforms) and SC 41 (IoT and Digital Twin). This means Eclipse Foundation staff and even Eclipse community members will participate in standardization conversations - and eventually contribute to standards - from now on.

Naturally, this does not mean that every current and future Eclipse specification will become an international standard. Specifications submitted for transposition have a high bar to clear: they must be mature technologies with significant adoption and maturity. In particular, there must be several implementations - commercial or open source. That said, the EFSP provides the perfect framework to bring specifications to maturity in a vendor-neutral, collaborative environment. The standard for international standards may be high, but the Eclipse community can meet them. Sparkplug is a case in point.


Popular posts from this blog

Eclipse IDE for Embedded Developers Now Runs on the Raspberry Pi!

The Eclipse IDE is the project that started it all for the Eclipse Foundation . From the beginning, Eclipse IDE was meant to run on multiple platforms; it now supports Linux, Mac OS and Microsoft Windows. Since it is written in Java, it also supports multiple processor architectures. However, support for 32-bit architectures has been dropped in version 2018-12. This meant recent versions of the IDE would not run on the Raspberry Pi anymore. The introduction of the Raspberry Pi 4 in June 2019 gave hope to Eclipse on Pi fans. With its 64-bit quad core ARM Cortex-A72, the Pi 4 was a good hardware platform to work with. It became even more attractive in May 2020, with the introduction of the 8Gb variant. The Eclipse community took notice of those developments. Version 2020-09 of Eclipse IDE now ships with experimental support for 64-bit ARM (aarch64) on Linux.  Those developments mean embedded and IoT developers can now work on the Raspberry Pi 4 by installing the plugins provided by the 

[Guest Post] Edge Computing and Open Source in Europe: A New Hope

This is a guest post by Alberto P. Martí, VP of Open Source Community Relations at OpenNebula . For everyone in the European cloud market with a passion for open source, these are exciting times. For years, tech journalists and market analysts have been predicting that edge computing was going to bring a paradigm shift to the cloud, and now we are starting to see the form that this disruption is going to take—at least in Europe. Technically speaking, there is little doubt that deploying applications and processing data at the edge comes with a number of benefits, and not only in terms of reducing latency and improving user experience. We are talking about expanding service availability to better deal with infrastructure incidents, reducing data transfers and the energy consumption and security risks associated with them, as well as minimizing vendor dependency by expanding the number of available providers. It comes as no surprise that the European Union has identified edge computing a

The Edge of Things: A Name That Means a Lot of Things

I have a fantastic job. When people ask what I do, I say I manage IoT and Edge Computing programs at the Eclipse Foundation. This is true yet is an oversimplification. What I actually do is a bit more complicated than that. I need to keep an eye on over fifty relevant Eclipse open-source projects. At the same time, I help animate three distinct communities: the Eclipse IoT , Edge Native , and Sparkplug working groups. All three have something to do with IoT and Edge Computing, each with a slightly different angle. And here is my problem: it is hard to convey all the nuances of everything our IoT and Edge community does in a single word. IoT, of course, includes Edge Computing. Deploying compute, storage, and networking resources as close to the source of the data as possible makes complete sense. However, Edge Computing is an architecture that applies to many other use cases, such as gaming or videoconferencing. None of those two concepts completely encloses the other. And no single w