Отказоустойчивость и надежность

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; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!