Многоплатформенный сервер обмена мгновенными сообщениями+клиент
1 Многоплатформенный сервер мгновенных сообщений + клиент Многоплатформенный сервер мгновенных сообщений + клиент Bc. Либор Джанота Дипломная работа 2009 г.
5 РЕЗЮМЕ В этой диссертации обсуждаются основные принципы обмена мгновенными сообщениями и их использование. Здесь представлено текущее состояние этих технологий, как со стороны клиентских приложений, так и серверной части. Основные протоколы связи описаны здесь. Одним из них является протокол XMPP. Данный протокол является частью практической части данной дипломной работы. В этом разделе обсуждается разработка и реализация простой системы, основанной на обмене мгновенными сообщениями. Это демонстрационные серверные и клиентские приложения, основанные на кроссплатформенной библиотеке wxwidgets. Эти приложения демонстрируют базовое использование этой библиотеки и реализуют открытый сетевой протокол связи XMPP. Ключевые слова: сервер, клиент, XMPP, обмен мгновенными сообщениями, wxwidgets, чат, XML, протокол, Jabber, ICQ, IM, сетевое взаимодействие, сокеты РЕФЕРАТ Эта дипломная работа посвящена основным принципам обмена мгновенными сообщениями и их использованию. Описано сегодняшнее состояние этих технологий. В этом тезисе клиентские и серверные сегодняшние решения. Представлены основные протоколы связи. Одним из них является протокол XMPP. Этот протокол является частью этого тезиса. Эта часть посвящена предложению и внедрению простой системы связи, которая является базовой основой обмена мгновенными сообщениями. Это приложение представляет собой демонстрационное приложение серверно-клиентского типа. Приложение построено на библиотеке wxwidgets. Эти приложения демонстрируют базовое использование этой библиотеки и реализуют открытый протокол XMPP для сетевого взаимодействия. Ключевые слова: Сервер, Клиент, XMPP, Обмен мгновенными сообщениями, wxwidgets, чат, XML, протокол, Jabber, ICQ,IM, сетевое общение, сокеты
6 TBU в Злине, Факультет прикладной информатики, Благодарность, девиз Благодарю г-на инж. Михал Ближняк, доктор философии, руководитель дипломной работы, за его советы, комментарии и всестороннюю помощь в решении. Я также хочу поблагодарить свою семью, подругу, друзей и знакомых за поддержку в написании этой диссертации.
7 TUB в Злине, Факультет прикладной информатики, я заявляю, что я признаю, что, представляя мой диплом/дипломную работу, я даю согласие на публикацию моей диссертации в соответствии с Законом № 111/1998 Coll. об университетах и о внесении изменений и дополнений в другие законы (Закон об университетах) с изменениями, внесенными более поздними правовыми актами, независимо от результатов защиты; Я подтверждаю, что диплом/бакалавриатская работа будет храниться в электронной форме в информационной системе университета, доступной для личного ознакомления, что один экземпляр диплома/бакалавровской диссертации будет храниться в справочной библиотеке факультета прикладной информатики Университет Томаша Баты в Злине, и один экземпляр будет храниться вместе с руководителем; Мне сообщили, что Закон № 121/2000 Coll. полностью применим к моему диплому/дипломной работе бакалавра. об авторском праве, о правах, связанных с авторским правом, и об изменении некоторых законов (закон об авторском праве) с поправками, внесенными более поздними правовыми актами, в частности, 35 пункт 3; Я признаю, что в соответствии с 60 пунктом 1 Закона об авторском праве, TUB в Злине имеет право заключить лицензионный договор на использование школьной работы в рамках 12 пункта 4 Закона об авторском праве; Я признаю, что в соответствии с 60 пунктами 2 и 3 Закона об авторском праве я могу использовать свою работу в качестве дипломной/бакалаврской диссертации или предоставить лицензию на ее использование только с предварительного письменного согласия Университета Томаша Баты в Злине, который имеет право в таком случае потребовать от меня разумного взноса для покрытия расходов, понесенных Университетом Томаса Баты в Злине.понесенные для создания произведения (до их фактической суммы); Я признаю, что если программное обеспечение, предоставленное Университетом Томаса Баты в Злине или другими организациями, использовалось для разработки диплома/дипломной работы бакалавра только в учебных и исследовательских целях (т.е. только для некоммерческого использования), результаты диплома/дипломной работы бакалавра не могут использоваться в коммерческих целях; Отмечу, что если результатом дипломной/бакалаврской работы является какой-либо программный продукт, исходные коды также считаются частью диссертации или файлы, составляющие проект. Непредставление данного компонента может быть основанием для отказа от защиты диссертации. Заявляю, что работал над дипломной работой самостоятельно и приводил использованную литературу. В случае публикации результатов я буду указан как соавтор. В Злине. Подпись выпускника
8 TBU в Злине, Факультет прикладной информатики, СОДЕРЖАНИЕ ВВЕДЕНИЕ I ТЕОРЕТИЧЕСКАЯ ЧАСТЬ I СТАТИСТИКА ОБМЕН СООБЩЕНИЯМИ ЧТО ТАКОЕ ОБМЕН МГНОВЕННЫМИ СООБЩЕНИЯМИ ПРИНЦИП ПРЕИМУЩЕСТВА ИСТОРИЯ ЗЛОУПОТРЕБЛЕНИЙ СЕГОДНЯШНИЙ СОСТОЯНИЕ БУДУЩЕЕ СУЩЕСТВУЮЩИЕ РЕШЕНИЯ ICQ Функции программы Основная информация Связь Протокол OSCAR Проблемы SKYPE Функции программы Связь Проблемы MSN Протокол MSN JABBER Функция и принцип работы Jabber Transports в Jabber Клиент Jabber Jabbim Основные функции Сервер Jabber OpenFire Сервер Jabber Jabberd Сервер Jabber Ejabberd АЛЬТЕРНАТИВНЫЕ КЛИЕНТЫ Miranda Kopete SIM Pidgin Google Talk ОСНОВНЫЕ ТЕХНОЛОГИИ И ПРИНЦИПЫ WXWIDGETS История XML Основной синтаксис. 44
9 UTB в Злине, Факультет прикладной информатики, XMPP ПРОТОКОЛ Основные элементы сообщения о присутствии Протокол Iq Основные сообщения Сообщение Добавить контакт Удалить контакт Скачать список контактов Изменить статус Регистрация пользователя Скачать историю с сервера Пример общения РАБОТА С СОКЕТАМИ Типы сокетов соединения Клиентское соединение Слушающее соединение Серверное соединениеЧтение и запись сокетов Неблокирующее соединение Блокирующее соединение II ПРАКТИЧЕСКАЯ ЧАСТЬ РАЗРАБОТКА ОСНОВНОЙ ПРИНЦИП КЛИЕНТ Принцип Структура Программа и ее функции На изображении ниже показан пример того, как выглядит этот клиент: Меню Клиент Меню Вид Меню Настройки Меню Справка СЕРВЕР Принцип Структура Функции К ниже на данном изображении показан пример того, как выглядит этот клиент.: Меню Сервер Меню Настройки Меню Журнал Меню Помощь XMPP БИБЛИОТЕКА РАСШИРЕНИЙ ЗАКЛЮЧЕНИЕ ЗАКЛЮЧЕНИЕ V A GLICTI Ú. 72
10 UTB в Злине, факультет прикладной информатики, SEZ AM ИСПОЛЬЗУЕМАЯ ЛИТЕРАТУРА SEZ AM ИСПОЛЬЗУЕМЫЕ СИМВОЛЫ И SEZ AM АББРЕВИАТУРЫ SEZ AM ЦИФРЫ SEZ AM ТАБЛИЦЫ SEZ AM ПРИЛОЖЕНИЯ. 77
11 TUB в Злине, Факультет прикладной информатики, ВВЕДЕНИЕ Люди и не только люди всегда имели и имеют большую потребность в общении друг с другом. Это общение является пониманием путем передачи информации. Оно осуществляется между людьми посредством устной или письменной речи и невербальных средств, например, мимики, жестов и т. д. Понимание является необходимой предпосылкой для сотрудничества, конкуренции и обучения, создания групп и эмоциональных отношений. С самого начала человечества общение было очень важным. Раньше это делалось не с помощью телефонов, интернета или различных современных передовых технологий, а с помощью различных дымовых, акустических или световых сигналов. Зазубрины и узлы использовались для хранения и передачи информации. После открытия письменности люди считали, что она избавит их от необходимости пользоваться памятью. Знаковое и иероглифическое письмо представляли собой графическое выражение устных значений и были трудны для изучения, поэтому чтение и письмо были связаны друг с другом. Фундаментальной информационной революцией стало открытие фонетического алфавита, что привело к отделению знаков и звуков от их языкового значения. Информация могла передаваться с языка на язык, из одной культурной области в другую. Эти и другие древние техники общения могут быть только для насмечта, сегодня телеграф, почта, телефон, радио, радар, спутники и Интернет более известны. Несомненно, она уже полностью меняет ход и ритм нашей жизни, дает умереть опытному социальному интеллекту и сметает традиционное расположение рабочих мест и квартир. Большое количество людей сегодня используют Интернет таким образом, что они могут использовать эту среду для просмотра различных сайтов, чтения различных книг, покупок в интернет-магазинах или отправки электронных писем. Однако многие из них со временем обнаруживают, что во многих случаях это происходит не так быстро и немедленно, как это было бы уместно для данного человека. Следовательно, существует тип общения с использованием этой сети, который позволит общаться между несколькими людьми в режиме реального времени, где участники этого общения могут находиться на другом конце света. Это означает, что в любой момент времени за компьютерами будет сидеть определенное количество людей, которые будут обсуждать друг с другом, переписывая сообщения или, например, разговаривая. При этом они увидят полное обсуждение и смогут войти в него в любой момент. Связь между ними будет обеспечиваться через Интернет или какую-либо форму компьютерной сети. Эта форма общения затем позволяет вам видеть, кто подключен, то есть кто может общаться с вами в данный момент, и тогда вы можете, например, отправлять не только сообщения, но и файлы, или обмениваться различными формами связь, которую предлагает данное приложение. Большим преимуществом такого разговора по сравнению с вами является скорость. Конечно, должно быть
12 TUB в Злине, Факультет прикладной информатики, с учетом того, может ли данный человек быстро или медленно печатать на клавиатуре. Тогда это может быть воспринято как определенный тип гандикапа. Эта форма общения на самом деле представляет собой определенный тип так называемого чата, только для этого вам не нужно использовать интернет-браузер, вам не нужно подключаться к какому-либо интернет-сайту и регистрироваться в некоторых чатах. Потому что до сих порчешского эквивалента нет, поэтому этот тип связи называется Instant Messaging, и этот тип связи, его использование, его текущее состояние и дизайн собственного клиента, который позволит пользователю подключаться несколько раз, а сервер на которой будет храниться история общения, является предметом всей этой диссертации.
13 TBU в Злине, факультет прикладной информатики, I. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
14 TUB в Злине, Факультет прикладной информатики, СТАТИСТИЧЕСКИЕ СООБЩЕНИЯ 1.1 Что такое обмен мгновенными сообщениями Как уже упоминалось во введении, обмен мгновенными сообщениями (далее IM) означает, что это форма общения в режиме реального времени. По сути, это текстовое общение между двумя или более людьми в компьютерной сети, которая может быть Интернетом, интранетом или компьютерной сетью другого типа. Однако в настоящее время эта услуга расширена для передачи файлов, голоса и изображений, и очень часто мы можем писать или разговаривать с несколькими людьми одновременно. Это очень эффективный метод совместной работы, который имеет ряд преимуществ перед аналогичными методами, такими как или чат. Это полностью соответствует лозунгу сегодняшнего времени «общение и сотрудничество». Существует множество систем обмена мгновенными сообщениями, таких как ICQ, MS Messanger, Skype, AIM, Google Talk, Miranda или Jabber. 1.2 Принцип Принцип и функция такой системы заключается в том, что нам нужна учетная запись в данной системе, расположенная на сервере, который хранит базу данных пользователей и обеспечивает связь между вашим компьютером и другими участниками обсуждения. В качестве первой операции вам необходимо создать свое имя пользователя, под которым с вами можно будет общаться внутри сети, некоторое клиентское ПО, см. рис. 1. Чаще всего это ПО, написанное непосредственно для данного приложения и для конкретной операционной системы, но это может быть и, например, веб-клиент. Эта программа гарантирует, что ваши сообщения будут доставлены на указанный сервер, которыйпересылает их адресату. Общение происходит с помощью так называемого коммуникационного протокола, в котором подробно описано, как будут форматироваться входящие и исходящие сообщения, как будет выглядеть общение при отправке файлов и т. д. Клиентское приложение все это переводит на язык протокола. Проще говоря, принцип в основном заключается в том, что мы отправляем текстовые сообщения, которые другая сторона немедленно получает и может немедленно ответить ответом. Принцип обмена мгновенными сообщениями можно просто сравнить с текстовыми сообщениями (SMS) в сети мобильной телефонной связи.
15 TUB в Злине, Факультет прикладной информатики, преимущества Рисунок 1. Пример клиента Как уже упоминалось выше, IM имеет ряд преимуществ по сравнению с другими сетевыми коммуникациями. Главное преимущество в том, что это общение в режиме реального времени. Главное преимущество перед, например, u в том, что мы можем вести более-менее эффективное онлайн-общение, на что он не рассчитан. IM оптимизирован для отправки коротких сообщений, которые мы используем для разговора. Мы также можем сохранить историю по большей части. Преимущество перед классическим чатом в том, что у нас есть список наших контактов, и мы можем написать одному или нескольким из них в любое время. В большинстве систем мы также можем писать сообщения контакту, который не подключен. Хорошей особенностью большинства мгновенных сообщений является так называемое присутствие, т.е. информация о состоянии присутствия и готовности к разговору. Этот статус устанавливается либо автоматически (если мы какое-то время не работаем на компьютере), либо вручную (например, не беспокоить).
16 TBU в Злине, Факультет прикладной информатики, Однако многие люди могут предположить, что лучше общаться, например, по телефону. Но практика начинает подтверждать, что ИМ лучше по нескольким параметрам. Либо мы можем ответить сразу, либо мы можем подумать над ответом, либо у нас есть возможность ответить только тогда, когда у нас есть на это время. Мы легко можем вести несколько разговоров одновременно. Плюс сегодняРасширения для обмена мгновенными сообщениями позволяют отправлять файлы (например, изображения), участвовать в голосовом или видеозвонке. Мы также можем легко отправлять ссылки, исходные коды и тому подобное, что сложно сообщить по телефону. Именно поэтому IM становится все более популярным, как для корпоративного общения, так и для личного пользования. 1.4 Злоупотребление Поскольку IM набирает все большую популярность, благодаря своей оперативности дополняет или заменяет даже официальное общение компании, так получилось, что оно стало привлекать компьютерных злоумышленников. Наиболее частым неправомерным использованием IM является распространение классической вирусной инфекции, и увеличение числа таких попыток показывает, что злоумышленники нашли в этом хобби. Классическое распространение вирусов через мессенджеры более-менее по тому же и простому сценарию. На первом этапе выбранное сообщение автоматически отправляется доступным контактам, которые в основном содержат включенную интернет-ссылку. Также его можно дополнить стандартным текстом, призывающим пользователя перейти по этой ссылке. Более строгий вариант кажется более сложным. Он работает больше по той причине, что не содержит вышеупомянутого текста, который может быть, например, на английском или русском языке. И это каким-то образом предупреждает человека, говорящего на другом языке, о надвигающейся опасности. Однако на первый взгляд ничего не знающий получатель об этом не знает, так как указанная ссылка выглядит так, как будто она пришла от известного контакта, поэтому нет причин не перейти по ней. После этого судьбоносного щелчка пользователю в лучшем случае открывается окно браузера, предлагающее какой-то товар. Однако в худшем случае загружается вредоносный код, этот код выполняется и снова распространяется по этим трекам. Этот вредоносный код может привести к отправке данных о данном пользователе, таких как имя, фамилия, номер социального страхования и т. д. Затем эти данные каким-то образом используются не по назначению. Этот код также может взять на себяконтроль над вашей учетной записью и украсть вашу учетную запись. Однако этот случай — не единственная возможность, которую сегодняшние злоумышленники могут использовать в мире обмена мгновенными сообщениями. Возможности им также предоставляют сами клиенты для различных
17 TBU в Злине, Факультет прикладной информатики, протоколы, потому что это такие же приложения, как и любые другие, которые в принципе не могут быть полностью защищены. Типичным случаем злоупотребления здесь может быть известное переполнение стека (например, включение специальной строки в сообщение в конкретной версии выбранного приложения) с последующей возможностью запуска собственного кода злоумышленника внутри уязвимой системы и с правами вошедшего в данный момент пользователя, что может иметь катастрофические последствия. К счастью, в наши дни, когда обмен мгновенными сообщениями затрагивает почти всех, кто работает с персональным компьютером и, возможно, с Интернетом, достаточно руководствоваться здравым смыслом при получении подозрительного сообщения, возможно, в сочетании с более качественным антивирусом, см. рис. 2. К ним часто относятся компонент для мониторинга только обмена мгновенными сообщениями и может предотвратить возможное неправильное использование. Рис. 2. Пример антивирусной программы, включающей фильтрацию IM
18 TBU в Злине, факультет прикладной информатики, история Первые упоминания об обмене мгновенными сообщениями относятся к середине 1960-х годов, когда существовали такие операционные системы, как CTSS или Multics, которые использовали системы для уведомления пользователей, подключенных к одному и тому же station , о том, использует ли кто-то принтер или нет. Эти системы достаточно хорошо зарекомендовали себя и стали использоваться в сетях непосредственно между отдельными пользователями. В таких системах использовались одноранговые протоколы. Это были, например, программы talk, ntalk или ytalk. Но об истинном обмене мгновенными сообщениями можно говорить только с конца восьмидесятых годов, когда в Финляндии в 1988 году была введена сеть связи IRC. Со временем, когдаэта связь была не только между некоторыми исследовательскими сетями, но стала перемещаться в Интернет, поэтому эти приложения и сети начали развиваться. Другой и относительно крупной вехой в этой области стал 1996 год, когда одна из первых свободно доступных программ для обмена мгновенными сообщениями была выпущена для широкой публики. Этой программой стала ICQ, которая принадлежала израильской компании Mirabilis. Благодаря его росту он и вся компания были куплены AOL Instant Messenger в 1998 году за 407 миллионов долларов США. В течение нескольких лет было разработано множество альтернативных IM-клиентов, например, Yahoo Messenger, MSN Messenger, Excite, Ubique или более безопасная программа Lotus Sametime от IBM, каждый со своим собственным протоколом, которые по понятным причинам были несовместимы друг с другом. Поэтому пользователям приходилось запускать несколько клиентов одновременно. Благодаря этому многопротокольные клиенты, такие как Pidgin (ранее Gaim), Miranda, Trillian, SIM или Kopete, пользуются большим успехом. Нетребовательный российский клиент QIP также совместим с ICQ, который поддерживает только эту сеть (в новой версии QIP Infium уже поддерживает сети Jabber и XIMMS), но он стабильнее и проще в настройке, чем Миранда, которая, однако, поддерживает множество расширений и гораздо больше протоколов. Оба этих клиента предназначены только для операционной системы Windows. Различия между протоколами стираются открытым протоколом XMPP для обмена мгновенными сообщениями (иными словами, Jabber), который, помимо прочего, также может связываться с другими сетями с помощью так называемых транспортов [2]
19 TBU в Злине, Факультет прикладной информатики, Текущее состояние Поскольку этот метод связи является и будет очень популярным, совершенно ясно, что должно быть несколько сетей, в которых может осуществляться связь. Эти сети можно разделить на две основные группы (в смысле того, кто эксплуатирует и развивает эти сети) — Коммерческие (эксплуатируются коммерческими компаниями) o ICQ o MSN o AOL oSKYPE o — электронная коммерческая (имеется в виду эксплуатируемая энтузиастами или некоммерческими организациями или компаниями, для которых работа этой сети не является основным источником дохода) o Jabber o IRC o Недостатком этих сетей связи является, конечно, то, что эти индивидуальные сети несовместимы друг с другом, это означает, что если вы создадите учетную запись в одной сети, вы не сможете общаться с людьми из другой сети. Если вам нужно быть в контакте с людьми из другой сети, вы должны создать регистрацию и там, и в итоге вы можете иметь их несколько. Протоколы связи в сетях обмена мгновенными сообщениями имеют те же правила, которые применяются, например, к программному обеспечению. Есть протоколы полностью закрытые и непубличные, например, Skype, или протоколы открытые, но их использование регулируется особыми условиями, например, протокол OSCAR в сети ICQ/AOL, и, наконец, полностью бесплатные протоколы, например. XMPP/Jabber. Что касается протяженности отдельных сетей, сказать это непросто. Самая распространенная сеть не может быть четко измерена. Можно ли это сделать по количеству зарегистрированных пользователей? Конечно, это был бы первый вопрос, который пришел бы каждому в голову. Но как оценивать людей,
20 TUB в Злине, факультет прикладной информатики, у которых есть несколько учетных записей в одной сети? Или по количеству одновременно подключенных пользователей? Методика измерения не может быть определена так просто и всегда основывается на каких-то оценках. Кроме того, коммерческие сети иногда не сообщают о количестве пользователей или данные устарели. Нельзя однозначно сказать, какая сеть самая большая. В таблице 1 представлена общая статистика используемых услуг в мире. Учетная запись пользователя Дата обслуживания AIM 53 миллиона активных, сентябрь 2006 г. >100 миллионов, всего, январь 2006 г. ebuddy, всего 35 миллионов, октябрь 2006 г., включая 4 миллиона мобильных пользователей Gizmo5 mobile и PC Gadu-Gadu 6 миллионов активных (в основном в Польше), июнь2008 IBM Lotus Sametime Всего 17 миллионов (частных, корпоративных) Ноябрь 2007 ICQ 15 миллионов активных Июль 2006 IMVU Всего 1 миллион Июнь 2007 Jabber миллионов Всего Январь 2007 Mail.ru Agent 1 миллион активных (ежедневно) Сентябрь 2006 Meebo 1 миллион всего Октябрь 2006 mundu messenger Всего более 2 миллионов 2008 г. Всего MXit 11 миллионов (9 миллионов в Южной Африке) Январь 2009 г. Paltalk 3,3 миллиона уникальных посетителей в месяц Август 2006 г. PSYC 1 миллион активных пользователей (ежедневно, в основном февраль Часть также используется в Бразилии) Служба IRC Skype 16 миллионов онлайн Февраль Всего млн Апрель Миллионы онлайн (в основном в Китае) Март 2008 г. Tencent QQ Миллионы «активных» (в основном март 2008 г. в Китае) 783 млн активных учетных записей (в основном в Китае) Март 2008 г. VZOchat> 550 000 Декабрь 2008 г. Windows Live Messenger (ранее MSN Messenger) 300 миллионов активных Xfire, всего 11,5 миллионов, октябрь 2008 г. Yahoo! Messenger 248 миллионов активных зарегистрированных пользователей Yahoo, январь 2008 г. данная сеть имеет.
21 TBU в Злине, Факультет прикладной информатики, будущее Ближайшее будущее обмена мгновенными сообщениями, безусловно, таково, что эта услуга будет включена в большее количество технологий, чем сейчас. IM уже широко используется в мобильных телефонах, либо в качестве дополнительного приложения, и даже некоторые производители уже начинают предоставлять эту услугу в качестве стандарта. У этой услуги определенно есть будущее в мобильных телефонах, ведь ее эксплуатация в разы дешевле, чем отправка коротких текстовых сообщений.
22 TBU в Злине, Факультет прикладной информатики, ТЕКУЩИЕ РЕШЕНИЯ В этой главе рассматриваются основные сетевые, клиентские или серверные решения, которые в настоящее времясамый распространенный. 2.1 ICQ ICQ — это протокол для обмена мгновенными сообщениями и одновременно программное обеспечение для общения, см. рис. 3, производимое, как уже упоминалось выше, израильской компанией Mirabilis и впервые представленное и представленное в 1998 году. Mirabilis был куплен нынешним владельцем, компанией AOL. , за 407 миллионов долларов. ICQ произносится как ajsíkyu, что по-английски звучит как «Я ищу тебя». Рисунок 3.: Программа ICQ
23 UTB в Злине, Факультет прикладной информатики, Функции программы Функции программы ICQ включают в себя отправку: — текстовых сообщений — обмен сообщениями в автономном режиме — чат с несколькими пользователями — ограниченную отправку бесплатных SMS-сообщений с дневным лимитом — отправку файлов, открыток — в основном многопользовательские игры в технологии Flash. — поиск пользователей по нику, имени и ICQ UIN — поддержка протокола POP3 — теперь также совершать аудио- и видеозвонки Основная информация Большой минус в том, что общение не шифруется. Не устанавливая официальную программу, вы также можете подключиться к ICQ через веб-интерфейс ICQ2Go (на Flash и Java), или используя альтернативные клиенты, например: QIP, SIM, Pidgin, Miranda IM, meebo.com, пользователи ICQ нумеруются с помощью Номер UIN (Универсальный Интернет-Номер или Единый Идентификационный Номер), который уникален для каждого пользователя. Новые пользователи теперь получают UIN через низкие номера, в основном проданные с аукциона ebay от пользователей, которые зарегистрировались очень рано. Меньшая часть с низкими номерами атакуется хакерами с целью перепродажи Связь Сеть ICQ построена на сегодняшнем неофициально открытом протоколе OSCAR, который описан в главе По сравнению с Jabber, однако сеть ICQ работает несколько иначе. Существует один центральный сервер, содержащий полную базу данных пользователей. В последних версиях клиента ICQ есть возможность авторизоваться как по UIN, так и по u,который вы ввели при регистрации своей учетной записи пользователя.
24 TBU в Злине, Факультет прикладной информатики, Протокол OSCAR OSCAR — Открытая система для связи в реальном времени. Это двоичный протокол, использующий протокол TCP. В предыдущей главе я писал, что протокол открытый, но не официально. Его спецификация закрыта для общественности, хотя название протокола говорит о другом. В настоящее время этот протокол используют два клиента обмена мгновенными сообщениями AOL: ICQ и AIM. В прошлом компания приложила огромные усилия, чтобы помешать конкурентам, таким как Microsoft или Jabber, внедрить совместимое программное обеспечение для обмена сообщениями. В 2002 году AOL предоставила Apple Computer собственную библиотеку, которая обеспечила совместимость между продуктами AOL и программой ichat от Apple Computer. Благодаря этому клиенты AOL получили возможность использовать свои учетные записи на. Дальнейшее раскрытие протокола третьим лицам еще не произошло, а доступные спецификации протокола в Интернете были созданы только после так называемого реверс-инжиниринга (который в этот случай, короче говоря, означает, что сообщение исходного клиента перехватывается и расшифровывается). Этот факт обуславливает не 100% совместимость с протоколом и соответственно некорректное поведение с альтернативными клиентами. AOL требуется лишь незначительное изменение протокола, и альтернативные клиенты перестают работать. Тем не менее, компания не возражает, поскольку использование других альтернативных клиентов противоречит лицензии. Тем не менее, для многих людей использование ICQ вызывает споры, поскольку, используя эту сеть, вы соглашаетесь с условиями, которые дает сама себе AOL. В основном, основные причины заключаются в том, что сеть ICQ не должна использоваться лицами моложе тринадцати лет, вы не должны использовать ее в коммерческих целях (т.е. ICQ нельзя использовать ни для общения с клиентами, ни для делового общения) икроме того, вы не можете получить доступ к сети ICQ с помощью любого другого клиента, кроме официального. Еще одна важная причина, по которой людям не нравится эта сеть, заключается в том, что версия для Linux недоступна. Однако многие клиенты для Linux все еще существуют. Проблема в том, что использование этих программ ставит вас в противоречие с условиями использования сети ICQ. Единственный совместимый с лицензией способ использования ICQ на компьютере с Linux — это использование ICQ2GO, клиента, который можно использовать с веб-браузером и флэш-памятью. Тем более официальный клиент перегружен
25 TUB в Злине, Факультет прикладной информатики, с рекламой (различные окна с рекламой) и многие пользователи жалуются на это. Однако, если подумать, это один из способов сохранить сеть ICQ бесплатной и заработать на трафике. Однако в Чешской Республике, когда упоминается обмен мгновенными сообщениями, подавляющее большинство людей думает именно об этой сети.[3] 2.2 Skype Skype — это одноранговая программа, обеспечивающая Интернет-телефонию (VoIP) и обмен мгновенными сообщениями. Основу этого приложения написали эстонские программисты Ахти Хейнла, Прийт Касесалу и Яан Таллинн, основавшие популярную программу Kazaa. Skype был основан датчанами Никласом Зеннстремом и Янусом Фриисом. Первоначальное название этой программы было Sky peer-to-peer, которое впоследствии было сокращено до SKYPER. Однако, поскольку домен скайпера занят в нескольких странах, название формы было сокращено до нынешнего SKYPE. Однако по сравнению с сетью ICQ это приложение имеет существенное преимущество. Имеет официальный клиент, см. рисунок 4, также для операционных систем Linux и Mac OS X. Разработка приложения для операционных систем Windows, Linux и Mac OS не синхронизирована, но хоть версии и имеют совершенно разные номера, они очень похожи.
26 TUB в Злине, Факультет прикладной информатики, Рис. 4.: Программа Skype Функции программы Функции программы SKYPE включают в себя: -Звонки внутри сети Skype Бесплатно. — Мгновенный обмен сообщениями бесплатно. Отправка сообщений и файлов между пользователями сети. — SkypeOut Платная услуга для совершения звонков в традиционные телефонные сети. — SkypeIn Платная услуга, при которой абоненту присваивается телефонный номер, на который можно звонить из традиционных телефонных сетей. — Голосовая Платная услуга. Обеспечивает функциональность голосовой почты. — Skype Video Calling Видеоконференции между пользователями сети Skype, доступные начиная с версии 2.0; бесплатно. — Skype SMS Платная услуга. Позволяет отправлять SMS на мобильные телефоны. — SkypeFind Начиная с версии 3.1 для Windows. Сервис позволяет пользователям создавать и искать базу данных компаний. — Skype Prime Начиная с версии 3.1. Позволяет получать оплату за входящие звонки (требуется учетная запись PayPal). — Переадресация звонков Позволяет переадресовывать звонки, когда вы не в сети. Тарифицируется только для классических телефонов. — Skype Extras Дополнительные программы, такие как игры, запись звонков, общий доступ к рабочему столу; некоторые должны быть оплачены. — Skypecasts Большие голосовые конференции (до 100 участников). Их можно модерировать (модератор решает, кто может говорить в данный момент) Общение Общение между отдельными клиентами SKYPE происходит децентрализованно через разные компьютеры, подключенные к сети Skype, центральный сервер только проверяет открытый ключ пользователя при входе в сеть. Связь шифруется шифром AES с длиной ключа 256 бит, но оператор службы может изменить это без предварительного уведомления, даже по адресу. Ни протокол связи, ни исходные коды программы не являются общедоступными, но понимание того, как работает протокол, становится известно благодаря обратному инжинирингу. Чтобы сломать
27 TBU в Злине, Факультет прикладной информатики, однако общение произошло в середине года. Этот факт был успешным для группы китайских ученых. Сама программа работает и как клиент, и как сервер. Возможная ошибка безопасностиможет скомпрометировать всю сеть Skype. Программа также может контролироваться другими программами через опубликованный API — если пользователь явным образом разрешает управлять Skype внешним приложением через этот API, это может открыть возможность эксплуатации различными вредоносными программами (вирусами, шпионскими программами, вредоносными программами и т. д.). [4] Проблемы. Говорят, что использование Skype не является полностью безопасным, поскольку, согласно некоторым источникам, он куда-то отправляет серийный номер материнской платы. Кроме того, есть много критики со стороны людей, симпатизирующих OpenSource. К сожалению, речь идет не только о том факте, что вы можете читать исходные коды, но и о других преимуществах, которые из этого вытекают. Конечно, средний пользователь не заинтересован в коде напрямую, но его доступность имеет прямые последствия, влияющие на него, признают они это или нет. Именно так обстоит дело со Скайпом. К основным недостаткам приложения можно отнести: — Закрытый протокол — Централизованное управление службой В случае технических неполадок или сбоя в работе центрального офиса вся сеть полностью выходит из строя и никто не может совершать телефонные звонки, т.к. пример. — Контроль над потоком данных Путь, по которому будут передаваться данные, зависит от сервера, и вы, как пользователь, понятия не имеете, куда идут данные, и этот путь может меняться несколько раз во время вызова. — Функция суперузла Пользователи, которые сидят за прокси-сервером, NAT или каким-либо строгим брандмауэром, являются простыми узлами. И наоборот, те, кто находится на приличной линии с общедоступным IP-адресом, повышаются до так называемых суперузлов. Они становятся узлами, которые затем служат коммутаторами для передачи коммуникационных данных и аудиопотоков. Что приводит к тому, что вы об этом не подозреваете, как и ваша линия
28 TUB в Злине, факультет прикладной информатики, ослабленный этими зарубежными передачами. Если человек ограничен каким-то лимитом данных, то может возникнуть большая проблема. — Возможность прослушивания телефонных разговоров. Компания, работающая с данным сервисом, можетПодслушивать ваши сообщения, как указано в условиях лицензии, Они могут организовать это двумя способами. Они могут дать указание клиенту перенаправить сообщение на конкретный суперузел, а не шифровать или каким-либо образом ослаблять зашифрованное соединение. Просто используйте для этого ограниченный набор ключей. — Скайп-трафик нельзя просто так ограничить, Скайп изначально спроектирован так, чтобы идти куда угодно, поэтому заблокировать его более чем сложно. Хотя это полезно для пользователей, это также усложняет жизнь сетевым администраторам. 2.3 MS MSN, также известная как Microsoft Network, представляет собой набор Интернет-служб, разработанных Microsoft. Первоначально MSN был запущен по случаю первого выпуска операционной системы Microsoft Windows 95. С тех пор спектр предоставляемых услуг вырос в несколько раз. Первой предоставленной услугой был почтовый ящик Hotmail, за которым последовал мессенджер MSN Messenger. Однако недавно он был переименован в Windows Live Messenger. В 2006 году MSN претерпела серьезное преобразование в Windows Live, в основном благодаря усилиям Microsoft по повышению привлекательности услуг, предоставляемых более широкому населению. Он ответил на большой интерес к обмену мгновенными сообщениями и подобным сервисам. В США MSN — это не просто поставщик контента и оператор поисковой системы. Он также предоставляет интернет-услуги здесь. Постепенно все текущие сервисы MSN трансформируются в новый интерфейс, который сейчас проходит бета-тестирование. Слово MSN в основном использовалось как синоним MSN Messenger, сегодня Windows Live Messanger, см. рис. 5. Это клиент обмена мгновенными сообщениями от Microsoft, теперь доступный для Windows XP, Windows Vista, Windows 7,
.
29 TUB в Злине, Факультет прикладной информатики, Windows Server 2003, Windows Server 2008 и Windows Mobile. Он доступен бесплатно по бесплатной лицензии. Большое преимущество в этомклиента есть синхронизация с Microsoft Outlook и полная интеграция в систему Windows. Он также позволяет общаться с помощью текстовых сообщений, видеопередачи, чатов, обмена фотографиями, общего доступа к рабочему столу и передачи голоса. Смайлики — это само собой разумеющееся. Особенностью является так называемое подталкивание (заставляет окно пользователя дрожать) и подмигивание (анимация в окне обмена сообщениями). Вы также можете общаться с Yahoo! Мессенджер, которым пользуются 25 миллионов пользователей. Windows Live Messenger активно используют 291 миллион пользователей по всему миру (2008 г.). Общее количество зарегистрированных пользователей составляет 452 миллиона (2008 г.)[5]. Протокол MS Windows Live Messenger работает по протоколу MSNP, разработанному для этих целей компанией Microsoft. Протокол Microsoft Notification Protocol работает через соединение TCP/IP, в некоторых случаях также используя HTTP, для подключения к службе NET Messenger. Теперь доступна версия протокола 15. Сторонние клиенты, такие как Pidgin или Trillian, также используют этот протокол. В этой новой версии представлен новый и более безопасный вид авторизации. Протокол также не полностью открыт для общественности. Рисунок 5.: Windows Live Messenger
30 TBU в Злине, Факультет прикладной информатики, Jabber Одной из систем обмена мгновенными сообщениями является технология Jabber Instant Messaging and Presence (Jabber). Jabber основан на Extensible Messaging and Presence Protocol (XMPP), открытом стандартизированном протоколе на основе XML. Этот протокол описан в главе 3.3 Протокол XMPP. Поскольку это открытый стандарт, любой может создавать приложения, использующие XMPP. Таким образом, ситуация аналогична ситуации с протоколом SMTP. Кроме того, принцип работы и использования аналогичен электронной почте. Эти преимущества привели к тому, что Jabber (согласно некоторым исследованиям) сегодня является наиболее используемой системой обмена мгновенными сообщениями. Более того, этовероятно, единственный, основанный на стандартизированном протоколе.[6] Большим преимуществом Jabber является его открытость и универсальность. Мы можем просто использовать его в личных целях, как и другие системы обмена мгновенными сообщениями (и заменить, например, ICQ). Мы просто находим общедоступного провайдера (сервер), на котором создаем (бесплатную) учетную запись. Но с таким же успехом Jabber можно развернуть в корпоративной среде, и мы можем построить коммуникационную инфраструктуру, которую можно закрыть или подключить к общедоступной сети (и общаться с другими учетными записями Jabber). Так как сеть никак не централизована и фактически является просто протоколом, официального клиента тоже нет. Впрочем, с этой сетью это и не нужно, ее использование не ограничивается одной программой, можно даже написать собственное приложение и использовать его. Отсюда вытекает одна небольшая проблема, так как, имея возможность создать приложение самостоятельно, вам не обязательно реализовывать все свойства протокола связи, и поэтому иногда бывает, что не все реализовано в данной программе. Тем не менее, вы не должны сталкиваться с какими-либо серьезными проблемами с большинством самых популярных клиентов. Кроме того, также важно, поддерживает ли данный сервис ваш Jabber-сервер, к которому вы подключаетесь. В основном это касается так называемого транспорта (описанного ниже), который представляет собой набор функций, позволяющих вам общаться в различных других сетях обмена мгновенными сообщениями Функции и принцип работы Jabber Основной принцип этой системы немного отличается от вышеупомянутых систем обмена мгновенными сообщениями. , которые централизованно подключены к основному серверу. Подключение к сети Jabber аналогично подключению u. У нас есть ряд серверов, и во время связи происходит связь с сервером, на котором находится целевая учетная запись.
31 TUB в Злине, Факультет прикладной информатики. Как упоминалось выше, принцип общения в Jabber аналогичен принципу передачи электронной почты. Важным термином является Jabber ID(JID), уникальный идентификатор в сети Jabber. Это то же самое, что и этот адрес. Его синтаксис: Пример может выглядеть так. Описание синтаксиса: — Имя — имя сервера или псевдоним пользователя, уникальный на данном сервере Имя сервера (домена), на котором у пользователя есть учетная запись или транспорт. Другими словами, адрес, по которому осуществляется связь сервер-сервер. Вся система основана на распределенных серверах через Интернет, к которым подключаются клиенты и которые общаются друг с другом. Однако можно использовать только один сервер внутри организации и общаться только внутри этой организации. Преимущество заключается в том, что сбой сервера затронет только тех пользователей, у которых есть учетная запись на этом сервере. Напротив, в случае с центральными серверами сбой затронет всех клиентов. У организаций есть собственный сервер, на котором они могут устанавливать нужные политики и безопасность для клиентских коммуникаций на этом сервере. Существуют также общедоступные серверы, на которых вы можете создать учетную запись. Примером может служить Google Talk, который использует XMPP и поэтому совместим как с клиентами, так и со всей сетью, хотя и имеет некоторые собственные расширения. В Чехии есть общедоступные серверы, такие как jabber.cz или jabbim.cz. Как происходит общение, когда я хочу отправить сообщение одному получателю: — клиент входит на сервер, где он аутентифицируется — если я отправляю сообщение, мой клиент отправляет его на мой сервер — он выполняет маршрутизацию — он подключается к целевому серверу (если это не сам таргет), по адресу сервера в JID — отправляет сообщение на таргет-сервер — таргет-сервер пересылает сообщение клиенту (когда он залогинился)
32 TUB в Злине, Факультет прикладной информатики, Транспорты в Jabber Транспорты в сети Jabber, проще говоря, соединяют несколько сетей вместе. Например, если кто-то долгое время пользовался ICQ и решил перейти на Jabber, он не хочетпотерять контакты, которые у него были в аське. У нас есть два варианта одновременного использования Jabber и других мессенджеров: — мультиклиент У нас есть один клиент, который может подключаться сразу к нескольким сетям. Примерами являются Miranda IM, Trillian или Pidgin. Однако мы нарушаем лицензионное соглашение с ICQ. — транспорт У нас может быть, например, транспорт ICQ на сервере, который является шлюзом в другую сеть. Клиент подключается к нашему серверу через Jabber, и он только обеспечивает связь с другой сетью. Однако, на мой взгляд, эти транспорты также конфликтуют с лицензией ICQ. К сожалению, с этими транспортами тут и там будут ошибки. Но упомянутые выше транспорты куда более универсальны. Это определенные серверные расширения, которые позволяют взаимодействовать с какой-либо другой системой. Например, есть транспорты для информации о погоде, новостей или отправки СМС. На изображении ниже (Рисунок 6) показано, как они работают в jabber. Пользователь Алиса отправляет сообщение на сервер Jabber. Благодаря транспорту последний отправляет сообщение на шлюз icq.example.com, а этот шлюз берет на себя доставку на сервер ICQ. Затем он должен доставить сообщение пользователю Бобу. Рис. 6.: Принцип транспорта в сети Jabbim
клиента Jabber Jabber
33 TUB в Злине, Факультет прикладной информатики, Jabbim — чешский клиент для Jabber, разработка которого поддерживается оператором одноименного сервера Jabber. Его цель — приблизить современные и полезные функции, предлагаемые Jabber, к обычным пользователям ПК. Поэтому он также поддерживает добавление новых функций в виде модулей (плагинов). Это клиент, написанный на Python и мультиплатформенный, работающий под Linux и Microsoft Windows. Он ориентирован в первую очередь на обычных пользователей, поэтому планируется и поддержка развлекательных игр. Эта программа написана под лицензией GNU GPL Основные функции — Объединение бесед в одно окно с панелями (вкладками) -Форматирование сообщений (XHTML-IM) — Графические смайлики — Передача файлов — Контроль конфиденциальности, блокировка контактов (списки конфиденциальности) — Двусторонняя индикация активности участников обсуждения (уведомления о состоянии чата) — Конференции (многопользовательский чат, групповой чат), настраиваемый интерфейс для их поиска, расширенная модерация — Закладки для популярных конференций и возможность автоматического присоединения к ним — Возможность преобразования обычного разговора (чат 1-на-1) в конференцию — Управление сервисами и другими клиентами с помощью специальных команд (Ad-Hoc Команды 1 ) — Невидимость — Интерфейс поиска и регистрации сервисов и транспортов (Service Discovery) — Шифрование с использованием TLS — Расширенные статусы (Настройка пользователя, Настроение пользователя, Активность пользователя, Чат пользователя) На рисунке 6 показан пример программы Jabbim. Как видите, детали контакта Голешова показаны здесь в качестве примера. Благодаря транспорту Jabbim может считывать и отображать текущую погоду в выбранных городах. 1 позволяют отправлять файлы из Jabbim другому клиенту с поддержкой специальных команд или, например, удаленно менять свой статус. Jabbim также в некоторой степени управляет удаленным управлением, поэтому клиент может управляться удаленно.
34 UTB в Злине, Факультет прикладной информатики, Фото 7.: Jabbim Jabber программа OpenFire server Серверов для jabber не много, но есть например: jabberd2, ejabberd, OpenFire, jabberd14 и т.д. На мой взгляд, достаточно простой сервер, определенно стоит упомянуть OpenFire. OpenFire — это клиент Spark XMPP/Jabber (ранее Wildfire), совместно разработанный Jive Software. Базовая версия сервера доступна по бесплатной лицензии и с исходными кодами. Кроме того, возможно и коммерческое лицензирование, которое дает вам доступ к ряду интересных закрытых расширений, таких как Clustering Plugin или Openfire Enterprise. Этот сервер очень прост вустановка и эксплуатация, поэтому он подходит как простая и полнофункциональная альтернатива обмену мгновенными сообщениями для корпоративной среды. Он имеет простой и понятный веб-интерфейс, локализованный на чешский язык. Функциональность сервера: — Интерфейс администратора — Статистика сервера — Аутентификация o Сертификаты o Kerberos o LDAP (AD или OpenLDAP) o PAM
35 UTB в Злине, Факультет прикладной информатики, o Radius — хранилище данных o Active Directory o LDAP o MS SQL o MySQL o Oracle o PostgreSQL — SASL o Механизм ANONYMOUS o Механизм DIGEST-MD5 o Механизм PLAIN Рисунок 8.: OpenFire Сервер Jabber сервер Jabberd14 Это оригинальная реализация протокола Jabber на сервере. Версия 1.0 этого сервера была опубликована в мае. Он поддерживает как первоначальную версию протокола Jabber, так и более новую версию, стандартизованную в RFC 3920, а сервер RFC разработан по модульному принципу,
36 TUB в Злине, Факультет прикладной информатики, поэтому отдельные части можно запускать в отдельных процессах или на отдельных машинах. Другая функция также работает в кластере, где благодаря избыточности мы имеем большую устойчивость к ошибкам, а также более высокую производительность. Сервер реализован на C и C++, что дает ряд преимуществ: — большое количество программистов, знающих этот язык и могущих добавлять дополнительные функции на сервер — компиляция в машинный код приносит большую скорость по сравнению с интерпретируемыми языками (или языками компилируется в байткод) К jabberd14 также есть очень хорошая документация по интерфейсу программы, она строго придерживается стандартов, очень гибкая в плане настроек и вариантов развертывания. Он запрограммирован на Erlang, работает на многих платформах (Windows, Linux, MacOS X, FreeBSD, NetBSD). Как и предыдущие двареализация позволяет работать в кластере с репликацией всей важной информации в реальном времени, что приводит к устойчивости к отказу одного или нескольких узлов. Кроме того, необходимо также отметить простоту управления сервером. При использовании Erlang нет необходимости устанавливать какие-либо внешние системы баз данных или веб-сервер. Для большинства поддерживаемых систем доступны как исходный код, так и бинарные установщики. ejabberd также позволяет запускать несколько доменов jabber в пределах одного экземпляра сервера, он поддерживает IPv6 как для подключения клиента к серверу, так и серверов друг к другу. Администрирование может осуществляться через веб-браузер (HTTPS), командную строку, а также через jabber-клиент, поддерживающий Service Discovery. Что касается поддержки стандартов, то ejabberd находится на отличном уровне. Он полностью поддерживает как базовые RFC 3920 и 3921, так и расширения. Аутентификация пользователя может выполняться на сервере LDAP, или информация может храниться в реляционных базах данных (либо с исходной поддержкой mysql и PostgreSQL, либо через ODBC). Конечно, он также поддерживает транспорты (шлюзы) к другим сетям обмена мгновенными сообщениями (AIM, ICQ, MSN).[7]
37 TUB в Злине, Факультет прикладной информатики, Альтернативные клиенты Miranda Miranda — мультипротокольный мессенджер. Он поддерживает все известные и наиболее распространенные IM. С самого начала он кажется пользователю очень строгим и устаревшим. Бесцветный, угловатый, без управления и т.д. С другой стороны, поэтому не требователен к железу. Его простой внешний вид является скорее преимуществом, чем недостатком. Он отображает только самое необходимое и не раздражает пользователя ненужными вещами, такими как реклама. Его философия заключается в том, чтобы распаковать и использовать — что выгодно, например, на компьютерах, где пользователь не имеет прав на установку программ или хочет, чтобы его чат всегда был с ним, например, на флешке (если она не используется многоплагины даже на обычной дискете). Еще одна причина популярности миранды в том, что она поддерживает страницы, а их может быть бесчисленное множество. Таким образом пользователь может трансформировать свою установку по своему образу, от добавления смайлов, отправки смс, будильника, написания заметок, до различной статистики. Как уже было сказано, Миранда умеет много продвинутых вещей, но пользователю приходится их устанавливать и настраивать. Однако клиент Kopete только в версии для Microsoft Windows Kopete был разработан для интеграции в среду KDE. Это многопротокольный клиент (всего он поддерживает около 10 протоколов, например, Jabber, ICQ, AIM, IRC или Yahoo Messenger). Это частый выбор людей, которым необходимо общаться в сети ICQ (которая очень распространена в нашей стране) и при этом иметь действующий Jabber-аккаунт.
38 TUB в Злине, Факультет прикладной информатики, Рис. 9.: SIM-клиент Kopete Этот клиент из России. Создатели видимо подумали, что красота в простоте и подчинили этому весь дизайн. Клиент имеет угловатые формы, не очень удачно подобранные цвета, иконки из первых версий оригинального клиента. Этот клиент также поддерживает плагины (но их меньше, чем для Миранды). Однако самое большое преимущество этого клиента заключается в возможности входа в несколько учетных записей по одному и тому же протоколу. Таким образом, и я, и мой брат могут войти в систему, если нам обоим нужно войти в систему одновременно. Существует версия Pidgin для Windows и Linux, ранее известная как Gaim. Опять же, это многопротокольный клиент, который поддерживает множество используемых сетей обмена мгновенными сообщениями. Функции опять же стандартные, функционал также можно расширить с помощью подключаемых модулей. Среди нетрадиционных функций я бы отметил, например, жесты мышью, шифрование, интеграцию с программой Evolution или файловым менеджером Nautilus.
39 TBU в Злине, факультет прикладной информатики, пиджинработает на MS Windows, Linux и BSD Google Talk Это простой мессенджер и одновременно сервис для общения от Google. Этот сервис основан на протоколе XMPP/Jabber. Он предлагает классические услуги обмена мгновенными сообщениями, а также услугу VoIP на основе протокола Jingle. В связи с этими услугами он также предоставляет возможность видеочата, обмена файлами и голосовой почты. Услуга полностью бесплатна. Однако условием является открытие счета в названной компании, что даст вам . Это условие связано с тем, что служба привязана к этой службе, и эти две службы тесно взаимодействуют друг с другом (обмен контактами, уведомление о новой почте, встроенный клиент в веб-интерфейсе). Приложение можно использовать в операционных системах Windows 2000, XP и Vista.
40 TBU в Злине, факультет прикладной информатики, ОСНОВНЫЕ ТЕХНОЛОГИИ И ПРИНЦИПЫ В этой главе обсуждаются основные элементы, с помощью которых была создана программа, являющаяся приложением к данной дипломной работе. Программа написана с использованием кроссплатформенных библиотек wxwidgets. Его связь обеспечивается протоколом XMPP, который основан на технологии XML. Все эти основные части описаны здесь. 3.1 wxwidgets Разработка началась в 1992 году благодаря Джулиану Смарту, который до сих пор является основным разработчиком. Ранее библиотека называлась wxwindows, но из-за давления со стороны Microsoft в 2004 году библиотека была переименована в wxwidget. Библиотека wxwidgets — интересная и довольно простая (с точки зрения применения и использования) библиотека, предлагающая создание графического пользовательского интерфейса для ваших программ. Это инструмент программирования для разработки приложений с графическим пользовательским интерфейсом, как для настольных компьютеров, так и для мобильных устройств. Эта библиотека представляет собой фреймворк, который сделает за пользователя много рутинной работы и позаботится о стандартном поведении ваших приложений. Библиотека wxwidgetsсодержит большое количество классов и методов либо для непосредственного использования, либо для дальнейших модификаций. Типичные приложения отображают окно со стандартными элементами управления, часто отображают специальные изображения и графику и реагируют на ввод с клавиатуры, мыши или других источников. Они также могут взаимодействовать с другими процессами или напрямую управлять ими. Другими словами, wxwidgets значительно упрощает программистам разработку стандартных приложений с использованием современных технологий. Хотя wxwidgets часто называют инструментом разработки для создания приложений с графическим интерфейсом, на самом деле это гораздо больше, и он имеет множество полезных функций для различных этапов разработки приложений. Что очень удобно, ведь все приложения wxwidgets должны работать на разных платформах и это касается не только графического интерфейса. wxwidgets предоставляет классы для работы с файлами, потоками, многопоточностью, настройками приложений, межпроцессным взаимодействием, интерактивной справкой, доступом к базе данных и многим другим.[8] wxwidgets отличается от многих фреймворков, например MFC или OWL, главным образом тем, что он уже изначально разработан для мультиплатформенности. Интерфейс прикладного программирования в случае wxwidgets идентичен или, по крайней мере, очень похож на всех поддерживаемых платформах. Следствием этого является то, что вы можете разработать свое приложение в среде MS Windows с минимальными изменениями или без них, а затем успешно перевести его и запустить под Linux или Mac OS X. Это большое преимущество по сравнению с переписыванием приложения для всех остальных
41 TUB в Злине, Факультет прикладной информатики, поддерживаемая система. Это также означает, что вам не нужно изучать различные API разных платформ. Кроме того, ваши приложения не устареют. Вместе с развитием среды программирования и технологий развиваются и wxwidgets. Это позволяет переносить ваши приложения на новейшие и лучшие системы, используя их последние версии.Характеристики. Еще одна особенность, которая отличает wxwidgets от других, заключается в том, что он обеспечивает естественный внешний вид приложений. Некоторые платформы используют один и тот же код для элементов управления на всех платформах. Затем они добиваются естественного внешнего вида с помощью тем для конкретной платформы. С другой стороны, wxwidgets использует собственные элементы управления везде, где это возможно, и настраиваемые элементы управления только тогда, когда это невозможно. Таким образом, wxwidgets не только обеспечивает нативный вид, wxwidgets действительно нативный. С точки зрения принятия пользователями, это чрезвычайно важно. Любое, даже небольшое и почти незаметное отличие поведения приложения от стандартного для данной платформы, может означать для пользователя неприятные ощущения в виде ощущения чего-то неестественного. Библиотека wxwidgets используется для C++, кроме этого есть поддержка ряда других языков программирования, таких как: — Python (альтернатива wxpython) — Perl (альтернатива wxperl) — Ruby (альтернатива wxruby) — Java (альтернатива wx4j) — C# На изображении ниже (Рисунок 10) показан пример того, как может выглядеть такое приложение в wxwidgets. Его функции будут практически одинаковыми на каждой платформе.
42 TBU в Злине, Факультет прикладной информатики, Рис. 10.: Пример приложения, написанного с использованием wxwidgets Вот пример некоторых из самых известных программ, основанных на wxwidgets — amule — «всеплатформенный» P2P-клиент на основе emule — Audacity — бесплатный звуковой редактор с открытым исходным кодом — Audiobook Cutter — удобный разделитель аудиокниг MP3. — Chandler — Personal Information Manager (PIM) включает в себя календарь, y, контакты, задачи и обмен мгновенными сообщениями — Code::Blocks — бесплатная/с открытым исходным кодом, кросс-платформенная C++ IDE — e — текстовый редактор для Windows — Fityk — с открытым исходным кодом и кросс — платформенный научный инструмент для ковки кривых — Mahogany — мультиплатформенный клиент с открытым исходным кодом — Monolith -инструмент распространения данных об авторских правах — MUTE — анонимный обмен файлами — TreeMaker — программа дизайна оригами Роберта Ланга. — WASTE — безопасное программное обеспечение P2P для небольших сетей — wxcommunicator — многоплатформенный софтфон SIP
43 TUB в Злине, Факультет прикладной информатики, История XML В конце 1960-х компания IBM решила проблему хранения больших объемов данных и юридических документов. Нужно было придумать формат, который имел бы долгую жизнь, не зависел бы от используемых программ и т. д. Был создан общий язык разметки, который постоянно развивался, и в 1986 году из него вышел язык под названием SGML. Этот язык был принят в качестве стандарта ISO. SGML был очень гибким, чтобы соответствовать различным требованиям. В этом была его великая сила, но также и его величайшая слабость. Разработка приложений, полностью поддерживающих SGML, была очень дорогой. Поэтому SGML использовался только для крупных проектов, например в военной или авиационной промышленности. Из языка SGML был создан язык HTML, который изначально содержал лишь небольшой набор тегов, которые были расширены. Этот язык использовался и до сих пор используется при создании гипертекстовых документов. Как уже упоминалось, язык HTML расширился, чтобы удовлетворить все больше и больше пользователей и программистов веб-приложений и страниц. Однако по мере роста требований и создания разных веб-браузеров возникла проблема с совместимостью, и данные веб-страницы приходилось делать в нескольких версиях, чтобы удовлетворить все браузеры. Консорциум W3C попытался предотвратить эту тенденцию, используя SGML для точного определения того, какие теги и где веб-страницы могут их содержать. Таким образом постепенно создавались языки HTML 2.0, HTML 3.2 и HTML 4.0. Однако производители браузеров продолжали добавлять новые теги, что создавало значительные сложности, особенно для авторов сайтов. Из всего этогоиз этого следует, что такое положение дел было неустойчивым, и Интернету нужны новые технологии, очень строгие, но гораздо более гибкие, чем язык HTML. Именно поэтому был создан язык XML, окончательная версия которого была выпущена в 2008 году. XML на самом деле является упрощенной версией чрезмерно сложного и запутанного языка SGML. Однако гибкость была сохранена, поэтому XML, в отличие от HTML, позволяет создавать документы с собственными тегами и с возможностью проверки документов по DTD.
44 TBU в Злине, факультет прикладной информатики, базовый синтаксис Синтаксис относительно прост, но очень строг. — Весь документ должен быть заключен в парный корневой тег. В приведенном ниже примере это тег . тело документа — все теги должны быть парными, то есть всегда должен быть конечный тег для начального тега. За исключением элементов без содержания. Однако тег должен заканчиваться на `/>’ вместо просто `>’. Это позволит синтаксическому анализатору легко распознавать пустые элементы. Примером пустого элемента может быть, например, новая строка в языке HTML
. В XML тег может иметь атрибуты, аналогичные тем, что мы знаем из HTML. Эти атрибуты должны быть заключены в одинарные или двойные кавычки. Одинарная кавычка должна быть закрыта одинарной, а двойная — двойной. Внутри значений можно использовать обратную пару кавычек.
. общедоступный текст.
— Имена элементов в XML чувствительны к регистру: например,
— это пара, соответствующая хорошо структурированному документу, пара
неправильно. — Элементы могут быть вложены друг в друга, но не могут перекрываться. Это означает, что каждый (не корневой) элемент должен полностью содержаться внутри другого элемента. — XML стандартно записывается в кодировке Unicode, а это значит, что имена параметров можно писать на любом языке и результирующий код всегда должен быть читабельным. Однако, если мы хотим использовать другую кодировку, это нормально.зарезервировано для первых 128 символов, которые должны быть записаны в ASCII. Если мы используем другую кодировку в документе, мы должны указать это в объявлении XML: .
45 TBU в Злине, Факультет прикладной информатики, простой хлеб