Open source is a mechanism where automation devices can be delivered faster, often with better architecture and higher quality code, without spending a fortune.
There’s an old saying that goes, “Predicting the future is easy … getting it right is the hard part.” It’s so easy to be wrong about the direction of technology. Bill Gates is famous for saying that 64K ought to be enough for everybody. The director of the US Patent Office reportedly said in the late 19th century that the office should be closed as everything that can be invented has been invented. Robert Metcalfe, founder of 3Com said in 1995; “I predict the Internet will soon go spectacularly supernova and in 1996 catastrophically collapse.” And my personal favorite from Steve Ballmer, then CEO of Microsoft, “There’s no chance that the iPhone is going to get any significant market share.”
It’s easy to make technology predictions and to look foolish doing so. Many of us who grew up coding for a living have been quick to dismiss the open source movement. Many of us laughed at the thought of free code; we thought “You’ll get exactly what you pay for…” After all, who would put some free code you got off the internet into an important product?
Programmers are programmers because they like to program. They don’t like to use another programmer’s code if they can avoid it. As a group, we’re much happier writing everything ourselves. The fact that the code is generally delivered late, the quality suffers under deadline pressure, and costs seem to grow exponentially, are inconvenient truths that we try to avoid because we enjoy the process of coding.
Long gone are the days when an embedded automation device could be delivered on a 2K EEPROM. Now, automation devices are more complex than the code that we used to send men to the moon. They have much more connectivity and, must meet vastly increased user requirements. In today’s environment, quality products must meet all sorts of certifications and be delivered more quickly than ever before.
Open source is a mechanism where automation devices can be delivered faster, often with better architecture and higher quality code, without spending a fortune. There are still support issues – it can be problematic to deliver a product without a real understanding of the underlying core software – but there are ways around that.
Open source in automation is not only growing, but becoming key to delivering IoT and edge devices. An example of how you can speed delivery of sophisticated, connected automation devices is The EdgeX Foundry™ platform. This open source project, hosted by The Linux Foundation, is built for IoT and edge computing applications. The IoT group at Dell contributed the base software for the Foundry with a gift of 150,000 lines of vendor-neutral, hardware-agnostic and OS-agnostic code in 2015. The project is designed to enable an ecosystem of players contributing plug-and-play components that will accelerate the development of IoT and edge computing devices.
The EdgeX Foundry contains a set of microservices (also known as the microservice architecture), a style of system design that is a collection of services loosely coupled, independently deployable, highly maintainable and testable. They are typically organized around specific functional capabilities that meet business requirements.
The microservices in the EdgeX Foundry contain all the typical capabilities that need to be included in typical edge devices:
- Monitoring and Alarming
- Rules Engine
- Data Store & Logging
- Factory Floor Connectivity like Modbus TCP, OPC UA, and many others
- Cloud Connectivity for all the major Cloud vendors
There are other advantages in using an open source platform like The EdgeX Foundry. The first is security. Protection for both data and control of devices, IoT objects and sensors are built into these open source platforms.
Security components enable administrators to initialize, manage user access and, create tokens for resource access as needed by applications. Some platforms provide a security store where security secrets can be kept safe.
Another advantage is distribution and remote management of edge devices. With small, remote edge devices, managing operations become difficult as the number of devices grows. Many of these platforms are built to use tools like Docker. Docker is a tool designed to make it easier to create, deploy, and run applications that use containers. Containers allow a developer to package up an application with all the parts it needs, such as libraries and other dependencies, and ship it all out as one package.
Docker can manage remote software devices as well as remote hardware.
Connectivity is also maximized with open source projects like The EdgeX Foundry. Connectivity for factory floor networks like Modbus, OPC UA, BACnet and more are part of the standard project. User interface solutions, or at least prototypes, are often included. Developers can use the built-in tools or add their own.
The world has indeed changed. Gone are the days of a single programmer being responsible for automation device development.
Today, vastly increased requirements, extensive connectivity and sophisticated applications mean that devices require vastly more development resources.
Building that kind of device is a development task that only the largest of teams can do within a reasonable time frame. For the rest of us, open source software is our only choice for producing the kinds of devices we need in a reasonable time and within our limited budgets.