Файл: Реализация серверной и клиентской части.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 149

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

• DRAWER – художник, в дополнение имеет право рисовать,

• OWNER – владелец комнаты, также может изменять статус других пользователей.

Класс web-службы содержит следующие web-методы:

• RoomInfo[] getRoomList() – возвращает список описаний комнат. Описание содержит имя комнаты, список пользователей в комнате и оценку активности в комнате.

• int Connect(string userName, int roomId, string roomName, int canvasWidth, int canvasHeight) – присоединение пользователя к комнате roomId или создание новой комнаты, если такой комнаты не существует. В случае, если пользователь уже осуществлял вход, ему возвращается ошибка с помощью SoapException. Функция возвращает номер комнаты, в которую добавлен пользователь.

• string Disconnect() – выход пользователя из комнаты. Пользователь удаляется из комнаты и списка пользователей. Сессия прерывается.

• Command[] ExchangeCommands(Command[] inputCommands) – обмен командами. Входной массив фильтруется в соответствии со статусом пользователя, добавляется к списку команд комнаты пользователя и помечается текущим временем, преобразованным в long. Возвращается массив новых команд. В данные сессии заносится ключ последней команды в списке.

• void GrantUser(string userName, int state) – назначение статуса пользователя с именем userName. Метод успешно выполняется, если вызывающий пользователь является владельцем комнаты и целевой пользователь также находится в ней.

Класс приложения содержит обработчик события Session_End, который вызывается при окончании сессии пользователя. Если сессия была прервана по истечению тайм-аута, вызывается метод web-службы disconnectBySessionTimeOut(), который производит принудительное отключение пользователя.

С точки зрения взаимодействия с сервером клиент должен выполнять следующие функции:

• подключение к удаленному серверу,

• обеспечение подключения через прокси-сервер,

• получение списка доступных комнат,

• преобразование ввода пользователя в команды и отправка на сервер,

• получение команд с сервера.

Интерфейс пользователя должен позволять:

• настроить параметры подключения,

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

• просмотреть список комнат на сервере,

• присоединиться к существующей комнате или создать новую,

• общаться с другими пользователями посредством текстовой и графической информации,

• воспользоваться набором различных инструментов для ввода графической информации,

• просмотреть список пользователей,

• ограничивать возможности пользователя в соответствии с его правами,


• изменять права пользователей,

• воспользоваться для ввода графическим планшетом.

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

Модуль взаимодействия с сервером предназначен для взаимодействия с сервером посредством вызова методов web-службы. Для вызова методов web-службы с помощью среды разработки создается прокси-сборка, которая представляет собой исходный код класса, производного от базового класса SoapHttpClientProtocol. В этом базовом классе определены те возможности, с помощью которой наша прокси-сборка будет взаимодействовать с web-службой.

Рассмотрим некоторые методы и члены базового класса:

• BeginInvoke() – производит асинхронный вызов метода web-службы,

• EndInvoke() – завершает асинхронный вызов метода web-службы,

• Invoke() – производит синхронный вызов метода web-службы,

• Proxy – позволяет получить или установить информацию о настройках прокси-сервера при подключении через firewall,

• TimeOut – позволяет получить или установить тайм-аут ожидания возврата при синхронном вызове,

• Url – позволяет получить или установить URL-адрес web-службы.

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

Прокси-сборка также содержит определения типов web-службы и методы, предназначенные для вызова web-службы. Эти методы имеют такую же сигнатуру, как и вызываемые методы web-службы, что позволяет клиенту удобным и привычным способом производить их вызов.

Обратим внимание на свойство Proxy базового класса прокси-сборки. Это свойство содержит информацию, описывающую прокси-сервер при подключении через firewall. По умолчанию это свойство содержит настройки прокси-сервера из операционной системы. Так что в некоторых случаях пользователю, взаимодействующему с web-службой через прокси-сервер, даже не придется самостоятельно настраивать его параметры.

При инициализации модуля ему передаются ссылки на входной и выходной буферы команд, модуль создает экземляр прокси-сборки и устанавливает параметры подключения из настроек пользователя. Подключение к комнате происходит с помощью вызова метода Connect. При успешном подключении порождается событие ConnectionEstablished и в отдельном потоке стартует цикл обмена сообщениями. При провале попытки соединения вызывается событие ConnectionFailed.


Если буфер исходящих сообщений пуст, поток приостанавливает исполнение на некоторое время. При получении сообщений вызывается событие CommandReceived. Принимаемые сообщения записываются во входной буфер.

После успешного отключения возникает событие ConnectionFinished.

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

Инструменты реализованы в виде классов, порожденных от абстрактного класса ToolBuffer. Рассмотрим его наиболее важные члены и методы.

• Bitmap buffer – растровый буфер, в который происходит отрисовка,

• List<Point> points – список точек,

• addPoint(Point pt) – добавление точки в соответствие с логикой инструмента,

• drawBuffer() – отрисовка массива точек в буфер,

• getBuffer() – получение буфера инструмента.

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

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

Формирование графической команды происходит в следующих методах:

• startCommand(ToolParameters tool, int buf) – начало ввода команды, инициализация инструмента на отснове параметров tool, второй параметр – PRIMARY или SECONDARY инструмент,

• addPoints(Point[] pts, int[] pressures, int buf) – добавление нескольких точек и динамической информации к буферу инструмента,

• DrawCommand endCommand(int buf) –формирование команды на основе инструмента и сохранение буфера инструмента в фоновый буфер.

Модуль также содержит методы для отрисовки фонового буфера и буферов инструментов на передаваемый из модуля интерфейса элемент управления. При этом производится необходимое масштабирование и смещение изображения.


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

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

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

Компонент отвечающий за работу с графическим планшетом предназначен для организации обработки ввода с графического планшета. Он позволяет использовать привычный способ обработки ввода, основанный на реализации обработчиков событий. В реализации класса компонента инкапсулирована вся работа с библиотекой WinTab. Компонент предоставляет набор функций для открытия и закрытия контекста, изменения параметров контекста, получения информации об устройстве и обработки оконных сообщений. Класс содержит набор закрытых функций, импортированных из библиотеки WinTab, а также список констант WinTab и описание структур данных Axis, Context и Packet.

Структура Axis содержит данные диапазона и разрешения оси координат графического планшета. Этой структурой описываться не только оси X и Y плоскости ввода, но и другие параметры, например, «ось» нажатия на перо.

Структура Packet описывает пакет данных и содержит информацию о нажатии кнопок на пере планшета, координатах пера и степени нажатия.

Заключение

Итак, решив поставленные задачи – рассмотрение сущности и принципа и технологии «клиент – сервер»; изучение примера взаимодействия клиентской и серверной частей в приложении – мы пришли к следующим выводам:

Основная идея технологии «клиент-сервер» заключается в том, чтобы расположить серверы на мощных машинах, а приложения клиентов, использующих язык инструментальных средств, – на менее мощных машинах. Тем самым будут задействованы ресурсы более мощного сервера и менее мощных машин клиентов. Ввод-вывод к базе основан не на физическом дроблении данных, а на логическом, т.е. клиентам отправляется не полная копия базы, а сервер посылает только логически необходимые порции, тем самым, сокращая трафик сети. Трафик сети – это поток сообщений сети. В технологии «клиент-сервер» программы клиента и его запросы хранятся отдельно от СУБД. Сервер обрабатывает запросы клиентов, выбирает необходимые данные из базы данных, посылает их клиентам по сети, производит обновление информации, обеспечивает целостность и сохранность данных.


Серверы — это компьютеры или программы, которые предоставляют какие-либо сервисы клиентам, например, веб-сервер или сервер электронной почты.

Клиенты — это компьютеры или программы, которые используют то, что предлагают серверы, например веб-браузеры или почтовые клиенты.

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

Преимущества технологии «клиент-сервер»:

- не требуются одновременные крупные финансовые вложения, так как мощность можно наращивать постепенно;

- добавление сервера или рабочей станции повышает общую мощность системы;

- пользователь имеет большой выбор платформ;

- технология «клиент-сервер» имеет большую гибкость и производительность при построении многоуровневых информационных систем.

Недостатки технологии «клиент-сервер»:

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

- поддержка работы данной системы требует отдельного специалиста — системного администратора;

- высокая стоимость оборудования.

Использование технологии «клиент-сервер» позволяет перенести часть работы с сервера баз данных на ЭВМ клиента, оснащенную инструментальными средствами для выполнения его профессиональных обязанностей. Тем самым данная технология позволяет независимо наращивать возможности сервера баз данных и инструментальные средства клиента. Недостаток технологии «клиент-сервер» заключается в повышении требований к производительности ЭВМ-сервера, в усложнении управления вычислительной сетью.

Список использованных источников

  1. Абдуллаева Н.И. Распределённая система с многофункциональной клиентской частью / Н.И. Абдуллаева // SCIENCE TIME, Номер: 10 (34) Год: 2016 Страницы: 8-13
  2. Академия Microsoft: Распределенные базы и хранилища данных. Лекция №4: Логическая модель РБД. Бизнес-логика файл-серверной, клиент-серверной и N-уровневой архитектуры // ИНТУИТ / Режим доступа: https://www.intuit.ru/studies/courses/1145/214/lecture/5511?page=1 (доступ на 10.06.2018)
  3. Академия Microsoft: Распределенные базы и хранилища данных. Лекция №4: Логическая модель РБД. Бизнес-логика файл-серверной, клиент-серверной и N-уровневой архитектуры // ИНТУИТ / Режим доступа: https://www.intuit.ru/studies/courses/1145/214/lecture/5511?page=2 (доступ на 10.06.2018)
  4. Академия Microsoft: Распределенные базы и хранилища данных. Лекция №5: Базовые объектные архитектуры распределенных систем. Технологии .NET, (D)COM+, CORBA, EJB // ИНТУИТ / Режим доступа: https://www.intuit.ru/studies/courses/1145/214/lecture/5513?page=2 (доступ на 10.06.2018)
  5. Беляков С.Л. Технология клиент/сервер в геоинформационных системах / С.Л. Беляков // Известия ТРТУ, Номер: 1 (24) Год: 2002 Страницы: 180-181
  6. Войтиков К.Ю. Архитектура надстраиваемых приложений клиент/сервер с обобщенным протоколом передачи данных / К.Ю. Войтиков, О.А. Змеев, А.Н. Моисеев, А.А. Якушев // Вестник томского государственного университета, Номер: 284 Год: 2004 Страницы: 166-170
  7. Дальви Динар XML.NET. Руководство / Дальви Динар, Джоши Бипин, Грэй Джо. - М.: Лори, 2015г. - 642с.
  8. Исаев Е.А. Использование трехзвенной архитектуры "клиент-сервер" в современных системах обработки информации / Е.А. Исаев, П.А. Тарасов, В.В. Корнилов, Г.В. Детков // Известия института инженерной физики, Том: 3 Номер: 37 Год: 2015 Страницы: 38-43
  9. Кацко С.Ю. Классификация и принципы работы геоинформационных web-серверов в интернет-системе "клиент-сервер" / С.Ю. Кацко // ГЕО-СИБИРЬ, Том: 1 Номер: 1 Год: 2006 Страницы: 211-215
  10. Лисьев Г.А. Программное обеспечение компьютерных сетей и web-серверов. Учебное пособие / Г.А. Лисьев, П.Ю. Романов, Ю.И. Аскерко. М.: Инфра-М, 2018г. – 145с
  11. Маркин Е.И. Разработка web-приложения с использованием архитектуры "клиент-сервер" / Е.И. Маркин, К.М. Рябова, Е.А. Артюшина // Международный студенческий научный вестник, Номер: 3-1 Год: 2016 Страницы: 84-86
  12. Медведев Ю.С. Проектирование интерактивных web-приложений / Ю.С. Медведев, В.В. Терехов // Современные проблемы науки и образования, Номер: 1-1 Год: 2015 Страницы: 43
  13. Мурчиков А.М. Выбор и обоснование средств разработки web-серверных приложений / А.М.Мурчиков, В.В.Воробьев // Теория и практика современной науки, Номер: 3 (21) Год: 2017 Страницы: 558-564
  14. Нестеров Г.Д. Трехзвенная клиент-серверная информационная система по конфигурированию баз данных // Политематический сетевой электронный научный журнал кубанского государственного аграрного университета, Номер: 110 Год: 2015 Страницы: 308-317
  15. Николаев В.Н. Метод и устройство управления информационно-вычислительными ресурсами вида "клиент-сервер" / В.Н. Николаев // Известия юго-западного государственного университета. серия: управление, вычислительная техника, информатика. медицинское приборостроение, Номер: 1 Год: 2013 Страницы: 208-211
  16. Осипов Д.Л. InterBase и Delphi. Клиент-серверные базы данных / Д.Л. Осипов. М: ДМК Пресс, 2015г. - 536с
  17. Пахомов А. Webview на службе быстрой разработки. интегрируем функционал веб-сайта в мобильное приложение / А.ПахомоВ // Системный администратор, Номер: 3 (172) Год: 2017 Страницы: 45-49
  18. Поташов Н.О. Сравнительный анализ популярных веб-серверов / Н.О. Поташов // Аллея науки, Том: 4Номер: 9 Год: 2017 Страницы: 875-879
  19. Проектирование информационных систем. Лекция 1: Основные понятия технологии проектирования информационных систем (ИС) // ИНТУИТ / Режим доступа: https://www.intuit.ru/studies/professional_skill_ improvements/1901/courses/55/lecture/1618?page=3 (доступ на 10.06.2018)
  20. Сычев А.В. Web-технологии / А.В. Сычев / Режим доступа: http://window.edu.ru/resource/423/61423 (доступ на 11.06.2018)
  21. Тарханова О.В. Системы "клиент-сервер" для автоматизации процессов взаимодествия в локальной сети / О.В. Тарханова // Научный альманах, Номер: 2-2 (28) Год: 2017 Страницы: 205-208
  22. Трофимов В.В. Синхронизация списков данных в клиент-серверных системах / В.В. Трофимов, Д.В. Завьялов // Известия волгоградского государственного технического университета, Номер: 6 (163) Год: 2015 Страницы: 87-90
  23. Хорсдал Кристиан Микросервисы на платформе. NET / Хорсдал Кристиан. - СпБ.: Питер, 2018г. - 352с.
  24. Шапошников И. Web-сервисы Microsoft. NET / И.Шапошников. - СпБ.: БХВ-Петербург, 2002г. - 336с.
  25. Эспозито Д. Программирование с использованием Microsoft ASP.NET 3.5 / Д. Эспозито. - СпБ.: Питер, 2009г. - 544с.