Вы находитесь на странице: 1из 9

3 Практическая реализация информационной системы

Практическая реализация информационной системы организации и


проведения шахматного турнира подразумевает разработку механизма
распределения турнирных таблиц, механизмов автоматизации действий
организаторов турнира, а также представление их в удобном виде.
Организация турнира вручную представляет собой трудоёмкий и
длительный процесс, требующий большой концентрации внимания. Поэтому
вопрос автоматизации процесса проведения турнира по шахматам является
достаточно актуальным в данном случае.
Автоматизация процесса проведения турнира – основная задача, стоявшая
при разработке проекта новой системы. Автоматическое проведение турнира
становится возможным благодаря добавлению новых функций компоненту
PCChess. В качестве средства реализации таких функций выступил
программный код, реализующий разработанные алгоритмы системы
организации турнира, отвечающий всем необходимым требованиям.
3.1 Описание функционала информационной системы
При разработке сайта для проведения дистанционного шахматного
турнира особое внимание было уделено созданию удобного интерфейса,
обеспечивающего участникам удобную и интуитивно понятную работу с
системой.
На разработанном сайте располагается вся информация о проведении
дистанционного шахматного турнира, а именно: общие правила турнира,
инструкции для начинающих, правила проведения личного и командного
первенств, информация об организаторах и контакты.
Главная страница сайта шахматного турнира имеет вид в соответствии с
рисунком 3.1.

1– шахматный информатор; 2 – кто онлайн; 3 – последние новости;


4 – дата начала турнира; 5 – голосование; 6 – поиск по сайту;
7 – лента новостей; 8 – авторизация; 9 – восстановление логина или пароля;
10 – регистрация
Рисунок 3.1 – Модули, расположенные на главной странице сайта
На главной странице сайта расположено дополнительное меню слева и
верхнее меню, размещены ссылки на три последние новости и сообщение об
ожидающемся или текущем турнире.
Также на главной странице размещены следующие модули (рисунок 3.1):
• шахматный информатор;
• кто онлайн;
• последние новости;
• дата начала турнира;
• голосование;
• поиск по сайту;
• лента новостей;
• авторизация;
• восстановление логина или пароля;
• регистрация.
Любой сайт является источником информации. Независимо от тематики,
актуальности, востребованности и практической ценности этой информации,
он обычно представлен в определенной логической последовательности для
достижения максимального удобства ее восприятия посетителями сайта в
Интернете. В структурном плане такая последовательность достигается за
счет организации системы навигации по сайту.
Наличие навигационной системы позволяет посетителю визуально
определять ценность представленной информации. Каждый заголовок
(текстовая ссылка) в сжатой форме характеризует конкретный раздел или
группу подразделов сайта, посвященных определенному вопросу или теме.
Меню линейного типа – самый простой в плане реализации вариант системы
информирования пользователя о том, что представлено внутри раздела сайта.
Основное меню сайта было сформировано и размещено в левой колонке с
группировкой по назначению для удобного восприятия пользователями.
Основное меню сайта имеет вид в соответствии с рисунком 3.2.

Рисунок 3.2 – Меню, классифицирующее основные разделы сайта


Разработанная система навигации соответствует ряду критериев удобства
пользования навигацией, таких как: расположение, идентифицируемость,
иерархия и наименования, доступность.
Пункт «Administration» меню «About tournament» становится доступен в
режиме суперадминистратора. Для обычных зарегистрированных
пользователей пункт «Administration» не доступен. В этом разделе
сосредоточены все механизмы для администрирования турнира.
Рассмотрим ниже каждую часть структуры информационной системы в
отдельности.
3.1.1 Интерфейс участников турнира
В режиме участника турнира до начала турнира доступна вкладка «Your
game», после его начала при переходе в «Go to the tournament», доступны
активные игры, сгруппированные по значимости и отсортированные по дате
начала.
Окно «Your game» в режиме участника турнира представлено на рисунке
3.3. На странице «Your game» показана вся необходимая информация по
турниру для авторизованного участника. После имени игрока выведена
информация об участии в личном первенстве (Individual championship), далее
– в командном первенстве (Command championship).

Рисунок 3.3 – Окно «Your game» в режиме участника турнира


Окно активной игры в режиме участника турнира представлено на
рисунке 3.4.

Рисунок 3.4 – Окно активной игры в режиме участника турнира


В окне активной игры в режиме участника турнира на графической доске
можно делать ходы в режиме реального времени.
3.1.1.1 Регистрация
Для участия в дистанционном шахматном турнире, необходимо
зарегистрироваться в системе до даты начала турнира и успеть подать заявку
на участие в личном первенстве и(или) проконтролировать состав и
количество участников команд в командном первенстве. Для этого в системе
размещен специальный модуль регистрации участников, доступный при
переходе по ссылке «create an account» на главной странице сайта,
представленный на рисунке 3.5.
Все поля отмеченные «*», обязательны для заполнения. После заполнения
всех полей необходимо нажать на кнопку «Register». Если какое-либо поле
было заполнено неверно или пропущено, эта строчка будет выделена
красным цветом, и кнопка «Register» будет временно недоступна. Далее, если
всё заполнено верно, на указанный Е-mail будет выслано письмо с текстовой
ссылкой для активации в системе.

Рисунок 3.5 – Модуль регистрации


При регистрации пользователю нужно указывать имя, фамилию, учебное
заведение, членский номер в IEEE, адрес электронной почты и пароль.
Было необходимо добавить два поля на форму регистрации пользователя:
учебное заведение, членский номер в IEEE. Стандартными средствами
реализовать это нельзя. Решение данной проблемы было достигнуто
редактированием формы регистрации и программного кода, отвечающего за
работу компонента регистрации.
Поле «institution» было решено сделать выпадающим, со списком
учебных заведений игроков, регистрировавшихся ранее, чтобы исключить
разные написания одного и того же учебного заведения и упростить
заполнение этого поля. Если в выпадающем списке отсутствует нужное
учебное заведение, то можно ввести его вручную, при регистрации
следующего игрока оно будет доступно в списке.
После прохождения регистрации авторизованный пользователь может
отредактировать некоторую личную информацию о себе в разделе «Your
details» (рисунок 3.6).

Рисунок 3.6 – Раздел «Your details»


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

Рисунок 3.7 – Модуль авторизации


Вход в систему было решено сделать по электронной почте. Установлено,
что «логинизация» на всех популярных сайтах уже давно перестала
использовать логин как уникальное имя для входа. Намного проще
использовать в качестве логина Email-адрес пользователя, который
пользователь легче запомнит.
После успешной авторизации в модуле авторизации появятся имя и
фамилия пользователя, а также кнопка выхода с сайта. Модуль авторизации
после прохождения авторизации представлен на рисунке 3.8.

Рисунок 3.8 – Модуль авторизации после успешной авторизации


На случай утери логина или пароля в модуле авторизации есть ссылки для
восстановления деталей авторизации.
3.1.1.3 Участие в личном первенстве
Информация об участии в личном первенстве для каждого игрока собрана
на странице «Your game» в разделе «Individual championship». Здесь
приведена таблица с игроками, уже подавшими заявку на участие в личном
и(или) в командном первенстве.
До подачи заявки на участие ниже таблицы доступна кнопка «Participate»
(«Принять участие») (рисунок 3.9).
Для участия в личном первенстве необходимо нажать кнопку
«Participate», после чего информация о подавшем заявку пользователе будет
отображаться в таблице «Participants of this tournament».

Рисунок 3.9 – Раздел «Individual championship» на странице «Your game» до


подачи заявки на участие
После подачи заявки на участие ниже таблицы доступна кнопка «Not
participate» («Отказаться от участия») (рисунок 3.10).

Рисунок 3.10 – Раздел «Individual championship» на странице «Your game»


после подачи заявки на участие
В таблице «Participants of this tournament», помимо имени и фамилии
игрока, отображается название его учебного заведения, адрес электронной
почты, а также флаг участия в личном и(или) командном первенстве.

3.1.1.4 Участие в командном первенстве


Информация об участии в командном первенстве для каждого игрока
собрана на странице «Your game» в разделе «Command championship». На
странице приведена таблица «Commands of this tournament» с уже
созданными командами, а также формы создания новой команды и
присоединения к ранее созданной.
Для участия в командном первенстве можно создать новую команду или
присоединиться к ранее созданной команде (рисунок 3.11).

Рисунок 3.11 – Раздел «Command championship» до подачи заявки на участие


в командном первенстве
При выборе команды из списка существующих команд следует обратить
внимание, что команда должна быть от того же учебного заведения, что и
игрок, не должно быть превышено максимальное количество игроков
команды. Если два этих условия выполнены, то игрок успешно
присоединится к выбранной команде и соответствующая информация о нем
будет занесена в таблицу «Commands of this tournament», иначе система
выдаст ошибку присоединения к команде с пояснительным сообщением.
При создании новой команды необходимо ввести название новой команды
в текстовое поле напротив слов «New team name» без пробелов и нажать
кнопку «Create new team». Если введено корректное название команды, то в
базу данных и, соответственно, в таблицу «Commands of this tournament»
будет добавлена новая команда с одним участником-создателем команды, с
названием учебного заведения участника-создателя команды.
После подачи заявки на участие в командном первенстве раздел
«Command championship» примет вид в соответствии с рисунком 3.12.

Рисунок 3.12 – Раздел «Command championship» после подачи заявки на


участие в командном первенстве
После подачи заявки на участие в командном первенстве в разделе
«Command championship» становится доступна кнопка «Not participate»
(«Отказаться от участия»). Отказавшись от участия, в команде игрока
удаляется информация о нем. Аналогичное действие происходит при
переходе игрока в другую команду.
При выходе из командного первенства во время проведения турнира, в
команде игрока не удаляется информация о нем, но игроку делается пометка
в таблице «Users» («Пользователи») о выходе, и при распределении
следующего тура текущего турнира его сопернику автоматически
присуждается победа.
3.1.1.5 Информирование о ходе турнира
В срок начала турнира система автоматически производит распределение
турнирных таблиц в личном и командном первенстве, игры следующего тура
распределяются по окончании всех игр предыдущего тура и доступны
практически сразу после распределения в разделе «Schedule» меню «About
tournament» (рисунок 3.13).
Рисунок 3.13 – Страница расписания игр турнира
Перейти к просмотру игры любому авторизованному пользователю
можно напрямую из расписания, кликнув по строчке с именами игроков. Для
игроков такой переход не очень удобен, потому для каждого игрока все игры
текущего турнира группируются по значимости в разделе «Go to the
tournament». Здесь сначала выводятся игры, ожидающие хода
авторизованного игрока («Games Awaiting Move by имя и фамилия игрока»),
затем игры, ожидающие хода его соперника в текущем туре («Games Awaiting
a Move by имя и фамилия игрока’s opponent»), а также другие активные игры
текущего турнира («Other Active Games») (рисунок 3.14).

Рисунок 3.14 – Страница активных игр текущего турнира


Когда все игры обязательных туров сыграны, определяется победитель по
количеству набранных очков. Если победитель не определен, распределяется
дополнительный тур. Если победитель определен, то турнир заканчивается, в
разделе «Schedule» выводится его имя и фамилия (в личном первенстве) или
название команды (в командном первенстве) как показано на рисунке 3.15.

Рисунок 3.15 – Страница расписания игр турнира по окончании турнира


(для командного первенства)
Посмотреть статистику на текущий момент времени можно в разделе
«Statistics» отдельно для личного и командного первенства (рисунок 3.16).
В статистических таблицах помимо имени игрока и количества
набранных им очков приведено количество активных игр, количество
законченных игр, количество побед и игр сыгранных с результатом «ничья».

Рисунок 3.16 – Страница статистики по игре

Рисунок 3.17 – Страница статистики для конкретного игрока


По нажатию на строчку с именем игрока производится переход ко всем
играм выбранного игрока, сгруппированным по различному отношению к
нему (рисунок 3.17):
– игры, ожидающие хода выбранного игрока;
– игры, ожидающие хода оппонента выбранного игрока;
– завершенные игры выбранного игрока.
3.1.2 Интерфейс администратора сайта
Ответственным за разработку и занесение всей необходимой информации
в систему является ее администратор.
Для работы с системой через административный раздел необходима
авторизация. Внешний вид окна авторизации представлен на рисунке 3.18.

Рисунок 3.18 – Внешний вид окна авторизации при входе в


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

Рисунок 3.19 – Внешний вид главного окна панели администрирования при


работе в режиме администратора
Ответственным за порядок проведения и выполнение всех правил
турнира является судья. Для того, чтобы приступить к работе с системой в
режиме судьи, необходима авторизация с правами администратора через
стандартный модуль авторизации.
На рисунке 3.20 представлен интерфейс раздела «Administration» при
работе в режиме судьи.

Рисунок 3.20 – Интерфейс раздела «Administration» при работе в режиме


судьи
Судья через вкладку «Administration» имеет возможность создать новый
турнир (кнопка «New tournament»), сделать перераспределение турнирных
таблиц (кнопка «Distribute»), просматривать информацию о всех
проведенных турнирах и о текущем турнире (таблица «All tournaments»), а
также принимать решение о результате игр, которые не были завершены до
крайнего срока.
При нажатии на кнопку «New tournament» открывается форма создания
нового турнира (рисунок 3.21).

Рисунок 3.21 – Форма создания нового турнира


В форме создания нового турнира нужно ввести всю необходимую
информацию о предстоящем турнире: название, дата начала, максимальное
время одной партии (в днях), максимальное время одного хода (в часах),
число обязательных туров в личном первенстве, число обязательных туров в
командном первенстве, число участников команды. В текстовых полях ввода
приведены стандартные рекомендуемые значения по умолчанию, в скобках
приведены пояснения.
При заполнении полей формы создания нового турнира необходимо
уделить особое внимание полю «Begin tournament date» («Дата начала
турнира»), чтобы записать дату и время в формате, указанном в скобках. Это
значение со всеми остальными заносится в базу данных и в срок начала
турнира система автоматически производит распределение турнирных таблиц
и информирование игроков о начавшемся турнире.
3.1.3 Модули, обеспечивающие удобство работы с сайтом
Обеспечение удобства работы с сайтом является немаловажным
фактором, создающим все условия для успешной и интересной игры.
При разработке ИС был использован ряд дополнительных стандартных и
самостоятельно разработанных модулей.
Модуль «Chess Notifier» («Шахматный информатор») – обеспечивает
информирование игрока о начавшихся играх и об игроках, ожидающих его
хода, с любой страницы на сайте. Благодаря этому модулю время
реагирования на изменения в игре сокращается, что ускоряет процесс игры.
Модуль «Who's Online» («Кто он-лайн») – позволяет видеть количество
игроков, находящихся на сайте, ожидающих хода соперника или
обдумывающих ход.
Модуль «Latest News» («Последние новости») – отображает на главной
странице последние актуальные новости.
Модуль «Search» («Поиск») – позволяет новичкам сайта быстро находить
материал с интересующей информацией.
Модуль «Begin tournament date» («Дата начала турнира») – напоминает
дату и время начала ожидаемого или текущего турнира на любой странице
сайта.
Модуль «Vote» («Голосование») – позволяет собирать мнения
пользователей сайта об удобстве использования системы и просматривать
результаты голосований.
3.2 Анализ состояния и меры обеспечения информационной
безопасности
Бесплатность, простота установки и использования CMS Joomla делает ее
достаточно популярной среди пользователей. Как следствие, в сети
появляется все больше и больше сайтов на данном движке, а следовательно
возрастает и количество хакеров, которые их взламывают. Некоторые делают
это для развлечения, другие – за деньги (например, по заказу конкурента), а
большинство – чтобы скрытно встраивать на сайт вредоносный код или
ссылку на другой сайт.
Взломать можно любой сайт, все зависит от квалификации человека,
который это делает. Однако, выполнив ряд рекомендаций, можно значительно
снизить вероятность этого события [24].
Для обеспечения информационной безопасности было выполнено
следующее:
– после установки удалён каталог installation;
– изменен на более сложный логин суперадминистратора, который
используется для доступа в панель администрирования по умолчанию. Также
был изменен и пароль – на более сложный, содержащий буквы, цифры и
спецсимволы;
– был создан файл .htaccess, содержащий инструкции,  защищающие от
взлома;
– в текстовых полях ввода, получающих вводимые значения методами get
и post, реализована проверка вводимых символов, исключающая атаки xss и
sql-injection;
– при обращении к разделам сайта реализована проверка типа
пользователя. Так, содержимое разделов «administration» (судейский раздел),
«newgame» (создание новой игры), «newtournament» (создание нового
турнира), «raspr» (распределение турнирных таблиц), «solution» (решение о
результате игр) – доступно только суперадминистраторам, а содержимое
раздела «allcompletegames» (на сайте – пункт «Your game») – только
зарегистрированным пользователям сайта;
– изменен установленный по умолчанию префикс (jos_) к таблицам в базе
данных, что позволит оградить сайт от большинства SQL-инъекций;
– удалены номера версий и названия расширений;
– для разработки информационной системы была выбрана самая новая на
момент начала разработки версия Joomlа 1.5.17-Stable, в которой устранены
уязвимости, имеющиеся в предыдущих версиях системы;
– настроено резервное копирование на хостинге, где размещен сайт.
3.3 Тестирование и отладка информационной системы
После создания пользовательских интерфейсов и написания кода
компонентов и модулей, было проведено тестирование информационной
системы на локальном компьютере. В ходе тестирования проверялись
следующие функции информационной системы:
– самостоятельная регистрация пользователей на сайте;
– авторизация зарегистрированных пользователей;
– предоставление прав в системе в соответствии с типом пользователя;
– возможность судьи турнира создавать турниры и принимать решение по
играм, не завершенным до крайнего срока;
– возможность участия в личном первенстве в соответствии с
установленными правилами;
– возможность участия в командном первенстве в соответствии с
установленными правилами;
– отработка правил турнира по истечении установленных временных
интервалов.
Затем сайт был выложен на хостинг, после чего было проведено
повторное тестирование системы.
Недостатков в работе системы не было выявлено.