Skip to main content

Wat is serialisatie?

In computerprogrammering is serialisatie het proces van het nemen van een gegevensstructuur die is opgeslagen in lokaal geheugen en het om te zetten in een stroom van bytes die over een netwerk kan worden verzonden of op een schijf kan worden opgeslagen om opnieuw te worden samengesteld en door een ander programma te worden gebruikt en te worden gebruikt. Serialisatie kan ook worden gebruikt om de status van een object op te slaan, zodat het later kan worden herladen door hetzelfde programma. Een complexer gebruik van deze functie is om een externe procedure -oproep (RPC) op te roepen, effectief een procedure uitvoeren op een andere computer via een netwerk. Dit mechanisme maakt ook de verdeling van gegevensobjecten mogelijk over een groot netwerksysteem.

Bijna elke moderne computertaal heeft native ondersteuning voor serialisatie of eenBibliotheek 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 deflating of marshalling. De gegevens worden veranderd inEen eendimensionale rij bytes die naar elke uitvoerstroom kan worden geschreven.Het type uitvoerstroom doet er niet toe en kan een bestand of een netwerkaansluiting zijn.

Zodra de gegevens zijn geserialiseerd en naar de uiteindelijke locatie zijn verzonden, begint het proces van deserialisatie. Het programma dat leestDe byte -stream herstelt alle informatie en plaatst deze in een nieuw exemplaar van het oorspronkelijke object, waardoor een exacte kopie wordt gecreëerd. Het is belangrijk om te begrijpen dat alleen de gegevens die het object bevatte, worden opgesteld;Het object en de methoden en andere implementatiegegevens zijn dat niet. Dit betekent dat het programma dat de gegevens deserialiseert, een exemplaar moet kunnen maken van de klasse die oorspronkelijk is geserialiseerd.

Gegevensstructuur Serialisatie kan worden gebruiktVoor verschillende doeleinden kan objectinformatie worden opgeslagen op fysieke media, zodat de exacte status van elk object kan worden hersteld tot het punt dat het was wanneer de uitvoering van het programma wordt gestopt. Het kan worden gebruikt om berichten naar een andere computer te verzenden danzal ervoor zorgen dat een externe procedure wordt uitgevoerd. Serialisatie kan zelfs worden gebruikt om statusveranderingen in realtime toepassingen efficiënt te vergelijken.

Voor het gebruik van objectserialisatie is het belangrijk om enkele van de beperkingen te begrijpen die het oplegt. De meesteBelangrijk is dat, door het proces van het omzetten van een object in een byte -stream, velden die als privé worden verklaard, worden blootgesteld. Tijdens de overdracht van de stroom kunnen deze gegevens worden vastgelegd en gedecodeerd, waardoor eenBeveiligingsgat. De meeste sms'enAGE's zorgen voor de externalisering van de gegevensserialisatie -formaten, zodat eigen codering mogelijk is om dit risico te helpen verminderen.

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