Маршалинг
В информатике маршалинг (от англ. 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)
«Сериализировать» объект означает превращать его состояние в поток байтов таким образом, чтобы байтовый поток мог быть преобразован обратно в копию исходного объекта.
Сетевые протоколы
Применительно же к компьютерным сетям, маршалинг означает процесс упаковки данных и преобразования их в стандартный вид перед передачей по сети так, чтобы данные могли пройти через сетевые ограничители. Чтобы передать объект во внешнюю сеть, он должен быть преобразован в поток данных, соответствующий структуре пакетов сетевого протокола. Части данных содержатся в буфере до того момента, пока не будут упакованы. Когда данные переданы, компьютер-получатель преобразует упакованные данные обратно в объект.
Примечания
Ссылки
- Маршалинг (англ.)
- Секреты маршалинга
- специальный маршалинг в Visual C++
- Что такое маршалинг?
- Маршалинг и удаленный доступ
Связанные статьи
- Remote Procedure Call
- Сериализация
- Microsoft’s Component Object Model (COM)
- Common Object Request Broker Architecture (CORBA)
de:Marshalling en:Marshalling (computer science) pl:Marshalling (informatyka)
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....