Vad är serialisering?
Vid datorprogrammering är serialisering processen att ta en datastruktur lagrad i lokalt minne och förvandla den till en ström av byte som kan överföras över ett nätverk eller lagras på en disk som ska återmonteras och användas av ett annat program. Serier kan också användas för att rädda ett objekt för att spara ett objekt så att det kan laddas om senare av samma program. procedure on another computer through a network. This mechanism also allows for the distribution of data objects over a large networked system.
Nearly every modern computer language has either native support for serialization or a library available to add this functionality. When an object is serialized, all of the fields of the object are flattened. This process also is known as deflating or marshalling. The data is turned into a one-dimensional row of bytes that can be written to any outputström. Typen av utgångsström spelar ingen roll och kan vara en fil eller ett nätverksuttag.
När uppgifterna har serialiserats och skickats till sin slutliga plats börjar deserialiseringsprocessen. Programmet som läser byte -strömmen återställer all information och placerar den i en ny instans av det ursprungliga objektet, vilket skapar en exakt kopia. Det är viktigt att förstå att endast uppgifterna som objektet innehöll är marskalad; Objektet och dess metoder och andra implementeringsdata är inte. Detta betyder att programmet som deserialiserar data måste kunna skapa en instans av klassen som ursprungligen var serialiserad.
Serialisering av datastruktur kan användas för en mängd olika syften. Objektinformation kan lagras på fysiska medier så att det exakta tillståndet för varje objekt kan återställas till den punkt det var när programutförandet stoppas. Det kan användas för att seND -meddelanden till en annan dator som kommer att få en fjärrprocedur att köras. Serienisering kan till och med användas för att effektivt jämföra tillståndsförändringar i realtidsapplikationer.
Innan du använder objektserialisering är det viktigt att förstå några av de begränsningar som den sätter. Det viktigaste är att genom processen att konvertera ett objekt till en byte -ström, fält som förklaras som privata kommer att utsättas. Under överföringen av strömmen kan denna data fångas och avkodas, presentera ett säkerhetshål. De flesta språk gör det möjligt för externiseringen av externiseringen av att propera i så sätt som är möjliga i det här möjliga i det här möjliga hålet. risk.
En annan faktor att tänka på är att serialisering kommer i allmänhet att arbeta endast med objekt som är exakt samma som det serialiserade objektet. Om nya fält eller metoder läggs till ett objekt, kommer objektets signatur att förändras. Detta kommer att innebära det lagrade objektet kommer att orsakae ett undantag och uppgifterna kommer att bli oåterkallelig tills en instans av det ursprungliga omodifierade objektet försöker återställa det.