В чем разница между маршалингом / демаршалингом и сериализацией / десериализацией? - PullRequest
0 голосов
/ 28 февраля 2019
  1. Означают ли оба термина одно и то же?
  2. Если нет, то чем они отличаются?

1 Ответ

0 голосов
/ 28 февраля 2019

Я использую термин «маршалинг» для обозначения «помещения данных / аргументов в форму, где они могут проходить через интерфейс, который принимает только определенные формы», тогда как «сериализация» определенно означает «представление данных с потоком байтов».То есть сериализация является одним из подходов к маршалингу, но она также использует вне области того, что я бы назвал маршалингом.

Некоторые примеры маршалинга, которые не являются сериализацией:

  • Помещениеаргументы системного вызова в регистрах, которые принимает точка входа системного вызова ядра.(Я бы не назвал эту сериализацию, потому что нет никакого абстрактного порядка между регистрами, и потому что некоторые данные могут лежать вне фактических регистров, вместо этого на них указывают.)
  • Построение древовидной структуры изисходный код JSON или XML для передачи в интерфейс, которому необходимо дерево.(Это не сериализация, потому что форма - это объекты уровня языка со ссылками между ними, а не поток байтов.)
  • Передача данных назад и вперед между хост-приложением и встроенным языком (например, Lua).
...