Well, the wireless sensor world has its WirelessHart versus ISA100 disagreement. The communication world in manufacturing and automation now has its OPC Xi (Express Interface) and OPC UA (Unified Architecture) discussion. As usual, I walk right into the middle of what had been a “back room” discussion and stir up stuff. Then people think I pick sides. No, there’s another editor in the business whom I’ll let be in the middle of the fray. I’m just trying to report and add context/analysis. I don’t have a dog in this hunt.
I first ran into Xi (before it was OPC Xi) at Emerson Exchange. Indeed Lee Neitzel, an original OPC developer and Emerson engineer, was lead developer of this technology and has talked with me several times. The last time was last month when I visited Emerson Process Management’s headquarters in Austin.
Lee is a “true believer” (read Eric Hoffer’s great little book if you don’t know that term, it’s not a pejorative) and is convinced he and his team have developed a simple, easy-to-use OPC update that takes the supposed complexity out of UA. The way I hear it, he doesn’t think anyone will need anything beyond Xi to develop good OPC interfaces. (That’s a response to an odd comment I made about this being perhaps an interim step from the original OPC to UA.) Please note that not everyone believes it’s “simple and easy to use.” Just as not everyone develops in C# I suppose.
When I first saw this technology displayed, it appeared that there was significant support for it from among stalwart OPC members. Lately, though no one has spoken for the record, I sense somewhat lukewarm support. Just as in the wireless debate, we’ll have to see how this plays out in the market. This is also mostly a developer’s debate. Users just want to see products come with a stable, decently fast way of moving data and information from intelligent devices to applications that’s reasonably transparant. If developers can’t do that with either of these, then job openings should erupt.This argument is still very early. Products with UA have begun to appear. Those with Xi will someday when the code stabilizes, I’m sure.
Because I’ve raised questions (see also this post on UA), Emerson’s Lee Neitzel and OPC’s Tom Burke have jointly authored a paper attempting explain the benefits of Xi. Note that Xi is a Microsoft .Net implementation, while UA is designed for embedded developers (well actually, all developers). Users should not have to worry too much about all this, I think, if products are designed well. You all should be aware that there is not universal agreement with some of the statements in here. But we wouldn’t be engineers if we agreed on everything.
I don’t have a quick place to host this paper, so here’s the whole thing. It’s long, but interesting. Everything below is a direct quote from the paper.
Neitzel / Burke Paper
The OPC XI was started in direct response to the proliferation of .NET interfaces for OPC servers. Lee Neitzel, technical lead for the project says “To be successful, our primary focus had to make it easy for developers, integrators, and end-users. Of course, we also had to address some of the known shortcomings of the existing COM/DCOM interfaces.” Those shortcomings included security, operation through firewalls, and robustness.
The OPC Foundation commitment to interoperability is about providing the best technology, specifications, process and certification to enable suppliers to develop products that demonstrate the vision of secure reliable interoperability and consistently exceed the expectations of the end-users. OPC Xi clearly provides the right solution and appropriate infrastructure to truly enable data and information integration in our Microsoft world from the plant floor to the enterprise.
To make it easy for developers, OPC Xi was designed to be simple and to be implementable directly from the specification. To make OPC Xi development even easier, a high-fidelity reference implementation is available for both client and server developers along with online training sessions that guide them through this code.
In addition, OPC Xi integrates access to OPC Data Access, OPC Alarms & Events, and OPC Historical Data servers into a single interface. This interface is designed around a straight-forward model that allows clients to discover objects and events/alarms supported by the server, assign them to data and event/alarm lists, and set the access privilege of each list to be read, write, and/or subscribe.
The OPC Xi security model uses Windows security for user authentication, .NET security for communications, and an Xi-specific security mechanism for controlling the read, write, and subscribe privileges just mentioned. The Xi-specific mechanism allows access to be controlled based on a number of factors including the name of the client application, the machine on which it runs and its network location, and the protocol it uses to connect.
Enabling these privileges can be done via standard .NET configuration files, allowing end-users to configure the security policy that best meets their needs. For example, this allows the security administrator at a site to disable the ability to write (i.e. change the state of the system) for all users outside the firewall.
OPC Xi has four specific features in addition to the security mechanism just described that have been designed to make Xi easy to use. First, Xi makes it possible for clients to automatically discover servers. No longer do end-users or integrators have to configure each client with the identity of each server. Second, Xi makes it possible for clients to discover the protocols and communications options supported by a server, allowing clients to automatically connect to servers. Third, OPC Xi uses a restricted set of communication ports to make it easier for administrators to allow access through firewalls. And fourth, Xi has recovery mechanisms built in to allow client connections to quickly detect and recover from communications failures.
.NET decouples the application programming interface (e.g. read, write, browse) from communications, making it possible to configure servers to use the most appropriate protocols (e.g. TCP, HTTP) at deployment time. Because Xi is designed for the client to automatically discover the protocols a server uses, servers can employ new protocols as they become available without having to change code in either the client or the server.
This is especially important in the area of communications security. As deficiencies in existing mechanisms are discovered and/or as existing mechanisms become obsolete, updates and/or replacements can be used by the server without impact. This feature of .NET gives Xi a longer lifecycle than COM/DCOM-based interfaces in which the application programming interface was integrated with the communications.
The OPC Xi interface and Reference Implementation code was released on March 16, 2010. The OPC Xi Specification and the base Reference Implementation software for servers are available to the general public. This server-side Reference Implementation provides basic handling of the .NET interface and management of the client context (connection).
OPC Members also can download Reference Implementation code for clients, which includes a Generic Client application. Also included in the OPC Member download is a Reference Implementation wrapper that works with OPC DA, OPC A&E, and OPC HDA servers. This Reference Code has a number of extensibility points that allow it to be adapted specifically to vendors’ OPC Classic (COM/DCOM) servers.
The OPC Foundation is planning a Webinar Demonstration on June 29 in which Xi interoperability over the Internet will be demonstrated. This demo will include Xi accessible OPC DA, A&E, and HDA servers and Xi clients that demonstrate Xi integration with 3-D graphics, handheld devices, and Microsoft Silverlight-based Web applications.
Preparations for this demo will begin with a series of webinars, open to any OPC members that describe in detail how to use the client Reference Implementation code and how to adapt the Reference Implementation wrappers to server specifics. Details on the webinars will be posted on the OPC Foundation web site at http://www.opcfoundation.org.
This is a very exciting opportunity for both OPC members and nonmembers to take advantage of a significant technology advance for the.NET environment that provides an easy way for suppliers to integrate OPC classic applications into the .NET world.
The OPC Foundation is always looking for the right technological opportunities to allow suppliers to build best-of-breed products that demonstrate and provide a solid infrastructure for multi-vendor secure reliable interoperability. OPC Xi is a significant advancement to allow OPC applications to be developed for the.NET environment.
The OPC Foundation is truly an international organization that prides itself in measuring success by the level of adoption of technology. The many OPC regional organizations constant commitment to evangelizing and spreading the word of OPC wrote that the world is more than a philosophical idea.
A complete list of products that are available based on the OPC Foundation technology is available on the OPC Foundation website. OPC is destined to be the USB of industrial automation and beyond. The OPC Foundation portfolio provides a solid foundation and infrastructure to allow data and information to be exchanged from the embedded devices all the way through the enterprise for a variety of domains including industrial, building automation, security and the up-and-coming smart grid.
For more information about all of the activities associated with the OPC Foundation we encourage you to regularly subscribe to the various OPC Foundation list servers, and to regularly check out the www.opcfoundation.org website.