Маршалинг

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску

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

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

Применение

Маршалинг задействуется при использовании различных механизмов RPC, где есть необходимость в передаче данных между процессами и потоками. Переход от неуправляемого типа в тип CLR, как, например, в процессах P/Invoke, используемых в платформе .NET Framework, является подходящим примером, демонстрирующим применение маршалинга.

Кроме того, маршалинг широко используется в скриптах и приложениях, применяющих технологии XPCOM, поставляемой в составе Mozilla application framework. Браузер Mozilla Firefox — одно из самых известных приложений, созданных с применением этой платформы, что позволило скриптовым языкам использовать технологию XPCOM через Cross-Platform Connect (XPConnect).

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

В стандартной библиотеке языка Python термин «маршалинг» схож по значению с термином «сериализация»[1], но термины не являются синонимами в документе RFC 2713, на который опирается стандарт Java:

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

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

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

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

Примечания

Ссылки

Связанные статьи

de:Marshalling en:Marshalling (computer science) pl:Marshalling (informatyka)

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....