A szerializálás (a programozásban) egy adatstruktúra bitszekvenciává történő fordításának folyamata. A szerializálási művelet inverze a deszerializációs (strukturálási) művelet - adatstruktúra létrehozása bitsorozatból.
A szerializálás az objektumok hálózaton keresztüli átvitelére és a -ba való mentésére szolgál . Például létre kell hoznia egy elosztott alkalmazást , amelynek különböző részeinek összetett szerkezetű adatcserét kell végezniük. Ebben az esetben az átvinni kívánt adattípusokhoz olyan kódot írnak, amely szerializálást és deszerializálást hajt végre. Az objektum fel van töltve a szükséges adatokkal , majd meghívódik a sorosító kód, az eredmény például egy XML dokumentum. A sorozatosítás eredményét például e- mailen vagy HTTP -n keresztül továbbítják a fogadó félhez . A fogadó alkalmazás létrehoz egy azonos típusú objektumot, és meghívja a deserializációs kódot, így egy olyan objektumot kap, amely ugyanazokkal az adatokkal rendelkezik, mint a küldő alkalmazás objektumában. Például a SOAP -on keresztüli objektumszerializálás a Microsoft .NET -ben ennek a sémának megfelelően működik .
A sorosozási sémák mindegyikének velejárója, hogy az adatok kódolása definíció szerint szekvenciális, és a soros adatstruktúra bármely részének lekéréséhez a teljes objektumot be kell olvasni, és újra létre kell hozni. Ez a linearitás sok alkalmazásban hasznos, mert lehetővé teszi az egyszerű, általános célú I/O interfészek használatát egy objektum állapotának tárolására és átvitelére. Azokban az alkalmazásokban, ahol fontos a nagy teljesítmény, érdemes lehet bonyolultabb, nem lineáris tárolási szervezetet használni.
A sorozatosítás számos hasznos funkciót kínál:
E funkciók legjobb kihasználása érdekében meg kell őrizni az architektúra függetlenségét. Például szükség van arra, hogy megbízhatóan újra tudjunk hozni egy soros adatfolyamot, függetlenül az adott architektúrában használt végponttól . Ez azt jelenti, hogy a memóriahely, ahol az adatstruktúra található, legegyszerűbb és leggyorsabb eljárása nem működik megbízhatóan minden architektúránál. Az adatstruktúrák architektúrafüggetlen formátumba való sorba állítása azt jelenti, hogy nem merülhetnek fel problémák az eltérő bájtrendezés, memóriafoglalási mechanizmusok vagy az adatstruktúrák programozási nyelvekben való megjelenítésének különbségei miatt.
A sorozatosítás megtöri az absztrakt adattípus átlátszatlanságát, és felfedheti a privát megvalósítás részleteit. Az összes adattagot sorba rendező triviális megvalósítások megszakíthatják a beágyazást.
Annak érdekében, hogy megzavarják a versenytársakat a hasonló termékek létrehozásában, a szabadalmaztatott szoftverfejlesztők gyakran titokban tartják a programjaik szerializációs formátumának részleteit. Egyesek szándékosan elhomályosítják vagy akár titkosítják is a sorosított adatokat. Az interoperabilitás azonban megköveteli, hogy az alkalmazások képesek legyenek megérteni egymás szerializációs formátumait. Ezért a távoli metódushívási architektúrák, mint például a CORBA, részletesen meghatározzák a sorosítási formátumaikat.
A nagy tudományos adatkészletekhez, például a műholdas adatokhoz vagy az éghajlati, időjárási és óceáni numerikus modellekhez speciális bináris szerializációs szabványokat fejlesztettek ki, mint például a HDF , a netCDF és a régebbi GRIB .