Skip to main content

Hva er serialisering?

I dataprogrammering er serialisering prosessen med å ta en datastruktur som er lagret i lokalt minne og gjøre den om til en strøm av byte som kan overføres over et nettverk eller lagres på en disk for å bli satt sammen og brukes av et annet program. Serialisering kan også brukes til å lagre tilstanden til et objekt slik at den kan lastes på nytt av det samme programmet. En mer kompleks bruk av denne funksjonen er å påkalle en ekstern prosedyreanrop (RPC), effektivt å kjøre en prosedyre på en annen datamaskin gjennom et nettverk. Denne mekanismen gir også mulighet for distribusjon av dataobjekter over et stort nettverkssystem.

Nesten hvert moderne dataspråk har enten naturlig støtte for serialisering eller en enBibliotek tilgjengelig for å legge til denne funksjonaliteten. Når et objekt er serialisert, blir alle feltene til objektet flatet. Denne prosessen er også kjent som å deflate eller marshalling. Dataene blir omgjort til tilEn endimensjonal rad med byte som kan skrives til enhver utgangsstrøm.Typen av utgangsstrømmen spiller ingen rolle og kan være en fil eller en nettverkssokkel.

Når dataene er serialisert og sendt til den endelige plasseringen, begynner deserialiseringsprosessen. Programmet som leserByte -strømmen gjenoppretter all informasjonen og plasserer den i en ny forekomst av det opprinnelige objektet, og oppretter en eksakt kopi. Det er viktig å forstå at bare dataene som objektet holdt er marskalket;Objektet og dets metoder og andre implementeringsdata er ikke. Dette betyr at programmet som deserialiserer dataene må kunne lage en forekomst av klassen som opprinnelig ble serialisert.

Datastruktur serialisering kan brukesfor en rekke formål. Objektinformasjon kan lagres på fysiske medier slik at den nøyaktige tilstanden til hvert objekt kan gjenopprettes til det punktet det var når programutførelsen stoppet. Den kan brukes til å sende meldinger til en annen datamaskin somvil føre til at en ekstern prosedyre kjøres. Serialisering kan til og med brukes til effektivtViktig er at gjennom prosessen med å konvertere et objekt til en byte -strøm, vil felt som blir erklært som private bli utsatt. Under overføringen av strømmen kan disse dataene fanges og dekodes, og presentere ensikkerhetshull. De fleste språkAlder tillater eksternalisering av dataserialiseringsformatene, slik at proprietær koding er mulig å bidra til å dempe denne risikoen.

En annen faktor å huske på er at serialisering generelt vil jobbe med objekter som somer nøyaktig det samme som det serialiserte objektet. Hvis nye felt eller metoder legges til et objekt, vil signaturen til objektet endre seg. Dette vil bety at det lagrede objektet vilforårsake et unntak og dataene vil bli uopprettelig inntil en forekomst av det opprinnelige umodifiserte objektet prøver å gjenopprette dem.