Serialisering

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 30 januari 2021; kontroller kräver 6 redigeringar .

Serialisering (vid programmering) är processen att översätta en datastruktur till en bitsekvens. Det omvända till serialiseringsoperationen är deserialiseringsoperationen (struktureringsoperationen) - skapandet av en datastruktur från en bitsekvens.

Serialisering används för att överföra objekt över nätverket och för att spara dem till . Till exempel måste du skapa en distribuerad applikation , vars olika delar måste utbyta data med en komplex struktur. I det här fallet, för de datatyper som ska överföras, skrivs kod som utför serialisering och deserialisering. Objektet fylls med nödvändig data , sedan anropas serialiseringskoden, resultatet är till exempel ett XML- dokument. Serialiseringsresultatet överförs till den mottagande parten via till exempel e- post eller HTTP . Den mottagande applikationen skapar ett objekt av samma typ och anropar deserialiseringskoden, vilket resulterar i ett objekt med samma data som fanns i den sändande applikationens objekt. Till exempel fungerar objektserialisering via SOAP i Microsoft .NET enligt detta schema .

Applikation

Inneboende i alla serialiseringsscheman är att kodning av data är sekventiell per definition, och att hämta någon del av en serialiserad datastruktur kräver att hela objektet läses från början till slut och återskapas. I många applikationer är denna linjäritet användbar eftersom den tillåter enkla, allmänna I/O-gränssnitt att användas för att lagra och överföra ett objekts tillstånd. I applikationer där hög prestanda är viktigt kan det vara vettigt att använda en mer komplex, icke-linjär lagringsorganisation.

Serialisering ger flera användbara funktioner:

För att utnyttja dessa funktioner på bästa sätt måste arkitekturens oberoende bibehållas. Till exempel är det nödvändigt att på ett tillförlitligt sätt kunna återskapa en serialiserad dataström oberoende av endianness som används i en given arkitektur. Detta innebär att den enklaste och snabbaste proceduren för direkt kopiering av minnesplatsen där datastrukturen finns inte kan fungera tillförlitligt för alla arkitekturer. Att serialisera datastrukturer till ett arkitekturoberoende format innebär att problem inte bör uppstå på grund av olika byteordning, minnesallokeringsmekanismer eller skillnader i hur datastrukturer representeras i programmeringsspråk.

Nackdelar

Serialisering bryter opaciteten hos en abstrakt datatyp, vilket potentiellt exponerar privata implementeringsdetaljer. Triviala implementeringar som serialiserar alla datamedlemmar kan bryta inkapslingen.

För att förvirra konkurrenter när det gäller att skapa liknande produkter, håller proprietära mjukvaruutvecklare ofta detaljerna i serialiseringsformaten för sina program hemliga. Vissa fördunklar eller till och med krypterar de serialiserade uppgifterna medvetet. Interoperabilitet kräver dock att applikationer kan förstå varandras serialiseringsformat. Därför specificerar fjärrmetodanropsarkitekturer som CORBA sina serialiseringsformat i detalj.

Scientific Data Serialization

För stora vetenskapliga datauppsättningar, såsom satellitdata eller numeriska modeller av klimat, väder och hav, har speciella binära serialiseringsstandarder utvecklats, såsom HDF , netCDF och den äldre GRIB .

Se även

Länkar