Научная статья на тему 'Разработка веб-сервиса системы облачного хранения видеоданных'

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

CC BY
729
95
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВИДЕОАРХИВ / СЕРВИС / ИНФОРМАЦИЯ / ПРИЛОЖЕНИЕ / РАЗРАБОТКА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гугаев М. В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка веб-сервиса системы облачного хранения видеоданных»

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

Гугаев М.В.

Департамент компьютерной инженерии МИЭМНИУВШЭ

[email protected]. сот

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

Ключевые слова: видеоархив, сервис, информация, приложение, разработка

1 Введение

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

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

Важным компонентом является работа с оффлайн хранилищами и хранение превью документов в базе данных. Предполагается использование УоиТиЬе и бэкап сервис ОрепОпуе. Именно связь 3-х составляющих: двух сервисов и программной начинки обеспечивает уникальность данной работы. В процессе разработки были рассмотрены похожие ресурсы, что позволило позаимствовать ряд удачных идей и внести правки в уже написанные компоненты. Российский й-рынок не очень развит по сравнению с остальными развитыми странами, исходя из этого было принято решение, реализовать несколько языков с возможностью динамичного переключения между ними.

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

берёт лучшее у двух гигантов it-рынка (Google и Microsoft), объединяет и добавляет дополнительный функционал.

Одной из ключевых элементов при начале разработки является деление команды по ролям и описания хода реализации. Автор работает над веб-сайтом и серверной составляющей.

Носители и облачные хранилища информации

You

QB

ш

Бэкап

Сервер

Веб-сайт

t

Компьютер Рис. 1. Схема работы проекта

Приложение

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

2 Конкуренты и перспективы

Рассмотрим несколько вариантов сервисов с похожим функционалом.

Основные [4]:

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

• Yandex Disk Поддерживает хранение, загрузку и просмотр информации, но напрочь лишён социальных функций. Бесплатно предоставляет больше дискового пространства, чем Google Drive.

Посредственные:

• MediaValet Имеет взаимосвязь с Windows Azure cloud platform. Подходит для пользователей OS X и Windows.

• YouTube Позволяет загружать и показывать видео (используеться в данной работе). Имеет тесное взаимодействие с социальными сетями.

• Asset Bank Популярен среди крупных компаний, т.к. Unilever, Panasonic и Deloitte. Считается наиболее надёжным продуктом на рынке.

• FileCamp Аналогичен предыдущим. Отсутствует возможность взаимодействия с социальными сетями.

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

3 Исследование и разработка

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

Для написания ядра был выбран Django-фреймворк [1] версии 1.7, написанный на языке python 2.7 [3]. При выборе фреймворка для бекенд-разработки важным параметром являлся функционал и язык, на котором он написан, к тому же предыдущая версия проекта уже базировалась на этой технологии.

При создании web-страницы помимо стандартных методов (т.к. чистого использования: язык гипертекстовой разметки(Мт1), каскадных таблиц cmneft(css) и встраиваемого языка JavaScript) можно использовать ряд уже написанных фреймворков. Рассмотрим несколько наиболее популярных:

• Bootstrap

• Skeleton

• Foundation

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

Таблица 1. Общая информация [5]

Bootstrap Foundation Skeleton

Популярность Много пользователей Немного пользователей Немного пользователей

Сетки Резиновые и фиксированные Резиновые, хорошо подстраиваются Фиксированные

UI-элементы Большое количество виджетов, хорошо подходит для быстрого прототипирован ия Большое количество виджетов, хорошо подходит для быстрого прототипирован ия, больше разнообразный как Bootstrap Ограниченное количество

Создание Разработан в Twitter для внутреннего использования Разработан в ZURB для использования в проектах клиентов Делался специально максимально минималистичны м

Разработчик Twitter ZURB Dave Gamashe

Поддержка браузерами Chrome (Mac, Windows, iOS, and Android) Safari (Mac and iOS only) Firefox (Mac, Windows) Opera (Mac and Windows) IE8+ Desktop: Chrome, Firefox, Safari, IE9+ Mobile: iOS (iPhone), iOS (iPad), Android 2, 4 (Phone), Android 2, 4 (Tablet), Windows Phone 7+, Surface Desktop: Chrome, Firefox, Safari, IE7+ Mobile: iPhone, Droid, iPad

Лицензия MIT License MIT License MIT License

Таблица 2. Сравнение компонентов [5

Bootstrap 3 Foundation v5 Skeleton

Предупреждения ЕСТЬ ЕСТЬ НЕТ

Байджи ЕСТЬ ECTb(label.roun d) НЕТ

Breadcrumbs ЕСТЬ ЕСТЬ НЕТ

Кнопки ЕСТЬ ЕСТЬ ЕСТЬ

Carousel ЕСТЬ ECTb(Orbit) НЕТ

Выезжающие элементы ЕСТЬ(Рапе1) ECTb(Sections) НЕТ

Выпадающие элементы ЕСТЬ ЕСТЬ НЕТ

Формы ЕСТЬ ЕСТЬ ЕСТЬ

Формы подтверждения НЕТ ECTb(Abide) НЕТ

Сетки ЕСТЬ ЕСТЬ ЕСТЬ

Иконки ЕСТЬ (Glyphicons) ЕСТЬ (with download) НЕТ

Лейблы ЕСТЬ ЕСТЬ НЕТ

Списки ЕСТЬ ЕСТЬ НЕТ

Списки (горизонтальные) ЕСТЬ ЕСТЬ НЕТ

Медиа объекты ЕСТЬ (Media Object) НЕТ НЕТ

Модальные окна ЕСТЬ ЕСТЬ (Reveal) НЕТ

Навигация ЕСТЬ ЕСТЬ НЕТ

Прибитая навигация ЕСТЬ( Affix) ECTb(Magellan) НЕТ

Pagination ЕСТЬ ЕСТЬ НЕТ

Панели ЕСТЬ ЕСТЬ НЕТ

Ценовые таблицы НЕТ ЕСТЬ НЕТ

Стили вывода ЕСТЬ ЕСТЬ НЕТ

Полосы загрузки ЕСТЬ ЕСТЬ НЕТ

Таблицы ЕСТЬ ЕСТЬ НЕТ

Вкладки ЕСТЬ ЕСТЬ НЕТ

Миниатюры ЕСТЬ ЕСТЬ НЕТ

Всплывающие подсказки ЕСТЬ ПРИСУТСТВУ ЕТ НЕТ

Типография ЕСТЬ ЕСТЬ ЕСТЬ

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

используются плагины. Bootstrap обгоняет Foundation внешней составляющей и наличием поддержки Less.

Был выбран Bootstrap т.к. по внешней составляющей и простоте он более привлекателен чем Foundation,

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

4 Структура

Система прав и социальная часть тесно связаны с функциями

•в

Информация

^ В ^

Носители и обл. хранилища

Рис. 2. Схема обмена информации и доступа к ней

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

5 Дальнейшие планы и ход разработки

Ход разработки был поделён на несколько этапов: 1) Разработка модели авторизации и личного кабинета

Ц]'а^о предоставляет полезный для решения этой задачи компонент Ц)а^о-5ев5ЮШ в связке с Ц)'а^о^иагсЦап, позволяющий создавать для каждого вошедшего в систему пользователя специальную

хранения и взаимодействия с информацией.

Группа Права

L А

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Пользователь

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

2) Разработка модели прав и гостевого доступа

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

3) Создание интерфейса

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

4) Создание набора интерфейсов для получения метаданных с локального приложения

Данные интерфейсы должны интегрироваться в Django и тесно взаимодействовать с другими элементами.

5) Реализация системы просмотра разных типов информации

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

На момент написания статьи реализованы 1-4 и частично 5 пункты.

Несколько скриншотов:

Мой архив Мои группы Мои сервисы

1 Изменение данных

Информация

Изменить иконку профиля

Логин: super

Имя: super

Фамилия: super

E-mail: leidenit@gmall com

Зарегистрирован: 05.02.15

Последнее вход: 05.02.15 в 22:52

Статистика пользователя

Добавлено видеозаписей: Создано событий: Оставлено комментариев:

Рис. 3. Скриншот сайта №1

i...SOVA Видеозаписи События Demo

Мои настройки

Показа^

Мои группы Тип

Мои сервисы —

Показав

Добавить носитель

Статус:

Полностью заполнен Тип: Диск

Назад 1 Вперёд

Рис. 4. Скриншот сайта №2

6 Заключение

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

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

7 Список источников

[1] Причины выбора Django для разработки сайтов [Электронный ресурс] // Хабрахабр [Офиц. сайт]. 13.11.2009 г. URL: http;//habrahabr.ru/post/75131/ (дата обращения 20.12.2014).

[2] Ещё 10 батареек для джанго [Электронный ресурс] // Хабрахабр [Офиц. сайт]. 13.01.2012 г. URL: http://habrahabr.ru/post/l36168/ (дата обращения 20.12.2014).

[3] Преимущества Python [Электронный ресурс] // Clinuxworld [Офиц. сайт]. 2010 г. URL: http://www.clinuxworld.com/admin/334-benefíts (дата обращения 20.12.2014).

[4] Тор Digital Asset Management Software Productsio [Электронный ресурс] // Capterra [Офиц. сайт]. 2014 г. URL: http://www.capterra.com/digital-asset-management-software/ (дата обращения 20.12.2014).

[5] Comparing Responsive CSS Frameworks - Bootstrap, Foundation, and Skeleton [Электронный ресурс] // Vermilion [Офиц. сайт]. 2012 г. URL: http://vemiiHon.com/news/articles/2012/10/22/comparing-responsive-css-frameworks-bootstrap-foundation-and-skeleton (дата обращения 20.12.2014).

Сервис для online-трансляции презентаций. Front-end разработка

Кудрявцева С., Плетнев М.

Московский институт электроники и математики НИУВШЭ s. kudryavtseva@hotmail. com, mihail160611@gmail. com

Аннотация. В статье описывается ход разработки сервиса для трансляции и просмотра презентаций в режиме реального времени под рабочим названием "Slideshot". Данное приложение делает возможным дублирование и сохранение визуального сопровождения, которое является неотъемлемой частью практически каждого устного доклада. Исключая распространенные факторы, способствующие плохому усвоению визуальной информации, "Slideshot" дает возможность пользователям просматривать с экрана своего мобильного устройства все, что происходит на компьютере лектора. Это возможно как в ои/ше-режиме, так и в записи их архива презентаций. Приложение предназначено для поддержки конференций или иных мероприятий, сопровождаемых презентацией. Оно будет полезно для институтов и университетов, а также для различных выставочных площадок, проводящих семинары и конференции.

Ключевые слова: трансляция, презентация, конференция.

1 Вступление

Цель данного сервиса - помочь людям в организации конференций и иных устных выступлений. Эта цель включает первостепенные задачи: улучшить условия проведения самой конференции/выступления, а также дополнить видеотрансляцию или видеозапись выступления качественной записью визуального сопровождения.

Можно привести множество причин и ситуаций, по которым человек не получит информацию, отображенную на слайде презентации или фотографии даже находясь в зале, где идет выступление. Среди них такие как неудобное расположение экрана, плохое зрение человека или низкое качество видеопередачи при просмотре через Интернет, некачественная работа режиссера, производящего съемку. В подобных ситуациях и будет полезен сервис Slideshot. Он подразумевает веб-сайт и клиентское приложение для рабочего стола. Актуальность проекта заключается в том, что любой человек, у которого есть доступ, может следить за ходом доклада/лекции на экране своего компьютера или любого другого устройства, просматривать уже показанные слайды, ставить презентацию на паузу. Слайды подгружаются на сайт сразу после перелистывания их на экране лектора, что и является основой трансляции в режиме реального времени.

i Надоели баннеры? Вы всегда можете отключить рекламу.