Ho deciso di scrivere questo post quando ho letto
un post sul un blog di Microsoft che il rilascio contemporaneo
della nuova versione (8.1) delle due piattaforme: Windows
Desktop e Windows Embedded. Questo post,
come l'originale in Inglese citato prima, presenta le
caratteristiche tecniche più significative di questo nuovo rilascio
soprattutto per ciò che riguarda Windows Embedded 8.1
Industry. Questo prodotto è:
- Il discendente della linea di prodotti POS (Point of Services)
della famiglia embedded:
o Windows Embedded for Point of Services
(WEPOS) al tempo di Windows XP embedded;
o Windows Embedded POSReady 7 al tempo di
Windows Embedded Standard 7;
o Windows Embedded 8 Industry con il rilascio
di Windows Embedded 8 Standard.
- La versione embedded più aggiornata al mondo Windows
Desktop (che chiameremo Big Windows).
Allineamento a
Big Windows
E' importante mettere in evidenza che mentre nelle precedenti
release, compresa Windows Embedded 8 Standard la
versione "Embedded" è stata rilasciata con un certo ritardo
rispetto alla versione "Desktop", la versione 8.1 "Embedded" è
allineata a quella "Desktop" non soltanto a livello di rilascio, ma
soprattutto a livello di codice. Windows Embedded
8.1 è basata completamente sulla versione Client
di Windows con l'aggiunta delle funzionalità embedded.
Questo allineamento copre diversi livelli:
1. La parte vicina all'hardware e i layer del sistema operativo
non sono mai state così allineati offrendo una maggiore robustezza
per tutti i driver e per i vari chipset.
2. La parte di layer intermedi e di servizi ha subito
un'ulteriore integrazione, basti pensare agli strati di
Active Directory, di sviluppo, di manutenzione e
di gestione.
3. La parte che riguarda le applicazioni pur non rinunciando al
nuovo look (modern apps) ha fornito delle API
specifiche per le periferiche del mondo industriale.
4. L'allineamento con le soluzioni Cloud ha
portato a definire al meglio le interazioni con le base-dati
centralizzate realizzando pienamente l'obiettivo degli
intelligent systems.
Cosa c'è di
aggiornato?
Ci sono numerosi ambiti di Windows Embedded che sono stati
rinnovati in questa versione 8.1:
Windows 8 Application Launcher
Windows Embedded, per sua definizione, viene utilizzato in
scenari specifici dove l'utilizzatore non sa e non vuole avere
contatti con il sistema operativo. Ad esempio POS, chioschi,
digital signage, HMI, ecc… In questi scenari serve che il
dispositivo sia subito attivo sull'applicazione senza dover passare
dal sistema operativo e che il tutto spesso sia ottenuto senza
l'intervento di nessuno. Windows 8 Application
Launcher è una funzionalità tipica dell'ambiente
embedded che permette la gestione della "shell di sistema" quando
questa è un applicazione di nuova tecnologia (modern app) così come
fa "Shell Lancher" per lo scenario classico. Windows 8
Application Launcher è in grado sia di determinare
quale applicazione deve essere lanciata all'avvio, sia come
comportarsi quando questa si conclude con un certo codice di uscita
lasciando configurare se il sistema deve rilanciarla, deve far
ripartire il device, o eseguire un logout, ecc…
I Filtri sui gesti
(Gesture Filter)
Con l'avvento di Windows 8 l'uso delle funzionalità legate alla
possibilità di "toccare" il video è diventato normale. Sui nuovi
tablet e sui dispositivi muniti di "touch screen" ben presto
l'utente si abitua ai nuovi gesti e li adopera con
disinvoltura.
Questi "gesti" possono attivare delle "azioni" effettuate
direttamente dal sistema operativo, oppure è il sistema che, in
funzione di "gesti" predefiniti, genera degli eventi che possono
essere utilizzati direttamente dagli applicativi.
Nell'ambiente embedded può essere molto interessante poter
filtrare questi gesti in modo che l'applicazione (o le
applicazioni) per cui è stato progettato il dispositivo non venga
disturbata da azioni scaturite da gesti interpretati dal sistema
operativo, ma che, allo stesso tempo, possano arrivare
all'applicazione quegli eventi che essa aspetta. La novità portata
da 8.1 è legata alla possibilità di modificare la configurazione
del filtro a "run-time" intervenendo sulla classe "GF_Config" di
Windows Management Instrumentation (WMI) o da power-shell o da
applicativo.
Per maggiori dettagli sui filtri sui gesti della versione
Windows Embedded 8 Standard, fate riferimento ai post del mio blog
o al mio articolo MSDN (in italiano):
http://msdn.microsoft.com/it-it/library/dn175732.aspx
Il filtro per la
tastiera (Keyboard Filter)
Anche se molte soluzioni embedded hanno delle tastiere
personalizzate o addirittura NON prevedono l'uso di una tastiera, è
importante prevedere un filtro che non permetta all'utente di
arrivare ad interagire con le parti di Sistema che vogliamo
mantenere inalterate. Bloccando delle combinazioni di tasti è
possibile differenziare per utenti e proteggere la nostra
applicazioni da interventi non voluti come ad esempio Ctrl-Alt-Del
o Alt-F4. Questa funzionalità, presentata nella versione Windows
Embedded Standard 7, è stata migliorata e consolidata in questa
versione ad esempio con la gestione automatica del cambiamento di
layout.
Per maggiori dettagli sul filtro per la tastiera fate
riferimento al mio post dedicato o al mio articolo MSDN (in
italiano) sulla versione WES7:
http://msdn.microsoft.com/it-it/library/hh925629.aspx
Il filtro per i
dischi (Unified Write Filter)
Un elemento importante per i dispositivi embedded è quello di
poter proteggere il disco di sistema da interventi non voluti o non
necessari. La soluzione proposta fin dai tempi di XP embedded è
stata quella di avere dei filtri di scrittura che, appoggiandosi ad
un area di overlay in memoria, non modificassero fisicamente il
disco di sistema, ma memorizzassero i cambiamenti su questo overlay
senza che l'applicazione che utilizza il disco si accorga della sua
esistenza. Dal tempo di XP embedded sono state rilasciate svariate
soluzioni che sono state integrate in quello che va sotto il nome
di "Unified Write Filter"
(filtro-UWF) che permette molte se non
tutte le funzionalità dei vari filtri rilasciati nel tempo:
RAM-based overlay, HORM (Hibernate Once Resume Many), esclusioni
dal filtro di File, cartelle e chiavi di Registro. Tra le più
recenti funzionalità quella di integrazione fra le funzionalità di
aggiornamento e manutenzione del sistema ed il
filtro-UWF, di cui riporto semplicemente
la lista:
· Possibilità di abilitare gli aggiornamenti di Windows su un
volume di Sistema protetto con il
filtro-UWF.
· Possibilità di organizzare lo script degli aggiornamenti di
Windows su un volume di Sistema protetto con il
filtro-UWF.
· Possibilità di abilitare l'aggiornamento dell'Antimalware su
un volume di Sistema protetto con il
filtro-UWF.
· Possibilità di abilitare gli aggiornamenti proprietari su un
volume di Sistema protetto con il
filtro-UWF.
· Possibilità di personalizzare la schermata che compare durante
l'aggiornamento.
Cosa c'è di nuovo?
Con questa release sono state anche introdotte altre
funzionalità di cui riporto di seguito quelle più interessanti per
l'ambiente embedded.
Accesso
predefinito (Assigned Access)
Questa funzionalità permette di configurare il Sistema in modo
che un utente definito sia legato ad una singola applicazione
definita. Tutto ciò viene realizzato coordinando i vari filtri sui
gesti, sulla tastiera, sull'hardware e sulle notifiche di sistema
(System Toast Notification), ma in una maniera più semplice e
diretta: quando l'utente si presenta al sistema, questi attiva
direttamente la "sua" applicazione da cui l'utente non può
"sbordare". L'argomento comunque è più complesso e merita un post
dedicato per esplorare tutte le interazioni tra questa funzionalità
e gli altri filtri di cui abbiamo accennato.
Breakout
Mode
Quando un dispositivo embedded è "blindato" (uso questo termine
al posto della traduzione letterale: "bloccato" per evidenziare che
ci si riferisce ad una "protezione del sistema" che abbiamo
ricercato più che ad uno stato di sistema non voluto), sarebbe di
grande utilità poter avere un accesso "privilegiato" al sistema per
fini di configurazione e di manutenzione. Breakout
Mode è una funzionalità che offre proprio questo
accesso mediante una combinazione di tasti NON convenzionale.
Filtro USB (USB
Filter)
La diffusione dei dispositive di massa USB sempre più di ridotte
dimensioni e la loro sempre crescente capacità di memorizzazione ha
portato con sé un aumento dei rischi di contaminazione da parte di
applicazioni non desiderate. Nell'ambiente embedded questo rischio
è particolarmente sentito poiché, dopo aver lavorato tanto per
"blindare" il proprio sistema operativo, la porta USB può essere un
semplice canale di accesso per eseguire programmi non previsti e/o
modificare configurazioni di sistema. Fino ad ora per limitare
questa possibilità si ricorreva a ciò che veniva chiamato
"hardening": cioè si interveniva sulle "policy" di configurazione
delle porte USB per creare delle liste di "chiavette" (device USB)
autorizzate e/o proibite. Con questo nuovo Filtro
USB si ottengono gli stessi risultati, ma si
interviene molto più semplicemente con delle classi di funzioni
Windows Management Instrumentation (WMI) utilizzabili via
Power-shell o mediante chiamate all'interno di applicativi. Su
queste classi si può intervenire a livello generale (Class-ID), di
venditore (Vendor-ID) o di prodotto (product-ID) indifferentemente
su USB 1.1, 2.0 e 3.0.
Filtro sulle
Notifiche (System Toast Notification Filter)
Per tutti i dispositivi embedded, avere delle notifiche di
qualsiasi tipo che compaiono a video o, peggio, che attendono una
conferma da parte dell'utente, è sempre stato un problema.
Utilizzando il filtro sui messaggi di sistema (Dialog Filter) si
possono bloccare i classici pop-up, e le finestre di altri
applicativi, ma non si riescono a bloccare le notifiche di tipo
toast (System Toast Notification). Questo filtro sulle notifiche è
in grado di farlo eliminando così messaggi del tipo: "batteria
quasi scarica" o "persa connessione di rete".
Lockdown Baseline
Tool
Lockdown Baseline tool (LBT) serve a recuperare dal sistema
tutte le configurazioni che riguardano la "blindatura" e il
"branding" per poterle poi distribuire sugli altri dispositivi in
sede di produzione utilizzando System Center Configuration Manager.
In questo modo si può creare un'immagine "MASTER" del nostro
sistema, clonarla su tutti gli altri dispositivi da produrre ed
"applicare" ad ognuna le configurazioni recuperate in precedenza.
Questo tool, infatti, può raccogliere le configurazioni riguardanti
le funzionalità di filtro tipiche della soluzione embedded: sui
dischi, sui messaggi, sulla tastiera, sulle notifiche, sulle porte
USB e quelle relative al branding ed alla personalizzazione del
sistema: Windows 8 Application Launcher e/o Shell Launcher.
Conclusioni
Questa release "8.1 Industry", della famiglia
Windows Embedded, è allineata alle funzionalità della
corrispondente versione di Big Windows integrando e perfezionando
le funzionalità tipiche delle soluzioni embedded: blindatura
(Lockdown) e branding. Non si richiede più l'apprendimento di nuovi
tool di sviluppo come per Windows Embedded 8
Standard, ma viene reso noto come intervenire "a build
costruita" per terminare la configurazione delle varie
funzionalità.
Scaricate la versione di valutazione dal sito Microsoft:
Windows Embedded 8.1 Industry e cominciate a provarla, io ho
già fatto un po' di prove e sono a disposizione per aiutarvi in
caso di dubbi e/o perplessità.