Tips to avoid interoperability risks

Sept. 1, 2020
Seek compliance certification; beware of extensions and plugfest assurances

Interoperability is the capability of two or more hardware devices and/or software routines to work harmoniously together. For example, successful message transmission on an Ethernet network necessitates that all equipment involved—network adapters, hubs, switches and routers from different vendors—work together to pass the message from any connected node to another. To make this interoperability happen, all components must conform to the IEEE 802.11 standard.

And to ensure such conformance, an array of third-party and non-profit certification laboratories exist to test said products. Conformance tests are based on the underlying standard itself, from which a suite of tests is developed to evaluate each requirement separately, and then reviewed for additional requirements to ensure that the individual bits work together as a combined whole. Not all criteria are always mandatory—though a minimum set certainly are, as it is this minimum set that guarantees interoperability.

Manufacturer-specific extensions

Many tests also include optional criteria that allow manufacturers to differentiate themselves from one another. They can identify what parts of their product are extensions to the standard, and are tested to confirm they don't interfere with standard functions. (Note that if you start relying on these extended features, you may have effectively prevented yourself using other manufacturer’s products.) Interoperability standards also often use profiles to define which set of criteria are required based on the intended service of the device since, for example, a view-only HMI has different requirements than an engineering workstation.

The normal pass rate for the mandatory elements is 100% with any optional or manufacturer-specific extensions identified in the certificate. If extensions are listed, you know they've been tested against a rigid set of criteria to not interfere with basic interoperability expectations.

Plugfests are also based on a technical standard, and have the goal of checking compliance against the standard, while also testing the effectiveness of the standard, especially if not all aspects of the standard are 100% clear. In addition, one outcome of a plugfest can be to identify additional criteria to add to the base specification or to change from an optional to mandatory requirement.

Caveat emptor plugfest results

A plugfest is more of a down-and-dirty approach in contrast to the tedious process of certification by running a variety of test programs and test equipment. Plugfests verify the interoperability of network devices by physically plugging them into a running network, so when you connect a device into the plugfest, it either works or it does not. Some examples of products that get tested through plugfests include near field communications, USB devices, SCSI and HDMI interfaces, and electric vehicle charging stations. 

One of the risks of relying on products tested only by plugfest is that every new device or software/firmware upgrade/revision added becomes a new, uncontrolled variable in an already complex system.

As a result, if I were to have any products that were from a plugfest certification lab I would test them first in a hot standby system with one of everything—or at least one of everything critical—installed. Make sure the new components interoperate as expected in this test system before plugging them into an actual production system.

Conformance tests and plugfests are two different ways of testing and verifying interoperability. In some cases, depending on how many optional or extension parameters are in the conformance-tested device, the interoperability may only be consistent within that manufacturer's family of products—so only "kind of" interoperable beyond the basic functionality. In the end it comes down to reading the fine print and doing due diligence to determine how interoperable you need to be and how much risk you can manage for the application to which you're connecting.

[sidebar id= 1]