OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 28 Апрель, 2024 00:47

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 09:08 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
По-моему, можно сейчас найти много примеров, где данные, предназначенные исключительно для машинной обработки, сохраняются в гораздо более неэффективной для этого текстовой форме.
- стандарт xml
- дампы базы mysql
- дампы хранилища subversion
...

При том, что оптимизировать, у ИТ-специалистов вроде как принято.

Учитывая текущую (по основной массе, это моё, ничем не подкреплённое, предположение) "безассертовую" культуру и небезопасные средства программирования (Си/Си++/Дельфи/...), можно говорить о том, что многие баги приводят к порче данных.

Данные, сохранённые в текстовом виде, всегда можно подправить вручную до валидного состояния --- в любом текстовом редакторе. С бинарными этого так просто не сделать.

Вывод:
небезопасные средства и стиль пр-я --> большое число багов, портящих данные --> боязнь таких багов в "данно-ориентированных" задачах --> выбор текстового представления для возможности ручного анализа и коррекции в экстренных случаях


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 10:31 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну, тут несколько пошире факторы.
В целом подсознательная тяга к наглядной диагностируемости (не только в случае повреждения, а при сетевых взаимодействиях - виднее, типа, что происходит). Не могут договориться о бинарных форматах в случае разных платформ. Ну и т.п.
Нашли некий "общий знаменатель", с которым готовы смириться все.

Плюс в разных скриптомакроязыках традиционно туго с работой с байтами. А с текстами проще.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 11:05 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
То, что факторов не один, понятно. Интересно --- является ли среди них озвученный одним из важных?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 16:21 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Думаю еще имеет значение, что тектовый формат человек может посмотреть и проверить правильные ли данные выводятся, а вот посмотреть бинарный формат не так-то просто, нужно считать всякие смещения и смотреть какие там байты, или же писать специальный просмоторщик данного банарного формата.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 16:40 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Причём сишники багов боятся так сильно, что если и переходят к бинарному протоколу, то на всякий пожарный случай перед записыванием каждой переменной ещё записывают лишний байт с числовым значением её типа. И это не смотря на то, что код сериализаторов/десериализаторов зачастую генерят автоматически :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 16:44 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Хотя данные бывают разные. Например, коротко живущие объекты сообщений - это одно, а вечно хранимые документы - другое.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 19:18 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Евгений Темиргалеев писал(а):
По-моему, можно сейчас найти много примеров, где данные, предназначенные исключительно для машинной обработки, сохраняются в гораздо более неэффективной для этого текстовой форме.
- стандарт xml
- дампы базы mysql
- дампы хранилища subversion
...

При том, что оптимизировать, у ИТ-специалистов вроде как принято.

Учитывая текущую (по основной массе, это моё, ничем не подкреплённое, предположение) "безассертовую" культуру и небезопасные средства программирования (Си/Си++/Дельфи/...), можно говорить о том, что многие баги приводят к порче данных.

Данные, сохранённые в текстовом виде, всегда можно подправить вручную до валидного состояния --- в любом текстовом редакторе. С бинарными этого так просто не сделать.

Вывод:
небезопасные средства и стиль пр-я --> большое число багов, портящих данные --> боязнь таких багов в "данно-ориентированных" задачах --> выбор текстового представления для возможности ручного анализа и коррекции в экстренных случаях

У меня крутились схожие мысли уже относительно давно, только письменно я их нигде не излагал.

Интересно, кто решил, что данные в XML легко читать? Почему интернет работает по спецификации гипертекстового языка разметки?

Данные в текстовом виде:
  1. избыточны, что ведёт к повышенному расходу ресурсов (по обработке данных, по их передаче, в хранении в накопителях данных),
  2. подвержены искажению информации, так не применяются различные техники сверки достоверности данных (CRC и прочие), а человек не может безошибочно проверить её,
  3. влекут более трудоёмкие операции в их изменении, нежели бинарные.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 19:43 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Роман М. писал(а):
[*]избыточны, что ведёт к повышенному расходу ресурсов (по обработке данных, по их передаче, в хранении в накопителях данных),
Дык, разве кто-нибудь, кроме советских военных (да и то не всегда) ставил задачу экономии ресурсов?!

Наоборот, вся промышленность построена сегодня так, чтобы была потребность тратить этих ресурсов как можно больше (это ж прибыль!).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 19:55 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Роман М. писал(а):
Интересно, кто решил, что данные в XML легко читать?
Данные, может, и не легко, а вот XML-документ читается вполне себе неплохо, потому что удобочитаемость человеком была одной из целей создания XML:

Цитата:
The design goals for XML are:

XML shall be straightforwardly usable over the Internet.

XML shall support a wide variety of applications.

XML shall be compatible with SGML.

It shall be easy to write programs which process XML documents.

The number of optional features in XML is to be kept to the absolute minimum, ideally zero.

XML documents should be human-legible and reasonably clear.

The XML design should be prepared quickly.

The design of XML shall be formal and concise.

XML documents shall be easy to create.

Terseness in XML markup is of minimal importance.


http://www.w3.org/TR/xml/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 01 Октябрь, 2010 22:37 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Мне думается, расширяемость относительно бинарных форматов у текстовых(XML например) крайне высока... хотя, конечно, смотря что хранитьили передавать(как в джаббере).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 11:36 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Недостатки бинарных custom-форматов (т.е. склёпанных под разовую нужду) известны.

Но можно ведь говорить о бинарных, а не о custom-форматах.

Хотя бы о том, что тот же XML, как древовидная модель, (а имеется спец. стандарт древовидной модели, XQuery определён над ней, а не над XML) мог бы иметь стандартное бинарное представление.

Например, словарь тегов в начале, а дальше ссылки по номеру на этот словарь - и т.п. Сколько экономии.

А ещё можно было бы накласть на совместимость с SGML и упростить в целом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 13:00 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Ещё раз:
Цитата:
XML documents should be human-legible and reasonably clear.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 13:40 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Сергей Губанов писал(а):
Причём сишники багов боятся так сильно, что если и переходят к бинарному протоколу, то на всякий пожарный случай перед записыванием каждой переменной ещё записывают лишний байт с числовым значением её типа. И это не смотря на то, что код сериализаторов/десериализаторов зачастую генерят автоматически :D

Это делается для последующего расширения формата. Придает гибкость. Стандартно же -- tlv (type, length, value). На type легко вешается обработчик. Получаем эдакий SAX для бинарного формата. Очень удобно. Расширяемо. Также следует учесть, что если протокол вдруг поменялся, и вы нагенерили новых сериализаторов/десериализаторов, это не значит что в системе сразу все компоненты перешли на новый протокол.

Кроме того, частенько туда пишут не тип, а например как в google protobuf'e, номер поля (ну, можно считать что каждое поле имеет свой уникальный тип). Что делается опять таки для расширизмов. Например благодаря этому механизму реализованы опциональные поля (да, если опциональное поле в данном сообщении отсутствует (не нужно) то оно и небудет передано/сериализовано). Опять же -- весьма удобно.

Кстати, а при чем тут именно сишники? ;-)

Да, на счет текстовых форматов/протоколов. Когда у производительность не критична (а она очень часто не критична), то при прочих равных следует выбирать тот формат, который можно будет обработать максимально широким спектром утилит (проанализировать, посмотреть, отредактировать). Таковой формат -- всегда текстовый формат, причем ASCII. Написание своих тулзей для просмотра своего же бинарного формата черевато ошибками. Смотришь через эту тулзень на данные, видишь хрень, и непонятно из за чего хрень -- толи это данные не правильные, толи это в тулзени бага. В общем, нужны очень веские основания для отказа от моря стандартный утилит (grep, awk, cat and so on) для обработки данных в пользу своего велосипеда.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 13:54 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Полагаю, что формат XML является переходным этапом пока не станет достаточно зрелым. Когда он применялся в начале, было недостаточно понимания как удобно хранить информацию. Человеку проще видеть перед глазами набор осмысленных символов, чем на бинарных данных.
А если данные представлять в удобном для понимания виде, а хранить - в удобном для ЭВМ? Программа сможет безошибочно и эффективно хранить данные.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 13:58 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Ну, уже 14 лет как переходный )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 13:59 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Роман М. писал(а):
Полагаю, что формат XML является переходным этапом пока не станет достаточно зрелым. Когда он применялся в начале, было недостаточно понимания как удобно хранить информацию. Человеку проще видеть перед глазами набор осмысленных символов, чем на бинарных данных.
А если данные представлять в удобном для понимания виде, а хранить - в удобном для ЭВМ? Программа сможет безошибочно и эффективно хранить данные.


Дык есть же бинарное представление xml : http://ru.wikipedia.org/wiki/WBXML
Всё давным-давно изобретено.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 14:03 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Иван Кузьмицкий писал(а):
Ну, уже 14 лет как переходный )

Он не переходный. Он базовый. В том плане что наработаны богатые методики, созданы библиотеки, утилиты и проч. для удобной обработки, создания, и анализа его. На базе xml уже лепится то что нужно в данной задаче. Если не укладываемся по объемам/производительности, втыкаем WBXML (при этом НИЧЕГО менять не придется). Если и тут просаживаемся по производительности, то есть повод задуматься куда двигаться дальше. Толи не оптимально построен наш формат/протокол поверх xml, толи да, нужно перехидить на что-то менее универсальное нежели xml (в любом представлении). Но в любом случае к тому моменту уже станет четко ясно каков наш протокол/формат и как реализовывать велосипед.

Итерационная модель разработки же.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 14:06 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Нужно применять контрольные суммы и другие техники проверок. Тогда и будет понятно где искать ошибку. Пример: заголовок пакета IP.

Не успеваю отвечать с мобильника. :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 14:10 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Роман М. писал(а):
Нужно применять контрольные суммы и другие техники проверок. Тогда и будет понятно где искать ошибку. Пример: заголовок пакета IP.

Не будет понятно где ошибка. Будет понятно что просто есть ошибка.
Кроме того, CRC может быть правильной, а вот внутри может быть мусор. В том плане, что просто скрыша съехала у отправителя и значения вылезли за допустимые диапазоны. Вы видели когда-нибудь udp пакет приехавший с нулевого порта? А я вот видел.

Ещё раз -- нужны очень веские основания чтобы отказываться от стандартных средств обработки данных. Покуда таких оснований нет, текстовое представление -- наше всё.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 02 Октябрь, 2010 14:25 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Да, а ещё бывает, что с пакетом всё хорошо. просто побилась, или не правильно была подсчитана контрольная сумма. Но нам таки нужно вытащить информацию которая сидит в пакете. Или два пакета слиплись в один. В общем существует множество багов при которых текстовое представление предпочтительней. Разработка быстрее и приятней.

Например на текстовые данные можно легко натравить программу на Рефале. На бинарные данные уже так просто не натравишь. Нужен будет конвертер, который может добавить своих ошибок. К чему лишние прослойки?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB