The cloud computing model can enable collaboration in manufacturing companies in multiple ways, including among software applications, machines, people, and between people and machines.
Technology adoption in manufacturing has always been driven by the need to increase productivity, either by increasing the outputs (throughput) or decreasing the inputs (costs), and the push for growth by capturing new customers in order to remain competitive. These pressures remain true today but are amplified by the fact that any competitive advantages gained by the adoption of new technology are short-lived due to the increasingly faster pace of technology innovation.
Besides the more obvious or direct ways to increase the productivity of manufacturing operations (digitizing manufacturing, reducing waste, optimizing supply chains, introducing automation), collaboration – the theme of this issue of the Manufacturing Leadership Journal is a critical factor for productivity. Basically, collaboration reduces waste and improves quality by allowing everyone involved in the value stream of the product development lifecycle to have the right information, at the right time, at the right place — without wasting time hunting for, translating, collating, and duplicating information across siloed applications and data stores to do their jobs.
Collaboration comes in four main flavors:
- Collaboration among software applications.
- Collaboration among machines.
- Collaboration among people, and a new form that is generating a lot of buzz.
- Collaboration among people and machines.
The cloud is a natural environment to enable all of these types of collaboration because it makes it much easier to develop distributed, interconnected, secure, highly available, scalable, and performant applications than with on-premise environments. Cloud platforms remove the need for developers to worry about these plumbing considerations, allowing them to focus on developing their core applications.
Collaboration Among Software Applications
Software applications often need to talk to each other to exchange data or execute each other’s functions. This collaboration among software applications is often referred to as Enterprise Application Integration. Examples of this software-to-software communication include:
- A PLM (Product Lifecycle Management) system that needs to communicate with an ERP (Enterprise Resource Planning) system to synchronize part numbers when a new part is created in PLM.
- A CAD (Computer-Aided Design) system that sends the 3D model of a part to a CAM (Computer-Aided Manufacturing) system to generate the NC code. The NC code is then sent to the machine tool to make the part.
- A CPQ (Configure-Price-Quote) system that takes an order from a customer and sends it to an ERP system to schedule production.
- An ERP system that sends information to an MES (Manufacturing Execution System) about the jobs to be performed on the factory floor, and the MES that sends information about the execution of these jobs back to the ERP system.
Collaboration among software applications can be achieved by exchanging data or exchanging messages. The cloud is an ideal platform for both of these types of communication.
At the data level, cloud platforms not only offer multiple options for data storage (relational, object, unstructured, document, blobs), but also make it very easy to distribute, geo-replicate, cache, and backup this data for optimal performance and reliability.
At the message level, applications usually exchange messages through some kind of middleware layer or message bus, where applications post messages and applications interested in these messages consume them in a decoupled fashion (as opposed to a coupled fashion, where an application sends a message directly to another application). Cloud platforms guarantee that messages are sent and received by their intended recipients in a secure, reliable, timely, and performant manner — characteristics that are very hard to deliver right, particularly in highly distributed, heterogeneous environments, and where large amounts of messages are involved.
One important software development trend that is enabling application communication is serverless computing (a.k.a. Function-as-a-Service or FaaS). Here, you can write just the code you need for a solution without worrying about building a full application or dealing with servers and scaling (hence the name serverless). With serverless computing, you can build small pieces of functionality quickly and host them in an elastic environment that automatically manages scaling. You can choose to pay only for functions that run, without having to keep compute instances running all the time.
“Cloud platforms remove the need for developers to worry about plumbing considerations, allowing them to focus on developing their core applications.”
Collaboration Among Machines
Machines talk to each other too. For example, a numerically-controlled machine tool on a factory floor may tell a robot that the part it was making is ready to be picked up. Or a quality assurance vision system may determine that a part is not up to specifications and instruct the conveyor to reroute it to a different destination. Or a robot may determine that something is wrong with it, request maintenance, and ask another robot to cover for it while it is being maintained.
Strictly speaking, machine-to-machine communication is a special case of software-to-software communication. Machines have microprocessors or microcontrollers physically connected to sensors and actuators in various parts of the machine. Sensors (for example, a temperature sensor) collect data that is digitized and input into the software running on these microprocessors or microcontrollers. This software runs some logic to figure out what to do based on this data. This could be sending a message to another piece of software also running on a microprocessor or microcontroller in another machine. This software, in turn, also runs some logic to figure out what needs to be done with this message, which may be sending a command to a physical actuator in the machine to perform some physical action (for example, shutting off a valve).
“Machine-to-machine communications has achieved renewed relevancy thanks to the emergence of IoT and Industry 4.0 scenarios.”
Machine-to-machine communication has been around for decades. However, it has recently achieved renewed relevancy thanks to the emergence of IoT and Industry 4.0 scenarios. The difference is that, in the past, this communication was largely proprietary and closed (i.e., involving machines from the same vendor, communicating across closed networks, through proprietary protocols). Today, the push is for open, multi-vendor, Internet-based, standards-based, plug-and-play machine-to-machine communication.
Cloud platforms, again, are very useful for enabling this modern type of machine-to-machine communication. They do so by providing IoT platforms that sit on top of their messaging platforms and can handle the potentially huge amount of messages sent by devices, as well as help manage the registration, management, provisioning, security, and monitoring of devices.
As just mentioned, IoT devices normally generate large amounts of data. The challenge now is how to extract actionable insight from this data. This is where — you guessed it — the topic of big data comes in. In big data scenarios, the data is coming at such volume, variety, and velocity (the 3 Vs of big data) that it renders traditional data processing and storage mechanisms inadequate. In order to deal with this, data is stored in its native format – structured, unstructured, or anything in between – in data lakes that hold the raw data so that you can analyze it or transform and move it later.
For instance, you could use a data lake to store all the data that you get from your IoT devices that are collecting temperature data. You can leave the data in the store and then filter through it and create a view of the data per hour or per week.
There are two important and related trends that are particularly interesting for manufacturing IoT scenarios: hybrid clouds and edge computing.
Hybrid clouds are deployments where you have a combination of the cloud running in your data center (private cloud) and the vendor’s data center (public cloud). They are one of the most popular choices for some companies that do not want to make a full conversion to the cloud and/or want to keep some of their data and systems in-house. Two common scenarios in manufacturing that make hybrid cloud deployments particularly interesting are:
- Edge and disconnected environments: typical in IoT applications, where the devices are not connected (or are intermittently connected) to the Internet, or where the compute capability that does the analytics needs to be deployed to the devices themselves for performance or security reasons.
- Security and compliance requirements: often imposed by OEMs – mainly in the military and defense sectors – to which many manufacturing companies supply their products.
Edge computing refers to the ability to analyze data on the devices (a.k.a. at the edge) instead of in the cloud. By moving parts of the analysis to the edge, devices can spend less time sending messages to the cloud and react more quickly to changes in status. This is particularly important in situations where latency (i.e., the time it takes from the moment a message is sent to the moment a response is received) is critical. For example, if you want a device to respond to emergencies as quickly as possible, you can perform anomaly detection on the device itself. Similarly, if you want to reduce bandwidth costs and avoid transferring terabytes of raw data, you can perform data cleaning and aggregation locally and then send the insights to the cloud.
Publish/Subscribe Messaging Mechanism
Event Publishers post messages under certain topics. Event Handlers process messages posted under topics they are subscribed to.
Collaboration Among People
Finally, there’s collaboration among people – people within an organization – or across organizations (as it is the case, say, in collaboration among organizations participating in a supply chain).
“Edge computing refers to the ability to analyze data on devices rather than in the cloud, thereby enabling faster decisionmaking.”
Collaboration among people can be grouped into two categories: synchronous and asynchronous:
- Synchronous collaboration normally takes place when people come together at the same time to discuss a topic and/or take decisions. These meetings can take place face-to-face or remotely (or a combination of the two). This is the realm of the video-conferencing and collaboration software we are all familiar with, such as Microsoft Skype, Cisco WebEX, and Zoom.
Designers at Ford’s Design Center Collaborating using Microsoft MR Device (HoloLens)
A new and exciting form of synchronous collaboration that is starting to gain traction is via AR (Augmented Reality), VR (Virtual Reality), and MR (Mixed-Reality). With AR/VR/MR people can, for instance, collaborate around a 3D virtual representation of a car to review the design and iterate more freely and quickly, without having to physically build every design prototype in clay, which can limit creativity with longer steps.
“Artificial intelligence is reaching an inflection point where real applications are starting to become available.”
Increasingly, these synchronous collaboration solutions are built on the cloud because it is much easier to deliver the scalability, performance, security, and availability required by these applications.
The second type of collaboration – asynchronous collaboration – is about documenting the information related to a product, project, or discussion in a way that is easily discoverable and traceable. There is a wide range of applications for asynchronous collaboration – from formal systems of record such as PLM systems, to team collaboration applications such as Microsoft Teams or Slack, to cloud storage services such as Microsoft OneDrive, Dropbox, or Box.
In this category we can also include productivity applications such as Microsoft Office 365 or Google G Suite, which are offering more and more collaboration functionality, particularly around document sharing and editing. Again, these systems are increasingly being built on cloud platforms for the same reasons mentioned above (scalability, performance, security, availability).
Collaboration Among People and Machines
Finally, a new type of collaboration that is generating a lot of excitement is human-machine collaboration. This type of collaboration is enabled by artificial intelligence. Artificial intelligence has been around for a while, but now is reaching an inflection point where real applications are starting to become available, thanks to the confluence of better algorithms, large amounts of data, and computational power, all enabled by the cloud.
One such application of AI that is being used for human-machine interactions is bots. Think of a bot as an app that users interact with in a conversational way. Bots can communicate conversationally with text, visuals, or speech. A bot may be as simple as basic pattern matching with a response, or it may be a sophisticated weaving of artificial intelligence techniques with complex conversational state tracking and integration to existing business services.
In closing, collaboration wasn’t born with the cloud, but it is definitively much easier to enable in the cloud. Manufacturing companies and software companies that develop software for them are embracing the cloud because it is a natural environment for delivering collaboration in a manufacturing enterprise – among software applications, machines, and people in a secure, scalable, distributed, and performant manner.