Создание системы обмена мгновенными сообщениями

Автор: Пользователь скрыл имя, 17 Декабря 2012 в 23:56, диссертация

Описание работы

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

Работа содержит 1 файл

report.doc

— 1.36 Мб (Скачать)

Оглавление

 

Постановка  задачи

Создать клиент-серверное приложение для обмена сообщениями в реальном времени.

Детальное описание

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

Клиент

    1. Графическая реализация пользовательского интерфейса дополнительные функции UI.
    2. Поддержка режимов диалога с конкретным пользователем.
    3. Сохранение настроек подключения к серверу в XML файле.

Сервер

    1. Передача сообщений между клиентами.
    2. Поддержка логина.
    3. Ведение логов/истории сообщений и т.д.
    4. Сохранения настроек запуска к серверу хранить в XML фале.

Общие требования

    1. Внутренний протокол клиент/сервер: архитектура, документация.
    2. Внутренний протокол сервер/сервер: архитектура, документация.
    3. Программный код должен удовлетворять Code Conventions.
    4. Дизайн приложения.

 

 

Введение

Система обмена мгновенными  сообщениями[1] (англ. Instant messaging, IM) — службы мгновенных сообщений (Instant Messaging Service, IMS) и программы-клиенты (Instant Messenger, IM) для обмена сообщениями в реальном времени через Интернет. Могут передаваться текстовые сообщения, звуковые сигналы, изображения, видео, а также производиться такие действия, как совместное рисование или игры. Многие из таких программ-клиентов могут применяться для организации групповых текстовых чатов или видеоконференций.

Как правило, мессенджеры не работают самостоятельно, а подключаются к  центральному компьютеру сети обмена сообщениями, называемому сервером. Поэтому мессенджеры и называют клиентами (клиентскими программами). Термин является понятием из клиент-серверных технологий.

Широкому кругу пользователей  известно некоторое количество популярных сетей (и клиентов) обмена сообщениями, таких как XMPP, Skype, ooVoo, AIM, ICQ, MSN, Yahoo!. Каждая из этих сетей разработана отдельной группой разработчиков, имеет отдельный сервер и протоколы, отличается своими правилами и особенностями. Между различными сетями обычно нет прямой связи. Таким образом, пользователь сети Skype не может связаться с пользователем сети ICQ. Однако ничто не мешает быть одновременно пользователем нескольких сетей.

Почти для каждой из сетей есть свой мессенджер, разработанный той  же командой разработчиков. Так, для  пользования тремя последними из вышеуказанных сетей разработчиками предлагаются программы с одноимёнными названиями: ICQ, Windows Live Messenger, Yahoo! Messenger. Таким образом, если один из адресатов пользуется только сетью ICQ, а другой — только сетью MSN, то можно общаться с ними одновременно, установив на своем компьютере и ICQ, и MSN Messenger и зарегистрировавшись в обеих сетях.

В качестве альтернативного мессенджера  можно выбрать программу стороннего производителя, как коммерческую, так  и бесплатную. Популярными альтернативными  программами для общения в  сети ICQ являются QIP/QIP Infium, Psi, Trillian, Miranda IM, Pidgin. Также некоторые из них позволяют подключаться одновременно к нескольким сетям, то есть являются мультипротокольными, что избавляет от необходимости устанавливать отдельный мессенджер для каждой сети и позволяет общаться со всеми адресатами единым образом независимо от сети; все перечисленные в предыдущем предложении клиенты ICQ, за исключением исходной версии QIP, поддерживают и протокол XMPP.

Большинство IM-сетей используют закрытые протоколы, поэтому альтернативные клиенты теоретически могут обладать меньшим количеством базовых функций, чем официальные, хотя на практике чаще бывает наоборот. Однако при изменениях протокола на стороне сервера сети альтернативные клиенты могут внезапно перестать работать (например, подобное явление наблюдалось для «нефирменных» клиентов сервиса ICQ в России).

В качестве альтернативы проприетарным  протоколам для IM был разработан открытый протокол XMPP (также известный как Jabber), используемый в таких сервисах, как Google Talk, Я.Онлайн и др. Этот протокол часто используется для организации общения в корпоративных и других локальных сетях и имеет ряд существенных преимуществ, как, например, шифрование сообщений и стабильность на неустойчивых каналах связи. Протокол децентрализованный, его архитектура напоминает электронную почту, где возможно общение между пользователями, имеющими аккаунт на разных серверах. Если нарушится работа одного сервера, то это не повлияет на работу всей сети.

Для подобного  рода коммуникации необходима клиентская программа, так называемый мессенджер (англ. messenger — курьер). Отличие от электронной почты здесь в том, что обмен сообщениями идёт в реальном времени (англ. instant — мгновенно). Большинство IM-клиентов позволяет видеть, подключены ли в данный момент абоненты, занесённые в список контактов. В ранних версиях программ всё, что печатал пользователь, тут же передавалось. Если он делал ошибку и исправлял её, это тоже было видно. В таком режиме общение напоминало телефонный разговор. В современных программах сообщения появляются на мониторе собеседника уже после окончания редактирования и отправки сообщения.

Сайт MASMI Russia[10] предоставил результаты своих статистических исследований онлайн-опроса жителей СНГ об их пользовании системами обмена мгновенными сообщениями: какими пользуются, сколько имеют контактов, цели использования, в том числе с мобильного телефона.

57% россиян пользуются ICQ – наиболее популярным клиентом обмена мгновенными обращениями не только в нашей стране, но и мире. На втором месте в нашей стране стоит Mail.Агент – 48% пользователей, третий с 46% - Skype.

Рис 1.1 Популярность систем обмена мгновенными  сообщениями.

С большим отрывом отстают MSN / Live Messenger – 8% клиентов и Jabber – 4%. На долю прочих систем обмена мгновенными сообщениями приходится 10% аудитории.

Чаще всего в контакт-листах пользователей системами обмены мгновенными сообщениями насчитывается  от 21 до 50 человек (27%). У каждого пятого насчитывается 11-20 контактов. 4-10 контактов у 18% общающихся в мессенджерах, а у 17% - от 51 до 100.

Рис. 1.2. Активность пользователе в IMS.

91% общающихся в мессенджерах контактируют в них с друзьями и родственниками. Примерно половина респондентов (49%) используют их для текстового общении по работе с коллегами и партнёрами, примерно столько же (48%) – обмениваются в них интересными ссылками с друзьями. Это, в свою очередь, указывает на популярность мессенджеров типа ICQ, Mail.ru Агент и т.п. подразумевающих текстовое общение.

Рис. 1.3. Цели использования систем обмена мгновенными сообщениями

 

    1. Обзор известных  решений

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

В типичной компании общение между сотрудниками, не считая личных встреч, происходит либо по телефону, либо по электронной почте и мало чем отличается от коммуникаций девяностых. Тот факт, что все компьютеры соединены в локальную сеть, в потенциале обладающую значительными технологическими возможностями, зачастую просто игнорируется. Использование традиционных  для России электронных средств общения, как, например, программы обмена мгновенными сообщениями (IM – instant messenger, мессенджер) ICQ или его аналогов (MSN Messanger, Yahoo Messanger, Google Talk etc) чаще всего запрещается системными администраторами, благо возможностей это сделать у них масса. Если же, по какой-либо причине, использование мессенджеров не запрещено, то они стихийно и очень активно подключаются к основным средствам коммуникаций.

Бывает  полезно посмотреть на проблему с  иной стороны. Вместо запрета на одну из наиболее естественных для украинского пользователя технологию общения, предлагается поощрять ее использование, предварительно упорядочив саму технологию.

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

Некоторые решения в данной работе не имеют собственных интерфейсов и реализованы в виде библиотек или серверов.

ICQ Messenger

ICQ — компьютерная прикладная программа с графическим интерфейсом пользователя, официальный клиент службы мгновенного обмена сообщениями ICQ. Первая версия программы была выпущена в ноябре 1996 года и стала одной из первых интернет-чатов. Сегодня ICQ используют более 38 млн пользователей во всем мире.[2]

Работает по протоколу OSCAR.

Рис. 1.4. Логотип ICQ Messenger.

OSCAR — открытый (с 5 марта 2008 года), но не свободный сетевой протокол, обеспечивающий обмен мгновенными и офлайновыми текстовыми сообщениями. В данный момент используется для двух систем: AIM и ICQ.

ICQ была разработана четырьмя  молодыми программистами из  Тель-Авива (Израиль): Сефи Вигисер, Арик Варди, Яир Гольдфингер и Амнон Амир. Они основали свою компанию Mirabilis (лат. «чудесный», «удивительный»).

Выпущена  в ноябре 1996 года. 20 мая 1997 года компания объявила о том, что количество пользователей программы достигло миллиона. В 1998 году компания Mirabilis сообщила о том, что сеть ICQ растет со скоростью 1 миллион пользователей за 23 дня. Количество одновременных подключений составляло около 500 тысяч. 8 июня 1998 года компания Mirabilis продала права на ICQ крупнейшему американскому провайдеру AOL (America Online) за 407 млн долларов. В результате компания Mirabilis была преобразована в ICQ Inc. и стала частью корпорации AOL, где и получила дальнейшее развитие.

Пользователи ICQ идентифицируются по номеру, называемому  UIN. Номера назначаются в порядке возрастания. UIN был создан компанией Mirabilis как имя, назначаемое пользователю при регистрации. UIN расшифровывается как Универсальный Интернет-номер (Universal Internet Number) или Унифицированный Идентификационный Номер (Unified Identification Number). Каждый пользователь получает UIN при регистрации в ICQ. Пользователи ICQ 6 могут использовать для входа указанный ими e-mail адрес, который ассоциируется с их UIN при регистрации.

В отличие  от других программ обмена мгновенными  сообщениями и веб-приложениями, UIN в ICQ — единственная постоянная информация о пользователе, хотя возможно искать других пользователей по их e-mail адресам и другим данным, которые они указали в своем профиле. При этом, пользователи могут менять всю свою персональную информацию, включая никнейм и e-mail без повторной регистрации. С 2000 года пользователи ICQ и AIM могут добавлять друг друга в контакт-лист без использования внешних клиентов.

Чтобы воспрепятствовать  кражам и перепродажам привлекательных  номеров UIN, ICQ сохраняет e-mail адрес, связанный  с UIN. При этом украденный UIN может быть возвращен, но только в случае, если в профиле был указан действительный e-mail адрес.

Рис. 1.5. Пользовательский интерфейс ICQ.

Windows Live Messenger

Windows Live Messenger — программа мгновенного обмена сообщениями для Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008 и Windows Mobile. Является наследником программы MSN Messenger и выпущена под новым именем компанией Microsoft 13 декабря 2005 года[1]. Является одним из компонентов Windows Live — набора сетевых служб от Microsoft.

Клиент подключается к Microsoft .NET Messenger Service. Корпорации также могут интегрировать собственный Live Communication Server и Active Directory в рабочую сеть для своих клиентов. Главные клиенты с мультипротоколами также могут подключиться к службе

Рис. 1.6. Логотип Windows Live Messenger.

Windows Live Messenger использует Microsoft Notification Protocol (MSNP) через TCP (и опционально через HTTP, для работы с прокси-серверами) для подключения к .NET Messenger Service — службе, доступной на порту 1863 с хостом messenger.hotmail.com. Текущая версия — 15 (MSNP15), используемая Windows Live Messenger и другими клиентами сторонних разработчиков. В MSNP15 введён другой механизм аунтификации. Протокол не полностью закрыт; но для версий 8, 9, 10, 11, 12, 13, и 14 код остаётся закрытым. .NET Messenger Service в настоящий момент принимает только протоколы версии 8 и выше, так что синтаксис новых команд с 8 по 14 версий можно узнать только при использовании снифферов, например Wireshark.

Рис. 1.7. Главное окно Windows Live Messenger.

XMPP (Jabber)

XMPP (Extensible Messaging and Presence Protocol — расширяемый протокол обмена сообщениями и информацией о присутствии), ранее известный как Jabber[4] (джа́ббер — «болтовня», «трёп», «тарабарщина», сленг. — жабер, жаббер, жабёр) — основанный на XML, открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии (см. список контактов) в режиме, близком к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети.

 

Рис. 1.8. Логотип Pidgin – одного из Jabber клиентов.

В отличие от коммерческих систем мгновенного обмена сообщениями, таких, как AIM, ICQ, WLM и Yahoo, XMPP является децентрализованной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенного обмена сообщениями, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP. На основе протокола XMPP уже открыто множество частных и корпоративных серверов XMPP. Среди них есть достаточно крупные проекты, такие как Facebook, Google Talk, В Контакте, Одноклассники.ru, Я.Онлайн, QIP, LiveJournal, Juick и др.

Информация о работе Создание системы обмена мгновенными сообщениями