Wat is serialisatie?

Bij computerprogrammering is serialisatie het proces waarbij een datastructuur wordt opgeslagen die in het lokale geheugen is opgeslagen en er een stroom van bytes van wordt gemaakt die via een netwerk kan worden verzonden of op een schijf kan worden opgeslagen om door een ander programma opnieuw te worden samengesteld en gebruikt. Serialisatie kan ook worden gebruikt om de status van een object op te slaan, zodat het later opnieuw kan worden geladen door hetzelfde programma. Een complexer gebruik van deze functie is het oproepen van een RPC (Remote Procedure Call) , waarbij effectief een procedure op een andere computer via een netwerk wordt uitgevoerd. Dit mechanisme maakt ook de distributie van gegevensobjecten via een groot netwerksysteem mogelijk.

Bijna elke moderne computertaal heeft ofwel native ondersteuning voor serialisatie of een bibliotheek beschikbaar om deze functionaliteit toe te voegen. Wanneer een object wordt geserialiseerd, worden alle velden van het object afgevlakt. Dit proces staat ook bekend als leeglopen of marshalling. De gegevens worden omgezet in een eendimensionale rij bytes die naar elke uitvoerstroom kunnen worden geschreven. Het type uitvoerstroom doet er niet toe en kan een bestand of een netwerksocket zijn.

Nadat de gegevens zijn geserialiseerd en naar de uiteindelijke locatie zijn verzonden, begint het proces van deserialisatie.Het programma dat de bytestream leest, herstelt alle informatie en plaatst deze in een nieuwe instantie van het oorspronkelijke object, waardoor een exacte kopie. Het is belangrijk om te begrijpen dat alleen de gegevens die het object bevatte, worden geordend; het object en zijn methoden en andere implementatiegegevens niet. Dit betekent dat het programma dat de gegevens deserialiseert, een instantie van de klasse moet kunnen maken die oorspronkelijk geserialiseerd was.

Serialisatie van de datastructuur kan voor verschillende doeleinden worden gebruikt Objectinformatie kan op fysieke media worden opgeslagen, zodat de exacte status van elk object kan worden hersteld tot het punt waarop het was toen de uitvoering van het programma stopte. berichten verzenden naar een andere computer waardoor een externe procedure wordt uitgevoerd. Serialisatie kan zelfs worden gebruikt om statuswijzigingen in realtime-toepassingen efficiënt te vergelijken.

Voordat u objectserialisatie gebruikt, is het belangrijk om enkele van de beperkingen te begrijpen die het oplegt. Tijdens de overdracht van de stream kunnen deze gegevens worden vastgelegd en gedecodeerd, waardoor een beveiligingslek ontstaat. In de meeste talen kan de datanerialisatie-indeling worden geëxternaliseerd, zodat eigen codering mogelijk is helpen dit risico te verminderen.

Een andere factor om in gedachten te houden is dat serialisatie over het algemeen alleen werkt met objecten die exact hetzelfde zijn als het geserialiseerde object. Als er nieuwe velden of methoden aan een object worden toegevoegd , dan zal de handtekening van het object veranderen. Dit betekent dat het opgeslagen object een uitzondering zal veroorzaken en de gegevens onherstelbaar zullen worden totdat een instantie van het oorspronkelijke ongewijzigde object probeert het te herstellen.

ANDERE TALEN

heeft dit artikel jou geholpen? bedankt voor de feedback bedankt voor de feedback

Hoe kunnen we helpen? Hoe kunnen we helpen?