A microservices architecture for zero defects in manufacturing.
Some questions for you :
How do you integrate zero-defect functionality into one platform?
How many different systems need to work together?
How do you manage complexity in such a system?
Easing manufacturing complexities
Manufacturing is a complex domain that is going through constant evolution. Digitisation has been part of that transformation but the benefits of this have not been fully realised. Using a microservices architecture for manufacturing will help to realise this promise of digitalisation by skewing the monolithic structures of yesteryear and allowing for the agile adaptability of a modern cloud native computing environment.
ZDMP is technical project involving over 12 technical partners integrating a wide variety of functionality, from platform generic tools, for integration, marketplaces and app development, to zero-defect focused manufacturing applications like Digital Twins, Non-Intrusive Inspection, and Process and Product quality control.
Thus, the ZDMP needed an architecture that could integrate a wide variety of concepts, partners, and technologies for both InCloud on and OnPremise systems. It uses a multi-sided marketplace along with re-sellable components called zApps. To provide the basic functionality of the ZDMP platform and the zApps the platform is filled with a set of core components, platform building components, and components focused on Product and Process quality. As well as specific user functionality in the form of zApps for detecting anomalies, raising alarms, and managing digital twins.
To manage this complexity and diversity the project has used some key technologies to mitigate integration issues. These are Docker containers, Rest APIs, and a Message Bus.
ZDMP Architecture at a glance
This following diagram shows an overview of the ZDMP global architecture, showing all components interaction at a high-level:
The components are broken down into: Design-time, Use-time and Run-time. This allows for segmentation of the responsibility of the different components and a grouping of similar components together. Design-time components are needed to help design zApps. Use-time is for managing these zApps (installing, buying, selling etc). The run-time apps allow for zero defect functionality within zApps.
ZDMP Components at Use-Time
The Secure Installation component allows downloading zApps to authorised ZDMP components. During this process, this component also creates the users, roles and policies required by the zApp. These can be modified by the administrator through the Security Command Centre UI (integrated with the ZDMP Portal).
The Secure Communication component installs, issues, and revokes digital certificates, which are necessary to securely exchange information between ZDMP assets and external resources. From the Security Command Centre UI, the administrator can revoke, renew, and install certificates.
The Secure Authentication/Authorisation component stores users and the corresponding authorisation policies, to control that only legitimate communications are allowed using well known protocols, such as OpenID and OAuth 2.0.
The Marketplace primarily targets users from the manufacturing sector. Users can search for existing applications (zApps) based on many characteristics such as category, price, type of payment (demo apps, one-time fee, pay-per-use, monthly or yearly licenses, etc).
Associated with most other components is the Storage component. This component is the platform data lake allowing persistence and processing the ZDMP components and zApp’ data. This data storage includes structured data from relational databases, semi-structured data as XML and JSON files, binary data as images and videos, as well as application components running as microservices.
Human Collaboration component is a central interface for managing location-based data of assets, tools, and products, providing the factory map. The collaboration aspect is performed using multiple media channels (eg Telephone, VoIP, Video Stream).
The Portal is a website for access to the ZDMP functionality including, everything from human collaboration to container management depending on the user’s role and permissions. It displays web UIs from the zApps and provides information to the decision makers that require it.
The Application Run-time provides both the capability to orchestrate and host the individual components of the system using containerisation, as well as several core components to enable a baseline of functionality to the hosted components.
The Inter-platform Interoperability component’s aims is to integrate the ZDMP platform with other external platforms. It supports the ability to sell ZDMP services to other platforms and purchase other components from some those. It also includes a layer to link data sources from different platforms. Finally, it integrates security between the platforms to ensure appropriate access levels across the platforms. It includes a connection to other instances of ZDMP.
ZDMP Components at Run-Time
The Data Harmonisation Runtime harmonises data from a variety sources into the required formats for ZDMP applications. To change data from one format to another using the data maps created by Data Harmonisation Designer.
The Orchestration Runtime is based on the powerful Camunda BPMN engine. This runtime component will execute all BPMN processes designed by the user.
The Monitoring and Alerting component is responsible for allowing users to collect data, eg KPIs and other data points from machines, infrastructure and zApps. This data is collected from the message bus and shown in a web-based UI. The way the data is shown can be configured by choosing from a set of predefined graphs and diagrams. The component is also responsible for alerting users and other ZDMP components in case a KPI get out of defined limits, reducing the impact of crises and losses to the smart factories.
The Autonomous computing component enables the decentralisation and automation of decisions by autonomously controlling processes values and resources, be it zApps, ZDMP components or computational resources, as well as communicating and cooperating with other components.
In the production phase, through the AI-Analytic Run-time component, ZDMP users can run these machine learning models on real-time process data and get also in real-time notifications and alerts of some uncommon behaviour that could appear, and, in the meantime, ZDMP applications can adjust the production parameters in order to avoid defects.
The Service and Message Bus, provides two major features to the system. First, it enables zApps and external platforms to use other zApps and Platform Tier components in a standardised and secure way. Second, it provides zApps, Enterprise Tier, Platform Tier components, and external platforms with a message bus – a standardised communication interface to exchange messages, events, and data.
The Prediction and Optimisation component supports these features for different aspects of manufacturing process, both during the preparation and the production stage. Optimisation largely relies on numerical methods to reduce changeover times, eliminate related errors, or keep process quality within a certain range. Additionally, predictor components rely in machine learning methods that provide prognostic models that predict future trends of the process quality to support decision making during operation.
One of the main targets of ZDMP is to assure the product quality. Specifically, ZDMP provides product-oriented services that can guarantee a zero-defect scenario along the whole manufacturing process of the product: Modelling, Pre-Production, Production and Supervision. Product Assurance Run-time implements a set of machine learning (ML) models to support this goal for the Pre-Production and Supervision phases.
As a prerequisite for data access, exchange, and analytics within ZDMP, the Data Acquisition component implements a framework for the handling of data from IoT sensors and other sources.
The Distributed computing component executes the computing tasks (eg API calls to Docker setups to change the amount of resources used) and distributes the intensive computing work tasks through a cluster, composed by a group of work nodes.
The Digital Twin component is a digital representation of the current state of a manufacturing process and the characterisation and modelling of product features (physical characteristics, bill of materials, tolerances, etc), which provides data objects that describe different aspects of the physical and logical parts of a manufacturing process, including the status of the different (potentially distributed) components of the manufacturing system and product features.
The Non Destructive Inspection, is used to inspect products for detecting defects, by analysing in-line sensors data: depending on application, images, scalar data, or data streams are elaborated. This powerful set of functionalities is intended to support zApp designers to build applications monitoring product quality.
ZDMP Components at a Design-time
The Data Harmonisation component has access to raw data and ensures that data can be integrated using unified and standardised formats or the formats needed by the data recipient. It also provides basic functionalities for semantic homogenisation in a context of heterogeneous data meaning that the mapping is facilitated with reference to semantics though a ZDMP ontology.
The Orchestration Designer brings to business users, a powerful web based BPMN designer so the users can visually describe their business processes using the standard BPMN notation. These diagrams will then be executed by the Orchestration Runtime. In addition, the advanced code generator will transform any process into NodeJS code that can be copied and pasted, useful for developers, for high performance service to service communications.
Data analytics plays a key role in the ZDMP architecture. The AI-Analytics designer component deals with machine learning integration into ZDMP. The main purpose of machine learning in ZDMP is to detect and/or predict any defects in the production process and parts that leads to delay or inconsistency in the delivery of the further products. The machine learning models are built using analytic algorithms based on the statistical-machine-learning linear-algebra libraries.
The Application Builder supports developers with a UI aiming to define, design, develop, and compose zApps and manufacturing services. The primary purpose of this component is to make the development process of zApps and service coherent by providing a corporate design, behaviour, and a uniform functionality of UI elements for the entire ZDMP environment.
The Security Designer component (SSM) enables automated and systematic identification of risks to the assets (both human and technological) contained or connected to the ZDMP platform. SSM also allows identification of the knock-on consequences and countermeasures to mitigate these risks. The tool allows collaboration between several stakeholders to develop the system model and the associated risk catalogue.
The main objective of the Process Optimisation Designer component is to facilitate the development of (machine learning) models to solve typical problems in manufacturing processes in different categories such as preparation stage, process performance, resource consumption, and process quality assurance. The objective functions of the models are primarily process optimisation and quality assurance. The component implements template models and user interfaces (configuration wizards and training interfaces) to configure, build, and update the optimisation models.
ZDMP – bringing a zero-defect solution to all
ZDMP bring a zero-defect solution delivered by a complete platform of Design Time, Use Time, and Run-time components. These components facilitate the development, sale, and re-use of zApps. This functionality and collaboration are enabled by a microservices architecture. To facilitate this architectural style the platform utilises a RESTful APIs, Docker containers and a message bus.
Please see our Global Architecture Specification (D4.3a) at https://www.zdmp.eu/outcomes