Серверное приложение организации олимпиад с реализацией на основе облачной технологии
Средства разработки серверной части системы создания и управления сайтами в сети Интернет. Contester и STAGer - системы для проведения турниров и индивидуального решения задач по олимпиадному (спортивному) программированию. Архитектура "файл-сервер".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.05.2014 |
Размер файла | 1007,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Оглавление
Введение
1. Общая структура системы создания и управления сайтами
1.1 Средства разработки серверной части системы создания и управления сайтами
1.2 Структура серверной части
2. Математическая модель работы нашего сайта
2.1 Архитектура "файл-сервер"
2.2 Модель нашего сайта
2.3 Схематическая структура серверной части
3. Contester - система для проведения турниров и индивидуального решения задач
4. STAGer (AGer) система для проведения турниров и индивидуального решения задач
Заключение
Библиография
Введение
Сейчас Интернет является одним из главных поставщиков информации. В связи с этим возникают задачи размещения новой и обновленной, уже имеющейся информации.
Наибольшая доля информации приходится на Веб-сайты. Поэтому для решения вышеуказанных задач были сделаны разные системы создания и управления веб-сайтами. И на этот момент их количество измеряется тысячами. Это системы различного уровня, профессиональные и любительские, узкоспециализированные и всеобщего назначения, платные и бесплатные. Однако, как известно, Интернет развертывается быстрыми шагами. Еще недавно в нем господствовала теория статических html-файлов. Сейчас это динамическое интерактивное содержимое. Ранее странички сайтов состояли в основном из текста, теперь вводятся оформительские решения, используемые в операционных системах. Только благодаря постоянным изменениям, введение новых систем творения и управления веб-сайтами является актуальной задачей.
Новая система просто должна приносить с собой разные усовершенствования, как на уровне интерфейса, так и на уровне кода. А чем сложнее интерфейс, тем труднее и внутренняя организация системы. И нужно решать проблемы расширения системы, подключения новых разрабов, обработки имеющийся алгоритмов. Если новая система ничем не выделяется от аналогичных уже имеющийся систем, то она не выдержит конкуренции и окажется никому ненужной.
Так как сама система создания и управления веб-сайтами представляется достаточно сложным для осуществлении продуктом, то работа была поделена на 2 части между 2 разработчиками.
В данном проекте я создал серверную часть системы, которая вместе с клиентской частью составляет целую систему создания и управления веб-сайтами.
Цель работы:
Изучение принципов передачи данных по сети, создание серверного приложения, позволяющего передавать через сеть данные разных типов.
Объект: язык PHP
Предмет: Серверное приложение на основе облачной технологии.
Задачи: систематизировать материал об использовании языка php, разработать пользовательские объекты в приложении и обеспечить к ним доступ, ввезти комментарии к php коду.
Методы:
· Проектирование
· Тестирование
· Систематизация
· обобщение.
Оборудование: MySQL базы данных, Apache сервер.
Актуальность: логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются межплатформенными сервисами. Благодаря клиент-серверному приложению, в котором клиентом выступает браузер, а сервером -- веб-сервер возможно организовывать системы управления содержимым, где могут находиться самые различные данные: документы, фильмы, фотографии, номера телефонов, научные данные.
1. Общая структура системы создания и управления сайтами
В системе есть 2 логических блока: серверная часть и клиентская часть. Клиентская часть разрешает задачи взаимодействия системы с юзером и сокрытия технических частей функционирования системы. Серверная часть осуществит внутреннюю работу единой системы и дает клиентской части сокет с целью управления системой.
Функции приложения-клиента:
· Посылка запросов серверу.
· Интерпретация результатов запросов, полученных от сервера.
· Представление результатов пользователю в некоторой форме (интерфейс пользователя).
Функции серверной части:
· Прием запросов от приложений-клиентов.
· Интерпретация запросов.
· Оптимизация и выполнение запросов к БД.
· Отправка результатов приложению-клиенту.
· Обеспечение системы безопасности и разграничение доступа.
· Управление целостностью БД.
· Реализация стабильности многопользовательского режима работы.
Кроме этого, в физическом уровне содержатся ещё 2 необходимых блока: база данных и файловая система. База данных (СУБД) дает возможность осуществить внутренние операции сохранения и допуска к этим. Файловая концепция дает возможность осуществить хранение и доступ к самой системе, а кроме того к файлам и папкам, сделанным системой.
На рисунке представлена единая модель системы образования и управления веб-сайтами.
Рисунок 1.
Требования к серверной части системы
На основе общей структуры и анализа существующих систем создания и управления сайтами можно выделить следующие требования к серверной части системы:
· Простой установщик системы;
· Полное кэширование в файловую систему;
· Понятная пользователю структура файловой системы;
· Возможность простого и легкого соединения сервера с клиентом в связи с параллельной разработкой;
· Возможность быстрой адаптации системы под различные СУБД.
1.1 Средства разработки серверной части системы создания и управления сайтами
С целью формирования серверной логики в настоящее время существуют как минимум 4 достойных вида: PHP, Python, Ruby, ASP.NET.
Выбор 1-го из них сделаем в основе доступности и известности. В этом случае бесспорным вариантом считается PHP. [5] Данный язык программирования считается наиболее распространенным языком формирования интернет-приложений. Он вдобавок поддерживается в абсолютно всех сегодняшних платформах.
Среди баз данных для веб-разработки максимально акцентируются MySQL и PostgreSQL. Однако в отличие от PostgreSQL, MySQL захватил собственную известность очень давно. Более того, MySQL подобно как и PHP поддерживается абсолютно всеми сегодняшними платформами. [6]
Для этого, чтоб постоянно данные средства имели возможность действовать, нужен http-суперсервер. Наиболее легким и крайне прочным решением считается Apache HTTP Server. Он доступен для многих операционных систем и, вообще говоря, считается наиболее распространенным предпочтением среди разработчиков. Другим видом мог б быть Internet Information Services (IIS), однако, в силу его привязки к операционной системе Windows и, соответсвенно, большой стоимости, он исключается из рассмотрения.
1.2 Структура серверной части.
Для удобства разграничим серверную часть и установщик. Такое возможно осуществлять, благодаря тому что установщик согласно сущности представляет собой абсолютно самостоятельный модуль.
С учетом объявленных ранее условий, а вдобавок рассуждений, отмеченных далее, возможно показать вытекающую структуру серверной части на рисунке.
Рисунок 2
Данная схема уменьшит усилия по совмещению серверной и клиентской частей за счет присутствия меж ними лишь только 1-го канала связи. Такое взаимосвязанность меж блоками «Клиент» и «Координатор». Координатор по-другому возможно охарактеризовать интерфейсом для взаимодействия с клиентом.
В качестве протокола общения меж клиентом и сервером был подобран порядок «запрос-ответ». Это значит, то, что клиент отправляет серверу сообщение, в котором заключается сведения о том, какое деяние хочет осуществить клиент. Компьютер исследует данное сообщение и осуществляет предписанные шаги, в случае если они вероятны. Уже после прекращения данных деяний, компьютер отдаёт итог работы. Любое вероятные виды операций должны быть знакомы клиенту предварительно.
На уровне осуществлении будут применены объектно-ориентированные вероятности языка PHP с целью упрощения разработки и представления концепции. Диаграмма классов в этом случае лишня, таким образом, как бы классы будут применяться только лишь в качестве пространство имен.
Пример взаимосвязи общих данных модулей между собой. Предположим, клиент желает сберечь набросок странички. Он обращается к Координатору с командой «page_savedraft». Координатор обрабатывает требование и активизирует метод Менеджера Хранилища «SavePageDraft». Менеджер Хранилища обрабатывает сведения и избирает базу данных с поддержкой метода «SelectDatabase» Менеджера базы данных. Дальше Менеджер Хранилища обновляет сведения с поддержкой метода «UpdateData» Менеджера базы данных. Дальше совершается объявление странички. С целью данного с помощью метода «GetData» Менеджер Хранилища делает подборку шаблона и странички, и активизирует метод Генератора вебсайта «GeneratePage», который обновляет страничку в файловой концепции. В окончании Координатор отдаёт статус «ОК», информирующий о удачном исполнении команды. Представленный перед этим ход описан в рисунке. Пунктирный стрелки означают возврат итогов запросов к модулям. В их основании создается откат Координатора.
Рисунок 3
2. Математическая модель работы нашего сайта
Рисунок 4
2.1 Архитектура "файл-сервер"
Работа построена следующим образом:
· База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (файлового сервера).
· Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлены СУБД и приложение для работы с БД.
· На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к БД на выборку/обновление информации.
· Все обращения к БД идут через СУБД, которая инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на файловом сервере.
· СУБД инициирует обращения к данным, находящимся на файловом сервере, в результате которых часть файлов БД копируется на клиентский компьютер и обрабатывается, что обеспечивает выполнение запросов пользователя (осуществляются необходимые операции над данными).
· При необходимости (в случае изменения данных) данные отправляются назад на файловый сервер с целью обновления БД.
· Результат СУБД возвращает в приложение.
· Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.
2.2 Модель нашего сайта
Основная модель нашего сайта выглядит так:
Рисунок 5
2.3 Схематическая структура серверной части
Рисунок 6.
3. Contester - система для проведения турниров и индивидуального решения задач
Contester - это система для проведения турниров и индивидуального решения задач по олимпиадному программированию (спортивному программированию). Система содержит условия задач - от легких до олимпиадных - и возможность проверки решений на большинстве современных языков: C++, Object Pascal, Java и языках.NET: C#, J# и Visual Basic. Contester работает на Windows и на Linux.
Интерфейс участника соревнования позволяет:
* зарегистрироваться самостоятельно, если включена регистрация;
* прочитать тексты задач (с HTML-разметкой);
* ознакомиться со справкой к турнироной системе, примерами решений и "расшифровкой" результатов проверки;
* просмотреть список своих попыток решения, имена отправленных файлов, исходные коды каждой попытки;
* просмотреть журнал компиляции в случае ошибки компиляции;
* просмотреть турнирную таблицу в ACM-стиле;
* во внетурнирное время решать задачи из "сборников".
* обсудить задачи, сборники, турниры и разделы на встроенном форуме.
Интерфейс администратора турнирной системы позволяет:
* создавать, блокировать и удалять учетные записи участников системы;
* включать режим самостоятельной регистрации участниками;
* создавать и удалять задачи, турниры, сборники и разделы;
* устанавливать и переносить время турниров;
* вносить HTML-тексты задач и рисунки к ним;
* вносить тестовые пары (input.txt и pattern.txt) к задачам;
* вносить и компилировать на сервере чекеры (тестирующие программы), в том числе написанные под TestLib;
* автоматически проверять чекеры на совместимость с тестовыми парами;
* просматривать список решений участников, имена отправленных файлов, исходные коды каждого решения;
* просматривать журналы компиляции и проверки каждой попытки;
* заново отправлять попытки на перепроверку (например, в случае оперативного изменения чекера);
* загружать запакованные zip-файлы с задачами (их условием, тестами, чекером и настройками) и выгружать их;
* добавлять в систему языки программирования, указывать свои командные строки компиляции;
* распределять проверку решений на несколько серверных компьютеров.
На данный момент в Contester заложены правила ACM-соревнований. Турнирная система содержит HTTP-сервер, тестирующий модуль, и располагается в системном трэе (рядом с часами). Работа с системой, чтение текстов задач и отправка решений происходит через веб-браузер.
Командные строки компиляции настраиваются вручную или определяются автоматически при запуске Contester.
Список автоматически определяемых Windows-компиляторов:
* Dev-C++/mingw32, Borland C++ Builder 6, 7;
* Microsoft Visual C++ 6, 2003, 2005, 2008;
* Free Pascal 1.0, 2.0, 2.2; Borland Delphi 6, 7;
* Borland Delphi 2006, CodeGear Delphi 2007, 2009, 2010;
* Borland JBuilder 7, 9, 2005, 2006 Enterprise;
* Java Development Kit;
* Microsoft.NET 1.1, 2.0, 3.5 Framework;
* Microsoft J#.NET 1.1, 2.0.
Список автоматически определяемых Linux-компиляторов:
* GNU C++ Compiler, Free Pascal;
* Java Development Kit, Mono Framework;
Директории установки компиляторов берутся из реестра (windows-версия) или из переменной PATH (linux-версия). Ключи строк компиляции встроены в Contester - достаточно установить нужный компилятор и запустить Contester. В дистрибутиве Contester уже находятся несколько задач, сборников и турниров, поэтому можно приступать к соревнованию через несколько минут после установки.
По умолчанию проверка отправленных решений работает параллельно HTTP-серверу, на том же компьютере. Если вам необходима схема с несколькими проверяющими компьютерами, посмотрите раздел "Помощь" в Contester.
4. STAGer (AGer) система для проведения турниров и индивидуального решения задач
Система тестирования "AGer" (в дальнейшем просто СИСТЕМА) предназначена для проведения олимпиад в реальном времени, то есть с использованием сети Интернет или локальной сети. СИСТЕМА позволяет автоматизировать процесс тестирования отправленных на проверку решений задач, а также создавать отчеты, определять победителей в зависимости от набранных баллов.
СИСТЕМА состоит из двух отдельных программ: сервер (STAGer.EXE) и клиент (STAGerCl.exe). Здесь будут рассмотрены только функции и возможности программы-сервера. Ясно, что основным компонентом СИСТЕМЫ является сервер, поскольку он выполняет все самые важные процедуры по приему данных, компиляции задач, проверке решений и обработке баллов.
Программа-сервер (STAGer.exe)
Составление задач
Самым первым этапом в проведении олимпиады является составление задач олимпиады. Однако, составление задач олимпиады при необходимости можно осуществлять и во время проведения олимпиады. Программа-сервер (в дальнейшем просто СЕРВЕР) содержит базу данных "Задачи", которая хранит список всех задач, зарегистрированных на СЕРВЕРЕ. Для того, чтобы добавить новую задачу в список всех задач, необходимо в меню "Задачи" выбрать пункт "Добавить". Появится следующее диалоговое окно:
Рисунок 7.
Короткое имя задачи - это краткое название задачи. Это название будет фигурировать во всех таблицах, поэтому целесообразно его сделать коротким. Рекомендуется вводить короткое название английскими буквами. Нельзя вводить следующие зарезервированные названия: NIK, SUM, PLACE, поскольку они являются англоязычными названиями столбцов в базе данных "Олимпиада". После того, как вы ввели короткое имя задачи, в папке с тестером дожна находиться папка с соответствующим имеем поэтому при необходимости будет создана соответствующая папка, в которой должны будут содержаться тесты для задачи. Например, вы ввели короткое имя задачи TASK1, в этом случае, если в папке с тестами нет папки TASK1, то система тестирования выдаст сообщение:
Рисунок 8.
При выборе "YES" тестер выдаст следующее информационное сообщение:
Рисунок 9.
Предположим для задачи TASK1 необходимо создать 3 теста. В этом случае в папке TASK1, которая только что была создана, необходимо поместить файлы 1.in, 2.in, 3.in. Если же правильный ответ на тест заранее известен, то можно на каждый тест поместить правильные ответы: 1.out, 2.out, 3.out. Число тестов для задачи не ограничено. При добавлении новых тестов в папку с тестами необходимо, чтобы в графе "Тесты для задачи" появились номера тестов. Для этого необходимо нажать на OK для закрытия диалогового окна "Добавить задачу" и графа "Тесты для задачи" заполнится номерами тестов. Если впоследствии вы добавили новые тесты для задачи, то необходимо воспользоваться графой "Изменить задачу".
Соответственно длинное имя задачи - это полное наименование задачи на русском языке. Оно фигурирует в диалоговом окне клиента "Отправить", а также используется при составлении отчетов.
Ограничение по времени - это целое число, задающее максимальное число милисекунд, которое дается тестируемой программе, чтобы произвести вычисления и выдать на экран или в файл правильный ответ. В одной секунде 1000 милисекунд. Если же тестируемая программа будет выполняться дольше, чем предусмотрено в этой графе, то выполнение такой программы прекращается сервером.
В зависимости от способа выставления баллов решенная задача оценивается по-разному:
1. если выбран "жесткий" способ выставления баллов, то в первой строке графы "Баллы" необходимо указать целое число баллов, которые присуждаются участнику, правильно решившему задачу с первой попытки. Во второй строке указываются баллы, которые присуждаются участнику олимпиады, решившему задачу со 2 попытки и так далее. Число строк неограничено, минимальное число строк - 1. В случае, если участник решил задачу с большей попытки, чем предусмотрено в этой графе, то ему присуждается число баллов, указанное в самой последней строке. Если же тестируемая программа успешно прошла лишь часть тестов, то за такую программу участнику не присуждаются баллы, а наоборот, считается, что попытка оказалась неудачной и число попыток увеличивается на единицу.
2. если выбран "мягкий" способ выставления баллов, то в первой строке графы "Баллы" необходимо указать число баллов, присуждаемое участнику, правильно решившему задачу самым первым по счету. Соответственно, во второй строке этой графы указываются баллы, присуждаемые клиенту, который вторым правильно решил задачу. И так далее. Число строк неограничено, минимальное число строк - 1. Если же участник решил задачу не полностью (то есть часть тестов тестируемая программа прошла успешно) то баллы участнику начисляются в зависимости от числа баллов, указанных в последней строке графы "Баллы". Например, в последней строке графы "Баллы" указано число 20. Если в решаемой задаче 10 тестов, первые 5 из которых тестируемая программа прошла удачно, а на 6 тесте программа не выдала правильного ответа, то участнику за эту программу присуждается 10 баллов. Число попыток при таком способе тестирования не ограничено и не учитывается.
Следующая графа - "Тесты для задачи". Она автоматически заполняется системой тестирования при обнаружении новых тестов в папке с тестами для задачи. Графа обновляется при открытии диалогового окна "Изменить задачу", поэтому если вы изменили количество тестов для задачи, то вам необходимо открыть диалоговое окно "Изменить задачу".
СИСТЕМА предусматривает создание условия задачи - это файл с форматированным текстом в формате RTF плюс один графический файл-иллюстрация в формате JPG. Для реализации этой возможности вам необходимо в папку с тестами (в нашем примере эта папка TASK1) поместить файл, предварительно подготовленный в текстовом редакторе, имеющий название CONDITION.RTF. Кроме того, вы можете при необходимости создать иллюстрацию к условию задачи. Для этого поместите в папку с тестами графический файл, имеющий имя ILLUSTRATION.JPG. Когда участник олимпиады с помощью клиентской программы передаст на сервер запрос на условие задачи, то сервер при обнаружении в папке с тестами к задачи этих файлов, перешлет их клиенту по сети.
Еще одна возможность СИСТЕМЫ: это использование для проверки правильности результатов проверяющих программ, созданных пользователем при подготовке к олимпиаде. Процесс тестирования происходит следующим образом: участник олимпиады с помощью клиентской программы посылает по сети на сервер свое решение задачи, написанное на Pascal или CPP, которое впоследствии компилируется и проверяется. Проверка программы происходит следующим образом: программа в режиме реального времени запускается и ей либо с клавиатуры, либо с файла, передаются входные данные - тесты, предварительно подготовленные организаторами олимпиады. Через определенное время, которое не должно превышать установленные рамки, программа должна завершиться и выдать результат либо на экран, либо в файл (это оговаривается заранее). В любом случае, результат работы программы - это определенный файл, который СИСТЕМА построчно сравнивает с эталонным файлом - правильным результатом на заданный тест. Но иногда бывают задачи, имеющие неоднозначные ответы на вводимые тесты. Организатор олимпиады может написать программу, которая бы проверяла правильность результата, выводимого программой. Для реализации этой возможности необходимо создать проверяющую программу на любом языке программирования, откомпилировать ее и поместить в папку с тестами (в нашем случае TASK1) под именем CHECK.EXE.
Тестер при обнаружении этой программы в папке с тестами вместо построчного сравнения эталонного ответа и ответа программы участника олимпиады запускает программу CHECK.EXE, передав ей в командной строке 2 параметра - это входной файл (тест) и ответ, который выдала программа в виде файла, включая полный путь к этим файлам в формате 8.3 (этот формат предусматривает тот случай, когда проверяющая программа может написана и на DOS). Если тестируемая программа выдала правильное решение, то проверяющая программа должна просто УДАЛИТЬ правильный ответ (то есть второй параметр, передаваемый в командой строке), иначе она должна просто завершить свое выполнение. Ограничение на работу проверяющей программы: она должна выполняться не дольше, чем число милисекунд, указанное в графе "Ограничение по времени" для задачи, помноженное на два плюс еще 10 секунд. Если же этот лимит исчерпается, то выполнение проверяющей программы будет завершено СИСТЕМОЙ, а решение участника будет считаться неправильным.
Существует еще один способ создания условия задачи: это импорт уже созданной кем-то задачи из файла. Этот файл имеет определенную структуру, которая может включать в себя условие задачи, иллюстрацию к задаче, проверяющую программу, а также обязательно включает в себя такие необходимые элементы для задачи, как короткое и длинное имя задачи, ограничение по времени, баллы за решенную задачу, тесты для задачи. По умолчанию этот файл имеет расширение TSK. При нажатии на кнопку "Импорт из файла" появится соответствующее диалоговое окно, в котором вы можете указать путь к этому файлу (как его создать, читайте далее). Автоматически в папке с задачами будет создана соответствующая папка, в нее будут помещены все элементы задачи, которые были найдены в этом файле, а также будут заполнены все графы диалогового окна "Добавить задачу". В подпапке EXAMPLES папки СЕРВЕРА вы найдете примеры задач.
Итак, при успешном составлении задачи и заполнении всех граф диалогового окна "Добавить задачу" и нажатии кнопки OK в базе данных "Задачи" появится строка, содержащая краткую информацию о задаче. Эта задача еще пока не будет доступна клиенту, она просто храниться в папке Tests, то есть она еще не "активна". Для того, чтобы она стала доступна клиенту и была "активной", необходимо открыть диалоговое окно "Изменить список задач" (находится в меню "Олимпиада").
Изменение параметров задачи
Иногда необходимо поменять некоторые параметры задачи, которая уже находится в базе данных "Задачи". Для реализации этой потребности предусмотрено диалоговое окно "Изменить задачу". Выберите в базе данных задачу, подлежащую корректировке, и в меню "Задачи" выберите пункт "Изменить". Откроется следующее диалоговое окно:
Рисунок 10.
В зависимости от параметров, подлежащих изменению, ваши действия таковы:
1. короткое имя задачи. В этом случае необходимо, во-первых, переименовать папку, содержащую тесты для задачи (с помощью любого файлового менеджера, например, проводника), поскольку имя папки с тестами в СИСТЕМЕ всегда совпадает с коротким именем задачи. Далее поменяйте неверное имя в графе "Короткое имя задачи" на истинное короткое имя задачи и нажмите OK
2. длинное имя задачи. Это имя используется при составлении отчетов, а также оно отображается в программе-клиенте. Поменять его можно непосредственно в этом диалоговом окне. При изменении длинного имени задачи происходит автоматическая рассылка нового длинного имени задачи всем клиентам, подключенным к серверу в данный момент
3. ограничение по времени. Оно устанавливает лимит на время работы тестируемой программы и его также можно изменить непосредственно
4. баллы за решенную задачу. Они используются для автоматической оценки решения задачи, изменяются непосредственно в диалоговом окне
5. тесты для задачи. Для изменения количества тестов для задачи вам необходимо, прежде всего, добавить новые тесты или удалить старые из папки с тестами для данной задачи. Причем абсолютно неважна нумерация. То есть, если в папке с тестами содержались тесты с названиями 1.in, 2.in, 3.in, и вы удалили файл 2.in, то в этом случае СИСТЕМА корректно распознает, что в папке 2 теста с номерами 1 и 3. При открытии диалогового окна "Изменить задачу" происходит автоматический поиск тестов в папке с тестами и обновление данных о количестве и нумерации тестов. После нажатии кнопки "OK" изменения вступят в силу.
Кроме того, без необходимости открывать это диалоговое окно можно осуществить в задаче следующие изменения:
1. добавить/изменить/удалить условие/иллюстрацию задачи. Как уже отмечалось, в папке с тестами за текст условия задачи отвечает файл CONDITION.RTF, а за иллюстрацию к задаче файл ILLUSTRATION.JPG. Операции над этими файлами в режиме реального времени не требуют фиксации в диалоговом окне "Изменить задачу"
2. добавить/изменить/удалить свою собственную проверяющую программу. При обнаружении в папке с тестами файла CHECK.EXE СИСТЕМА при последующей отправке участником олимпиады своего решения задачи будет запускать вашу собственную проверяющую программу.
Кроме того, диалоговое окно "Изменить задачу" позволяет сохранять все данные о составленной вами задаче в одном файле для удобства распространения задач вместе с условиями, тестами, иллюстрациями, проверяющими программами и др. Для реализации этой возможности в открытом диалоговом окне "Изменить задачу" щелкните на кнопку "Экспорт задачи в файл" и в открывшемся диалоговом окне введите имя файла (расширение по умолчанию -.TSK). В дальнейшем на другом компьютере, где установлена СИСТЕМА, для добавления задачи необходимо воспользоваться кнопкой "Импорт задачи из файла" диалогового окна "Добавить задачу".
Удаление задачи
Удаление задачи в СИСТЕМЕ предполагает удаление данных о задаче, а также удаление ее из базы данных "Задачи". Сама же папка с тестами вместе со всеми входящими в нее файлами остается без изменения. Для этого необходимо выбрать в меню "Задачи" пункт "Удалить". Появится следующее диалоговое окно:
Рисунок 11.
При нажатии на "Yes" все важные данные о задаче (короткое и длинное имя задачи, ограничение по времени, баллы) уничтожатся.
Но прежде чем удалять задачу из базы данных "Задачи" желательно сделать ее "неактивной", то есть, чтобы участники олимпиады не могли решать задачу, которую вы собираетесь удалить. Для этого воспользуйтесь диалоговым окном "Изменить список задач" (меню "Олимпиада").
Активизация задач
После того, как задачи составлены и база данных "Задачи" содержит необходимое количество задач для проведения олимпиады можно некоторые из составленных задач или все задачи (на усмотрение организаторов олимпиады) сделать "активными", то есть доступными для решения участниками олимпиады. Для этого в меню "Олимпиада" выберите пункт "Изменить список задач". Появится следующее диалоговое окно:
Рисунок 12.
Список неактивных задач - перечень задач, которые не доступны участникам олимпиады для решения. Вновь добавленная задача в базу данных "Задачи" по умолчанию считается неактивной. Для активизации неактивной задачи необходимо выбрать нужную задачу из правого списка и воспользоваться стрелкой. За один раз можно активизировать сразу несколько задач.
Аналогично, воспользовавшись стрелкой, вы можете сделать задачу "неактивной". В этом случае задача остается в базе данных "Задачи", но становится недоступной для решения участниками олимпиады. Чтобы окончательно удалить задачу из СИСТЕМЫ необходимо воспользоваться опцией "Удалить" в меню "Задачи".
После перемещения задач, требующих активизации, из правого списка в левый, вы можете установить порядок в задачах, предлагаемых участникам на олимпиаде. Для этого воспользуйтесь кнопками "Вверх", "Вниз".
Заключительный этап активизации задач - закрытие диалогового окна с помощью кнопки "Активизировать".
Сведения о базах данных, используемых на сервере
На СЕРВЕРЕ используются три базы данных:
1. база данных "Задачи". Она хранит данные о всех задачах, зарегистрированных на сервере. Эти данные нельзя изменить непосредственно в самой базе данных, поэтому предусмотрены соответствующие диалоговые окна "Добавить задачу", "Изменить задачу", "Удалить задачу". При модификации этой базы данных происходит ее автоматическое сохранение и обновление данных на подключенных в данный момент программах-клиентах.
2. база данных "Все клиенты". Она хранит "формальные" данные об участниках олимпиады: имя, фамилия, место учебы участника олимпиады; дополнительные данные, которые участник может написать о себе. Кроме формальных данных в СИСТЕМЕ предусмотрены индивидуальные данные: логин - особый псевдоним участника, которым он пользуется при отправке решений задач с помощью программы-клиента; а также пароль - набор цифр и символов для того, чтобы никто другой кроме самого участника олимпиады не мог повлиять на количество баллов, заработанных им при решении задач. Логин и пароль, тем не менее, отображаются на СЕРВЕРЕ на тот случай, если участник олимпиады забудет свой логин или пароль. Также база данных "Все клиенты" содержит IP адрес клиентской машины в локальной сети или сети Интернет, позволяющей администратору отправлять сообщения клиентам и определять местонахождение участника олимпиады в случае, если олимпиада проводится по локальной сети. База данных "Все клиенты" допускает непосредственное изменение (вручную) любых данных о клиенте администратором (человеком, следящим за СЕРВЕРОМ). Для этого предусмотрена специальная панель управления базой данных.
3. база данных "Олимпиада". Она отображает рейтинговую таблицу участников, которая содержит псевдонимы участников (NIK), сумму баллов, набранных каждым участником (SUM), место, занимаемое в данный момент участником олимпиады в зависимости от суммы баллов, а также баллы, полученные участником олимпиады за каждую задачу в результате отправки решений задач. В общем случае, она контролируется и автоматически заполняется самой СИСТЕМОЙ в зависимости от баллов, полученных участником олимпиады при проверке правильности решения отправленной им задачи. Однако администратор по усмотрению может самостоятельно менять количество баллов за задачу. Эта база данных автоматически сохраняется и рассылается всем клиентским машинам, подключенным к СЕРВЕРУ, при обнаружении каких-либо изменений в ней. При составлении отчетов об итогах олимпиады используется рейтинговая таблица базы данных "Олимпиада" и "формальные" данные участников олимпиады, хранящиеся в базе данных "Все клиенты".
Сведения о состоянии системы
Состояние системы - это текстовое окно, содержащее информацию о ходе отправки, компиляции, проверки решений задач, посланных участниками олимпиады в режиме реального времени. Оно заполняется и рассылается клиентам самой программой-сервером автоматически. СИСТЕМА позволяет сохранять состояние системы в отдельный файл. Для этого в меню "Состояние системы" выберите пункт "Сохранить в файл".
Создание отчетов
СЕРВЕР позволяет создавать отчет о расположении участников олимпиады в турнирной таблице. Для этого в меню "Олимпиада" выберите пункт "Создать отчет". Существует 2 средства, к которым прибегает СИСТЕМА для создания отчетов:
1. утилита QuickReport - это встроенная в программу-сервер утилита, позволяющая создавать отчет. Отчет представляет собой турнирную таблицу участников с указанием места и баллов, заработанных каждым участником. Если участник олимпиады не заработал ни одного балла, то такой участник не получает никакого места. Недостаток: невозможность корректировки отчета.
2. текстовый процессор Microsoft Word - самое оптимальное средство, поскольку Word позволяет редактировать отчет, сгенерированный программой-сервером. Кроме того при использовании Microsoft Word СИСТЕМА способна помимо "краткого отчета" (турнирная таблица) генерировать детальный отчет - подробный отчет о месте каждого участника олимпиады, решенных им задачах и баллах, полученных за каждую решенную задачу. Недостаток: необходимо наличие программы Microsoft Word.
Для выбора конкретного средства используйте вкладку "Настройки" программы-сервера.
Описание вкладки "Настройки"
Вкладка "Настройки" позволяет изменять:
1. способ выставления баллов: жесткий/мягкий (описание этих способов см. "Составление задач, доступных на сервере").
2. способ создания отчета: при помощи утилиты QuickReport или текстового процессора Microsoft Word; при выборе Microsoft Word есть возможность воспользоваться опцией "Детальный отчет" (см. "Создание отчетов").
3. способ организации ввода/вывода данных тестируемой программы: A. консоль: ввод данных программы осуществляется с клавиатуры, а вывод данных - на экран. B. файлы: ввод данных и вывод данных осуществляется через файлы, имена которых заранее заданы.
4. имена компиляторов программ, написанных на языке Pascal (по умолчанию tpc.exe) и на C++ (по умолчанию bcc.exe). Эти программы используются для получения выполнимых файлов из исходников, отсылаемых участниками олимпиады. Программы-компиляторы обязательно должны находится в подпапке WORK папки СЕРВЕРА (эта папка называется рабочей, поскольку все исходники, посылаемые для проверки, находятся в ней).
5. путь к интерпретатору команд MS-DOS. Все операции по запуску программ осуществляются через этот интерпретатор. Путь к интерпретатору определяется СЕРВЕРОМ автоматически при запуске. Он соответствует переменной окружения DOS COMSPEC. Вы можете на один сеанс работы изменить путь к интерпретатору, если параметр COMSPEC не соответствует истинному пути к программе-интерпретатору. Для фиксации правильного пути вам необходимо скорректировать параметр COMSPEC самостоятельно (например, поменяв его в файлах AUTOEXEC.BAT или CONFIG.SYS).
Любое изменение данных вкладки "Настройки" (кроме пути к интерпретатору команд MS-DOS) автоматически сохраняется в файле STAGer.ini.
Описание способа взаимодействия администратора СЕРВЕРА и участников олимпиады
Иногда при проведении олимпиады у участников появляются вопросы по задачам или же у организаторов олимпиады появляются новые объявления. СИСТЕМА обеспечивает двухстороннюю связь администратора и участников олимпиады. Для отправки текстовых сообщений всем участникам олимпиады или же кому-то в отдельности в меню "Олимпиада" выберите "Разослать сообщение от администратора". Появится следующее диалоговое окно:
Рисунок 13.
Введите необходимое сообщение в соответствующую текстовую строку. Послать введенное сообщение можно всем участникам олимпиады (переключатель должен быть установлен на пункте "Всем клиентам") или же конкретному участнику олимпиады (переключатель "Клиенту с IP"). В последнем случае необходимо указать IP адрес клиентской машины, за которой сидит требуемый участник олимпиады. Этот адрес можно узнать в базе данных "Все клиенты". После нажатия вами кнопки OK ваше сообщение будет отображаться у вас и у всех клиентов или у выбранного клиента в текстовом окне "Состояние системы".
Характеристика подпапок папки СЕРВЕРА
В папке СЕРВЕРА обязательно содержатся следующие подпапки:
1. WORK - это рабочая папка, где хранятся все полученные сервером исходники решений задач, откомпилированные исходники. В ней ОБЯЗАТЕЛЬНО должны содержаться компиляторы Pascal и CPP програм.
2. TESTS - эта папка содержит задачи с тестами, с условиями, с иллюстрациями, с проверяющими программами. Каждая задача хранится в отдельной подпапке.
3. TABLES - эта папка хранит 3 базы данных: "Задачи" (tasks.db), "Все клиенты" (clients.db), "Олимпиада" (olympiad.db). Если при запуске СЕРВЕРА эти базы данных не будут обнаружены, то будут созданы пустые базы данных.
4. ACCEPTED - в эту папку СЕРВЕР помещает исходники тех правильных решений задач, которые прошли все тесты
Заключение
Итак, в результате работа построена следующим образом:
· База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).
· СУБД располагается также на сервере сети.
· Существует специально выделенный сервер приложений, на котором располагается программное обеспечение (ПО) делового анализа (бизнес-логика) [5].
· Существует множество клиентских компьютеров, на каждом из которых установлен так называемый "тонкий клиент" - клиентское приложение, реализующее интерфейс пользователя.
· На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение - тонкий клиент. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к ПО делового анализа, расположенному на сервере приложений.
· Сервер приложений анализирует требования пользователя и формирует запросы к БД. Для общения используется специальный язык запросов SQL, т.е. по сети от сервера приложений к серверу БД передается лишь текст запроса.
· СУБД инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на сервере.
· СУБД инициирует обращения к данным, находящимся на сервере, в результате которых результат выполнения запроса копируется на сервер приложений.
· Сервер приложений возвращает результат в клиентское приложение (пользователю).
Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.
В ходе дипломного проекта была создана серверная часть системы создания и управления сайтами, в которой:
· реализовано полное кэширование страниц в файловую систему, ускоряя доступ к ним;
· разработана понятная пользователю структура файловой системы, отражающая основные логические блоки системы создания и управления сайтами;
· создан интерфейс для простого и легкого соединения сервера с клиентом;
· реализована возможность быстрой адаптации системы под различные СУБД.
А также создан простой установщик системы, устраняющий для пользователя необходимость загружать файлы системы по FTP и выставлять права доступа к ним.
В будущем предполагается дальнейшее развитие и совершенствование системы создания и управления сайтами, и внедрение ее на рынок систем данного класса в сети Интернет.
сайт интернет программирование олимпиада
Библиография
1 The CMS Matrix [Электронный ресурс] / Обзор и сравнение современных CMS. - Режим доступа: http://www.cmsmatrix.org/. - Загл. с экрана. - яз. англ.
2 GOOGLE [Электронный ресурс] / Мультиязыковой Интернет-поисковик. - Режим доступа: http://google.ru/. - Загл. с экрана. - яз. рус., англ.
3 Wikipedia, the free encyclopedia [Электронный ресурс]: Cвободная общедоступная многоязычная универсальная энциклопедия. - Режим доступа: http://en.wikipedia.org/wiki/Main_Page. - Загл. с экрана. - яз. англ.
4 HTMLBOOK.RU [Электронный ресурс] / Сайт посвященный языку HTML, CSS, веб-дизайну, графике и процессу создания сайтов. - Режим доступа: http://htmlbook.ru/. - Загл. с экрана. - яз. рус.
5 PHP Manual [Электронный ресурс] / Официальная документация PHP. - Режим доступа: http://www.php.net/manual/en/. - Загл. с экрана. - яз. англ.
6 W3Schools [Электронный ресурс] / Портал для веб-разработчиков. - Режим доступа: http://www.w3schools.com/. - Загл. с экрана. - яз. англ.
7 СанПиН 2.2.2/2.4.1340-03 [Электронный ресурс] / Санитарные правила и нормы. Режим доступа: http://www.niiot.ru/doc/doc055/doc_00.htm. - Загл. с экрана. - яз. рус.
Размещено на Allbest.ru
Подобные документы
Анализ существующих систем создания и управления сайтами, их общая характеристика и оценка функциональности на современном этапе. Требования к серверной части, средства ее разработки. Тестирование интерфейса. Формирование руководства пользователя.
дипломная работа [1,0 M], добавлен 11.04.2012Проектирование информационной системы на основе архитектуры "файл-сервер", "клиент-сервер", многоуровневой архитектуры, Intranet-системы. Преимущества и недостатки файл-серверного подхода при обеспечении многопользовательского доступа к базе данных.
лабораторная работа [220,5 K], добавлен 02.02.2015Среды передачи данных, топологии локальных сетей. Сравнение средств разработки Microsoft, выбор системы управления базами данных. Описание серверной и клиентской части приложения. Внедрение системы оперативного документооборота на данное предприятие.
дипломная работа [3,5 M], добавлен 12.01.2012Сравнение клиент-серверной и файл-серверной архитектуры. Особенности разработки проекта автоматизированной информационной системы "Ведение протокола нерешенных задач по материалам для ЗАО "Авиастар-СП". Расчет экономической эффективности от внедрения АИС.
курсовая работа [1,4 M], добавлен 23.06.2011Анализ системы дистанционного практикума по программированию. Модернизация ядра системы для работы с новым конфигурационным файлом. Программная реализация изменений в базе данных и веб-интерфейсе пользователя. Разработка инструкции для участника олимпиад.
дипломная работа [1,1 M], добавлен 09.11.2016Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.
курсовая работа [302,0 K], добавлен 30.01.2012Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Методика и основные этапы разработки системы тестирования для оценки уровня знаний студентов с применением технологии "Клиент-сервер". Проектирование клиентской, серверной части данной системы тестирования, порядок составления финальных отчетов.
дипломная работа [587,6 K], добавлен 08.11.2010Описания системы управления контентом сайта, предназначенной для создания, внедрения и управления коммерческими или некоммерческими веб-сайтами и порталами. Возможности системы DotNetNuke. Анализ функций управления контентом. Установка сайта на сервер.
курсовая работа [2,9 M], добавлен 11.01.2015Проектирование и разработка базы данных в РСУБД Firebird. Последовательность создания приложения, основанного на клиент-серверной технологии и работающего в операционной системе Windows. Хранимые процедуры и триггеры. Доступ к сети и транзакции.
курсовая работа [2,6 M], добавлен 27.07.2013