Co je to serializace?

V počítačovém programování je serializace proces převzetí datové struktury uložené v místní paměti a její přeměnu na proud bajtů, které mohou být přenášeny po síti nebo uloženy na disku, aby mohly být znovu sestaveny a použity jiným programem. Serializaci lze také použít k uložení stavu objektu, aby ji bylo možné znovu načíst stejným programem. Složitějším využitím této funkce je vyvolání vzdáleného volání procedur (RPC). , efektivně spuštěné procedury na jiném počítači prostřednictvím sítě. Tento mechanismus také umožňuje distribuci datových objektů přes rozsáhlý síťový systém.

Téměř každý moderní počítačový jazyk má buď nativní podporu pro serializaci, nebo knihovnu, která je k dispozici pro přidání této funkce. Když je objekt serializován, jsou všechna pole objektu zploštěna. Tento proces se také nazývá deflace Data jsou převedena na jednorozměrnou řadu bajtů, které lze zapsat do libovolného výstupního proudu. Nezáleží na typu výstupního proudu a může to být soubor nebo síťový soket.

Jakmile jsou data serializována a odeslána do jejich konečného umístění, začíná proces deserializace. Program, který čte bajtový tok, obnoví všechny informace a umístí je do nové instance původního objektu, čímž vytvoří přesnou kopii. Je důležité pochopit, že jsou zařazována pouze data, která objekt držel; objekt a jeho metody a další implementační data nejsou. To znamená, že program, který deserializuje data, musí být schopen vytvořit instanci třídy, která byla původně serializována.

Serializace datové struktury může být použita pro různé účely. Informace o objektu mohou být uloženy na fyzickém médiu, takže přesný stav každého objektu lze obnovit do bodu, v jakém byl v okamžiku zastavení provádění programu. posílat zprávy na jiný počítač, který způsobí spuštění vzdálené procedury. Serializaci lze dokonce použít k efektivnímu porovnání změn stavu v aplikacích v reálném čase.

Před použitím serializace objektů je důležité pochopit některá omezení, která ukládá. Nejdůležitější je, že během procesu převodu objektu na bajtový tok budou vystavena pole, která jsou prohlášena za soukromá. Během přenosu dat mohou být tato data zachycena a dekódována, což představuje bezpečnostní díru. Většina jazyků umožňuje externalizaci formátů serializace dat, takže je možné proprietární kódování pomozte zmírnit toto riziko.

Dalším faktorem, který je třeba mít na paměti, je to, že serializace bude obecně fungovat pouze s objekty, které jsou přesně stejné jako serializovaný objekt. Pokud jsou do objektu přidána nová pole nebo metody , pak se změní podpis objektu. To bude znamenat, že uložený objekt způsobí výjimku a data budou obnovitelná, dokud se instance původního neupraveného objektu nepokusí obnovit.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?