The connections and networks used by the Industrial Internet of Things (IIoT) are steadily becoming ubiquitous and always-on, which means the primary task for getting IIoT applications up and running is programming. Here are some of the most well-known and widely used software tools:
- Containers are uniform software units that serve as isolated runtime environments. They encapsulate code and related accessories, and include all the programming needed to run in any setting or situation. This allows programs assigned to a container to operate fast and dependably, even if they’re moved or copied from one data processing platform to another. Available for Linux and Windows applications, containerized software always runs the same, regardless of infrastructure
- Docker is open-source software and platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers, which are runnable instance of an image. These images are lightweight, standalone, executable software packages that include what's needed to run applications, such as code, runtime, system tools, system libraries and settings. The software that hosts the containers is called Docker Engine. Container images become containers at runtime, and in the case of Docker containers, images become containers when they run on Docker Engine.
- JavaScript object notation (JSON) is a language-independent, open-standard, data-interchange file format that employs human-readable text to relay data objects, which consist of attribute-value pairs and array data types or other content that can be serialized. It's a common data format used for asynchronous browser/server communications. Many programming languages include code that can produce, sort through and organize JSON-format data. Some of the languages that support JSON’s data interchange format include C++, C#, Java, PHP and Python.
- Kubernetes is a portable, extensible, open-source, container-orchestration tool that bundles, automates, deploys and scales data processing by groups of software-based hosts and containerized devices. It manages containerized workloads and services, which facilitates declarative configuration and automation. Several cloud services provide infrastructures where Kubernetes can be implemented as a platform service, and many suppliers also provide branded Kubernetes versions and deployments.
- Low-code/no-code typically includes software created using a low-code development platform (LCDP) or a no-code development platform (NCDP). These are visual development settings that allow users to program with a GUI instead of traditional, manually coded software. Using a GUI accelerates application development and lets less-skilled users participate. LCDPs and NCDPs can reduce deployment, setup, training and maintenance costs.
- Node-RED is a free, low-code, visual programming tool for tying together physical components, application program interfaces (API) and online services. Its web browser-based editor creates JavaScript functions, and eases combining flows with a variety of nodes in its palette, which can be deployed to its runtime with one click. Application elements can be saved or shared for reuse. Flows created in Node-RED are stored using JSON, while MQTT nodes can make properly configured TLS connections.
- Python is a simple, general-purpose, object-oriented, high-level programming language for developing software and websites, and automating tasks such as data analytics. Combined with dynamic typing and binding, Python’s integrated data structures enable quick application development and scripting for linking devices. It also supports modules and packages, which enables program modularity and code reuse. Python interpreter and standard library are available free-of-charge in source or binary form for major platforms, and can be distributed freely.
- REpresentational state transfer (REST) is a software architecture for distributed hypermedia systems that defines strict constraints for creating web-based services. When these services conform to REST's six guiding constraints, they're called RESTful web services (RWS), and enable interoperability between Internet computing systems. RWSs allow inquiring systems to access and manipulate textual representations of web resources by using a uniform and predefined set of stateless operations.
- Unified namespace (UNS) software separates content from computing, and provides centrally located storage for information and context, where other users can consume or publish data needed to perform functions. UNS allows users to collect information from sources, add context and meaning, and turn it into a format that other systems can understand. It's often combined with MQTT Sparkplug to provide a base for digitalized, scalable processes.