SCM Group is a leader in the production of machinery for processing various materials: wood, metals, plastic, glass. It coordinates, supports and develops a system of industrial excellence, articulated in three large, highly specialized production poles, with over 4,000 employees and industries that use SCM machinery located on five continents.
SCM Group turned to us to put on the ground an ambitious project in the Industry 4.0 field: creating a native cloud platform that connects SCM machinery to the cloud, enabling their remote control and management.
Opportunities and impact of Industry 4.0
The Industry 4.0 paradigm has been for some years at the center of the economic transformation in Italy and in the world: it is a process that stems from the so-called fourth industrial revolution and that is leading to automated and totally interconnected industrial production. The new digital technologies will have a profound impact on various lines of development:
- the use of data, computing power and connectivity: big data, Internet of Things and cloud computing for the centralization of information and its storage;
- analytics: once data is collected, value must be derived from it. Today, only 1% of the data collected is used by companies, which could instead gain advantages from machine learning, i.e. machines that improve their performance by “learning” from the data they collect and analyze;
- interaction between humans and machine, involving touch interfaces, which are becoming increasingly widespread, and augmented reality.
From discovery to platform development
Flowing contributed to the SCM project bringing its knowledge in the areas of organization and project management, development and Internet of Things architectures.
The first step was the one with which all our collaborations start: a discovery workshop, which allows to align all stakeholders on the objectives and their respective visions, constraints and desires and their impact on the project to be implemented. In this workshop, in particular, we focused on the part of collecting processing data produced by the machines, for example: waiting time, active time and duration of processing. An eventstorming session clarified what was the chain of events within the system for this particular flow, providing an end-to-end view and giving a direction to subsequent developments.
From the discovery, we obtained a roadmap and identified macro activities: each of these activities was then refined by subsequent discussions with the development team and the product owner, to arrive at a set of implementable features.
The development was carried out using SCRUM as a reference methodology – with bi-weekly iterations – by SCM’s digital service team, which Flowing accelerated by participating with some of our experts on microservices and Internet of Things architectures.
Given the inherent complexity of the platform, we opted for a microservices architecture, which allowed us to:
- choose the most suitable technology and approach depending on the service: some services were implemented via nodejs, others via Java Spring. For a microservice with complex domain logic, we chose to use an architecture based on Event Sourcing.
- scale individual services depending on the load;
- deploy microservices independently.
This approach allowed us to parallelize developments, enabling multiple teams to work on the same codebase.
On the machine side, a gateway developed ad hoc has the task of interfacing the machine with the cloud: on the one hand it collects the production data of the machine, on the other hand it forwards commands to it. The protocol chosen for communication is MQTT, widely used in IoT systems.
Microservices communicate through two modes:
- ascynchronous, by exchanging messages on different queues;
- synchronous, with HTTP calls.
The applications in the hands of end users are single page applications built with different technologies, such as React and Vue. They don’t call directly the microservices but an orchestrator (backend for frontend) that for each call has the task to understand which microservices are involved, make the calls, manipulate the results to make them usable by the application.
The advantages of the cloud platform
Since the launch of the platform, more and more customers have started to use it, thus providing an initial positive feedback regarding its ability to cover some of the customers’ needs: collect in a single point all the essential information on their machine park, providing a view that can go from the general to the particular of a single machine.
This step, which at first glance may even seem trivial, opens up a series of scenarios of great impact:
- It enables optimization and efficiency policies, allowing better planning and use of resources;
- it allows to intervene proactively in the maintenance of machines, anticipating potential problems causing forced stops to the machines themselves;
- it allows to intercept unforeseen events more quickly, preventing them from escalating in terms of severity.