Contesto
Lavoro nel settore energetico con dispositivi che inviano dati in chiaro su un supporto, che alla fine finisce su un computer. I dati sono lì decodificati e archiviati in file XML.
Un file XML corrente che memorizza i dati per un dispositivo è simile al momento:
<Device>
<Address>1234</Address>
<SomeOtherParam />
<Data>
<Record>
<Key name="Energy" ... />
<Value unit="kWh">42.56</Value>
</Record>
<Record>
<Key name="Volume" ... />
<Value unit="m3">2.317</Value>
</Record>
...
</Data>
</Device>
Cambia
Ora, con l'emergere dell'IoT, i nuovi dispositivi devono inviare alcune parti dei loro dati crittografati (alcune parti possono comunque rimanere non criptate). Quando i dati raggiungono il computer, è possibile (ma non obbligatorio) che i dati siano ancora crittografati e non possano essere decifrati in questo momento. Tuttavia, ho ancora bisogno di salvarlo in XML per un'ulteriore decrittografia, ma la struttura XML effettiva non è stata progettata per archiviare dati crittografati.
Soluzioni immaginate
Soluzione 1
<Data>
<Record>
<Key name="Volume" ... />
<Value unit="m3">2.317</Value>
</Record>
...
<EncryptedRecords>4F2B8678...</EncryptedRecords>
</Data>
Soluzione 2
<Data>
<Decrypted>
<Record>
<Key name="Volume" ... />
<Value unit="m3">2.317</Value>
</Record>
...
</Decrypted>
<Encrypted>
???
</Encrypted>
</Data>
Soluzione 3
<Data>
<Record>
<Key name="Volume" ... />
<Value unit="m3">2.317</Value>
</Record>
...
</Data>
<EncryptedData>
???
</EncryptedData>
Pensieri personali
- Soluzione 1: potrebbe fornire una soluzione di lavoro minimalista
- Soluzione 2: potrebbe interrompere la compatibilità con le versioni precedenti
- Soluzione 3: cosa dovrebbe sostituire
???
?
Domanda
Quale sarebbe l'evoluzione ideale della struttura XML per memorizzare i dati crittografati (tieni presente che devo mantenere la compatibilità con le versioni precedenti)?
Ho anche scoperto che il W3C ha già pubblicato una raccomandazione molto tempo fa. Dovrei attenermi a questo? Fondamentalmente, significa che ???
di soluzione 3 potrebbe essere riempito con una struttura raccomandata.
Precisione: questi file XML sono manipolati con JAXB. Se JAXB ha qualche facilitazione con la crittografia, potrebbe essere un vantaggio se la nuova struttura XML è direttamente supportata.