Per chi si occupa di sistemi informativi, il termine "virtualizzazione" è una parola comune. Dovrebbe essere una parola molto familiare, soprattutto per chi si occupa di costruzione e manutenzione di server. Tuttavia, se siete un ingegnere del sistema produttivo, ci possono essere persone che dicono: "Sento spesso le parole, ma non ne conosco i dettagli". Diamo un'occhiata al rapporto tra sistemi di produzione e edge computing virtualizzazione, con definizioni ed esempi specifici di virtualizzazione.
Definizione di virtualizzazione
La definizione di virtualizzazione è "nascondere e astrarre i dettagli tecnici del sistema".
Nei sistemi informativi, astraendo le risorse di sistema, è possibile assorbire le differenze di sistema operativo e hardware, in modo che lo stesso programma possa essere eseguito anche su sistemi operativi e hardware diversi. Questo si chiama garantire la portabilità. Inoltre, quando si eseguono più programmi contemporaneamente, si cerca di eseguire i programmi senza essere a conoscenza dei programmi dell'altro. Queste tecniche sono molto importanti per i sistemi operativi multitasking e per i server che eseguono più software su un unico hardware.
Soprattutto nei server, le risorse di sistema, come l'occupazione della memoria e della CPU, sono spesso in eccesso, per cui è possibile installare più software server su un unico hardware per utilizzare in modo efficace le risorse. Tuttavia, a seconda del software del server, l'ambiente operativo, gli utenti e il livello di sicurezza richiesto possono differire e potrebbe non essere possibile operare contemporaneamente su un unico hardware. Per questo motivo, in molti casi il software di virtualizzazione viene installato sul server. Con l'introduzione del software di virtualizzazione, i diversi software possono operare contemporaneamente in modo indipendente senza essere a conoscenza delle condizioni operative degli altri.
La virtualizzazione, d'altra parte, nei sistemi di produzione è un concetto relativamente nuovo, entrato in uso di recente. Fondamentalmente, si tratta di "nascondere e astrarre i dettagli tecnici del sistema", ma la caratteristica è che queste astrazioni sono eseguite dalla tecnologia informatica.
Nello specifico, si tratta di riprodurre la linea di produzione della fabbrica su un computer e di simulare il movimento, la resa, la disposizione, ecc. dei lavoratori prima di costruire effettivamente la linea di produzione. Include anche l'uso di apparecchiature informatiche per controllare le linee di produzione e la produzione. Per così dire, si può dire che "virtualizza" la linea di produzione attraverso le apparecchiature informatiche.
Vantaggi ed esempi specifici di virtualizzazione nei sistemi informativi
Il vantaggio della virtualizzazione è, dopo tutto, la libertà del sistema. Ad esempio, la portabilità consente di eseguire il software esistente su sistemi operativi diversi e su nuovo hardware. È anche possibile eseguire più programmi contemporaneamente senza essere a conoscenza del comportamento dei rispettivi programmi. Ciò può ridurre il costo totale del sistema, il che è spesso particolarmente utile per i server.
D'altra parte, lo svantaggio è che il meccanismo di virtualizzazione diventa complicato e rallenta. Pertanto, quando si costruisce un sistema con la virtualizzazione in mente, è necessaria una capacità hardware sufficiente.
Vediamo ora un esempio concreto di tecnologia di virtualizzazione.
- MVS
MVS (Multiple Virtual Storage) è un sistema operativo per mainframe sviluppato da IBM, ma è conosciuto come il sistema operativo più veloce e pratico al mondo. La memoria virtuale è una tecnologia che può essere definita "virtualizzazione dello spazio di memoria" ed è una tecnologia indispensabile per i sistemi operativi multitasking. Ad esempio, supponiamo che più programmi siano in esecuzione contemporaneamente quando la memoria virtuale non è supportata. In questo ambiente, supponiamo che il programma A scriva i dati X in uno spazio di memoria. Cosa succede se il programma B scrive i dati Y nello stesso spazio di memoria? In questo caso, anche se il programma A cerca di leggere i dati, leggerà i dati Y e i dati non saranno coerenti, quindi il programma A non funzionerà correttamente.
Pertanto, prima che il programma B scriva i dati Y con MVS, i dati X vengono salvati in un dispositivo di memoria esterno. Quindi i dati X vengono riportati in memoria prima che il programma A li legga. Il principio della memoria virtuale consiste nell'eseguire questa operazione in modo che i programmi A e B non ne siano a conoscenza. Ciò consente al programma di funzionare in modo indipendente, indipendentemente dal comportamento degli altri programmi.
- Java VM
Credo che Java sia spesso sentito da chi si occupa di sistemi embedded. Java è un linguaggio di programmazione, ma allo stesso tempo ha l'aspetto di una "macchina virtuale". Di norma, il compilatore Java non produce codice nativo (codice che può essere eseguito direttamente dalla CPU), ma codice intermedio. Questo codice intermedio è una forma di codice che può essere eseguito dalla Java VM (Java Virtual Machine). L'esecuzione del codice intermedio è più lenta di quella del codice nativo, ma anche se il sistema operativo e la configurazione hardware sono diversi, se si prepara una Java VM per quel sistema operativo e quell'hardware, è possibile eseguire il codice intermedio comune.
Esistono vari tipi di SO per i sistemi embedded per scopi diversi e spesso è più facile sviluppare una Java VM che preparare un compilatore per tutti i SO. La JavaVM ha il vantaggio di assorbire le differenze di OS e hardware e di eseguire codice intermedio comune. Per questo motivo, Java viene spesso utilizzato nei sistemi embedded.
- WINE
"WINE" è un software che esegue applicazioni Windows su Linux. È un tipo di emulatore che si inserisce tra le applicazioni Linux e Windows e fa da ponte tra le API (interfacce di programmazione delle applicazioni). Dal punto di vista dell'assorbimento delle differenze tra i sistemi operativi, questo tipo di emulatore può essere definito un tipo di virtualizzazione.
Virtualizzazione del sistema di produzione ed esempi concreti
D'altra parte, quali sono i vantaggi della virtualizzazione dei sistemi di produzione?
Riproducendo la linea di produzione della fabbrica su un computer e simulando la linea di produzione, è possibile esaminare e migliorare vari problemi prima di avviare effettivamente la produzione. È inoltre possibile migliorare l'efficienza della produzione e risparmiare manodopera gestendo la produzione con apparecchiature informatiche.
Quando si virtualizzano i sistemi di produzione, in particolare il monitoraggio e il controllo della produzione utilizzando apparecchiature informatiche, il problema è che i protocolli di controllo e i formati dei dati delle apparecchiature di produzione sono diversi. I produttori di apparecchiature di produzione spesso utilizzano protocolli di controllo e formati di dati ottimali per massimizzare le prestazioni delle loro apparecchiature di produzione. Esiste un movimento per creare questi standard unificati, ma la situazione attuale è che non sono ancora stati realizzati.
Pertanto, è possibile introdurre un server edge tra il sistema di controllo dell'apparecchiatura di produzione e il server cloud ed eseguire operazioni sul server edge per assorbire queste differenze. In questo modo, dal punto di vista del server cloud , i formati dei dati e i protocolli di controllo appaiono tutti uguali. Pertanto, un sistema di questo tipo può anche essere definito "virtualizzazione", nel senso che assorbe le differenze tra le apparecchiature di produzione. L'introduzione edge computing a questo scopo ha il vantaggio di ottenere sia il monitoraggio che la velocità delle apparecchiature di produzione.
Inoltre, se il server edge è virtualizzato, è possibile monitorare più dispositivi di produzione in modo indipendente con un unico pezzo di hardware per il server edge e aggiungere il software in un secondo momento. In questo modo si riducono anche i costi di gestione.
Tecnologia di virtualizzazione e edge computing
Abbiamo esaminato il significato e gli esempi concreti di virtualizzazione sia dal punto di vista del sistema informativo che dei sistemi di produzione. Le differenze nei protocolli di controllo e nei formati dei dati delle apparecchiature di produzione sulla linea di produzione sono spesso un problema sul campo, ma il loro assorbimento da parte di edge computing è uno dei mezzi più efficaci. Inoltre, se il server edge è virtualizzato, è possibile costruire un sistema flessibile attorno alla linea di produzione. Inoltre, poiché il server edge può essere adattato, è possibile virtualizzare la fabbrica passo dopo passo, sfruttando le attrezzature esistenti. In questo contesto, il supporto o meno della virtualizzazione è una considerazione importante per l'implementazione di edge.