Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 27.02.2012, 11:35   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Сериализация vs Маршалинг

Окончательно запутался в разнице между двумя терминами после прочтения дополнительного объёма литературы.
Насколько я понял: маршалинг, в отличие от сериализации, подразумевает запись не только некоторых значений, однозначно характеризующих объект, но и структуру, позволяющую восстановить информацию о том, какой именно объект был сериализован. Т.о. маршалинг это более абстрактный механизм сериализации, позволяющий не заботиться о том, знает ли парсер структуру объекта.
Поправьте, если заблуждаюсь!
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.02.2012, 13:16   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сериализация vs Маршалинг

Думаю различия в области применения, а по сути одно и то же.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.02.2012, 14:07   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Сериализация vs Маршалинг

запутался сам - запутай комьюнити

я всегда считал - что сериализация это для сохранения с последующим восстановлением, маршалинг - для передачи данных от одной системы к другой. на деле все оказалось сложнее, теперь и я запутался
(Offline)
 
Ответить с цитированием
Старый 27.02.2012, 14:16   #4
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Сериализация vs Маршалинг

Сообщение от impersonalis Посмотреть сообщение
Насколько я понял: маршалинг, в отличие от сериализации, подразумевает запись не только некоторых значений, однозначно характеризующих объект, но и структуру, позволяющую восстановить информацию о том, какой именно объект был сериализован. Т.о. маршалинг это более абстрактный механизм сериализации, позволяющий не заботиться о том, знает ли парсер структуру объекта.
Поправьте, если заблуждаюсь!
причем тут парсинг?
самая простая аналогия маршалинга это вилки для электросетей.
т.е. по сути передается одно и то же (электрический ток), но размеры и форма штырьков в розетках и вилках могут быть разными.
вот маршалинг это такой переходник, где с одной стороны советская вилка, а с другой эвророзетка.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (27.02.2012)
Старый 27.02.2012, 15:47   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сериализация vs Маршалинг

Сообщение от ffinder Посмотреть сообщение
вот маршалинг это такой переходник
т.е. маршалинг это адаптер? обёртка? межинтерфейсное преобразование?
В то время как сериализация это просто преобразование в последовательность байт?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.02.2012, 16:24   #6
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Сериализация vs Маршалинг

Сериализация это описание данных, не только значений но и названий этих данных и часто указание типа.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (12.06.2012)
Старый 27.02.2012, 17:53   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сериализация vs Маршалинг

т.е.
Сообщение от impersonalis Посмотреть сообщение
запись не только некоторых значений, однозначно характеризующих объект, но и структуру, позволяющую восстановить информацию о том, какой именно объект был сериализован.
?
Иными словами я просто поменял значения терминов местами?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.02.2012, 18:23   #8
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сериализация vs Маршалинг

Итак:
pax
Сериализация=Маршалинг
ffinder
маршалинг=адаптер
SBJoker
Сериализация это описание данных, не только значений но и названий этих данных и часто указание типа.
Сообщение от http://ru.wikipedia.org/wiki/Маршалинг
«Маршализовать» объект означает записать его состояние и кодовую(ые) базу(ы) таким образом, чтобы при обратной операции получалась копия оригинала, предположительно с помощью автоматической загрузки определения класса объекта. Вы можете маршализовать любой объект, который является сериализуемым или удаленным. Маршалинг подобен сериализации, за исключением того, что при маршалинге записываются кодовые базы. Маршалинг отличается от сериализации тем, что маршалинг особым образом применяется к удаленным объектам. (RFC 2713)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.02.2012, 18:32   #9
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Сериализация vs Маршалинг

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

сериализация - буквально перевод в последовательный вид - преобразование структур данных для передачи по каналу связи, например по сети.
десериализация - обратный процесс - преобразование потока байт в объект.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (27.02.2012)
Старый 27.02.2012, 19:05   #10
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Сериализация vs Маршалинг

ИМХО в простейшем случае маршалинг это тупо кусок памяти объекта записанный в файл и/или переданный по сети. Для восстановления объекта достаточно сделать мемкопи из прочитанного в указатель объекта и он снова возродится.

Конечно это простейший случай без полей-указателей.

Сериализация - данные с описанием как и куда их пристроить. Например plist в Mac OS пример сериализации данных любой структуры или класса. Которая может быть обратно прочитана в такой класс или структуру, но и в любой другой.

Всё выше ИМХО.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (27.02.2012)
Старый 28.02.2012, 00:04   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Сериализация vs Маршалинг

В дотнете маршалинг выполняет функцию конвертации "управляемых" объектов в "неуправляемые" и обратно, так что это не тупо кусок памяти.
Сериализация же используется для сохранения в файл и/или передачи по сети. Согласен что можно прочитать в другой объект.

Так что я бы сказал что это:
Сообщение от impersonalis Посмотреть сообщение
Т.о. маршалинг это более абстрактный механизм сериализации, позволяющий не заботиться о том, знает ли парсер структуру объекта.
относится к сериализации. Т.е. все наоборот.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (28.02.2012)
Старый 11.06.2012, 00:59   #12
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сериализация vs Маршалинг

Сперва, просто читаем (до конца и спокойно):

http://www.gunsmoker.ru/2011/09/blog-post_9471.html :
Почти синонимом термина "сериализация" является маршалинг (от англ. marshal — упорядочивать). Обратный процесс - демаршалинг (аналог десериализации). Маршалинг - более общее понятие, чем сериализация. Всякая сериализация является частным случаем маршалинга. Отличие маршалинга от сериализации в том, что сериализация предполагает упаковку лишь данных программы. Скажем, матрицы чисел, записи о сотруднике в картотеке или таблицы высот игрового уровня. Когда говорят про маршалинг, подразумевают сериализацию не только данных программы, но и её программного состояния, мета-информации. К примеру, сериализация объекта с полями запишет лишь данные объекта (поля). Маршалинг же объекта запишет не только информацию о его данных (полях), но и информацию по восстановлению структуры объекта - класс объекта, либо же его мета-информацию для реконструирования типа.

Маршалируя и демаршалируя объект вы создаёте его полную копию. При этом принимающая сторона может ничего не знать про объект.
http://www.gotdotnet.ru/forums/2/28864/143256/ :
чтобы отмаршилить, в частности,
ссылочный тип по значению его надо сериализовать. То есть для того,
чтобы поддержать протокол вызова, нужно перевести его параметры к
описанному инвариантному виду, то есть например в двоичный поток или
xml-документ. После того, как все данные подготовлены, их можно собирать
в пакет (например, SOAP), что и делает наш ненаглядный маршалинг в своем
общем виде.
Итого, маршалинг — тот большой дядька, который контролирует и
определяет, как будут передаваться данные. Сериализация — это метод,
которым пользуется маршалинг для осуществления своего темного дела.
http://www.intuit.ru/department/se/msfdev/2/2.html :
Весь описанный процесс называется маршализацией удаленного объекта по ссылке ( marshal by reference ). В отличие от маршализации по значению, экземпляр объекта находится в процессе сервера и не покидает его, а для доступа к объекту клиенты используют посредников. При маршализации же по значению само значение объекта сериализуется в набор байт для его передачи между процессами, после чего следует создание его копии в другом процессе.
http://www.webopedia.com/TERM/S/serialization.html :
The conversion of an object instance to a data stream of byte values in order to prepare it for transmission.
http://www.webopedia.com/TERM/D/data_marshalling.html :
The process of gathering data and transforming it into a standard format before it is transmitted over a network so that the data can transcend network boundaries. In order for an object to be moved around a network, it must be converted into a data stream that corresponds with the packet structure of the network transfer protocol. This conversion is known as data marshalling. Data pieces are collected in a message buffer before they are marshaled. When the data is transmitted, the receiving computer converts the marshaled data back into an object.

Data marshalling is required when passing the output parameters of a program written in one language as input to a program written in another language.
Если попытаться всё это переварить и осмыслить, то получить можно нечто подобное:

0) В зависимости от технологии (языка) и уровня абстракции (детализации) описания происходящего, значения терминов несколько размазываются вплоть до их полного слияния. (Так, например можно, с некоторыми оговорками, ввести в описание программы на Blitz3D термин "указатель", полностью приравняв его тем самым к понятию "ссылка")
1) Сериализация - процесс преобразования объекта в последовательность байт.
2) Маршалинг - процесс преобразования объектов (в их актуальных состояниях) для передачи между процессами.
3) В зависимсоти от типа маршалинга, понятие "объект" в пункте 1 меняется:
маршалинг по значению - объект=данные
маршалинг по ссылке - объект="данные с описанием как и куда их пристроить"

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

upd: Если посмотреть ещё абстрактней, то процесс сохранения в файл - тоже маршалинг: только разные процессы - это одна и та же программа запущенная в разные моменты времени. Тем не менее, сериализация может быть использована и без маршалинга - например, для сравнения двух объектов внутри одного процесса. Кроме того, наличие термина, позволяет структурно выделить процедуру из общей сложной схемы взаимодействия.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (11.06.2012)
Старый 12.06.2012, 01:36   #13
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Сериализация vs Маршалинг

Почему сериализация обязательно в последовательность байт?
Преобразование объекта в JSON объект (string) - не сериализация?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (12.06.2012)
Старый 12.06.2012, 17:26   #14
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сериализация vs Маршалинг

Отвечу в том же духе: стринг - не последовательность байт (слово - это тоже последовательность; а списки и прочие методы фрагментированного хранения - детали технической стороны реализации, не отрицающие представлений конечного программиста и скрытые от него за интерфейсом)?
А если серьёзно:
Сообщение от impersonalis Посмотреть сообщение
0) В зависимости от технологии (языка) и уровня абстракции (детализации) описания происходящего, значения терминов несколько размазываются
Так что уточним: ключевое для сериализации - последовательность. Т.е. некую структуру (поля, иерархии) мы заменяем на вектор. Реализован он может быть по-разному в зависимости от задачи и средств.

Опасался, что коммент будет более разгромным.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 13.06.2012, 21:21   #15
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сериализация vs Маршалинг

Оффто почищен (придирка замечание от MoKи оставлено, отспасиблено и прокоменчено). Тема закрыта, т.к., судя по времени существования треда и интеллектуальности оффтопа - добавить собравшимся нечего .
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (14.06.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:39.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com