Skip to content

System Architecture#

The Critical Manufacturing MES architecture is organized into three distinct layers, as depicted below:

  • Persistence Layer - Responsible for securely storing and managing all system data required to maintain system state, operational statistics, and facilitate asynchronous communication between system components.
  • Application Stack Layer - Encompasses the core MES backend services, primarily operating within a Kubernetes cluster, with certain optional components requiring a Windows environment due to third-party dependencies.
  • Presentation Layer - Provides the HTML-based Graphical User Interface (GUI) that clients use to interact with and operate the system.

System Architecture

Persistence Layer#

The Critical Manufacturing MES relies on SQL Server and other external managed persistence components for data storage. The following subsections detail these components and their respective roles.

SQL Server#

SQL Server serves as the primary data store for three key MES databases:

  • Online (Online Database or OLTP) - The transactional database optimized for real-time data access and processing.
  • ODS (Operational Data Store) - A consolidated repository for historical data used for reporting and analysis via SQL Server Reporting Services. It also functions as a staging area for the data warehouse, enabling data transformation and preparation.
  • DWH (Data Warehouse) - The database dedicated to storing historical data for in-depth analytical purposes, including business intelligence, reporting, and decision-making. This data is structured and analyzed using SQL Server Analysis Services and consumed through reports defined in SQL Server Reporting Services.

ODS and DWH are deprecated

The ODS and DWH SQL Server databases are considered a deprecated feature from MES v11 onwards. Their functionalities are now superseded by a new set of high-performance components, namely: Kafka, ClickHouse, Simultsoft Reports, and other CM Data processing tools.

External Persistence Components#

Beyond SQL Server, the setup of Critical Manufacturing MES involves the orchestration of several key external components:

  • ClickHouse
  • Kafka
  • RabbitMQ
  • S3

Let's dive into the technical functionalities of these external services within the Critical Manufacturing MES architecture.

ClickHouse#

ClickHouse is a high-performance columnar database management system designed for blazing-fast analytical queries on large datasets. Critical Manufacturing MES generates a substantial volume of real-time operational data, and ClickHouse enables real-time analysis, the generation of insightful reports, and immediate visibility into manufacturing processes.

See more details of its usage on:

Kafka#

Kafka functions as a distributed stream processing platform and publish-subscribe messaging system, acting as a central nervous system for data within the MES. Its distributed commit log provides an ordered, immutable record of data streams, ensuring data durability and allowing multiple MES components to access the same real-time information. This decoupled architecture separates data producers from consumers, enhancing system resilience and scalability for the continuous flow of manufacturing data.

See more details of its usage on:

RabbitMQ#

While Kafka excels at high-throughput, continuous data streams, RabbitMQ provides reliable and flexible message queuing for task distribution and inter-service communication within Critical Manufacturing MES. It enables asynchronous communication and the reliable distribution of tasks between different components.

As an Advanced Message Queuing Protocol (AMQP) broker, RabbitMQ facilitates this reliable inter-service communication. Its message queuing with delivery guarantees ensures that messages related to task execution and data exchange between MES modules are reliably delivered, even in the presence of network issues. The support for various messaging patterns (e.g., direct, fanout, topic) provides the flexibility needed for diverse communication requirements within the CM MES architecture, enabling efficient asynchronous processing and task management.

See more details of its usage on:

S3 (or an S3-compatible Object Storage)#

S3 (Simple Storage Service) or a compatible object storage offers scalable and durable object-based storage for unstructured binary data. Within Critical Manufacturing MES, it serves as a central repository for various types of unstructured data, such as audit trails, document attachments, and images.

See more details of its usage on:

Application Layer#

This layer encompasses all the backend services of your MES instance. Primarily operating within a Kubernetes cluster, this layer consists of the following component groups:

Environment MES Stack#

An MES environment is deployed as a Kubernetes stack, which can include the following MES component groups:

  • Core Stack Components - The essential MES backend components responsible for the majority of system functionalities (check MES Stack Operations Guide for more details).
  • Optional Stack Components - A set of optional MES components that may be included in your stack depending on your license and setup (e.g., Connect IoT Manager, ECAD and Printing Services).
  • Data Platform Components - The components that constitute the CM MES Data Platform framework. (The Data Platform framework provides a set of tools and services for data ingestion, processing, and analysis within the MES.)

The setup of the MES stack is managed through CM DevOps Center ⧉.

Windows Optional Services#

Certain CM MES backend services have dependencies on third-party components that necessitate their execution as Windows Services. These include:

  • Connect IoT Managers - While Connect IoT Managers can run as containers, running them as a Windows Service on a bare metal or virtual machine may be required if you have driver dependencies specific to the Windows operating system.
  • Printing Service - Although CM MES supports the CUPS print service (which can run in a container), the printing service may need to be installed on Windows if you have printers with Windows-only drivers.
  • ECAD - The Electronic CAD (ECAD) interface has dependencies on third-party components, namely the PCBI Floating Server, which requires a Windows machine.

Other CM Stacks#

For each infrastructure used for CM MES installations, you can optionally install the following stacks to support system installation or monitoring:

  • Infrastructure Agent Stack - A collection of components designed to automatically manage your infrastructure directly from CM DevOps Center.
  • Observability Stack - A collection of components that provide access to observability data generated by each CM MES Environment container.

Presentation Layer#

The CM MES GUI is built using the Angular framework for its presentation layer. Although MES GUI target browsers running on desktop machines, it also supports other mobile devices compatible with Chromium Engine.