A process is a series of actions, tasks or steps taken in a linear or sometimes a branching, non-linear sequence in order to achieve a desired outcome.
These process steps could be manual activities undertaken by a person, purely digital steps taken by software across computers, electromechanical actions between digital messages and mechanical actuators as well as advanced cyber-physical tasks performed by industrial robots.
Let’s walk through a few examples:
- A farmer checks the weather forecast everyday then drives their truck to appropriate orchards or fields to perform irrigation for a certain amount of time based on previous rainfall totals and the needs of the crops.
- A digital scheduling system for doctor appointments retrieves appointment time and location preferences of the patient and combines it with their insurance information and the doctor’s current schedule to deliver a range of appointment times.
- An electromechanical system uses motion sensors to notice a person has entered a meeting room and carries out steps to turn on lights, adjust room temperature, and turn on the projector to show a presentation.
- Cyber-physical industrial robots perform individual tasks but also have awareness of the current state of other robots on the assembly line to better work together in building a car.
Rather than just using digital twins to provide visibility to ongoing operations or to improve future product development via simulation, why not use digital twins to orchestrate processes?
Let’s dive into the simple electromechanical scenario shown above:
Imagine the familiar IoT process where you need to turn on the lights, adjust room temperature and turn on the projector when a person enters a meeting room. You’ve got a Digital Twin that represents the meeting room which acts like a group or container for a collection of digital twins that represent motion sensors, HVAC, the lighting system and the projector.
All you need now is an process automated by bots to bring this to life.
The motion sensor detects a person walking-in which triggers a software bot on the associated microcontroller to send a message to an IoT platform or building management system. Upon receiving the message, a bot identifies the particular meeting room and sends a command to activate the overhead lights. Concurrently, a bot sends a command to the HVAC system to adjust the room to a comfortable temperature. Last but not least, a bot sends a command to turn on the overhead projector so the person can deliver a presentation.
How do you orchestrate this process?
Since this is a simple process, you could probably do this with a series of rules via the event processor in your IoT platform. Knowing that processes can become more complex with many variables and different forks in the road, you could instead choose to define the orchestration in a Digital Twin Model. With it’s available process properties, this twin defines the steps needed to guide software bots in taking the actions needed to achieve the desired outcome. Each step is represented by a process property. Each process property defines the digital twins involved, the APIs needed to connect, security requirements for calling those APIs, data to be sent, return values to expect and other details needed to successfully complete the step and move on to the next one.
This doesn’t have to be a 100% digital process.
In another scenario, the prescriptive analytics from an IoT platform might alert a technician to fix a broken component. The orchestrating digital twin model would still have its process properties except this time, each step would guide a person instead of a bot to complete the required activities. In this form of guided repair, the process properties would use descriptive text to tell the technician what tools to bring, where to go, and step by step instructions to fix the component. These text based steps could be displayed on a mobile app or take a more digital form via augmented reality (AR) glasses. Once the repair was completed, a tap of a button on a mobile app might make the API call needed to let the orchestrating twin know the job is done.