Hvad er serialisering?

Ved computerprogrammering er serialisering processen med at tage en datastruktur, der er gemt i lokal hukommelse og omdanne den til en strøm af bytes, der kan transmitteres over et netværk eller gemmes på en disk, der skal samles igen og bruges af et andet program. Serialisering kan også bruges til at gemme tilstanden til et objekt, så det kan genindlæses senere af det samme program.En mere kompleks anvendelse af denne funktion er at påkalde et RPC (Remote procedure call) , effektivt at køre en procedure på en anden computer gennem et netværk. Denne mekanisme muliggør også distribution af dataobjekter over et stort netværkssystem.

Næsten ethvert moderne computersprog har enten indbygget understøttelse af serialisering eller et bibliotek til rådighed for at tilføje denne funktionalitet. Når et objekt er serialiseret, udjævnes alle feltets objekter. Denne proces kaldes også deflatering. Dataene omdannes til en endimensional række bytes, der kan skrives til en hvilken som helst outputstrøm. Typen af ​​outputstrømmen betyder ikke noget og kan være en fil eller et netværksstik.

Når dataene er blevet serialiseret og sendt til deres endelige placering, begynder processen med deserialisering Programmet, der læser byte-strømmen, gendanner alle oplysninger og placerer dem i en ny forekomst af det originale objekt og skaber en nøjagtig kopi. Det er vigtigt at forstå, at kun de data, som genstanden havde, er marskalkede; objektet og dets metoder og andre implementeringsdata er ikke. Dette betyder, at programmet, der deserialiserer dataene, skal være i stand til at oprette en forekomst af klassen, der oprindeligt blev serialiseret.

Datastrukturs serialisering kan bruges til forskellige formål. Objektinformation kan gemmes på fysiske medier, så den nøjagtige tilstand af hvert objekt kan gendannes til det punkt, hvor det var, da programudførelsen blev stoppet. Det kan bruges til sende beskeder til en anden computer, der får en fjernprocedure til at køre. Serialisering kan endda bruges til effektivt at sammenligne tilstandsændringer i applikationer i realtid.

Inden man bruger objektserialisering, er det vigtigt at forstå nogle af de begrænsninger, det pålægger.Det vigtigste er, at processen med at konvertere et objekt til en byte-strøm, vil felter, der er erklæret som private, blive eksponeret Under transmission af strømmen kan disse data indfanges og dekodes, hvilket viser et sikkerhedshul. De fleste sprog tillader eksternalisering af dataserialiseringsformaterne, så proprietær kodning er mulig at hjælpe med at mindske denne risiko.

En anden faktor, der skal huskes, er, at serialisering generelt kun fungerer med objekter, der er nøjagtigt det samme som det serialiserede objekt. Hvis der tilføjes nye felter eller metoder til et objekt , så ændres objektets signatur. Dette vil betyde, at det gemte objekt forårsager en undtagelse, og dataene vil blive genoprettelige, indtil en forekomst af det oprindelige umodificerede objekt forsøger at gendanne det.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?