WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Маршалинг (от англ. marshal — упорядочивать) в информатике — процесс преобразования информации (данных, двоичного представления объекта), хранящейся в оперативной памяти, в формат, пригодный для хранения или передачи. Процесс похож на сериализацию (отличия см. ниже). Обычно применяется тогда, когда информацию (данные, объекты) необходимо передавать между различными частями одной программы или от одной программы к другой.

Противоположный процесс называется демаршалингом (сходен с десериализацией).

Применение

Маршалинг применяется при передаче данных между процессами и/или потоками, например:

  • при использовании различных механизмов RPC;
  • при использовании P/Invoke на платформе .NET Framework (при переходе от неуправляемого типа в тип CLR);
  • в скриптах и приложениях, применяющих технологию XPCOM, поставляемую в составе Mozilla application framework (MFA). Браузер Mozilla Firefox — одно из самых известных приложений, созданных с применением MFA. Применение MFA позволило скриптовым языкам использовать технологию XPCOM через Cross-Platform Connect (XPConnect).

Сравнение с сериализацией

В стандартной библиотеке языка Python термин «маршалинг» схож по значению с термином «сериализация»[1], но термины не являются синонимами в документе RFC 2713 («Schema for Representing Java(tm) Objects in an LDAP Directory»; октябрь 1999 года), на который опирается стандарт языка Java:

«Маршализовать» объект означает записать его состояние и кодовую(ые) базу(ы) [2] (URI указывающий на расположение кода класса объекта для загрузки) таким образом, чтобы при обратной операции получалась копия оригинала, предположительно с помощью автоматической загрузки определения класса объекта. Вы можете маршализовать любой объект, который является сериализуемым или удалённым (…). Маршалинг подобен сериализации, за исключением того, что при маршалинге указывается расположение исполняемого кода. Маршалинг отличается от сериализации тем, что маршалинг особым образом применяется к удалённым объектам, для которых не создается копия самого объекта, а лишь указывается удаленный адрес по которому должна производиться работа с ним.

«Сериализировать» объект означает превращать его состояние в поток байт таким образом, чтобы указанный поток мог быть преобразован обратно в копию исходного объекта.

Сетевые протоколы

Применительно к компьютерным сетям маршалинг означает процесс преобразования данных в формат, в котором данные могут быть переданы по сети и могут пройти через сетевые ограничители. Данные преобразуются в поток байт, упаковываются, делятся на части, передаются по сети средствами сетевого протокола. Принятые данные преобразуются обратно в исходный формат.

Примечания

  1. Модуль маршалинга для Python
  2. Под кодовой базой здесь понимается не общеупотребительное значение, а специфическое для Java - набор URI, указывающих на расположение удалённого исполнимого кода для взаимодействия с удалённым объектом

Ссылки

См. также

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии