Mis on serialiseerimine?

Arvutiprogrammeerimises on serialiseerimine protsess, mille käigus võetakse kohalikku mällu salvestatud andmestruktuur ja muudetakse see baitide vooks, mida saab üle võrgu edastada või kettale salvestada, et see uuesti kokku panna ja mõne teise programmi poolt kasutada. Serialiseerimist saab kasutada ka objekti oleku salvestamiseks, et seda saaks sama programm hiljem uuesti laadida. Selle funktsiooni keerukam kasutus on kaugprotseduuri kutse (RPC) kutsumine. , käivitades tõhusalt protseduuri teises arvutis võrgu kaudu.See mehhanism võimaldab ka andmeobjekte levitada suure võrgusüsteemi kaudu.

Peaaegu igal kaasaegsel arvutikeelel on selle funktsiooni lisamiseks kas serialiseerimise natiivne tugi või teek. Kui objekt on serialiseeritud, siis kõik objekti väljad tasandatakse. Seda protsessi nimetatakse ka deflateerimiseks või sorteerimine.Andmed muudetakse ühedimensiooniliseks baitide reaks, mida saab kirjutada mis tahes väljundvoogu Väljundvoo tüüp ei oma tähtsust ja võib olla fail või võrgupesa.

Kui andmed on järjestatud ja saadetud lõplikku asukohta, algab deserialiseerimisprotsess. Baitivoogu lugev programm taastab kogu teabe ja asetab selle algse objekti uude eksemplari, luues täpne koopia. Oluline on mõista, et sorteeritakse ainult need andmed, mis objektil olid; objekt ja selle meetodid ning muud juurutusandmed ei ole.See tähendab, et andmeid deserialiseeriv programm peab suutma luua algselt serialiseeritud klassi eksemplari.

Andmestruktuuri serialiseerimist saab kasutada erinevatel eesmärkidel. Objektide teavet saab salvestada füüsilisele andmekandjale, nii et saab taastada iga objekti täpse oleku punktis, milles see oli programmi täitmise peatamise ajal. Seda saab kasutada saata sõnumeid teise arvutisse, mis käivitab kaugprotseduuri. Serialiseerimist saab kasutada isegi olekumuutuste tõhusaks võrdlemiseks reaalajas rakendustes.

Enne objektide serialiseerimise kasutamist on oluline mõista mõningaid selle seatud piiranguid. Kõige olulisem on see, et objekti baitvooks teisendamise käigus paljastatakse privaatseks kuulutatud väljad. Voo edastamise ajal saab neid andmeid püüda ja dekodeerida, tekitades turvaaugu. Enamik keeli võimaldavad andmete jadavormingute välist kasutamist, nii et on võimalik kasutada patenteeritud kodeeringut aidata seda riski maandada.

Veel üks tegur, mida tuleb meeles pidada, on see, et serialiseerimine töötab üldiselt ainult objektidega, mis on täpselt samad, mis järjestatud objekt. Kui objektile lisatakse uued väljad või meetodid , siis objekti signatuur muutub. See tähendab, et salvestatud objekt põhjustab erandi ja andmeid ei saa taastada, kuni algse muutmata objekti eksemplar proovib seda taastada.