The ongoing discussion on ‘Is OPC really considered an open standard if you have to pay for the specifications’ has recently gathered steam again on the forums and other sites. I posted on this topic last summer and the same arguments and counter arguments are still going around. Most center on two points; definition of an open standard and definition of nominal fee. As I’ve said in the past, these are really the wrong things to be focusing on, since there really is no one, accepted definition by everyone. Wikipedia’s got a good explanation of the various open standard definitions. The one thing that most agree on is that open means available to everyone without discrimination and does not use a ‘pay-to-use’ or royalty model.
Where things are a bit gray is that some definitions of open do allow ‘pay-to-produce’ fees, and what are acceptable fees to charge. Some folks argue that not everyone can afford the set fees, so therefore are being discriminated against. A grad student or one-main integrator shop has a different view of ‘nominal’ than a multi-million dollar global vendor. No method is perfect. Even the WC3 which is ‘open to everyone’ and ‘free to access and use’ has its critics. So, I say these arguments can’t really be won since everyone finds a definition that supports their view. The reason the OPC Foundation now requires membership to access the specs is an attempt at improving the overall quality and interoperability of OPC products. I’m all for a debate on the topic. But let’s talk about the real topic. The question that should be asked is ‘Does a pay-to-produce model improve overall quality?’
Personally, I don’t know. What I do know is that the OPC specifications used to be available for free download and there where many interoperability problems. The message coming from a lot of end users was: “We don’t what more OPC products, we want better OPC products.” The stance the OPC Foundation has taken is if you plan to develop OPC products, it requires membership which comes with access to the specifications and the associated code base and tools to help ensure a solid quality baseline.
In the early days of ‘classic’ OPC there were many client applications built on the OPC technology by non-members that did not measure up to expected quality and had many interoperability problems. The argument that ‘more eyes are better’ and having an Open Source model will create a more reliable infrastructure doesn’t seem to be supported by OPC history. Take the Automation wrapper and server sample code for example. The code was freely available, yet it didn’t evolve over time. Many people just took the sample code and released products; good, bad or ugly. This became one of the biggest contributing factors to OPC interoperability problems. It was only after the OPC Foundation took back ownership and provided dedicated support for the wrappers did all the fixes get integrated. Why? Maybe it’s because the majority of the OPC community is vendors, users and integrators whose core competence is Industrial Automation. Does it work for something like Linux because of the sheer volume of developers in their community? Now that the scope of OPC UA extends beyond just the Microsoft platform does that mean there is a much larger pool of developers waiting to contribute? It doesn’t seem to me that the team of volunteers working on the specifications and code has suddenly grown exponentially.
The OPC Foundation’s solution to the problem was to set the bar so only those individuals and companies that are committed to developing OPC products have access to the tools to do so. Membership signifies commitment. Adoption without verified interoperability is not adoption at all. I suppose that OPC could move to a ‘Brand Licensing’ model such as Bluetooth uses. The specifications are free to view by anyone, however only the Adopter Members are allowed to develop commercial products and use the brand name. (Of course the other side of that is, what good is looking at a specification if you aren’t developing a product with it? If I am a company developing a new headset or hand held peripheral am I really going to say “Well, we need a communication protocol to connect with all the PCs, phones and Blackberries on the market. Let’s take a good look at the technical details of the Bluetooth protocol and see if we want to go with that or roll our own?” Just my $0.02)
Is demanding membership to access the OPC specifications the right solution? Someone like IEC would say yes, where XML would say no. The important thing is what do you say? As Randy pointed out on the forum “OPC is a member driven organization and if members believe that the specs should be made available for free then these members need to make their feelings known”. I’ll make it easy for everyone. Post a comment that answers these questions:
-
Are you an OPC member?
-
Does ‘pay-to-play’ mean better quality products? (i.e. member products are built on reference code, interoperability tested and certified.)
-
Do you agree with the current policy of ‘pay-to-view’?
-
Why/Why not?