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 Amlen v1.0: A Milestone in the Growth of MQTT

Over ten years ago, the Eclipse Foundation launched the Eclipse IoT working group . MQTT was one of the pillars of that launch. The first three projects were Eclipse Paho , a collection of MQTT clients, Eclipse Mosquitto , an MQTT broker, and Eclipse Kura , a Java/OSGi solution for IoT gateways that supports the protocol. To say that MQTT is in our genes would be an understatement. Since then, usage of MQTT has grown significantly. Year after year, the simple yet powerful publish/subscribe protocol is the most widely used IoT-specific protocol in our annual developer surveys . For example, in the 2021 edition, 44% of respondents stated they are using it. We like to think we are at least partly responsible for that. By the way, our 2022 survey is currently underway; you have until June 15, 2022, to participate. Click here to share your insights after finishing this post, of course. IBM has been a key player in our MQTT ecosystem for a long time. In 2021, the company brought its commit

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