Skip to main content

Co to jest serializacja?

W programowaniu komputerowym serializacja jest procesem przyjmowania struktury danych przechowywanej w pamięci lokalnej i przekształcania go w strumień bajtów, które mogą być przesyłane przez sieć lub przechowywane na dysku, które ma zostać ponownie zmontowany i używany przez inny program. Serializacja może być również użyta do zapisania stanu obiektu, aby mógł zostać ponownie załadowany przez ten sam program. Bardziej złożonym użyciem tej funkcji jest wywołanie zdalnego wywołania procedury (RPC), skutecznie uruchamianie procedury na innym komputerze za pośrednictwem sieci. Ten mechanizm pozwala również na rozkład obiektów danych nad dużym systemem sieciowym.

Prawie każdy nowoczesny język komputerowy ma natywną obsługę serializacji lubbiblioteka dostępna do dodania tej funkcjonalności. Gdy obiekt jest serializowany, wszystkie pola obiektu są spłaszczone. Proces ten jest również znany jako deflacja lub marszanie. Dane są przekształcane wJednistenowy wiersz bajtów, który można zapisać w dowolnym strumieniu wyjściowym.Rodzaj strumienia wyjściowego nie ma znaczenia i może być plik lub gniazdo sieciowe.

Po serializacji i wysłaniu do ostatecznej lokalizacji rozpoczyna się proces deserializacji. Program, który odczytujeStrumień bajtów przywraca wszystkie informacje i umieszcza je w nowym przypadku oryginalnego obiektu, tworząc dokładną kopię. Ważne jest, aby zrozumieć, że tylko dane, które utrzymywał obiekt, są wysyłane;Obiekt, jego metody i inne dane wdrożeniowe nie są. Oznacza to, że program, który deserializuje dane, musi być w stanie utworzyć instancję klasy, która została pierwotnie serializowana.

Struktura danych SerializacjaDo różnych celów. Informacje o obiekcie można przechowywać w mediach fizycznych, aby dokładny stan każdego obiektu można przywrócić do tego stopnia, że wykonanie programu zatrzymano. Można go użyć do wysyłania wiadomości do innego komputera, któryspowoduje uruchomienie zdalnej procedury. Serializacja może być nawet użyta do skutecznego porównania zmian stanu w aplikacjach w czasie rzeczywistym.

Przed użyciem serializacji obiektu ważne jest zrozumienie niektórych ograniczeń, które nakłada. NajwięcejWażne jest to, że poprzez proces przekształcenia obiektu w strumień bajtów, pola deklarowane jako prywatne zostaną ujawnione. Podczas transmisji strumienia dane te można przechwycić i dekodować, przedstawiając adziura bezpieczeństwa. Większość językówWiek pozwala na eksternalizację formatów serializacji danych, więc zastrzeżone kodowanie jest możliwe, aby pomóc w ograniczeniu tego ryzyka.

Innym czynnikiem, o którym należy pamiętać, jest to, że serializacja będzie działać tylko z obiektami, któresą dokładnie takie same jak obiekt serializowany. Jeśli nowe pola lub metody zostaną dodane do obiektu, wówczas podpis obiektu zmieni siępowodować wyjątek, a dane staną się nie do odzyskania, dopóki instancja oryginalnego niezmodyfikowanego obiektu nie będzie próbowała go przywrócić.