- Дипломы
- Курсовые
- Рефераты
- Отчеты по практике
- Диссертации
Разработка клиент-серверного приложения для обмена текстовой и графической информацией в режиме реального времени
Внимание: Акция! Курсовая работа, Реферат или Отчет по практике за 10 рублей!
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Код работы: | K011647 |
Тема: | Разработка клиент-серверного приложения для обмена текстовой и графической информацией в режиме реального времени |
Содержание
Министерство образования и науки Российской Федерации ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет информатики Кафедра теоретических основ информатики УДК 519.688 ДОПУСТИТЬ К ЗАЩИТЕ В ГАК Зав. кафедрой, профессор, д.т.н., _________________ Ю.Л. Костюк »____________ 2006 г. Брызгалов Андрей Михайлович РАЗРАБОТКА КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ ДЛЯ ОБМЕНА ТЕКСТОВОЙ И ГРАФИЧЕСКОЙ ИНФОРМАЦИЕЙ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ НА ОСНОВЕ WEB-СЕРВИСА Дипломная работа Научный руководитель, ст. преподаватель, к.т.н. В.А. Лавров Исполнитель, студ. гр.1411 А.М. Брызгалов Электронная версия дипломной работы помещена электронную библиотеку. Файл Администратор Томск – 2006 Реферат Дипломная работа 40 стр., 15 рис., 8 ист., 2 прил. WEB-СЕРВИС, WEB-КОНФЕРЕНЦИЯ, SOAP, XML, .NET FRAMEWORK, ГРАФИЧЕСКИЙ ПЛАНШЕТ, WINTAB Объект исследования – клиент-серверные технологии на основе web-сервисов Цель работы – создание клиент-серверного приложения для обмена текстовой и графической информацией в реальном времени Метод и методология проведения исследования – экспериментальный Разработано приложение, обеспечивающее возможность сетевого общения. Данное приложение позволяет использовать широкий набор инструментов для рисования, поддерживает работу с графическим планшетом. Программа расширяет возможности сетевого общения за счет предоставления пользователям уникальной возможности обмена не только текстовой, но и графической информацией. Основные конструктивные и технико-эксплуатационные характеристики – применены современные технологии построения сетевых приложений на основе платформы Microsoft .NET. Программа в большинстве случаев не требует настойки межсетевого экрана и поддерживает ввод с графического планшета. Рекомендации по внедрению – рекомендуется использовать в составе web-сайтов и как отдельное приложение не только для общения по сети, но и для организации учебного процесса в детских учреждениях, как инструмент для создания и наблюдения за процессом создания графических изображений в сообществе онлайн художников, для дистанционного взаимодействия разработчиков дизайна компьютерных игр. Прогноз о развитии – планируется дальнейшее развитие приложения в направлении расширения средств художественной выразительности и внедрения в состав web-сайта для художников. 2 Содержание Введение .................................................................................................................... 4 1. Обзор существующих приложений .............................................................. 6 1.1. Network Assistant ........................................................................................ 6 1.2. Imagination Cubed ....................................................................................... 8 1.3. Microsoft Windows Messenger.................................................................... 9 1.4. Выводы ...................................................................................................... 10 2. Разработка проекта приложения................................................................. 12 2.1. Клиент-серверная архитектура ............................................................... 12 2.2. Общая структура приложения................................................................. 13 2.3. Взаимодействие клиента и сервера......................................................... 15 2.3.1. Этапы взаимодействия..................................................................... 15 2.3.2. Доступ к методам web-службы с помощью SOAP........................ 17 2.3.3. Сессия пользователя......................................................................... 18 2.4. Структура серверной части ..................................................................... 19 2.4.1. Web-служба в составе ASP.Net приложения ................................. 19 2.4.2. Жизненный цикл ASP.Net приложения.......................................... 19 2.4.3. Использование состояния сессии при синхронизации ................. 21 2.5. Структура клиентской части ................................................................... 22 2.6. Выводы ...................................................................................................... 23 3. Реализация приложения Painterence ........................................................... 24 3.1. Реализация серверной части.................................................................... 24 3.2. Реализация клиентской части.................................................................. 25 3.2.1. Модуль взаимодействия с сервером............................................... 26 3.2.2. Модуль обработки графических команд........................................ 27 3.2.3. Модуль интерфейса пользователя .................................................. 28 3.2.4. Модуль ядра ...................................................................................... 28 3.2.5. Компонент отвечающий за работу с графическим планшетом ... 28 3.3. Выводы ...................................................................................................... 28 Заключение.............................................................................................................. 29 Список использованных источников.................................................................... 30 Приложение А. Руководство пользователя.......................................................... 31 Приложение Б. Руководство программиста......................................................... 37 3 Введение Современное общество немыслимо без средств связи: экспресс- почта, телефонная и видео связь и, пожалуй, самая многофункциональная — связь посредством интернета. Электронная почта, VoIP, видео- и аудиоконференции, чаты, форумы, службы мгновенных сообщений - все эти возможности делают общение современного человека разнообразным по содержанию и широте контактов. Электронная связь может обеспечивать коммуникацию в режиме реального времени, при одновременном участии собеседников в процессе обсуждения, или в асинхронном режиме, c взаимодействием между пользователями по мере их появления в сети. При рассмотрении общения в сети традиционно выделяют обмен текстовыми сообщениями, статическими изображениями, аудио и видеоданными. В некоторых программах используется комбинированный подход. последнее время широкое распространение приобретают web-конференции [1], используемые для проведения групповых совещаний и «живых» презентаций в Интернете. В недалеком прошлом этот термин чаще употреблялся для обозначения групповых обсуждений посредством текстовых сообщений в пределах досок объявлений, но в настоящее время им пользуются, имея в виду именно «живые» собрания, тогда как общение на web-сайтах называют форумами или досками сообщений. Типичными возможностями программного обеспечения web-конференций являются разделение приложений, слайдовые презентации, разделение экрана пользователя и возможность указать на фрагменты, требующие внимания. Все это дополняется телефонным разговором (по обычной телефонной сети или через интернет), и, нередко, видео изображением. Программы, реализующие преимущественно обмен аудио и видеоданными, производят большой объем сетевого трафика и требуют скоростного подключения к интернету. Как правило, небольшое внимание уделяется обмену графической информацией. Часто в процессе обсуждения идеи или при попытке объяснить собеседнику сложную схему , вследствие ограниченных описательных возможностей человека, лучше и проще дополнить свои слова рисунком, хотя бы виде наброска. Хорошо, если собеседник находится рядом и под рукой есть карандаш и лист бумаги, но что делать, если вы находитесь в разных точках земного шара и общаетесь через интернет? В этом случае весьма полезной окажется программа, которая обеспечивает передачу собеседникам графического ввода пользователя в реальном времени. Также необходимо, чтобы она позволяла другим пользователям не только наблюдать за процессом рисования, но и принимать в нем активное участие. Зачастую важную роль при совместном рисовании или при наблюдении за рисованием другого человека играет не только само передаваемое изображение, но и последовательность создания изображения. Коллективное рисование расширяет возможности совместного творчества, делает обсуждение идей более продуктивным, позволяет в полной мере проявить воображение и, в целом, способствует креативному взаимодействию. Наиболее популярные на сегодняшний день программные продукты для сетевого общения, в которых реализована возможность коллективного рисования, придают ей второстепенное значение. Одни предоставляют только часть из 4 необходимых для полноценного рисования функций. В других появляются затруднения с обеспечением соединения, взаимодействием с межсетевыми экранами, одновременной коммуникацией нескольких пользователей. Ни в одной из программ нет поддержки графического планшета, хотя его использование существенно упрощает ввод пользователя, делает его более естественным и реалистичным. Кроме того, в этих программах отсутствует удобное совмещение обмена текстовыми сообщениями и графическим вводом. Ни одна из них не предоставляет достаточного объема средств для художественного выражения. Данная работа посвящена разработке и созданию удобного и полезного в первую очередь с точки зрения пользователя приложения для сетевого общения. данному приложению были предъявлены такие необходимые требования как возможность одновременного обмена текстовой и графической информацией, способствование коллективному творчеству, наблюдение за процессом рисования в динамике. При этом было необходимо учесть недостатки аналогичных программ. Дипломная работа состоит из 3 глав, введения, заключения, приложений и списка литературы. В первой главе рассматриваются существующие на сегодняшний день аналогичные программы, выявляются их недостатки существующих приложений. Вторая глава содержит описание архитектуры, базовые моменты программного продукта «Painterence», созданного в ходе дипломной работы. В третьей главе описывается реализация программы. Приложения содержат подробное руководство пользователя и руководство программиста. 5 Обзор существующих приложений На данный момент программы для сетевого общения представлены в широком ассортименте, разнообразны по функциональным возможностям и целям, для которых применяются. При этом на сегодняшний день на рынке программного обеспечения не представлено качественных и удобных программ для сетевого общения, которые бы удовлетворяли требованиям большинства пользователей. Кроме того, ассортимент программ для сетевого общения, которые предоставляют возможность рисования, представлен скудно. В тоже время многие из представленных программных продуктов, не дают качественных возможностей рисования. Рассмотрим наиболее распространенные, популярные продукты, которые предоставляют возможность коллективного общения , в том числе возможность не только текстового, но и визуального (графического) обмена информацией. 1.1. Network Assistant Network Assistant [2] – программа для сетевого общения, рассчитанная на использование в условиях домашней или небольшой офисной локальной сети. Взаимодействие по сети основано осуществляется следующим образом: все компьютеры локальной сети, на которых в конкретный момент времени запущена эта программа, образуют сетевое окружение Network Assistant. Компьютерами в этом окружении могут использоваться все предоставляемые приложением возможности для обмена информацией, к примеру, многоканальный чат, общая доска для рисования, обмен мгновенными сообщениями (основанными на WinPopup), размещением объявлений и т.п. Network Assistant не требует подключения к сети интернет и выделенного сервера, обмен сообщениями производится посредством протокола UDP в рамках сетевого окружения , при этом используются широковещательные и multicast сообщения. Однако при этом, только правильная настройка брандмауэра дает возможность общаться с помощью Network Assistant, т.е. если пользователь не имеет прав администратора на своем компьютере , то он не может настроить firewall, а, следовательно, и использовать Network Assistant. многопользовательском чате возможно создание каналов-комнат различного типа: обычных, защищенных паролем, общих для всех и частных (один на один). Далее рассмотрим возможности, которые представляет многопользовательская доска для рисования. Доска является общей для всех пользователей окружения. В данной программе скудно представлен набор инструментов: карандаш, заливка, текст и геометрические примитивы (линия, эллипс, прямоугольник) (см. рисунок 1). Имеется возможность включить привязку к сетке для более точного рисования. Отсутствие ластика или возможности отменить последнее действие является несомненным минусом данного программного продукта, так как даже непрофессионалы не могут обойтись без этих инструментов при рисовании. Несмотря на небольшой набор инструментов, использование доски позволяет дополнить беседу схематическим изображением, наброском или вставленным из буфера обмена рисунком. 6 При работе с Network Assistant у пользователя есть возможность задавать свое текущее состояние, в зависимости от которого меняется поведение приложения: прием сообщений, реакция на них, звуковые оповещения и т.п. Каждый пользователь может предоставить подробную информацию о себе, включая имя, фамилию , контакты, фотографию и пр. Статус пользователя в сети изменяется как вручную, так и автоматически, в соответствии с различными событиями, например , включением и отключением компьютера от сети, простоем компьютера в течение некоторого промежутка времени или запуском хранителя экрана. Программа также обладает следующими возможностями: передача файлов, просмотр снимков экрана, буфера обмена и статистики использования локального или удаленного компьютера, поддерживает несколько языков, в том числе русский. Рисунок 1 Набор инструментов в Network Assistant Таким образом, о программном продукте Network Assistant можно сделать следующие выводы: Широкий набор функций позволяет налаживать комплексную коммуникацию (обмен файлами, информация о пользователе, передача текстовой информации и т.д.) В программе имеется возможность создания каналов-комнат, что позволяет пользователям общаться в более узком, ориентированном на интересы, кругу. Несмотря на это в данной программе следует отметить следующие существенные недостатки: 7 Отсутствие ластика или отмены последнего действия существенно снижает удобство обмена информацией и вынуждает пользователей каждый раз рисовать поверх уже существующего рисунка. Небольшой набор инструментов снижает качество получаемых изображений и не позволяет пользователям представить свои мысли в адекватной графической форме. Программа позволяет общаться только по локальной сети и не может быть использована в сети Интернет 1.2. Imagination Cubed Imagination Cubed [3] наряду с Network Assistant является программой для совместного рисования. Реализация данного продукта как flash-приложения, встроенного в web-страницу, позволяет этому продукту быть доступным с любого подключенного к Интернету компьютера, имеющему установленный браузер ( см. рисунок 2). Для связи с компаньоном придется отправить ему приглашение по электронной почте или AOL службе мгновенных сообщений, что увеличивает время, необходимое для выхода на связь, и не подходит для быстрой беседы. Только корректная ссылка является доступом к доске рисования. Рисунок 2 Интерфейс и инструментарий в Imagination Cubed Набор инструментов для рисования в данном продукте представлен более широко, чем в предыдущем. Доступны карандаш , геометрические формы, штампы – оттиски различных форм, линия, текст. Все инструменты имеют настройки размера, цвета, множество форм фигуры или линии. Доступный и удобный интерфейс позволяет легко рисовать и общаться посредством рисования, однако текстовый чат представлен слишком маленьким окном на невыгодном месте, что серьезно затрудняет текстовое общение. 8 Результаты работы с программой можно выслать по электронной почте или распечатать. Полезной функцией является повтор последовательности создания рисунка, позволяет шаг за шагом проследить за формированием изображения от начала и до конца. Одновременно могут присутствовать до 4х человек, но уже при трех, даже при наличии скоростного подключения, наблюдаются заметные проблемы с быстродействием: «выпадают» фрагменты линий, плавная кривая не изображается плавно , замедляется реакция сервера по отображению фигур. При длительности сессии в 10 минут и умеренной активности 3х человек, каждый производит около 100 Кб трафика. целом, приложение подходит для развлекательных целей, коллективного творчества, и позволяет, например, создать анимированную открытку для поздравления и удивить кого-нибудь своими художественными способностями. Таким образом , для данного программного продукта можно отметить ряд плюсов и минусов: Плюсы: Широкий набор инструментов. Продукт доступен без наличия предустановленного программного обеспечения и используется с помощью интернет-браузера и не требует настройки firewall. Минусы: Сеанс осуществляется только при наличии корректной ссылки, полученной по электронной почте или с помощью службы мгновенных сообщений, что исключает возможность быстрого общения и общения с незнакомыми людьми. Текстовый чат представлен невыгодно и неудобно. Imagination Cubed рассчитан максимально на четырех человек, что делает невозможным даже просмотр доски рисования большим количеством пользователей. 1.3. Microsoft Windows Messenger Microsoft Windows Messenger [4] входит в комплект поставки Microsoft Windows XP, поэтому широко доступен и распространен. Для использования необходима регистрация в Microsoft Passport Network и, следовательно, наличие зарегистрированного там адреса электронной почты. Также необходимо подключение к .NET Messenger service. Windows Messenger представляет собой приложение для обмена мгновенными сообщениями, голосовой и видео коммуникации, отправки файлов, а также совместного доступа к приложениям. Программа позволяет обмениваться сообщениями и другой информацией с удаленным пользователем в режиме «один -на-один». Возможность графического ввода обеспечивает приложение «доска», для доступа к которой необходимо пригласить собеседника и получить от него подтверждение. После подтверждения между узлами происходит прямое соединение по протоколу UDP. Также как и Network Assistant Microsoft Windows Messenger требует правильной настройки 9 брандмауэра, т.е. затрудняет использование данной программы пользователями, не имеющими на рабочем месте привилегий администратора. Графические возможности представляют собой урезанные возможности Microsoft Paint, которые не имеют в должной мере средств художественного выражения . В доске рисования Windows Messenger нет масштабирования рисунка, вследствие чего у пользователя нет возможности прорисовать мелкие детали. Нельзя переместить изображение и расположить рисунок на нужном месте окна, что также затрудняет рисование. К возможностям Microsoft Paint в доске рисования Microsoft Windows Messenger добавились лишь такие функции как блокировка области ввода и возможность использования нескольких страниц для рисования. Таки образом, одним их наиболее значимых преимуществ данного программного продукта является то, что он широко доступен и поставляется с Windows XP. минусам Windows Messenger можно отнести следующее: Возможность рисования предоставляется только в режиме один-на-один, хотя аналогичные программы позволяют использовать доску нескольким пользователям одновременно. Для рисования на доске используется стандартный набор инструментов Microsoft Paint, т.е. программа наследует все недостатки программы Paint, в том числе невозможность плавного масштабирования рисунка и расположения его в месте отличном от левого верхнего угла. Требует настройки firewall. 1.4. Выводы Итак, в данной главе рассмотрен ряд программных продуктов предназначенных для коллективного рисования и обмена текстовыми сообщениями двумя или более пользователями. Каждый программный продукт из наиболее популярных и доступных на сегодняшний день реализует только часть из необходимых для полноценного рисования функций. Ни один из продуктов не имеет поддержки возможностей ввода, которые может предоставить графический планшет. У большинства продуктов возникают проблемы с обеспечением соединения, взаимодействием с межсетевыми экранами, одновременной коммуникацией нескольких пользователей . Кроме того, в программах отсутствует удобное совмещение обмена текстовыми сообщениями и графическим вводом. Небольшой набор инструментов не предоставляет достаточного объема средств для художественного выражения. Таким образом, целью данной работы является разработка приложения для сетевого взаимодействия пользователей посредством обмена графической и текстовой информацией. При этом выдвинуты следующие требования: Реализация программы должна учитывать возможные препятствия соединению пользователей в виде межсетевых экранов. Взаимодействие через интернет. Расширенные графические возможности. 10 Поддержка ввода с графического планшета. Одновременное взаимодействие нескольких пользователей. 11 Разработка проекта приложения Рассмотрев имеющиеся аналоги, мы выработали список требований, необходимых для реализации приложения графической сетевой коммуникации. Рассмотрим технологические решения, применяемые для реализации этих требований. 2.1. Клиент-серверная архитектура Приложение является многопользовательским и предназначено для использования в сети. Традиционно для такого рода приложений применяются два подхода: централизованное управление передачей сообщений между пользователями или распределение функций синхронизации сообщений между всеми участниками сетевого взаимодействия. Первый подход является, по сути, применением технологии «клиент-сервер». При этом подходе создается выделенный сервер, который обслуживает запросы клиентов, хранит данные для управления состоянием клиентов и выполняет синхронизацию данных между ними. Он отвечает за прием данных от каждого клиента и распространение этих данных между другими. В этом случае все клиенты являются равноправными относительно распределения нагрузки и взаимодействуют исключительно с сервером. Иногда серверная часть может включаться в клиентское приложение. В этом случае происходит взаимодействие типа «клиент-клиент». Тогда один из клиентов по предварительной договоренности несет на себе функции сервера, в результате являясь и клиентом, и сервером. Такая реализация в случае большого количества пользователей приводит к излишней нагрузке на одного из участников. Это, несомненно, является узким местом такого подхода. Еще одним из его недостатков является «утяжеление» клиентской части . В дополнение к сказанному заметим, что совмещение функций клиента и сервера в одном приложении может быть оправдано при реализации подключения «точка-точка», когда обе стороны в разное время могут меняться ролями. Второй подход основан на сетевом взаимодействии без использования сервера, как такового. В этом случае каждый участник коммуникационного процесса сам осуществляет рассылку данных всем остальным участникам, например, посредством широковещания. Это позволяет сэкономить требуемые на обеспечение поддержки сервера ресурсы. Но такая реализация, в основном, подходит для коммуникации в условиях локальной сети. Наше приложение должно позволять пользователям общаться посредством интернета. В этих условиях для обеспечения коммуникации множества пользователей применение клиент-серверной технологии обеспечит следующие преимущества: минимизация нагрузки на клиента, отсутствие необходимости устанавливать прямое соединение между клиентами, централизация деятельности по обслуживанию клиентов в одном месте. 12 2.2. Общая структура приложения Для полного описания общей структуры приложения прибегнем к описанию платформы Microsoft .Net, так как эта платформа предоставляет гибкие средства для разработки распределенных приложений. В их числе CLR (Common Language Runtime), единая среда исполнения, основанная на исполнении кода, реализованного на различных языках программирования. При этом используется преобразование такого кода в платформонезависимый промежуточный язык – MSIL (Microsoft Intermediate Language), а компиляция под конкретную платформу происходит по требованию, в момент исполнения. Также обратим внимание на наличие мощной библиотеки классов .Net Framework, в которой реализовано множество функций, необходимых для создания широкого спектра приложений [5]. Архитектура .Net предлагает разноплановые средства исполнения сетевого взаимодействия. Они включают в себя реализации сетевых протоколов и механизмов доступа к удаленным объектам, в их числе XML web-сервисы, .Net Remoting и пр. .Net серверная часть нашего приложения может быть реализована в виде удаленного объекта, который используется множеством клиентов. Этот объект будет обеспечивать разделение и синхронизацию данных между клиентами. .Net Remoting – технология удаленного взаимодействия, которая позволяет обращаться к объектам, расположенным в разных доменах приложений и даже на разных машинах. Объекты клиенту передаются по значению или по ссылке. Для передачи объекта по значению создается его полная копия, которая затем отправляется клиенту. При обращении к удаленному объекту по ссылке на стороне клиента создается объект-прокси, используя который, клиент получает доступ к требуемому объекту прозрачным способом, минуя детали взаимодействия с удаленным приложением. Web-сервисы (XML Web Services) тоже могут рассматриваться как удаленные объекты [6]. В широком смысле, web-сервис – это класс, расположенный на web-сервере и использующий для предоставления доступа к своим методам HTTP - как протокол передачи данных и XML – как их формат. Клиент может обращаться web-сервису с помощью URL и взаимодействовать с ним посредством прокси-объекта. Прокси содержит все те же методы, что и оригинальный класс, но его реализация просто перенаправляет вызовы методов оригинальному объекту. Для динамического создания прокси-объектов в .Net используются метаданные. В частности, web- служба может предоставить клиенту свое описание на языке WSDL (Web Services Description Language). Любой клиент, обладающий возможностью понимать и направлять SOAP-запросы в соответствии с этим описанием, может вызывать методы web-сервиса и взаимодействовать с ним посредством SOAP [7]. В качестве альтернативы динамическому созданию прокси можно статически сгенерировать исходные файлы, описывающие удаленный web-сервис, и включить их в состав клиентского приложения (см. рисунок 3). 13 Web-сервис .Net может быть размещен на web-сервере IIS [6]. Клиент имеет описание web-службы на WSDL и вызывает ее методы, выполняя SOAP запросы согласно этому описанию (подробнее см. п.2.3.2). IIS обрабатывает запросы, направляя их экземпляру web-сервиса с помощью ISAPI расширений. Рисунок 3 Статическая генерация прокси-класса web-сервиса Такая конфигурация подходит для взаимодействия с клиентом, находящимся за межсетевым экраном (см. рисунок 4), а также позволяет использовать широкую инфраструктуру .Net Framework. Рисунок 4 Пример вызова web-сервиса через firewall Реализация серверной части в качестве web-службы позволяет не заботиться о специфике реализации клиентской части , операционной системы пользователя. Единственными требованиями к клиенту с точки зрения взаимодействия с web-службой является реализация протокола HTTP в клиентской среде и его способность «понимать» XML. Еще одним плюсом использования web-службы можно назвать подход к клиент-серверному взаимодействию как к удаленному вызову методов класса. Это позволяет абстрагироваться от деталей реализации сетевой части и сосредоточиться на функциональной части. Клиентскую часть реализуем в виде Windows приложения на платформе .Net. Это дает возможность воспользоваться мощным инструментарием разработчика, библиотеками .Net, поддержкой генерации прокси -класса web-службы, сборкой мусора и другими удобствами Microsoft. Хотя, как уже упоминалось, для 14 взаимодействия с web- службой нет особых ограничений на язык и платформу реализации клиентской части, кроме понимания HTTP и XML. 2.3. Взаимодействие клиента и сервера 2.3.1. Этапы взаимодействия Взаимодействие между клиентом и сервером основано на вызовах методов сервера и обмене информационными сообщениями, которые организуются в очередь. Группы пользователей логически объединяются для общения в комнаты. Сервер содержит несколько очередей сообщений, отдельных для каждой комнаты обеспечивает синхронизацию между клиентами в ее пределах. Клиент, взаимодействующий с сервером, проходит 4 этапа: (см. рисунок 5) Рисунок 5 Основные этапы взаимодействия клиента и севера а) Запрос на получение списка комнат. б) Получение ответа со списком комнат. а) Запрос на присоединение к комнате. б) Получение ответа на запрос присоединения к комнате. Цикл отправки/получения сообшений в пределах комнаты. а) Запрос на выход из комнаты. б) Получение ответа на запрос выхода из комнаты. Перед присоединением к конкретной комнате клиент запрашивает с сервера их список и некоторую связанную с ними информацию, основываясь на которой он принимает решение о присоединении к комнате или подключается к другому серверу. Так как в этот момент пользователь еще не участвует в процессе коммуникации с другими пользователями, эта операция имеет изолированный характер и никак не связана с предыдущими запросами клиента. Поэтому серверу не нужно знать ничего о состоянии клиента. Вспомним, что клиент и сервер взаимодействуют посредством протокола HTTP, в рамках которого между ними не поддерживается постоянного соединения. Соединение существует только во время исполнения запроса и возврата клиенту результата. Вследствие этого, для того, чтобы клиент мог организовать связанную последовательность вызовов, серверу потребуется знать состоянии клиента. Это реализуется с помощью механизма сессии пользователя. В рамках сессии сервер может хранить некоторую порцию данных о клиенте и сопоставлять вызовы клиента с этими данными. После исследования списка комнат и принятия решения о присоединении к одной из них, клиент вызывает соответствующий метод, передавая серверу 15 идентификационные данные пользователя и номер комнаты. Сервер регистрирует пользователя в комнате и начинается стадия обмена сообщениями. В момент присоединения к комнате также происходит инициализация сессии, связанной с пользователем. На стадии обмена клиент отправляет на сервер сообщения, а сервер заносит их очередь соответствующей комнаты. Идентификацию пользователя и принадлежность к комнате сервер определяет по данным сессии. Затем сервер просматривает очередь сообщений, и, в соответствии с некоторым критерием, выделяет новые сообщения других пользователей, подлежащие пересылке клиенту. Отправку и получение сообщений клиент производит за одно обращение к серверу, что позволяет сократить общее количество вызовов. При этом для выполнения этой процедуры клиент не связан необходимостью иметь исходящие сообщения для отправки, а сервер не обязан вернуть клиенту новые сообщения - их может и не быть в очереди. Это значит, что как исходящий, так и входящий набор команд, относительно клиента, может быть пустым. Клиент вызывает метод обмена сообщениями по мере поступления исходящих команд от пользователя или с некоторой периодичностью при их отсутствии. Так как сервер не имеет возможности узнать о способности пользователя продолжать коммуникацию, за неимением постоянного подключения, на сервере задается тайм-аут сессии, по истечении которого сессия прерывается. Тайм-аут отмеряется с момента предыдущего запроса. Обмен сообщениями производится синхронно в отдельном потоке клиентского приложения и, кроме собственно функции отправки-получения сообщений, обеспечивает поддержание сессии пользователя на сервере. завершении сеанса коммуникации пользователь выходит из комнаты, сервер удаляет его из списка пользователей комнаты и прерывает сессию. Заметим, что пользователь может присоединиться не только к уже существующей комнате. Он имеет возможность одновременно создать новую комнату и войти в нее. При этом сервер добавляет созданную комнату в список уже имеющихся. Изначально пользователь, создавший комнату, является в ней единственным . В дальнейшем в эту комнату могут входить и выходить другие пользователи. В тот момент, когда из комнаты выходит последний пользователь, она уничтожается сервером и удаляется из списка комнат. Клиент и сервер ....................... |
Для получения полной версии работы нажмите на кнопку "Узнать цену"
Узнать цену | Каталог работ |
Похожие работы: