Построение Web-серверов на базе серверной операционной системы Microsoft Windows 2003 Server не должно принести значительные финансовые затраты на приобретение программного обеспечения. Это связанно с тем, что в настоящее время в ВС МО РФ широко распространены продукты компании Microsoft и на их закупку не придётся тратить значительные финансовые средства. Отметим, что все средства для создания Web-серверов с технологиями CGI или РНР (Web-сервер Apache, сам язык РНР) могут быть получены бесплатно без нарушений каких бы то ни было лицензий.
Выбор оптимального с точки зрения быстродействия решения возможен лишь при сравнении нескольких способов решения одной задачи с применением различных технологий.
Оптимальной платформой для проекта будет, уже ставшей классической, связка Apache+MySQL+PHP под ОС на базе Windows. Рассмотрим компоненты.
ОС Microsoft Windows 2003 Server
MW 2003 Server - это полная многозадачная многопользовательская операционная система (точно также как и другие версии Windows). Она обеспечивает полный набор протоколов TCP/IP для сетевой работы, включая драйверы устройств для многих популярных карт Ethernet, SLIP (SerialLineInternetProtocol, обеспечивающие вам доступ по TCP/IP при последовательном соединении), PLIP (ParallelLineInternetProtocol), PPP (Point-to-PointProtocol), NFS (NetworkFileSystem). Поддерживается весь спектр клиентов и услуг TCP/IP, таких как FTP, telnet, NNTP и SMTP.
Apache 3.0.1
Особенности сервера:
1. поддержка согласования кодировок клиента и сервера как при выдаче документов пользователю, так и при обработке пользовательского ввода (при вводе поддерживаются как GET, так и POST);
2. выдача правильных кодировок символов, в том числе и на кириллице;
. выдача при необходимости заголовка Expires: для proxy серверов;
. выдача корректных заголовков Vary: и ETag, в результате возможно корректное кэширование документов (если proxy-cacheсовместим с НТТР/1.1);
5. автоматическое перенаправление клиента на URL в нужной кодировке;
В сервере реализовано совмещение нескольких методов согласования кодировок клиента и сервера:
1. через заголовки клиента Accept-Charset: и/или Accept: text/x-cyrillic ... Если сервер знает о том charset, который запросил клиент, то эти заголовки имеют высший приоритет для сервера, вне зависимости от его настройки на nativecharset;
2. через поиск в имени сервера названия одной из сконфигурированных кодовых страниц;
3. через поиск в префиксе запрошенного URI названия одной из сконфигурированных кодовых страниц;
4. через явное указание соответствия "номер порта - кодировка";
5. через конфигурацию кодовых страниц по умолчанию для различных типов клиентских программ в случае, когда сервер может опознать клиентскую программу (иногда среду, в которой работает клиентская программа);
6. для разных серверов и/или директорий - по отдельности. Т.е. для каждой директории или виртуального сервера можно указать свой набор директив, которые будут работать от этого узла дерева и "ниже";
7. в случае принятия сообществом единой транспортной кодировки, необходимо будет оставить только ее в сервере, независимо от физического способа представления данных документов.
Некоторые особенности:
1. администратор сервера сам определяет - в каких случаях должны использоваться разные кодовые страницы. Администратор сервера,
2. также, может самостоятельно создавать таблицы перекодировки и
3. подключать их к серверу. Администратор сервера может указывать характерные признаки клиентской программы (User-agent: заголовок) и соответствующий данной клиентской программе charsetпо-умолчанию;
4. администратор сервера может указать клиентские программы, которые неадекватно воспринимают MIME, для них такие заголовки сервером не будут выдаваться;
5. администратор сервера может указать приоритет в выборе сервером charset между URL и User-agent;
. администратор сервера может определить реакцию сервера на некорректно запрошенный charset (т.е. выдавать ли запрошенный документ в таком случае в charsetпо-умолчанию);
СУБД MySQL 5.5SQL - это реляционная система управления базами данных. То есть данные в ее базах хранятся в виде логически связанных между собой таблиц, доступ к которым осуществляется с помощью языка запросов SQL. Mysql - свободно распространяемая система, т.е. платить за ее применение не нужно. Кроме того, это достаточно быстрая, надежная и, главное, простая в использовании СУБД, вполне подходящая для не слишком глобальных проектов.
Работать с Mysql можно не только в текстовом режиме, но и в графическом. Существует очень популярный визуальный интерфейс (кстати, написанный на PHP) для работы с этой СУБД. Называется он PhpMyAdmin. Этот интерфейс позволяет значительно упростить работу с базами данных в Mysql.позволяет пользоваться всеми достоинствами браузера, включая прокрутку изображения, если оно не умещается на экран. Многие из базовых SQLфункций работы с данными в PhpMyAdmin сведены к интуитивно понятным интерфейсам и действиям, напоминающим переход по ссылкам в Internet. Но, тем не менее, стоит все же поработать и в текстовом режиме.
Основные свойства пакета MySQL:
1. много поточность, поддержка нескольких одновременных запросов;
2. оптимизация связей с присоединением многих данных за один проход;
3. записи фиксированной и переменной длины;
4. ODBC драйвер в комплекте с исходником;
5. гибкая система привилегий и паролей;
6. до 16 ключей в таблице. Каждый ключ может иметь до 15 полей;
7. поддержка ключевых полей и специальных полей в операторе CREATE;
8. поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени;
9. интерфейс с языками С и perl;
10. основанная на потоках, быстрая система памяти;
11. утилита проверки и ремонта таблицы (Jsarnchk);
12. все данные хранятся в формате IS08859_1;
13. все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках;
14. псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице;
15. все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей;
16. легкость управления таблицей, включая добавление и удаление ключей и полей.
Программно - аппаратное обеспечение клиента
Клиентская часть системы предусматривает использование Интернет - браузера. В настоящее время Интернет - браузеры представляют собой комплексное приложение для обработки и вывода разных составляющих вебстраницы и для предоставления интерфейса между веб-сайтом и его посетителем. Практически все популярные браузеры распространяются бесплатно или "в комплекте" с другими приложениями: InternetExplorer(совместно с Microsoft Windows), Mozilla Firefox (бесплатно, свободное ПО, совместимо с некоторыми дистрибутивами Linux, например Ubuntu), Safari(совместно с MacOSX и бесплатно для Microsoft Windows), Opera
(бесплатно начиная с версии 8.50), Google Chrome (бесплатно), Avant (бесплатно). Каждый из представленных браузер имеет ряд своих преимуществ и недостатков. Для выбора одного из них для использования на клиентской части создаваемой системы, за основу были взяты результаты испытательных исследований. Эти исследования проводились специалистами компании Tom'shardwareguide. Исследования проводились с целью определения следующего перечня характеристик каждого браузера:
1. времени запуска;
2. использования памяти;
. соответствия стандартам языка javascript;
. соответствие стандартов языка разметки HTML 5 и CSS.
Наиболее выгодным по результатам проведённого исследования представляется браузер Google Chrome. Этот браузер решено взять на вооружение клиентской части системы. Помимо хороших рекомендаций полученных от исследователей, он имеет ряд преимуществ. Он распространяется совершенно бесплатно, имеет открытый программный код, а также легко расширяем за счёт установки новых плагинов.
На основании разработанной во второй главе модели был создан программный прототип, включающий в себя следующие подсистемы:
1. подсистема регистрации пользователей;
2. подсистема идентификации и авторизации пользователей;
3. подсистема первоначального ввода и редактирования личных данных;
4. подсистема просмотра информации о пользователе;
5. подсистема обмена личными сообщениями между пользователями;
6. подсистема планирования, распределения и учета нарядов;
7. подсистема просмотра нарядов;
8. подсистема администрирования.
Главная страница представляет собой календарь на месяц и меню в верхней
части страницы, содержащее две ссылки, с помощью которых можно перейти в
подсистемы "идентификации и авторизации" и "регистрации
пользователей".
Рисунок 11 - Главная страница сайта
Зарегистрироваться в системе может любой желающий в одной из 5 категорий профиля:
2. начальник факультета;
. начальник кафедры;
. офицер кафедры;
. офицер факультета;
Рисунок 12 - Выбор категории профиля
10
При регистрации в целях безопасности пароль записывается в базу данных в зашифрованном виде.
Ниже представлена страница регистрации нового пользователя. Для успешного прохождения данной подсистемы необходимо правильно заполнить поля:
1. тип профиля;
2. фамилия военнослужащего, длина должна быть не менее 2 символов и не более 20;
3. пароль должен содержать не менее 3 и не более 100 символов;
4. подтверждение пароля для того, чтобы подтвердить, что пользователь не сделал ошибку в поле "пароль".
После чего необходимо нажать на кнопку "Регистрироваться"(2).
При правильном заполнении указанных полей и в случае
отсутствия пользователя с такой же фамилией в базе данных система выведет сообщение
о том, что регистрация прошла успешно в противном случае сообщение об ошибке.
Затем дождаться, чтобы администратор системы подтвердил регистрацию вашего
профиля, и перейти в подсистему идентификации и авторизации, перейдя по ссылке
"Войти"(1).
Рисунок 13 - Страница регистрации нового пользователя в системе
Для того чтобы попасть в защищенную часть сайта требуется пройти систему "идентификации и авторизации". Для этого нужно заполнить следующие поля:
1. выбрать тип профиля;
2. фамилия, вводимая при регистрации;
3. пароль.
Затем нажать кнопку "Войти"(1). Если администратор системы еще
не активировал профиль пользователя, системой будет выведено сообщение об
ошибке(2). Если поля введены не корректно системой будет выведено сообщение об
ошибке(3). В противном случае авторизация пройдет успешно(4) и пользователь
будет переадресован в подсистему "Просмотра профиля".
Рисунок 14 - Страница подсистемы "идентификации и авторизации"
Данная подсистема служит для отображения информации о любом пользователе
системы. По нажатию на кнопку "Редактировать профиль"(1) переходим в
подсистему "Первоначального ввода и редактирования личных данных" При
нажатии на кнопку "Посмотреть наряды"(2) или ссылку в меню(7)
"Мои наряды" переходим в подсистему "Просмотра нарядов".
При нажатии на кнопку "Отправить сообщение"(3) переходим в подсистему
"Отправки личных сообщений". При нажатии на ссылку "Выйти".
Происходит выход пользователя из защищенной части системы.
Рисунок
15 - Страница подсистемы "Просмотра профиля"
При нажатии на ссылку "Свои наряды"(4) открывается сводная
ведомость нарядов на пользователя.
Рисунок
16 - Подсистема "Просмотра профиля", сводная ведомость нарядов на
пользователя
При нажатии на ссылку "Наряды за подразделение"(5) открывается
сводная ведомость нарядов на подчиненное подразделение пользователя, если такое
имеется. Сводная ведомость автоматически обновляется в зависимости, какие типы
нарядов(9) и на какой период времени(10) выбраны. Также имеется возможность
распечатать ведомость, для этого необходимо нажать на значок печати (11).
Рисунок
17 - Подсистема "Просмотра профиля", сводная ведомость нарядов на
подчиненное подразделение пользователя