thekonst.net разделы   пропаганда :: автор :: программизм :: писанина :: резюме :: фото :: ::
 
[08.01.03] масло масляное
[24.12.02] Деду Морозу
[22.12.02] наша служба
[21.12.02] глобальные миры
[18.12.02] это загадочное земноводное Jabber
  [27.11.02] об удачливом папарацци
[26.11.02] колбаса в Торонто
[17.11.02] о вреде благотворительности
[09.11.02] Кишинев и его жители
[06.11.02] старый сайт сдуло ветром перемен
  [ подписка ]
[ архив .. ]
18 Oct 2002 :: Вот, отсканировал и выложил в галлерею фотографии из поездки в Брашов... [ дальше.. ]

20 Jun 2003 :: P.S.: А то ведь если никуда не ездить, недолго стать таким как товарищ на фотографии, которую мне прислала вчера из Люксембурга одногрупница... [ дальше.. ]

17 Apr 2001 :: Сегодня вышли в свет новые версии motor и centericq. Подробности - на страничках оных программ... [ дальше.. ]

[ 18th Dec 2002 ] это загадочное земноводное Jabber | 18 комментариев | комментировать |

Сегодня речь пойдет о моем любимом хобби - протоколах быстрого общения. В течение последнего месяца я довольно много времени посвятил добавлению в centericq поддержки того, что я давно называл стандартом интернет-пейджера будущего. Имеется в виду Jabber. До того, как я занялся им вплотную, мне были известны только две идеи, лежащих в основе протокола: полная открытость и повальное использование в нем XML. Первая идея всегда вызывала только светлые чувства. Как разработчика клиентского софта меня понять несложно. Особенно после пережитого геморроя с очень популярными, но закрытыми сервисами, к которым относятся все "киты" современного интернет-пейджинга - ICQ, MSN и Yahoo!, наличие всеобъемлющей спецификации, нескольких клиентских и серверных (sic!) программ с открытым исходным кодом воспринимается как несказанное счастье. Отпадает необходимость играть в кошки-мышки с разработчиками. Такое случалось уже не раз с Yahoo! и ICQ, когда в один прекрасный день все предыдущие реализации начинали давать косяки. Просто ребята пришли на работу с бодуна сердитые и заменили сервер чем-то, что делает то же самое, но работает "чуть-чуть" не так. Иногда цели, достигаемые с помощью таких выкрутасов, были более материальными. Например, где-то с год назад начал "плохо" работать протокол ICQ, программа-клиент для которого еще не показывала баннеры.

Раз я уже упомянул свое любимое детище, перед тем, как перейти вплотную к Джабберу, сделаю маленькое лирическое отступление. К своей величайшей радости, недавно обнаружил в интернете очередное приложение, базирующееся на centericq. Народ вовсю эксплуатирует возможность запуска внешних программ по приходу новых сообщений. Сайт IMPSWAN (Instant Message Publishing System Without A Name) представляет собой решение для публикации записок посредством посылки оных на специальный ICQ контакт. Все просто. Предположим, вы в дороге, и у вас чешутся руки наколбасить что-то для сайта (клятые блоггеры). Пускай это будет дорожная записка. Вы идете в интернет-кафе (ну, или каким-то более экстравагантным образом появляетесь в инете), запускаете там асю, и отправляете свою нетленку на ICQ сервиса. Остальное IMPSWAN делает за вас - он сохраняет записку в файле и заливает ее на указанный вами при регистрации ftp-сервер.

Теперь Джаббер. Целесообразность применения XML поначалу казалась мне сомнительной, призванной прежде всего добавить нотку современности в звучание стандарта и тем самым привлечь интерес к проекту. Действительно, ведь чтобы послать или принять текстовое сообщение, достаточно передать информацию, идентифицирующую отправителя, плюс само сообщение. В целях логической целостности протокола, особенно если он основан на потоковых соединениях - TCP, добавляются еще длины обоих полей. В этом случае использование прогрессивного формата представления данных - XML, кажется избыточным: засчет тегов растет пакет, а клиент пухнет из-за необходимости встраивания минимального парсера.

С другой стороны, опыт других разработчиков, и прежде всего ICQ, номер реализации протокола у которых уже дорос до 8, показывает, что в процессе разработки и добавления возможностей появляется необходимость в передачи туевой хучи информации. Появляется масса пакетов со своим собственным форматом: для передачи сообщения, ссылки, контактов, запроса информации о пользователе, обновления собственной информации, поиска контактов, и массы других вещей. Гибкость таких форматов можно сравнить разве что с аналогичной характеристикой железнодорожной рельсы: если забыл встроить какой-то параметр изначально, то вкрутить его в формат пакета может оказаться задачей весьма непростой.

К преимуществам, которые несет использование в данном контексте XML, относится, например, возможность добавления собственных полей, которые только твой же клиент на другой стороне будет воспринимать, вместе с гарантией того, что они дойдут. Да и вообще XML читабелен. Разобраться что ты сделал не так в Jabber гораздо проще, чем прочитать hex-dump пакета от того же ICQ, подглядывая вторым глазом в неофициальную спецификацию. Вероятность окосеть при таком раскладе очень велика. С XML же все проще: здесь тэг, вот поле раз, поле два, поле три, тут данные.

Стандарт протокола описывается несколькими основополагающими документами плюс набор JEP (Jabber Enhancement Proposition - предложение по расширению Jabber). Воды в них минимум - в основном по делу написаны. Приятно также наличие примеров XML пакетов, демонстрирующих использование какой-либо возможности протокола.

По возможностям Jabber, по моему скромному мнению, уже обогнал ICQ, MSN и Yahoo!. Среди вкусностей имеется "продвинутый" многопользовательский чат, в котором участники плюс ко всему имеют еще и роли (владелец, админ и пользователь), что приближает идею конференц-общения к IRC. К серверу можно подключать "агенты", в которых пользователи могут регистрироваться, отправлять запросы, и так далее, причем список параметров для них определяется "на лету". Таким образом реализованы, например, поиск пользователей и шлюз в сеть MSN. К тому же, разработчики - ребята простые, поэтому их сервер по умолчанию поддерживает соединения, защищенные SSL.

Гибкость серверной части позволяет реализовать заветную мечту практически всех корпоративных пользователей. Помнится, из-за того, что стабильность связи со внешним миром в офисах фирм на Украине, где я работал, часто оставляла желать лучшего, нам очень хотелось иметь "прозрачный" сервер для ICQ, который в условиях упавшей сетки продолжал бы пересылать сообщения между пользователями в локалке. С Jabber это очень легко сделать - достаточно просто поставить у себя сервер и соединить его с центральным jabber.com. Когда соединение с последним поднято, контакты из внешнего мира будут доступны. В противном случае можно будет общаться только с локальными пользователями. Однако, когда пропадет соединение, клиентская программа, не в пример ICQ, не будет биться в конвульсиях, пытаясь соединиться со временно недоступным центральным серваком.

"А какой же у всей этой лабуды недостаток?" - спросите вы. Очень своевременный вопрос. С такой отличной серверной частью недостаток может быть только одним. Это - клиенты. Для того, чтобы потестировать поддержку Jabber в centericq вкупе с чем-то, заведомо работающем, я методично прошелся по всем программам, представленным на фрешмит. С день бился головой об стены некомпилирующегося кода. В итоге, после нескольких завершающих штрихов напильником и топором, я таки поставил konverse. А уже после этого открыл для себя psi. Честно говоря, и сподвигло-то меня на реализацию поддержки Jabber огромное количество несчастных, которые с нескрываемой надеждой спрашивали планируется ли это, ибо сил нет уже терпеть без приличного клиента для консоли. Мол, есть похожий на ircII jabberx, но хотелось бы чего-то еще более душевного.

Причина такого медленного развития клиентской части состоит в том, что ребята из jabber team изначально и до сих пор позиционировались исключительно на технической части, и не сильно сосредотачивались на конечном пользователе, которому красота XML в протоколе и открытость спецификаций, прошу прощения за мой французский, до задницы. Куда им до AOL/ICQ с их промоушенами а-ля "задай вопрос Бритни Спирс"!

Однако, и этот подход не так уж и плох, потому как технически продуманный протокол в долгосрочной перспективе однозначно обречен на успех. Как я уже сказал, у разнообразных корпоративных подонков есть уже 1000 и 1 причина поставить собственный jabber-сервер во внутриофисном LAN. Потихоньку-полегоньку, и вы увидите, что этот стандарт будет доминировать. Пускай не сегодня и не в следующем году..



дизайн и содержимое сайта © , 2001-2017 | ~ 5910 посещений в день | статистика