Отказоустойчивость и надежность
Nbsp;
ПО «Вопросики»
Техническое задание
Содержание
Оглавление
1 Введение. 4
1.1 Актуальность задачи. 4
1.2 Цель проекта. 4
2 Требования к Системе. 4
2.1 Структура Системы.. 4
Подсистема регистрации. 5
Подсистема учета рейтинга. 5
Подсистема игрового процесса. 5
БД.. 6
Информационно-справочная система. 6
3 Общие требования. 6
3.1 Регистрация пользователей. 6
3.2 Хранение данных. 7
3.3 Интерфейс сервиса. 7
3.4 Производительность. 7
3.5 Отказоустойчивость и надежность. 8
3.6 Безопасность. 8
3.7 Участники. 9
3.8 Обзор Use-Case модели. 15
Определения и сокращения
Заказчик | VMTeam |
Исполнитель | Программист приложений vkontakte.ru |
БД | База данных |
СУБД | Система управления базами данных |
Система | Разрабатываемое в рамках данной работы приложение vkonakte.ru |
Введение
Актуальность задачи
Требуется создать приложение на платформе vk.com, реализующее функции опросника с игровой системой.
Цель проекта
Целью настоящего проекта является создание нового вида популярных ныне сервисов интересных вопросов-ответов, отличающегося русскими категориями вопросов (хэш-тегами), приятным дизайном профиля и балльной системой для расширенных возможностей.
Требования к Системе
Структура Системы
Система должна включать в себя следующие компоненты (рисунок 1):
● подсистема регистрации;
|
|
● подсистема рассылки сообщений в сети;
● подсистема просмотра вопросов и ответа на них;
● подсистема просмотра различных лент;
● БД.
Рисунок 1. Структура «Системы»
Информация Системы должна храниться в структурированном виде (в базе данных).
Подсистема регистрации
Подсистема регистрации должна обеспечивать регистрацию новых пользователей в системе, а также авторизацию существующих пользователей. Система обеспечивает дополнительную настройку аккаунта. А так же обеспечение адресов каждой страницы профиля — vk.com/voprosiki/124212 (установим правило расшифровки через mod_rewrite: vk.com/voprosiki/index.php?user=124212).
Подсистема рассылки сообщений в сети
Подсистема рассылки сообщений в социальной сети обеспечивает сообщение о количестве полученных вопросах в уведомлениях и публикацию вопроса с ссылкой на приложение на стене друзей.
Подсистема просмотра различных лент
Подсистема просмотра лент по разным условиям: заданные тебе вопросы, заданные друзьям, заданные друзьями, самые популярные, популярные по категориям.
БД
Требования к БД описаны в п.3.2
Общие требования
Регистрация пользователей
|
|
Каждый пользователь в БД должен идентифицироваться по уникальному коду (UID). UID должен сопоставляться следующим полям:
● имя (из данных профиля vkontakte.ru регистрируемого пользователя) с возможностью добавить ник (по умолчанию имя);
● год рождения;
● город, если его нет (необязательно);
Хранение данных
Система должна хранить необходимую информацию в централизованной базе данных, при необходимости накапливать.
Структура БД должна предусматривать последующую масштабируемость и расширяемость Системы, а также должна быть нормализована для исключения лишних полей. БД должна быть спроектирована с учетом:
● обработки большого количества записей. С этой целью, в таблицах Системы должны применяться современные технологии, такие как индексирование данных, применение индексных представлений (Indexed views), разделяемых таблиц (Partitioned tables) и т.д.
● добавления новых сущностей, функций и модернизации функционала.
● в ней будут храниться данные о пользователях, их вопросы и ответы.
Интерфейс сервиса
Для реализации пользовательского интерфейса должна применяться технология web 2.0 – c подгрузкой из базы и другими приятными фенечками Ajax.
В случае если форма Системы должна выводить большое количество данных (например, длинный список, длинная таблица, дерево с множеством элементов), необходимо, чтобы данные подгружались частями по мере необходимости.
|
|
В Системе должен быть предусмотрен обработчик исключительных ситуаций, обеспечивающий при возникновении ошибок в Системе, выводить пользователю информативные сообщения об ошибке на русском языке. Но при этом все системные сообщения сохранять только в лог, без выдачи пользователю адресов модулей и классификаций ошибок. В случае невозможности выполнять основные свои функции приложение должно сообщать о «дальнейшей работе по улучшению сервиса».
Производительность
К Системе предъявляются следующие требования по производительности:
● отклик пользовательского интерфейса Системы к запросу пользователя на отображение формы не должен превышать 5 секунд;
Отказоустойчивость и надежность
Система должна обеспечивать следующие показатели надежности:
● бесперебойное функционирование 7 дней в неделю (круглосуточно без праздничных дней);
● время обнаружения неисправности не должно превышать 2 часов. Система должна позволять обнаруживать неисправность удаленно путем анализа журнала состояния Системы, об ошибках пользователей к данным путём отсылки сообщения об этом на email;
|
|
● Система должна выдерживать нагрузку для 2 млн. зарегистрированных пользователей (требование к БД).
● время восстановления не более 4 часов;
● количество отказов в год – не более 12.
Безопасность
Компоненты безопасности Системы должны осуществлять аутентификацию и авторизацию пользователей.
Аутентификация пользователя должна производиться средствами ресурса vkontakte.ru. Данные об учетных записях зарегистрированных пользователей должны храниться в базе данных разрабатываемой Системы.
Авторизация пользователя должна осуществляться по ролевому принципу. Система должна позволять назначать одному пользователю только одну роль. В Системе должны быть предусмотрены следующие виды ролей:
● Обычный участник;
● VIP-участник.
Участники
При регистрации участника данные о пользователе берутся из его анкеты на ресурсе vk.com (Одноклассники), указанные в пункте 3.1 про регистрацию пользователей.
В Системе доступны следующие участники:
● Обычный участник. Стандартный участник проекта пока отличающийся от VIP-участника только тем, что должен платить баллы за некоторые действия:
1.Просмотр закладки Новости:
● Блок со всеми изменениями - количеством полученных вопросов, полученных плюсов/минусов – количество и от кого, количество вопросов, на которые ответили (с ссылкой на соответствующую ленту);
● Полученные вопросы;
● Самые популярные на сегодня люди;
● Самые популярные категории с вопросами в них;
● Если в каком-то блоке отсутствуют данные, то они скрыты.
2.Просмотр профиля (свой в соответствующей закладке или другого):
● Обычный просмотр от последних к первым;
● Просмотр по самым популярным;
● Просмотр по категориям с ранжированием от самых популярных к менее;
● Задание вопроса в чужом профиле;
● Установка своего вопроса в анонимный;
● Примерный внешний вид:
● Слева фотография пользователя;
● Справа различные данные о нём, поле о себе;
● Под полем о себе его любимые вопросы;
● Если вопрос понравился можно ответить на него;
● Если это личный профиль, то за баллы добавить ещё один;
● Ниже идут кнопка настройки (если профиль личный) и различного разжирования списка вопросов-ответов.
● Вопросы и ответы выполнены в виде диалоговых пузырей (в google: speech bubbles css);
● Справа от вопроса небольшая аватарка, имя и время-дата – уголок пузыря в сторону аватарки;
● Снизу слева хэш-теги, справа вопроса количество баллов (общая сумма плюсов и минусов), которые этот вопрос получил (- 3 -1 64 +1 +3) слева от минусов несколько юзерпиков, кто их поставил, у плюсов тоже самое;
● Ответ выполнен в форме пузыря с уголком, который глядит наверх – на вопрос. В нём располагается внизу слева дата, справа количество баллов с той же системой;
● На каждого человека, кроме анонимного можно кликнуть, под анонимом есть кнопка с иконкой вопроса и надписью «задать», это можно сделать за баллы. Такой вопрос отображается в ленте и можно увидеть ответ на него, но зайти к человеку в профиль нельзя;
● При нажатии на кнопку настроек поле с профилем отъезжает вниз и пользователь может выбрать за баллы антианонимность, тему профиля (при выборе другого профиль изменяется автоматически, а справа появляется кнопка принять); поля О себе, никнейм становятся текстовыми, как и любимые вопросы, к которым ниже появляется кнопка добавить;
● На правом краю находится лента друзей и топов, которые меняют друг друга каждые 20 секунд, поменять можно кликом мышки на соответствующую надпись;
● Задавать вопрос можно в соответствующем поле между вопросами в профиле и разделом «О пользователе»;
● При каждой платной опции при недостаточных баллах появляется соответствующее окошко, а при оплате, об этом окошко появляется внизу окна документа, чтобы не мешать, с надписью об оплате и кнопкой отмены, через 5 секунд исчезает.
3.Просмотр лент:
● Ниже меню появляется отдельные закладки с различными разделами;
● Первый раздел – это заданные пользователю вопросы, нажимая на кнопку ответить под диалоговым пузырём появляется соответствующий пузырь ответа, который является текстовым полем;
● Второй раздел – это заданные пользователем вопросы, на которые был получен ответ;
● Третий радел – это заданные друзьям вопросы;
● Четвёртый раздел – платный, это вопросы, которые задали сами друзья, в пузыре справа аватарка с кликабельным именем-ником для перехода в профиль;
● Пятый раздел – категории, в нём можно посмотреть заданные людям вопросы по категориям и рейтингам.
4.Задание вопроса:
● Заполняется текстовое поле вопроса с ограничением в 300 символов;
● Кнопка «Отослать» неактивна, пока не будет введён хотя бы один хэш-тег, с ограничением в три хэш-тега.
Дата добавления: 2018-05-13; просмотров: 137; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!