Re[18]: Is SOAP simple?
От: fddima  
Дата: 25.12.06 13:18
Оценка: :)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Я неудачно сформулировал. Вопрос должен быть таким: что делать, если софт у получателя остался прежним, а схема валидации XML поменялась? Прилетает совершенно валидное XML-сообщение, к которому не готов софт получателя.

Либо реализовать версионность протокола обмена — либо проблемы клиентов. Имхо так.
Re[18]: Is SOAP simple?
От: Cyberax Марс  
Дата: 25.12.06 13:23
Оценка:
Геннадий Васильев wrote:
> Я неудачно сформулировал. Вопрос должен быть таким: что делать, если
> софт у получателя остался прежним, а схема валидации XML поменялась?
> Прилетает совершенно валидное XML-сообщение, к которому не готов софт
> получателя.
В таком случае мы, хотя бы, сразу можем диагностировать ошибку. А вот с
бинарным протоколом может быть что угодно.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[18]: Is SOAP simple?
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.12.06 13:23
Оценка: +1
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Я неудачно сформулировал. Вопрос должен быть таким: что делать, если софт у получателя остался прежним, а схема валидации XML поменялась?
А-а, это я неудачно ответил. На самом деле софт, если он построен в расчете на какую-то схему, должен тащить ее с собой. И валидировать документ именно ею. А иначе — да, всё верно, формальная валидация даст не больше пользы, чем IP Checksum.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[18]: Is SOAP simple?
От: aka50 Россия  
Дата: 25.12.06 13:26
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Sinclair, Вы писали:


ГВ>>>Это при условии, что отправитель не поменял содержимое самой схемы.

S>>Ну, по идее, обе стороны используют одну и ту же схему.

ГВ>Я неудачно сформулировал. Вопрос должен быть таким: что делать, если софт у получателя остался прежним, а схема валидации XML поменялась? Прилетает совершенно валидное XML-сообщение, к которому не готов софт получателя.


А что будет в бинарном?
Re[19]: Is SOAP simple?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.12.06 13:52
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

>> Прилетает совершенно валидное XML-сообщение, к которому не готов софт

>> получателя.
C>В таком случае мы, хотя бы, сразу можем диагностировать ошибку.

Это зависит от многих факторов. Например, если добавлены новые узлы, то условно "старый" софт их просто проигнорирует, не заморачиваясь диагностикой.

C>А вот с бинарным протоколом может быть что угодно.


Бинарные протоколы тоже бывают разные, не стоит обобщать.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[19]: Is SOAP simple?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.12.06 14:05
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>А-а, это я неудачно ответил. На самом деле софт, если он построен в расчете на какую-то схему, должен тащить ее с собой. И валидировать документ именно ею.


Да, я именно это и имел ввиду. То есть общая проблема согласования версий сообщений остаётся. И в этом смысле совершенно не важно, как именно мы доказываем допустимость обработки конкретного сообщения: посредством схемы или простым сравнением 4-х байт в начале бинарного пакета.

S>А иначе — да, всё верно, формальная валидация даст не больше пользы, чем IP Checksum.


Именно. Она только поможет доказать, что сообщение не покорёжено и соответствует какой-то схеме.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[19]: Is SOAP simple?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.12.06 14:08
Оценка: :)
Здравствуйте, aka50, Вы писали:

ГВ>>Я неудачно сформулировал. Вопрос должен быть таким: что делать, если софт у получателя остался прежним, а схема валидации XML поменялась? Прилетает совершенно валидное XML-сообщение, к которому не готов софт получателя.


A>А что будет в бинарном?


В каком именно?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[20]: Is SOAP simple?
От: Cyberax Марс  
Дата: 25.12.06 15:40
Оценка:
Геннадий Васильев wrote:
> C>В таком случае мы, хотя бы, сразу можем диагностировать ошибку.
> Это зависит от многих факторов. Например, если добавлены новые узлы, то
> условно "старый" софт их просто проигнорирует, не заморачиваясь
> диагностикой.
Если он при этом пользуется старой схемой/DTD — вылетит с ошибкой валидации.

> C>А вот с бинарным протоколом может быть что угодно.

> Бинарные протоколы тоже бывают разные, не стоит обобщать.
Ну так сложные бинарные протоколы обычно не проще XML.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[21]: Is SOAP simple?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.12.06 15:55
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> C>В таком случае мы, хотя бы, сразу можем диагностировать ошибку.

>> Это зависит от многих факторов. Например, если добавлены новые узлы, то
>> условно "старый" софт их просто проигнорирует, не заморачиваясь
>> диагностикой.
C>Если он при этом пользуется старой схемой/DTD — вылетит с ошибкой валидации.

Да, если схема/DTD интегрирована в софт. Нет, если она подгружается.

>> C>А вот с бинарным протоколом может быть что угодно.

>> Бинарные протоколы тоже бывают разные, не стоит обобщать.
C>Ну так сложные бинарные протоколы обычно не проще XML.

Вот потому и не надо обобщать, рассуждая об ужасах бинарных протоколов, они бывают — разные.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[14]: Is SOAP simple?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.12.06 16:05
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Ну а я писал драйвера для железок, для которых у меня была только

C>спецификация протокола. Больше не хочу.

C>А вот с железками, которые общаются в XML работать вообще просто сказка.

C>Можно писать для них драйверы, просто смотря на wire protocol.

Вообще, не слишком серьёзный аргумент в защиту самого протокола. Ты посмотрел wire protocol, запрограммровал один раз драйвер для него и — всё. А железка продолжает гонять по сети эту уже никому не нужную документацию.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[15]: Is SOAP simple?
От: Cyberax Марс  
Дата: 25.12.06 16:13
Оценка:
Геннадий Васильев wrote:
> C>А вот с железками, которые общаются в XML работать вообще просто сказка.
> C>Можно писать для них драйверы, просто смотря на wire protocol.
> Вообще, не слишком серьёзный аргумент в защиту самого протокола. Ты
> посмотрел wire protocol, запрограммровал один раз драйвер для него и —
> всё. А железка продолжает гонять по сети эту уже никому не нужную
> документацию.
Так пусть себе гоняет — даже 1000 устройств не загружает 10Mbit-сеть. В
новых версиях XML еще может сжиматься gzip'ом — так там вообще траффик
копеечный.

Кроме того, пригодность для быстрого анализа и нахождения проблем — это
огромный плюс, превышающий копеечную экономию на сети.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[22]: Is SOAP simple?
От: Cyberax Марс  
Дата: 25.12.06 16:15
Оценка:
Геннадий Васильев wrote:
> C>Если он при этом пользуется старой схемой/DTD — вылетит с ошибкой
> валидации.
> Да, если схема/DTD интегрирована в софт. Нет, если она подгружается.
Ни разу еще не видел подгрузки схемы/DTD из Сети в production-софте
Так как в этом случае софт будет зависеть от [ненадежного] внешнего
соединения.

>> > C>А вот с бинарным протоколом может быть что угодно.

>> > Бинарные протоколы тоже бывают разные, не стоит обобщать.
> C>Ну так сложные бинарные протоколы обычно не проще XML.
> Вот потому и не надо обобщать, рассуждая об ужасах бинарных протоколов,
> они бывают — /разные/.
Бывают. Но сложные бинарные протоколы — они СЛОЖНЫЕ. Попробуй без
подробной документации на досуге написать парсер ASN.1 PER — занятие еще то.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[23]: Is SOAP simple?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.12.06 16:36
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

>> Да, если схема/DTD интегрирована в софт. Нет, если она подгружается.

C>Ни разу еще не видел подгрузки схемы/DTD из Сети в production-софте
C>Так как в этом случае софт будет зависеть от [ненадежного] внешнего
C>соединения.

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

>>> > C>А вот с бинарным протоколом может быть что угодно.

>>> > Бинарные протоколы тоже бывают разные, не стоит обобщать.
>> C>Ну так сложные бинарные протоколы обычно не проще XML.
>> Вот потому и не надо обобщать, рассуждая об ужасах бинарных протоколов,
>> они бывают — /разные/.
C>Бывают. Но сложные бинарные протоколы — они СЛОЖНЫЕ. Попробуй без
C>подробной документации на досуге написать парсер ASN.1 PER — занятие еще то.

Что за глупость? Писать парсер без подробной документации по исходным данным?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[16]: Is SOAP simple?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 25.12.06 16:39
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Вообще, не слишком серьёзный аргумент в защиту самого протокола. Ты

>> посмотрел wire protocol, запрограммровал один раз драйвер для него и —
>> всё. А железка продолжает гонять по сети эту уже никому не нужную
>> документацию.
C>Так пусть себе гоняет — даже 1000 устройств не загружает 10Mbit-сеть. В
C>новых версиях XML еще может сжиматься gzip'ом — так там вообще траффик
C>копеечный.

C>Кроме того, пригодность для быстрого анализа и нахождения проблем — это

C>огромный плюс, превышающий копеечную экономию на сети.

Раз на раз не приходится. Я о принципиальной стороне сейчас говорил.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[24]: Is SOAP simple?
От: Cyberax Марс  
Дата: 26.12.06 07:58
Оценка:
Геннадий Васильев wrote:
> C>Ни разу еще не видел подгрузки схемы/DTD из Сети в production-софте
> C>Так как в этом случае софт будет зависеть от [ненадежного] внешнего
> C>соединения.
> Угу. А я ни разу не видел, чтобы бинарные протоколы не сопровождались
> средствами контроля версий и целостности данных.
Показать?

> C>Бывают. Но сложные бинарные протоколы — они СЛОЖНЫЕ. Попробуй без

> C>подробной документации на досуге написать парсер ASN.1 PER — занятие
> еще то.
> Что за глупость? Писать парсер без подробной документации по исходным
> данным?
Неудачно выразился — попробуй написать парсер только по спеке, без примеров.

Вообще, посмотри на ASN.1 — это такой супер-XML, который умеет делать
все. А потом подумай — почему оно почти никому не нужно.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[17]: Is SOAP simple?
От: Cyberax Марс  
Дата: 26.12.06 07:59
Оценка:
Геннадий Васильев wrote:
> C>Кроме того, пригодность для быстрого анализа и нахождения проблем — это
> C>огромный плюс, превышающий копеечную экономию на сети.
> Раз на раз не приходится. Я о принципиальной стороне сейчас говорил.
Так я и говорю — в большинстве случаев это непринципиально.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re: Is SOAP simple?
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.12.06 10:28
Оценка:
Здравствуйте, Андрей Коростелев, Вы писали:

На всякий случай напомню коллегам, углубившимся в ветку: я не думаю, что основная проблема XML — эффективность. Проблема, как я вижу, в том, что он неудобен для решения именно тех задач, для которых предназначался. Он очень сложный, непонятный, и выполнение большинства требований стандарта сулит только геморрой, а не удобство.
Ну вот, к примеру: нельзя трактовать подветку XML как самостоятельный документ. А очень часто требуется именно это: построение композитных документов, где часть мало знает о целом, а целое — о частях. И что? Народ выкручивается: вытаскивает outerXml и приклеивает к нему заголовок. Бред? Бред. Либо хитрит с парсерами, нарушая стандарт.
Про ситуацию с неймспейсами я лучше умолчу, т.к. у меня недостаточно квалификации для полноценного обсуждения, да и тема недавно поднималась.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Is SOAP simple?
От: Cyberax Марс  
Дата: 26.12.06 11:34
Оценка:
Sinclair wrote:
> На всякий случай напомню коллегам, углубившимся в ветку: я не думаю, что
> основная проблема XML — эффективность. Проблема, как я вижу, в том, что
> он неудобен для решения именно тех задач, для которых предназначался. Он
> очень сложный, непонятный, и выполнение большинства требований стандарта
> сулит только геморрой, а не удобство.
Так фича в том, что в XML, большей частью, используют только
подмножество стандарта. Примерно как в С++.
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re[9]: Is SOAP simple?
От: Eugene Kilachkoff Россия  
Дата: 26.12.06 15:25
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ты, видимо, никогда не отлаживал программы с бинарными протоколами.

C>Когда днями приходится искать почему сообщения не проходят — и
C>оказывается, что в checksum считается один лишний байт.
А как им славно сносит крышу, если промахнуться хотя бы на один байт !

На самом деле, основной гемор даже не этот (по моему опыту), а то, что чаще всего их реализовывают в виде чего-нибудь типа
struct PROTOCOL_HEADER { ...  };
PROTOCOL_HEADER hdr;
fread(&hdr, 1, sizeof(hdr), file);

а потом начинаются пляски с выравниванием, byte order'ом и так далее.

Альтернатива -- писать байтовый поток в платформонезависимом виде, а потом долго-долго ручками выписывать stream_read_dword() / convert_network_to_host_dword() и так далее.

Честно говоря, я так и не решил для себя что лучше.

ps. Заюзать что-то типа rpcgen можно, но не всегда, к сожалению.
Re[3]: Is SOAP simple?
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.12.06 20:11
Оценка:
Здравствуйте, Cyberax, Вы писали:
C>Так фича в том, что в XML, большей частью, используют только
C>подмножество стандарта. Примерно как в С++.
Ну, мне лично это не вполне понятно. В С++, вроде бы, стараются стандарту хотя бы не противоречить. А в в жизни используют эдакий "почти XML", который нельзя назвать XML с точки зрения стандарта.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.