For those in the information systems department, the term “virtualization” is a common word to hear. It should be a very familiar word, especially if you are involved in building and maintaining servers. However, if you are an engineer in the manufacturing system, there may be people who say, “I often hear words, but I don’t know the details.” Let’s take a look at the relationship between production systems and edge computing virtualization, with definitions and specific examples of virtualization.
The definition of virtualization is “to hide and abstract the technical details of the system.”
In information systems, by abstracting system resources, it is possible to absorb differences in OS and hardware so that the same program can be run even on different OS and hardware. This is called ensuring portability. Also, when running multiple programs at the same time, try to run the programs without being aware of each other’s programs. Such techniques are very important for multitasking operating systems and servers that run multiple pieces of software on a single piece of hardware.
Especially in servers, system resources such as memory occupancy and CPU occupancy are often surplus, so it is conceivable to install multiple server software on one hardware to make effective use of resources. However, depending on the server software, the operating environment, users, and required security level may differ, and it may not be possible to operate on one piece of hardware at the same time. Therefore, there are many cases where virtualization software is installed on the server. By introducing virtualization software, different software can operate independently at the same time without being aware of each other’s operating conditions.
Virtualization, on the other hand, in production systems is a relatively new concept that has recently come into use. Basically, it is “hiding and abstracting the technical details of the system”, but it is a feature that these abstractions are performed by IT technology.
Specifically, it is to reproduce the production line of the factory on a computer and simulate the movement, yield, layout, etc. of the worker before actually constructing the production line. It also includes using IT equipment to control production lines and control production. So to speak, it can be said to “virtualize” the production line via IT equipment.
Benefits and specific examples of virtualization in information systems
The advantage of virtualization is, after all, the freedom of the system. For example, portability allows existing software to run on different operating systems and new hardware. It is also possible to run multiple programs at the same time without being aware of the behavior of each other’s programs. This can reduce the total cost of the system, which is often especially useful for servers.
On the other hand, the disadvantage is that the virtualization mechanism becomes complicated and slows down. Therefore, when building a system with virtualization in mind, sufficient hardware capacity is required.
Next, let’s look at a concrete example of virtualization technology.
MVS (Multiple Virtual Storage) is an OS for mainframes developed by IBM, but it is known as the fastest and most practical operating system in the world. Virtual memory is a technology that can be called “memory space virtualization,” and is an indispensable technology for multitasking OSs. For example, suppose multiple programs are running at the same time when virtual memory is not supported. In this environment, suppose program A writes data X to a memory space. Then what happens if program B writes data Y to the same memory space? After that, even if program A tries to read the data, it will read the data Y, and the data will not be consistent, so program A will not work properly.
Therefore, before program B writes data Y by MVS, data X is saved in an external storage device. It then returns the data X to memory before program A reads it. The principle of virtual memory is to perform this operation so that programs A and B are not aware of it. This allows the program to run independently, regardless of the behavior of other programs.
- Java VM
I think Java is often heard by people involved in embedded systems. Java is a programming language, but at the same time it has the aspect of a “virtual machine”. As a general rule, the Java compiler does not output native code (code that can be directly executed by the CPU), but outputs intermediate code. This intermediate code is a form of code that can be executed by the Java VM (Java Virtual Machine). Intermediate code is slower to execute than native code, but even if the OS and hardware configuration are different, if you prepare a Java VM for that OS and hardware, you can execute common intermediate code.
There are various types of OSs for embedded systems for different purposes, and it is often easier to develop a Java VM than to prepare a compiler for all OSs. JavaVM has the advantage of absorbing differences in OS and hardware and executing common intermediate code. For this reason, Java is often used in embedded systems.
“WINE” is software that runs Windows applications on Linux. It’s a type of emulator that goes between Linux and Windows applications and acts as a bridge between APIs (application programming interfaces). From the perspective of absorbing OS differences, this type of emulator can be said to be one of virtualization.
Production system virtualization and concrete examples
On the other hand, what are the benefits of virtualizing production systems?
By reproducing the production line of the factory on a computer and simulating the production line, it is possible to examine and improve various problems before actually starting production. It is also possible to improve production efficiency and save labor by managing production using IT equipment.
When virtualizing production systems, especially monitoring and production control using IT equipment, the problem is that the control protocols and data formats of manufacturing equipment are different. Manufacturing equipment manufacturers often employ optimal control protocols and data formats to maximize the performance of their manufacturing equipment. There is a movement to create these unified standards, but the current situation is that they have not been realized yet.
Therefore, it is conceivable to introduce an edge server between the control system of the manufacturing equipment and the cloud server and perform operations on the edge server to absorb these differences. That way, from the perspective of the cloud server, the data formats and control protocols all look the same. Therefore, such a system may also be called “virtualization” in the sense that it absorbs the differences between manufacturing equipment. Introducing edge computing for this purpose has the advantage of achieving both monitoring and speed of manufacturing equipment.
In addition, if the edge server itself is virtualized, multiple manufacturing devices can be monitored independently with a single piece of hardware for the edge server, and software can be added later. This will also reduce running costs.
Virtualization technology and edge computing
We looked at the significance and concrete examples of virtualization from both the information system and production systems. Differences in control protocols and data formats of manufacturing equipment on the production line are often issues in the field, but absorbing them by edge computing is one of the effective means. In addition, if the edge server itself is virtualized, it is possible to flexibly build a system around the production line. In addition, since the edge server can be retrofitted, it is possible to virtualize the factory step by step while making use of the existing equipment. Against this background, whether or not it supports virtualization is an important consideration when deploying an edge.