... і зняття з продажу / десеріалізації? Пояснення Вікіпедії не залишають мене наймудрішим! Я програміст Java, якщо термінологія в різних мовах використовується по-різному.
... і зняття з продажу / десеріалізації? Пояснення Вікіпедії не залишають мене наймудрішим! Я програміст Java, якщо термінологія в різних мовах використовується по-різному.
Відповіді:
Тут важлива семантика:
Маршаллінг передбачає переміщення даних, воно не означає перетворення даних із власного представлення чи зберігання. Об'єкти Java можуть бути маршировані по дроту в рідному зображенні.
Серіалізація передбачає перетворення даних у якесь нероднє проміжне подання. Наприклад: перетворення об’єкта Java в JSON або XML.
Звичайно, більшість систем, які маршали дані, серіалізують їх у якийсь неродний формат, перш ніж їх транспортувати.
Це питання задавались раніше, але в StackOverflow. Ось посилання.
Цитата відповіді Джефрі Хантіна :
Маршалінг та серіалізація є синонімічними в контексті віддаленого виклику процедур, але семантично різняться за наміром.
Зокрема, маршалінг - це отримання параметрів звідти, а серіалізація - це копіювання структурованих даних у примітивну форму або з такої примітивної форми, як байт-потік. У цьому сенсі серіалізація - це один із засобів здійснення маршалінгу, як правило, реалізуючи семантику прохідних значень.
Можливо також об'єкт підлягати пошкодженню шляхом посилання, і в цьому випадку дані "на дроті" є просто інформацією про місце розташування для вихідного об'єкта. Однак такий об'єкт все ще може піддатися значенню серіалізації.
Як зазначає @Bill, можуть бути додаткові метадані, такі як розташування бази коду або навіть код реалізації об'єкта.
Маршаллер робить все, що потрібно, щоб передавати структуру даних, яку потрібно перенести з одного місця в інше. Коли я говорю про "Структуру даних", це може бути що завгодно. Від самого об'єкта (дані стану => значення поля) до посилання пам'яті на цей об'єкт, який буде оброблятися на стороні клієнта "Stub", а на стороні сервера - "Проксі". Це означає, що Маршаллер може використовувати "Серіалізатори", щоб перетворити цю структуру даних у представлення низького рівня, набагато простіше транспортувати. Шлях трансформації може мати інші компоненти, такі як компресори, компілятори, адаптери тощо. Для мене серіалізатор є частиною Marshaller.