email@example.com +46 35 17 29 56
by Norbert Binder
Open source software has emerged in the environment of universities, research institutions and in the home-developers area, to share the various developments with a wide group of users and to also use the know-how of others for own projects simultaneously.
Meanwhile Open source is used in industrial applications also. Thus one finds, for example, in the area of protocol software many projects regarding different network systems such as Modbus, CANopen and Powerlink. Some of these are also actively marketed by the respective user organizations.
Open source software in the industrial environment offers many opportunities and advantages. There are, however, some aspects one should be aware of when playing with the idea of using open source software in own commercial products.
Open source software thrives on the give and take. Software projects are published and can be improved by the feedback from the users. Often the interest of users is so great that they actively participate in the development. Interesting projects can grow quickly by incorporating the capabilities of a huge group of involved parties.
This immense knowledge base opens up new possibilities, as you can see in relevant office suites, web browsers, and messengers. Also for topics such as encrypted communication and anonymous surfing, solutions have been developed long before they were used in commercial companies. But precisely in this approach lies an element of risk for commercial users.
Open source software is only as strong as its community. Current issues or software of daily life are usually able to maintain a sufficiently large developer base over time. Specific topics on the other hand, driven by few individuals only, will often remain interesting only as long as the driving developers need these technologies. After that time, resources and interest are then bonded to other projects so that maintenance and development of these software packages are disrupted. Thereby projects can also quickly disappear. Remnants of such projects can be found everywhere in the relevant open source portals such as SourceForge.
Quite seriously is the topic software maintenance – a consumer can possibly switch to another application, which provides the same functionality. In industrial environments, a long-term availability is inevitable – the software should be maintained and developed in accordance with the long usage time of machines (up to 50 years).
The other extreme occurs when a project is very successful and is purchased by a company. The development is then no longer available for others. For commercial users, this can become a problem very quickly. While a home user only is annoyed about lengthy support inquiries or failure to his requests, a commercial developer easily misses certain completion dates. It’s even more critical if an error occurs on the customer side. In this case a very fast response is required since the downtime of a production plant causes immense losses. The developers of open source software don’t have any responsibility in such cases. The integrator has to solve the problem and has to accept the loss or damage on its own.
Manufacturer of commercial software must offer at least the statutory warranty. In their own interest and in order to remain competitive, they improve the software and often offer clients the possibility for extended support, and allow them to participate in the benefits of development through updates and discounted upgrades. In consultation with the customer also a long-term availability can be agreed or troubleshooting and corrective actions can be offered as an additional service.
For software used in industrial environments normally different standards have to be met; in protocol software, these are the specifications of the protocol. Compliance with the standards is checked in so-called “conformance tests” which are recommended by some user organizations or even made mandatory by others. For instance a device may only bear the DeviceNet label when it has passed extensive hardware and software testing of ODVA.
There are open source vendors who always keep their software up to date and thus are good example for other users and vendors.
However, the CANopen Conformance Test was introduced because there were a number of providers whose protocol software had implemented only a subset of CANopen specification and thereby caused errors in networks. The software of commercial suppliers is generally integrated in a variety of applications and can thus be described as robust and proven.
The observance of the norms and specifications is standard for commercial offers and most customers have the opportunity to be accompanied before and during the conformance testing of their equipment.
Most developers of open source projects are happy, if their software is a popular one and is used by others. They benefit from feedback and make their software available as source code.
Open source software is based on the concept that the knowledge and developments of the users flows back to the community and the project. This is different for commercial projects where developments are the assets of a company and must be protected.
In order to keep the balance of give and take, there are also terms and licenses for open source software. There are, for example, CopyLeft licenses like GNU. This means that software may be shared and may also be used commercially. Thus two conditions are linked: the authors of the software must be named and all derived software products need to be under the same license. Thereby an application that uses open source components, automatically becomes open source software and its source code must be disclosed.
Another Type of License are BSD licenses. This allows to use the software, to modify it and to distribute binary without delivering the source code. Only the original copyright note, the BSD license conditions and the disclaimer must either be included in the source code or in the documentation (for binaries).
In practice, this means for example that in most Linux distributions a TCP/IP stack is included but for commercial applications some companies explicitly request TCP/IP protocol software which is "open source free", just to be on the safe side.
The license terms of open source software usually include a disclaimer that excludes any guarantee or liability in case of damage. It is important to remember that the original texts of these license agreements usually meet US laws. However, for the manufacturer of a product is to be noted that the law applicable for him may not allow such a general disclaimer.
Furthermore, he as manufacturer is also responsible for the product liability and thus for the proper functioning of all components used – regardless of how the liability look for it.
Those interested can download software, including the source code for free from the Internet rather than paying any money to a commercial supplier. This is a considerable advantage for private use, for testing or teaching and research, and may cause that one or the other technology becomes known to a larger audience. In this application area, it is accepted to invest several hours or days to get a system up and running. On the commercial side, each developer hour costs money. Open source software is usually adapted to a small number of target platforms. The probability is higher that software was developed on a Linux PC with almost inexhaustible memory and CPU resources than on a specific embedded microcontroller.
The adjustment to the own CPU + OS platform, including memory and performance optimization, as well as setting up the development environment can take several days to weeks to complete and requires high detailed knowledge about the software and hardware used. Thus, the development costs quickly exceed the purchase price of a commercial solution, even if the vendor charges for some hours of development.
The commercial provider also has the advantage that it performs such adjustments regularly, knows the technology and ultimately ensures that the software works. Thus in addition to the cost also the risk is significantly lower for the integrating developer and he can concentrate on his core area, which is his application.
By using open source software in commercial products, the selected software should be checked carefully to determine the adaptation effort and thus to minimize additional development costs and risks related to performance, compliance and long-term availability