WWW.DISUS.RU

БЕСПЛАТНАЯ НАУЧНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

 

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кузюбердин

Дмитрий Владимирович

Интерактивная система показа презентационных слайдов на базе распределённой web-архитектуры

Выпускная работа по
«Основам информационных технологий»

Магистранта кафедры информатики и компьютерных систем

Специальность 05.13.19 - методы и системы защиты информации, информационная безопасность, физ.-мат.

Научные руководители:
доцент Стецко И. П., преподаватель Позняков А.М.

Минск 2012

Оглавление

Оглавление 2

Список обозначений 4

Введение 5

Глава 1 АНАЛИЗ ПРОБЛЕМ, МЕТОДОВ И ТЕХНИЧЕСКИХ СРЕДСТВ 8

1.1 Анализ и обзор имеющихся средств и технологий 8

1.1.1 Дополненная реальность 8

1.1.2 Хромакей 9

1.1.3 Windows Communication Foundation 9

Выводы 10

Глава 2 АРХИТЕКТУРА ПРИЛОЖЕНИЯ И ЕГО РЕАЛИЗАЦИЯ 11

2.1 Структура приложения 12

2.2 Функциональные возможности разработанного приложения 13

2.3 Cтруктура базы данных 16

2.4 Разработка административного серверного приложения (web-сайта) 17

2.5 Реализация web-сервисов 19

2.5.1 Web-сервис "Администратор" 20

2.5.2 Web-сервис " Поток данных" 21

2.6 Реализация клиентского приложения (транслятора лекций) 22

2.6.1 Режим "Трансляция лекций" 23

Выводы 24

Заключение 25

Список литературы 27

Приложение А 28

Фрагменты кода программы: 28

Приложение Б 32

Интернет ресурсы в предметной области исследования 32

Приложение В 34

Действующий личный сайт в WWW (гиперссылка)и Print SCreen главной страницы 34

ПРИЛОЖЕНИЕ Г 35

Граф(круг) научных интересов 35

ПРИЛОЖЕНИЕ Д 36

Тестовые вопросы по ОИТ 36

Приложение E 37

Презентация магистерской (кандидатской) диссертации 37

Список обозначений

WCF - Windows Communication Foundation

HTTP - HyperText Transfer Protocol — «протокол передачи гипертекста»

AR - Дополненная реальность (англ. augmented reality)

HTML - от англ. HyperText Markup Language — «язык разметки гипертекста»

XML - от англ. eXtensible Markup Language — расширяемый язык разметки;

CLR - Common Language Runtime (общеязыковая исполняющая среда)

DAL - Data Access Layer (уровень доступа к данным)

BLL - Bussiness Logic Lauey (уровень бизнес логики)

­Введение

Сегодня благодаря IT образование вышло на совершенно новый уровень. Возможности, которые предоставляет даже самый обычный домашний PC, позволяют вести образовательный процесс отличным от классического представления способом, например, on-line-лекции, on-line-тесты и так далее.

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

Одна из возможных задач - демонстрация презентаций. Как сегодня это реализовано или возможно реализовать?

Во-первых, помочь нам могут в этом обычные HTML-страницы. Лектор может создать презентацию как статические HTML-страницы, скинуть ссылку студентам, и те начнут процесс изучения. Минусы очевидны - лектор не участвует в процессе образования. Он просто "скинул" лекцию.

Такой же вариант мы имеем с классическими презентациями PowerPoint: можно лишь создать такую презентацию и "скинуть" её студентам. Сейчас Google Docs позволяет удобно "расшаривать" доступ к таким файлам, так что мы получаем в распоряжение удобный инструмент.

Но это всё статика. Мы же сегодня хотим как минимум иметь полноценную видеолекцию. Так же мы хотим каким-то образом видеть и слышать лектора.

Здесь вариант тоже есть - видеокамера. Лектор демонстрирует с помощью проектора слайды презентации, рассказывает, а в этот момент видеокамерой идёт видеосъёмка всего происходящего в аудитории, а именно: экрана с презентационным слайдом и лектора, стоящего рядом. В итоге, студент, просматривая запись лекции, более выражено ощущает присутствие лектора и его воздействие на воспринимаемую информацию.

Объединить всё вместе: HTML, видео- и аудиопотоки данных, распределённую web-архитектуру приложения, элементы дополненной реальности - и построить систему трансляции лекций с интерактивной демонстрацией слайдов и является целью рассматриваемой работы.

Спроектированное и разработанное приложения с распределённой архитектурой для оптимизированной работы с аудио- и видеоданными, позволяет реализовать широкий спектр возможностей по передаче и обработке видео/аудиоданных, использующихся в различных процессах.

Распределённая архитектура web-приложения и сеть Internet дают возможность собрать систему, которая объединит различные её узлы из разных уголков земного шара, распределив нагрузку и пропускную способность так, чтобы получить производительную и простую в использовании систему, что особенно актуально в условиях работы с большими объёмами видео/аудиоданных, ставших неотъемлемой частью нашей жизни и сети Internet в частности.

Такие распределённые системы позволяют решить многочисленные задачи, требующие крупных объёмов обработки видео- и аудиоданных: от развлечения (игры, Internet-радио, видеочаты, on-line кинотеатры) до задач в сфере бизнеса, производстве, военных технологий (видеоконференции, голосовое/видео управление системами, обучение, тренажёры ).

Настоящая работа посвящена вопросам проектирования и построения общей архитектуры распределённого web-приложения, а также непосредственной реализации конкретной системы (трансляция on-line лекций с элементами дополненной реальности) на базе разработанной архитектуры.

Проблема образовательного процесса сегодня стоит достаточно остро. С применением IT этот процесс можно значительно упростить, сделать более эффективным и быстрым. Разработанное приложение позволяет увеличить эффективность образования, сделать его вседоступным (благодаря работе в WWW и отсутствию привязанности к конкретному физическому местонахождению лектора и студентов).

Так же на основе спроектированной и разработанной базисной архитектуре можно реализовать приложения для решения многочисленных задач в области обработки и передачи аудио- и видеоданных.

В настоящей работе поставлены следующие задачи:

  • спроектировать и реализовать архитектуру распределённой web- системы, легко адаптируемую под всевозможные конкретизированные задачи
  • спроектировать общую архитектуру, обеспечив абстракцию модулей и удобный и понятный интерфейс межмодульного взаимодействие
  • обеспечить лёгкую расширяемость системы
  • обеспечить удобное и лёгкое конфигурирование как отдельных модулей, так и всей системы
  • разработать универсальный интерфейс для взаимодействия с системой "из вне"
  • настроить и расширить систему для решения конкретной задачи - реализации on-line транслятора лекций с элементами дополненной реальности
  • реализовать эффективный алгоритм Хромакея
  • дополнить реальный мир виртуальными элементами для удобного взаимодействия с системой
  • минимизировать объём аудио- и видеоданных
  • разработать клиентское программное обеспечение с дружественным интерфейсом пользователя для использования данного приложения

Глава 1
АНАЛИЗ ПРОБЛЕМ, МЕТОДОВ И ТЕХНИЧЕСКИХ СРЕДСТВ

1.1 Анализ и обзор имеющихся средств и технологий

1.1.1 Дополненная реальность

Дополненная реальность (англ. augmented reality, AR), — термин, относящийся ко всем проектам, направленным на дополнение реальности любыми виртуальными элементами. Дополненная реальность — составляющая часть смешанной реальности (англ. mixed reality), в которую также входит «дополненная виртуальность» (когда реальные объекты интегрируются в виртуальную среду). Один из самых известных примеров дополненной реальности — цветная линия, показывающая траекторию движения шайбы при телетрансляции хоккейных матчей.Сам термин предположительно был предложен работавшим на корпорацию Boeing исследователем Томом Коделом (англ. Tom Caudell) в 1990 году. Существует несколько определений дополненной реальности: исследователь Рональд Азума(англ. Ronald Azuma) в 1997 году определил дополненную реальность как систему, которая[2]:

1. Совмещает виртуальное и реальное.

2. Взаимодействует в реальном времени

3. Работает в 3D.

В 1994 году Пол Милгром (англ. Paul Milgram) и Фумио Кисино (англ. Fumio Kishino) описали Континуум Виртуальность-Реальность(англ. Milgram's Reality-Virtuality Continuum) — пространство между реальностью и виртуальностью, между которыми расположены дополненная реальность (ближе к реальности) и дополненная виртуальность (ближе к виртуальности). Еще одно определение: Дополненная реальность — добавление к поступающим из реального мира ощущениям мнимых объектов, обычно вспомогательно-информативного свойства. В западном научном сообществе данное направление получило чёткий устоявшийся термин — Augmented Reality (AR).

Иногда используют в качестве синонимов названия «Расширенная реальность», «Улучшенная реальность», «Обогащенная реальность» и тому подобные словосочетания.

Не следует путать дополненную реальность с виртуальной. Их коренное различие в том, что дополненная вносит отдельные искусственные элементы в восприятие реального мира, а виртуальная конструирует новый искусственный мир

1.1.2 Хромакей

Хромакей (англ. chroma key, буквально «цветовой ключ») — технология совмещения двух и более изображений или кадров в одной композиции, цветовая рир-проекция (или рир-проецирование), использующаяся в кино и на телевидении. Во время съёмок объект помещается на однотонный цветной фон (рир-экран). При совмещении в кадре объекта с фоном во время записи сцены или при монтаже вместо фона можно поместить другое изображение.

Самыми распространёнными цветами, использующимися при рир-проецировании, являются зелёный и синий (голубой), но теоретически (и практически) может использоваться любой цвет, в том числе белый и чёрный. Самый популярный цвет фона для комбинированных съёмок в кинопроизводстве — зелёный (что дало название технологии «Green screen»), для телевизионных программ чаще применяется синий фон («Blue screen»), хотя цвет рир-экрана зависит от поставленной режиссёром творческой задачи и характеристик оборудования, на котором производится рир-проецирование.

Еще одним распространённым названием технологии является кеинг (англ. keying, color keying). Стоит отметить также, что правильным произношением chromakey является «кромаки», однако на русскоязычном телевидении оно не прижилось и в ходу сейчас жаргонизм «хромакей».

Единственным минусом хромакея является то, что если на одежде человека присутствует цвет, схожий с цветом фона, то человек начинает «просвечивать».

1.1.3 Windows Communication Foundation

Было решено в построении нашей системы использовать web-службы. В данном случае WCF – это самый простой способ предоставлять и потреблять службы на платформе Microsoft. Пользуясь WCF, разработчики могут сосредоточиться на приложениях, а не на коммуникационных протоколах. Это классический пример инкапсуляции технологии в инструментальных средствах.

В современных архитектурах приложений принимаются во внимание устройства, клиентское программное обеспечение и службы. Без сомнения, возникшая примерно в 1995 году модель Web-сайта (когда приложение размещается на Web-сервере и доставляет пользовательский интерфейс в виде HTML-разметки любому браузеру) не прекратит существования, но одновременно получают распространение более современные модели, сочетающие локальное ПО с Web-службами. В качестве примеров можно назвать iPod, XBOX 360, RSS, AJAX, Microsoft Office,

Выводы

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

Но встаёт проблема создания гибкого и универсального приложения, которое легко можно адаптировать и оптимизировать под конкретную задачу, ведь решение любой серьёзной задачи требует:

  • минимизации аппаратных ресурсных затрат
  • разработки новых методов и алгоритмов для решения возникающих подзадач
  • модернизации существующих методов и задач в соответствии с современными достижениями в программной и аппаратно-технической областях
  • минимизации передаваемого по сети потока данных

Глава 2

АРХИТЕКТУРА ПРИЛОЖЕНИЯ И ЕГО РЕАЛИЗАЦИЯ

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



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

Необходимо решить следующие задачи:

  1. Построение абстрактные структурированные модули, используя наиболее подходящие для каждого модуля шаблоны проектирования
  2. Обеспечение быстрого, надёжного и безопасного межмодульного взаимодействия, а так же взаимодействия пользователя с каждым модулем в отдельности
  3. Обеспечение возможности лёгкого расширения системы разработчиками
  4. Обеспечение максимальной пропускной способности системы и минимизации передаваемых данных
  5. Обеспечение минимизации времени первичной обработки видео- и аудиоданных на клиенте, используя возможности параллельной обработке данных на многопроцессорных системах
  6. Обеспечение удобного, красивого и понятного пользовательского интерфейса

Разработанное приложение включает в себя 3 основных взаимодействующих друг с другом программных модуля:

  • административное серверное приложение (web-сайт)
  • web-сервисы
  • клиентское приложение

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

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


2.1 Структура приложения

Общая структура разработанного приложения представлена на рисунке 1.

Рисунок 1 - Общая структура приложения

    1. База данных (Sql Server 2008) используется для хранения и чтения следующих данных: страницы лекций, их контент, данные о пользователях, настройки приложения.
    2. Web-сервис "Администратор" - сервис, посредством которого администратор управляет лекциями, изменяет глобальные настройки приложения
    3. web-приложение - web-сайт, доступ к которому открыт для всех, и посредством которого администратор (пройдя авторизацию и получив необходимые права) используя функции web-сервиса "Администратор" пользователь, обладающий необходимыми правами, администрирует лекции и общие параметры системы.
    4. Web-сервис "Поток данных" - основной рабочий web-сервис, участвующий в приёме потока данных от лектора, и отвечающий за предоставление доступа к данному потоку клиентов.
    5. Транслятор видео - внебраузерное Silverlight-приложение, позволяющее производить захват видео-/аудиоданных с помощью web- камеры и микрофона, обрабатывать эти данные и отправлять их на web- сервис "Поток данных".
    6. Клиент - то же самое внебраузерное Silverlight-приложение, но работающее в режиме приёма данных от "Транслятора видео".

Взаимодействие web-сервисов с базой данных обеспечивается за счёт использования хранимых процедур на стороне базы данных и их вызова на стороне web-сервисов с использованием фреймворка ADO.NET.

Взаимодействие Silverlight-клиентов и web-приложения с web- службами будет проходить посредством обращений к оконечным точкам (функциям) web-службы по HTTP-протоколу. При этом используется мощный программный фреймворк Windows Communication Foundation, который позволяет гибко настроить многочисленные параметры, включая параметры безопасности и доступа.

2.2 Функциональные возможности разработанного приложения

На рисунке 2 представлена схема функциональных узлов разработанного приложения.

Принцип работы разрабатываемого приложения (on-line транслятора видеолекций) следующий. Человеком (лектором) запускается локально на компьютере внебраузерное приложение Silverlight, выбирается нужная лекция, включается камера и микрофон. Лектор становится на заранее подготовленном монотонном зелёном фоне или на фоне иного цвета, удобного для эффекта хромакея.

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

Одноцветный фон заменяется слайдом презентации, а так же дополняется "элементами управления" (дополненная реальность), с которыми лектор может взаимодействовать посредством источника света (например, лазерная указка, подсвечивающая палец ярко красным светом). При этом лектор видит "новое" изменённое и дополненное изображение на своём экране, и легко может "прикасаться" к элементам управления, так как разрешение видео специальным образом сопоставляется с размерами вывода видео на экран и координатами размещения элементов. Далее представлено текстовое описание указанного алгоритма.

  1. Лектор загружает необходимую страницу web-сайта, авторизуется и, обладая необходимыми правами, создаёт лекцию
  2. Лектор запускает внебраузерное Silverlight-приложение в режиме трансляции лекции.
  3. Лектор настраивает цветовые диапазоны фильтра для корректной отработки эффекта Хромакея.
  4. Лектор выбирает лекцию, включает камеру и микрофон и начинает трансляцию.
  5. Используя источник света (например, фонарик, испускающий яркий красный свет) лектор взаимодействует с элементами управления дополненной реальности, которые переключают слайды, увеличивают/уменьшают изображения и так далее
  6. Заинтересованные авторизованные пользователи, переключив внебраузерное Silverlight-приложение для приёма видео-/аудиопотока, подключаются к web-сервису по HTTP-протоколу через обычную сеть Internet (это может быть и локальная сеть) и принимают поток данных.

Таки образом лектор, удалённо от слушателей/зрителей читает лекцию, при этом "находясь в аудитории" перед глазами слушателей/зрителей, в плоскости транслируемой лекции (подобие классического представления прогноза погоды на телевидении, с той разницей, что лектор непосредственно взаимодействует со слайдами).

2.3 Cтруктура базы данных

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

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

Реляционная система управления базами данных Microsoft Sql Server 2008 позволяет детально настроить и обеспечить все необходимые параметры безопасности и работы базы данных.

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

Данные можно условно разделить на четко структурированные автоматизированные информационные классификаторы и справочники и данные, для которых реализованы функции сбора и хранения первичных данных. Подавляющее большинство классификаторов и справочников должны сопровождаться централизованно. [4]

Безопасность доступа к данным реализуется механизмами встроенной в СУБД MS SQL Server 2008 системы безопасности. В разрабатываемой базе данных используются системы стандартной и “смешанной” безопасности. При “смешанной” безопасности пользователю не надо при запуске приложения на выполнение вводить свои имя и пароль, за него идентификацию осуществляет операционная система Windows, если пользователь успешно зарегистрировался при входе в компьютерную сеть. При стандартной безопасности пользователь при запуске приложений системы обязан еще раз ввести свои имя входа в систему и пароль для авторизации на сервере SQL.

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

2.4 Разработка административного серверного приложения (web-сайта)

Проектирование и создание web-приложения, которое соответствовало бы всем современным стандартам и было бы довольно гибким на случай, если понадобится добавить или изменить функционал, - является не совсем тривиальной задачей. [5]

Фактически проблемы, которые предстоит решить, следующие:

  1. Отделить код доступа к данным от кода бизнес-логики и кода представления (пользовательского интерфейса), так чтобы web-приложение было гораздо более удобным в обслуживании и гораздо более масштабируемым. Для этого использовалось трёхуровневое проектирование (рисунок 3)

  1. Изолировать архитектуру доступа к данным, так чтобы она могла поддерживать различные лежащие в основе хранилища данных, не требуя внесения изменений на уровне бизнес-объектов. Подобным образом (см. Рис. 15.), внесение изменений в бизнес-объекты или уровни представления тоже должно быть возможным без изменения другого уровня. Это называется отделением уровней друг от друга.

  1. Спроектировать архитектуру бизнес-объектов, чтобы представить данные, извлекаемые на уровне доступа к данным, в объектно-ориентированном формате. Этот процесс называется отображением реляционных данных на классы объектно-ориентированного программирования (ООП).
  2. Обеспечить возможность помещения бизнес-объектов в кэш для того, чтобы данные, уже извлечённые из хранилища данных, сохранялись, и нам не приходилось выполнять ненужные операции выборки для извлечения тех же самых данных снова и снова. Это позволит сократить требуемое количество ресурсов ЦП, ресурсов базы данных и объём сетевого трафика и, следовательно, улучшить производительность в целом.
  3. Сохранить конфигурационные настройки web-приложения и модулей в таком месте, из которого их будет легко считывать и в котором в них будет легко вносить изменения, а также создать вспомогательные классы, чтобы упростить доступ к этим параметрам.
  4. Привязать многочисленные элементы управления пользовательского интерфейса к данным, извлекаемым на уровне бизнес-логики, чтобы свести к минимуму объём работы, который должен выполняться на уровне пользовательского интерфейса, и возложить роль управления данными на уровень бизнес-логики, вместо уровня пользовательского интерфейса. В идеале пользовательский интерфейс должен фокусироваться в основном на представлении данных, уровень бизнес-логики должен манипулировать данными и применять бизнес-правила, а уровень данных должен только обеспечивать постоянство (хранилище данных). [6]

2.5 Реализация web-сервисов

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

Существует термин SOA — Service Oriented Architecture, то есть архитектура, ориентированная на сервис. Живым воплощением этой является распространённая сегодня технология от Microsoft - Windows Communication Foundation.

Архитектуру WCF легко представить в виде ABC-сочетаний. Сервер и клиент взаимодействуют между собой при помощи точек взаимодействия (endpoint). Каждая точка представляет собой набор двух-трех характерно выделяющихся блоков (ABC). A — address, B — binding, C — contract.

Address — это адрес точки, где ее можно обнаружить в глобальной сети. Это, как правило, URL с указанием конкретного сервера, протокола и т.д. Обладая адресом, точно изместно, куда обращаться. Блок адреса отвечает на вопрос: «Где?».

Компонент binding обеспечивает связывание сетевых взаимодействий и внутренней инфраструктуры приложений. На нем лежат задачи авторизации, аутентификации, подъема экземпляров сервисов, всевозможных шифрований, фильтраций и т.д. Все служебные коммуникационные процедуры — это binding. Он фактически описывает формат, в каком виде ьудет происходить взаимодействие программы с сервисом. Он отвечает на вопрос: «Как?»

Самый близкий к программному ядру модуль — contract. Это набор формальных правил, которые описывают структуру, формат того, с чем идёт непосредственное взаимодействие. Взаимодействие проиходит не с какой-то абстрактной сущностью, а с неким структурированным, выглядящим определенным образом программным кодом. Contract описывается в различных терминах. Существует возможность его описания в терминах SOA-протокола, то есть WSDL-схемы. Внутри программного кода на.NET contract описывается в виде интерфейсов и классов.NET Framework CLR.

Сам WCF по структуре - это просто набор библиотек. Microsoft предлагает 5 видов хостинга таких распределенных приложений, самые сложные, продвинутые и широкие по своим возможностям. Специальная механика, которая является частью IIS 7 — это Windows Process Activation Service. Внешне это очень похоже на то, что было c Web services в случае старых версий Internet Information Services, то есть это возможность хостить свои компоненты в неком готовом сервере приложений. Модульная архитектура IIS 7 и новая операционная система семейства Vista, вышедшая Windows Vista, Windows 7 и Longhorn Server предоставляют возможности, зачатки которых появились в Windows 2003 и Windows XP Service Pack 3. Какие это возможности? Прежде всего, это возможность слушать порты на уровне ядра. Если в предыдущих версиях была возможность слушать порты, исключительно используя протоколы http, то в Vista и Windows 7 теперь можно использовать любой протокол. Новый Windows Process Activation Service позволяет убрать это ограничение. Теперь в Web-сервисах, в специфичных вещах, можно использовать любой протокол для того, чтобы общаться с внешним миром, тем самым устраняя лишний overhead на XML, на HTTP и т.д. [8]

2.5.1 Web-сервис "Администратор"

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

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

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

Один из вариантов реализации заключается в передаче методу AddServiceEndPoint объекта типа BasicHttpBinding. Может потребоваться изменить привязку на WSHttpBinding, поскольку она обеспечивает повышенную безопасность, добавляя к защите на уровне транспортного протокола еще и защиту на уровне отдельных сообщений. В таком случае пришлось бы изменить и перекомпилировать программу. Если же перенести выбор привязки из кода в конфигурацию, то можно будет обойтись без перекомпиляции. А если появится необходимость распространить контракт на оба протокола, достаточно будет определить две оконечные точки: одну для базового протокола HTTP, а другую для протокола WSSecurity; ничего изменять в коде при этом не придется. За счет этого сопровождение программы упрощается. Для настройки требуется конфигурационный файл, в котором содержится информация о поведении и оконечной точке (см. Листинг 2 ПРИЛОЖЕНИЯ А):

  • Определяется контракт. Создаётся класс, выполняющий полезную работу, и снабжается атрибутами WCF. Код самой службы одинаков как при программном определении, так и при описании в конфигурационных файлах.
  • Служба размещается в процессе операционной системы, чтобы клиенты могли обращаться к ней из сети. Для этого создается объект класса ServiceHost, определенного в пространстве имен System.ServiceModel, и вызывается его метод.
  • Создаем конфигурационный файл, в котором определяется базовый адрес службы и АПК ее оконечной точки. Нужно, что код в листинге 2 ПРИЛОЖЕНИЯ А никак не ссылается на конфигурационный файл. При вызове метода ServiceHost.Open WCF ищет в конфигурационном файле приложения (app.config или web.config) секцию <serviceModel>, из которой читает конфигурационные параметры.

2.5.2 Web-сервис " Поток данных"

Данный web-сервис является основным по передаче и рассылке клиентам потока видео- и аудиоданных.

Клиентское Silverlight-приложение в режиме трансляции отправляет поток данных на данный web-сервис, который далее по запросу отправляет поток данных подключённым клиентам.

[ServiceContract]

public interface IDataTransferService

{

[OperationContract]

FullLectionInfo RegistLection();

[OperationContract]

bool UnRegistLection(FullLectionInfo lection);

[OperationContract]

bool StartLectionAudioTransfer(Guid LectionGuid, Stream audio);

[OperationContract]

bool StartLectionVideoTransfer(Guid LectionGuid, List<Image> screenShot);

[OperationContract]

List<FullLectionInfo> GetOnlineLections();

[OperationContract]

List<Image> GetLectionScreenshots(Guid lectionGuid);

[OperationContract]

Stream GetLectionAudioData(Guid lectionGuid);

}

RegistLection(). Используется для регистрации очередной онлайн трансляции. Транслирующее Silverlight-приложение вызывает данный метод web-сервиса, получает объект FullLection (в нём на данном этапе интересен только присвоенный данной лекции уникальный идентификатор, который клиентское приложение использует для отправки транслируемых данных на сервер).

После регистрации в специальную коллекцию на web-сервисе добавляется объект, инкапсулириующий в себе всю информацию о добавленной лекции.

UnRegistLection(). Используется для удаления онлайн трансляции из коллекции. Может быть вызван напрямую транслятором лекции для того, чтобы объявить о прекращении трансляции, либо по таймеру LectionManager (объект, ответственный за мониторинг трансляции лекций и доступ к ним), не увидив активности со стороны транслятора, удалит данную лекцию из коллекции и освободит ресурсы.

StartLectionAudioTransfer(Guid LectionGuid, Stream audio).

Данная функция служит для приёма потока аудиоданных и записи этого потока в нужный объект коллекции, с целью открыть к нему доступ для функции GetLectionAudioData.

GetLectionAudioData(). Функция позволяет по известному идентификатору лекции получить доступ к аудиоданным.

StartLectionVideoTransfer(Guid LectionGuid, List<Image> screenShot). Данная функция позволяет передать сервису коллекцию кадров. Каждую секунду транслирующее приложение отправляет пачку кадров (количество кадров зависит от частоты выборки этих кадров на клиенте), которая становится доступной и которую можно получить, обратившись к функции GetLectionScreenshots.

GetLectionScreenshots(Guid lectionGuid). Функция возвращает текущую коллекцию кадров заданной лекции.

2.6 Реализация клиентского приложения (транслятора лекций)

Для разработки клиентского приложения была выбрана технология Silverlight, которая позволяет создать легковесное, быстрое, надёжное, кроссплатформенное внебраузерное приложение (фактически полноценное Windows-приложение).

Есть 2 варианта работы с приложением: можно либо зайти на страницу с приложением на web-сайт и работать с приложением в web-браузере, либо можно загрузив единожды таким способом приложение, кликнуть по нём правой клавишей мыши и в контекстном меню выбрать "Установить приложение". Произойдёт быстрая инсталляция приложения, и на рабочем столе появиться ярлык запуска приложения. То есть для дальнейшей работы не нужен браузер и не нужно заходить на сайт на страницу с данным приложением. Оно будет работать автономно наподобие полноценного windows-приложения.

Разработанное приложение поддерживает 2 режима: трансляции данных и приёма данных. Работать программа одновременно может только в одном режиме.

Переключение из одного режима работы в другой происходит простым выбором нужной закладки. Выбор блокируется, если один из режимов активен (идёт трансляция либо приём данных).

Данное приложение использует разработанный ранее сервис для передачи и получения данных с сервера.

Использование технологий Microsoft позволяет очень удобно и надёжно организовать взаимодействие данного приложения с web-сервисами. [9]

2.6.1 Режим "Трансляция лекций"

Для начала трансляции необходимо:

  • Нажать на кнопку "начать видеозахват", подтвердить, что приложению Silverlight разрешён доступ к web- камере и микрофону
  • Начинается видеозахват: "лектор" видит себя в специально отведённой для показа видео области приложения.
  • Стоит задача - удалить фон за пользователем. Для этого нужно настроить диапазон RGB значений, которые будут удаляться фильтром. Для простоты и удобства подбора этих значений, была разработана специальная функция, выполняющая роль классической "пипетки" в графических редакторах - определение цвета пикселя. Данная функция автоматически срабатывает при клике в области отображения видео и заполняет полученным цветом фильтр, создав на основании этого цвета небольшой диапазон, который можно в ручную подкорректировать. В итоге очень быстро и удобно можно добавить набор диапазонов, цвет пикселей из которых будет фильтроваться заменяясь на изображение слайда презентации (полученные диапазоны значений фильтра можно сохранить в базу данных для последующего быстрого восстановления).
  • Далее из доступных созданных на сервере лекций пользоваель выбирает нужную, и жмёт на кнопку "начать трансляцию"
  • По таймеру функция вызывает методы web-сервиса и передаёт данные на сервер.

В работе приложения в режиме трансляции лекций хотелось бы отметить несколько моментов.

Обработка видеопотока происходит покадрово. Параметром передаётся частота выборки кадров. От этого зависит скорость работы. На скорость работы так же влияет количество диапазонов, по которым происходит фильтрация, и разрешение экрана. Все эти параметры можно изменить во время работы приложения, подобрав оптимальные значения. Так как большинство современных компьютеров построены на базе многоядерных процесоров, обработка (фильтрация) непосредственно кадров происходит в параллельном потоке, нагружая второе ядро процессора, что значительно ускоряет работу приложения.

Выводы

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

В результате анализа и построения архитектуры, мы столкнулись с многочисленными проблемами, которые были удачно решены, а именно:

  • спроектирована общая архитектура, обеспечивающая абстракцию модулей и удобный и понятный интерфейс межмодульного взаимодействие
  • обеспечена лёгкая расширяемость системы
  • обеспечено удобное и лёгкое конфигурирование как отдельных модулей, так и всей системы
  • разработан универсальный интерфейс для взаимодействия с системой "из вне"
  • реализован эффективный алгоритм Хромакея
  • реальный мир дополнен виртуальными элементами для удобного взаимодействия с системой
  • минимизирован объём аудио- и видеоданных

Заключение

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

В данной работе были достигнуты следующие результаты:

  • Спроектирована архитектура распределённого web-приложения, способная решать поставленные задачи обработки и передачи видео- и аудио данных
  • Детально спроектированы и разработаны необходимые модули, участвующие в работе разработанной распределённой системы
  • Определены основные зависимости влияния различных факторов на скорость и надёжность взаимодействия основных модулей
  • Проведен анализ алгоритмов работы клиентского модуля, ответственного за основную обработку видео- и аудиоданных
  • Разработан удобный пользовательский интерфейс для тех модулей, где он необходим

Основные достоинства разработанного распределённого web-приложения:

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

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

Проблема образовательного процесса сегодня стоит достаточно остро. С применением IT этот процесс можно значительно упростить, сделать более эффективным и быстрым. Разработанное приложение позволяет увеличить эффективность образования, сделать его вседоступным (благодаря работе в WWW и отсутствию привязанности к конкретному физическому местонахождению лектора и студентов).

Так же на основе спроектированной и разработанной базисной архитектуре можно реализовать многочисленные приложения для решения многочисленных задач в области обработки и передачи аудио- и видеоданных.

Список литературы

    1. Microsoft ASP.NET 2.0. Углубленное изучение, Питер, Русская Редакция, 2007 г
    2. Microsoft ADO.NET 2.0 для профессионалов, Сахил Малик, Вильямс, 2006
    3. SQL Server 2008: ускоренный курс для профессионалов, Роберт Уолтерс, Вильмс, 2008
    4. Проектирование реляционных баз данных, Джен Л. Харрингтон, Лорри, 2006
    5. Разработка Web-приложений в среде ASP.NET 2.0. Задача - проект - решение, Марков Белиньясо, Вильямс, 2007
    6. Применение DDD и шаблонов проектирования. Проблемно-ориентированное проектирование приложений с примерами на C# и.NET, Джимми Нильссон, 2008
    7. Microsoft ASP.NET 3.5 с примерами на C# 2008 для профессионалов, Мак-Дональд, 2008
    8. WCF 4: Windows Communication Foundation и.NET 4 для профессионалов, Пабло Сибраро, Курт Клайс, Вильямс, 2011
    9. Silverlight 4: Создание насыщенных Web-приложений, Байдачный Сергей Сергеевич, Солон-пресс, 2010

Приложение А

Фрагменты кода программы:

Листинг 1:

namespace BLL

{

public abstract>

{

protected const int MAXROWS = int.MaxValue;

protected static Cache Cache

{

get { return HttpContext.Current.Cache; }

}

protected static IPrincipal CurrentUser

{

get

{

return HttpContext.Current.User;

}

}

protected static string CurrentUserName

{

get

{

string userName = "";

if (HttpContext.Current.User.Identity.IsAuthenticated)

userName = HttpContext.Current.User.Identity.Name;

return userName;

}

}

protected static string CurrentUserIP

{

get

{

return HttpContext.Current.Request.UserHostAddress;

}

}

protected static int GetPageIndex(int startRowIndex, int maximumRows)

{

if (maximumRows < -0)

return 0;

else

return (int)Math.Floor((double)startRowIndex / (double)maximumRows);

}

protected static string EncodeText(string content)

{

content = HttpUtility.HtmlEncode(content);

content = content.Replace(" ", "&nbsp; &nbsp;").Replace("\n", "<br>"); return content;

}

protected static string ConvertNullToEmptyString(string input)

{

return (input == null ? "" : input);

}

protected static void PurgeCacheltems (string prefix)

{

prefix = prefix.ToLower ();

List<string> itemsToRemove - new List<string>();

IDictionaryEnumerator enumerator = BizQbject.Caphe.GetEnumerator ();

while (enumerator.MoveNext())

{

if (enumerator.Key.ToStringO,ToLower().StartsWith(prefix))

itemsToRemove.Add(enumerator.Key.ToString());

}

foreach (string itemToRemove in itemsToRemove)

BizObj ect.Cache.Remove(itemToRemove);

}

}

}

Листинг 2:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<system.serviceModel>

<services>

<service name="EssentialWCF.StockService"

behaviorConfiguration="myServiceBehavior">

<host>

<baseAddresses>

<add baseAddress="http://localhost:8080/EssentialWCF"/>

</baseAddresses>

</host>

<endpoint address=""

binding="basicHttpBinding"

contract="OriginalLectionBrowser.IAdministratorService" />

<endpoint address="mex"

binding="mexHttpBinding"

contract="IMetadataExchange" />

</service>

</services>

<behaviors>

<serviceBehaviors>

<behavior name="myServiceBehavior">

<serviceMetadata htthGetEnabled="True"/>

</behavior>

</serviceBehaviors>

</behaviors>

</system.serviceModel>

</configuration>

using System;

using System.ServiceModel;

using diplomModel;

namespace Original

{

[ServiceContract]

public interface IAdministratorService

{

[OperationContract]

bool VerifyUser(VrunUser.Credentials userCredentials);

[OperationContract]

bool VerifyUserByEmail(string verificationCode, int UserId);

[OperationContract]

int CreateLection(Lection _lection);

[OperationContract]

bool UpdateLection(Lection _lection);

......

}

public>

{

bool VerifyUser(VrunUser.Credentials userCredentials)

{

...

}

...

bool UpdateLection(Lection _lection)

{

...

}

}

}

Приложение Б

Интернет ресурсы в предметной области исследования

http://ru.wikipedia.org/wiki/Дополненная_реальность

Доступно и понятно даётся определение понятию "дополненная реальность", дано много кратких описаний практических применений технологии с ссылками на первоисточники

http://msdn.microsoft.com/en-us/netframework/dd939788

Ресурс, посвящённый технологиям Microsoft.NET. Имеется подробный обзор библиотек, настроек конфигурации

http://www.designpatternsfor.net/default.aspx?pid=143

Описание и анализ различных дизайн-паттернов распределённых систем.

http://www.microsoft.com/biztalk/en/us/soa.aspx

Подборка материалов по SOAP и web -сервисам

http://msdn.microsoft.com/en-us/netframework/dd939788

Ресурс, посвящённый технологиям Microsoft.NET. Имеется подробный обзор библиотек, настроек конфигурации

http://www.datahousecorp.com/eng/technology/distributed.htm

Краткий и конкретный разбор вариантов построения распределённой архитектуры

http://www.freepatentsonline.com/y2010/0002142.html

Математические методы оптимизации алгоритмов обработки видео

http://books.google.by/books?id=X7syQInA1aoC&pg=PA55&lpg=PA55&dq=video+processing+algorithm&source=bl&ots=4Lw-UegjDu&sig=uhjWxOdKrdpewDYMtXPkjOXuBoc&hl=ru&sa=X&ei=4lXqTqelJ8ffsgay0a21Bw&ved=0CEIQ6AEwBDhQ#v=onepage&q=video%20processing%20algorithm&f=false

Google-документ с подробным описанием алгоритмов обработки видео в режиме реального времени

http://www.scribd.com/doc/39210653/Digital-Media-Processing-DSP-Algorithms-Using-C

Подробно расписаны принципы работы DSP, а так же даны многочисленные описания интерфейсов взаимодействия пограммного кода и DSP

http://www.rae.ru/snt/?section=content&op=show_article&article_id=4400

Оптимизация хранения и передачи данных в распределенной среде

http://technet.microsoft.com/ru-ru/library/cc732088(WS.10).aspx

Много полезной информации, посвящённой оптимизация производительности сиcтем, построенных на базе технологий Microsoft

Приложение В

Действующий личный сайт в WWW (гиперссылка)и Print SCreen главной страницы

http://vrun.by/IT

ПРИЛОЖЕНИЕ Г

Граф(круг) научных интересов

Магистранта Кузюбердина Д.В.

факультет Радиофизики и компьютерных технологий

Специальность: аппаратное и программно-техническое обеспечение информационной безопасности

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

Основная специальность

05.13.19 методы и системы защиты информации, информационная безопасность, физ.-мат.
  1. Теория и методология математического моделирования экономических процессов и систем.
  2. Разработка новых и повышение эффективности существующих аппаратных, программных и аппаратно-программных средств криптографической защиты информации.

сопутствующие

01.01.02 Дифференциальные уравнения
  1. Теория и методы параллельных вычислений.
01.01.05 теория вероятностей и математическая статистика
  1. Случайные процессы и поля.
  2. Стохастический анализ и стохастические дифференциальные уравнения.
  3. Случайные процессы специального вида, включая процессы массового обслуживания.
  4. Статистические выводы и анализ данных.

ПРИЛОЖЕНИЕ Д

Тестовые вопросы по ОИТ

<question type="close" id="1">

<text>1. Элемент HTML, позволяющий передать файл на сервер</text>

<answers type="request">

<answer id="313759" right="0"> head </answer>

<answer id="313760" right="0"> meta </answer>

<answer id="313761" right="0"> body </answer>

<answer id="313762" right="1"> input </answer>

</answers>

</question>

<question type="close" id="2">

<text>2. Программные платформы технологии и инструменты, позволяющие создать web-сайт с динамическими страницами</text>

<answers type="request">

<answer id="313759" right="1"> Ruby on Rails </answer>

<answer id="313760" right="1"> ASP.NET </answer>

<answer id="313761" right="0"> Dalvik Virtual Machine </answer>

<answer id="313762" right="0"> iPhone SDK </answer>

</answers>

</question>

Приложение E

Презентация магистерской (кандидатской) диссертации

http://vrun.by/IT/diplom.ppt



 



<
 
2013 www.disus.ru - «Бесплатная научная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.