Такой молодой Python

Девятнадцать лет языку, а модуля для него, который поддерживал бы сочетание SOAP+NTLM+HTTPS+WSDL-от-Excahnge 2007 так и нет. Ни одна из SOAP библиотек для Python не умеет это всё сразу. И большинство из них даже не смогли разобрать (полностью валидный) WSDL SOAP Exchange 2007!
13 августа 2009 11:43

isagalaev (softwaremaniacs.org/about/)
13 августа 2009, 15:52

Вот удивительно... Есть дико переусложнённый стек технологий, которые несовместимо меняются чуть не каждый год, и которые были *специально спроектированы* не для решения проблем, а для продажи инструментов по их обслуживанию. И теперь то, что в Питоне нет адекватных средств для работы с этой кучей хлама -- это проблема Питона?

P.S. Я знаю, что тебе надо практическую задачу решить. Но меня смещение акцентов беспокоит.

gaius-julius.livejournal.com (gaius-julius.livejournal.com)
13 августа 2009, 16:07

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

Но вообще Иван в чём-то прав: если какой-то непонятной фигни нет в питоне, то стоит задуматься - а нужна ли она вообще? (-:

astur (astur.net.ru)
13 августа 2009, 16:12

Интересная ситуация: вместо того, чтобы создавать конкурентоспособные продукты, конкуренты MS неистово реализуют поддержку новых технологий от MS. Может MS их для того и разрабатывает, чтобы занять чем-нибудь конкурентов. Вместо того, чтобы сделать нормальную альтернативу Exchange, сообщество пишет поддержку Exchange для всего подряд.

Я думаю, конкретно твой случай кончится вот чем: ты поругаешься некоторое время, а потом напишешь поддержку всего перечисленного, которая будет работать конкретно в твоих условиях, и в мире появится ещё одна библиотека на эту тему, которая не доведена до ума. Существующие библиотеки так и появились, однозначно. Никто из тех, кому такая задача по силам, не будет тратить время на написание полной, универсальной и надёжной Python-библиотеки для поддержки Exchange.

bolk (bolknote.ru)
13 августа 2009, 18:02, ответ предназначен isagalaev (softwaremaniacs.org/about/):

Ну, понимаешь, библиотека PHP, например, позволяет расставить хуки так, что проблему решить удаётся, несмотря на все грабли. Ни одна из библиотек Python такие вещи не позволяет, а некоторые не работают без WSDL.

bolk (bolknote.ru)
13 августа 2009, 18:03, ответ предназначен astur (astur.net.ru):

SOAP не технология от Microsoft, это стандартизированный метод для RPC (Remote Procedure Call).

bolk (bolknote.ru)
13 августа 2009, 18:04, ответ предназначен isagalaev (softwaremaniacs.org/about/):

А почему ты считаешь, что SOAP специально спроектирован только для маркетинговых задач?

bolk (bolknote.ru)
13 августа 2009, 18:04, ответ предназначен gaius-julius.livejournal.com:

SOAP это не какая-то непонятная фигня :)

bolk (bolknote.ru)
13 августа 2009, 22:10, ответ предназначен isagalaev (softwaremaniacs.org/about/):

Я подредактировал пост и постарался сместить акцент к модулю.

isagalaev (softwaremaniacs.org/about/)
13 августа 2009, 23:28

SOAP не технология от Microsoft
Нет, SOAP это технология от Microsoft :-). Они продавили её в качестве рекомендации W3C в своё время, но придумали её там.
А почему ты считаешь, что SOAP специально спроектирован только для маркетинговых задач?
Я не говорил "только". Хотя по сути всё правильно. Думаю я так по результатам разрозненных наблюдений за косвенными признаками (а прямых и не может быть). SOAP переусложнён, причём, похоже, что искуственно, явно не предполагает работу без сложной библиотеки (вот ссылочка в тему: http://www.xml.com/pub/a/2003/09/24/dive.html). Его концепция периодически пересматривалась без особой оглядки на обратную совместимость.

Вообще, сложно в рамках комментария на такие философские темы говорить :-). Я для себя все эти выводы давно сделал, трудно формулировать то, что считаешь очевидным :-).

astur (astur.net.ru)
14 августа 2009, 03:45, ответ предназначен bolk (bolknote.ru):

Даже если предположить, что SOAP не от MS (хотя это и не так), то это ничего не меняет. HTTPS - точно не от MS :) Питоновские же SOAP-библиотеки худо-бедно поддерживают SOAP. В твоей проблеме ключевыми пунктами являются NTLM и WSDL-от-Excahnge 2007.

Обрати внимание, что в ряде стандартных методов для RPC (таких как XML-RPS и JSON-RPC) не предполагается использования длинного стека запутанных технологий. То, что в Excahnge нельзя влезть просто и бесхитростно - чья это вина? Питоновцев?

bolk (bolknote.ru)
14 августа 2009, 09:30, ответ предназначен isagalaev (softwaremaniacs.org/about/):

Да, понятно. Может как-нибудь расскажешь мне это за чаем, если сможешь всё-таки сформулировать :)

bolk (bolknote.ru)
14 августа 2009, 09:33, ответ предназначен astur (astur.net.ru):

WDSL не может быть корнем проблемы, он по стандарту сделан. То, что библиотеки SOAP Пайтона не могут его разобрать — их вина. NTLM — проблема, да. Но тут она самая легкопобеждаемая сторонними средствами. Например, можно поставить прокси, который будет авторизовывать, а дальше отдавать просто HTTPS.

bolk (bolknote.ru)
14 августа 2009, 09:35, ответ предназначен astur (astur.net.ru):

То, что в Excahnge нельзя влезть просто и бесхитростно - чья это вина? Питоновцев?
Предполагается, что SOAP и есть «просто и бесхитростно». Так оно и есть, например, из Perl это выглядит очень просто и бесхитростно: указываешь URL WDSL и просто вызываешь методы, всё дальше помимо тебя происходит.

lordsc (lordsc.myopenid.com)
14 августа 2009, 10:35

ntlm вообще устаревшая какашка )
а в остальном поддерживаю мнение Ивана

bolk (bolknote.ru)
14 августа 2009, 11:07, ответ предназначен lordsc (lordsc.myopenid.com):

А что более новая, надёжная какашка?

astur (astur.net.ru)
14 августа 2009, 13:12, ответ предназначен bolk (bolknote.ru):

Предполагается, что SOAP и есть «просто и бесхитростно».
Я имел в виду на уровне разработки. Когда есть отлаженная обёртка, так даже Word-doc будет простым и бесхитростным, но есть разница в простоте при реализации SOAP и обычного RPC.

Конечно, было бы замечательно, если бы Python уже мог весь твой стек до Excahnge включительно, но кто будет это писать? Опенсорсники Excahnge не любят. В мире Python вообще не так уж часто пользуются Excahnge, а если и пользуются, то корпоративные программеры, которым некогда заботиться о нуждах сообщества, им свою задачу решить надо. В общем, мой прогноз: будет теперь ещё одной неполной Python-SOAP-библиотекой больше.

windock.livejournal.com (windock.livejournal.com)
14 августа 2009, 13:22

В .NET должна быть поддержка всего этого. Так что может помочь IronPython.

bolk (bolknote.ru)
14 августа 2009, 20:59, ответ предназначен astur (astur.net.ru):

Да нет, причём тут Exchange-то? Exchange использует вполне себе стандартный SOAP, просто под Python нет реализации этого самого стандартного.

bolk (bolknote.ru)
14 августа 2009, 21:02, ответ предназначен windock.livejournal.com:

Нам ещё этого не хватало к нашему зоопарку :) Лучше написать какой-нить прокси Exchange SOAP ↔ PHP или Perl ↔ socket ↔ Python.

nimnull.blogspot.com (nimnull.blogspot.com)
24 августа 2009, 14:19

Я немного не в контест а рядом. По долгу службы возникла необходимость интеграции .NET Web services (не exchange, а внутреннего корпоративного сервиса) с питоновским приложением, мне в этом хорошо помогла библиотека suds - https://fedorahosted.org/suds/ По завершению работы над проектом глюков в обмене данных python-app - .net web service замечено не было. Работал с версией из HEAD транка.

bolk (bolknote.ru)
24 августа 2009, 22:34, ответ предназначен nimnull.blogspot.com:

Спасибо! Попробуем посмотреть!

bolk (bolknote.ru)
24 августа 2009, 22:35, ответ предназначен nimnull.blogspot.com:

Название что-то уж очень знакомое, может и смотрели, завтра гляну.

Антон (инкогнито)
28 апреля 2011, 10:48

Прошло два года, а ситуация не поменялась в лучшую сторону. suds тоже не понятно поддерживает кто-то или нет.

bolk (bolknote.ru)
28 апреля 2011, 13:22, ответ предназначен Антону

У suds всё плохо, но есть несколько форков, в них можно покопаться.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)