В статье описан способ применения web-технологий при разработке систем учета оборудования, который позволяет реализовать свободный, быстрый и дешевый доступ к информации.
Любой современной организации размером более одного офиса, как правило, требуется большое количество различной техники. Если учесть необходимость в периодическом ремонте этого оборудования, то перед людьми, занимающимися обслуживанием этого оборудования, становится непростая задача управления огромными объемами данных. В таких условиях острой проблемой становится разработка автоматизированной системы регистрации и контроля оборудования в организации.
Поскольку в условиях университета различные единицы оборудования могут быть разнесены в пространстве на значительное расстояние, то для их обслуживания выделяются отделы по местоположению. Работникам различных отделов, обслуживающих оборудование, необходимо иметь доступ к автоматизированной компьютерной системе учета оборудования в любой момент времени и из любой удобной для них точки (с доступом в локальную сеть университета). В то же время разделять базу данных оборудования по отделам, в которых оно установлено, не имеет смысла, так как каждый оператор-системотехник должен получать доступ ко всей базе данных. В перспективе эта база также должна использоваться бухгалтерией. К тому же стоит учесть тот факт, что на доступных операторам машинах могут быть установлены различные операционные системы.
Таким образом, разрабатываемая система должна обладать и мультиплатформенностью. Изложенные требования при разработке данной автоматизированной системы можно удовлетворить применением web-технологий, которые позволяют реализовать свободный, быстрый и дешевый доступ к информации. Так как такая система должна содержать не только статический, но и динамический контент, для ее реализации может быть выбран скриптовый язык PHP в связке с базой данных MySQL. Выбор обусловлен их популярностью, доступностью и универсальностью
PHP – это скриптовый язык программирования общего назначения, в настоящее время интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания веб-сайтов с динамическим контентом. Еще одним плюсом PHP является тот факт, что проект распространяется по бесплатной лицензии.
Разрабатываемая система учета оборудования должна иметь модульную структуру, чтобы ее можно было при необходимости модифицировать и привести в соответствие к изменившимся требованиям, без необходимости разработки системы «с нуля». Добиться такой структуры позволяет объектно-ориентированный подход к программированию.
На данный момент PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка. Сейчас PHP поддерживает все три основных механизма ООП: инкапсуляцию, полиморфизм и наследование [1]. Поддерживаются интерфейсы, причем класс может реализовывать сразу несколько интерфейсов. Разрешается объявление финальных и абстрактных классов. Таким образом, PHP вполне соответствует выдвинутым выше требованиям к языку разработки системы учета оборудования.
При использовании веб-технологий сама система будет находиться на отдельном сервере, доступ к ней будет осуществляться по средствам локальной сети. На любой машине с установленным интернет-браузером будет гарантироваться правильная работа системы. На сервере можно установить Apache HTTP-сервер, который и будет использован как серверная платформа для запуска системы.
Apache является кроссплатформенным программным обеспечением и поддерживает большинство из ныне существующих операционных систем, таких как Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. Apache HTTP-сервер (httpd) — свободный веб-сервер. Основными достоинствами Apache считаются надѐжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д.
Apache поддерживает множество языков программирования и систем разработки, среди которых есть PHP, Python, Ruby, Perl и другие. Кроме того Apache поддерживает механизмы CGI, что позволяет исполнять программы на языках не являющихся изначально веб-ориентированными (С, C++, Java и т.д.).
Такое многообразие поддерживаемых языков программирования позволяет разработчику использовать взаимодействующие куски кода, написанные на разных языках программирования, и обеспечивать обмен данными между ними.
Кроме того, Apache предоставляет в распоряжение разработчика мощные механизмы для обеспечения безопасности и организации разграничения доступа к данным. Средствами Apache возможна организация механизма авторизации пользователей для доступа к директории по методу HTTP-авторизации, digest-авторизации или методами СУБД, ограничения доступа к определенным директориям и файлам, типам файлов в зависимости от привилегий или IP пользователей. С помощью механизма suexec возможен запуск CGI-приложений с правами и идентификационными данными пользователя [2]. Для реализации шифрования данных Apache может предложить механизм SSL, реализованный через библиотеку OpenSSL. Для удостоверения подлинности веб-сервера в Apache используются сертификаты X.509.
Разрабатываемая система учета оборудования будет хранить в себе множество конфиденциальной и даже потенциально опасной информации, поэтому организации безопасности данных должно быть уделено пристальное внимание. Данные могут быть уязвимы как на сервере СУБД, так и во время передачи между сервером и клиентом. Описанный выше спектр защитных механизмов Apache способен существенно снизить опасность перехвата или искажения информации в системе.
В качестве упомянутой выше СУБД предпочтительней использовать MySQL. MySQL — свободная система управления базами данных (СУБД) являющаяся решением для малых и средних приложений [3]. Входит в состав серверов WAMP, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалѐнные клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL. Однако по условиям GPL, если какая-либо программа включает исходные коды MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия. В данном случае используется лицензия GPL, т.е. для разработки системы не потребуются дополнительные затраты на приобретение дополнительного программного обеспечения.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Подобные таблицы позволяют избежать потерь данных при редактировании либо занесении в базу данных новых записей. Поддержка различных типов ячеек позволяет хранить в базе данных любые требующиеся сведения об имеющемся на предприятии оборудовании. Гибкий язык SQL запросов так же позволяет производить выборку данных абсолютно по любым критериям, записанным в БД, что существенно облегчает поиск оборудования, а также формирование всяческих отчетов. Отчеты представляют собой выборку данных по необходимым пользователю критериям, вставленным в соответствующий веб-шаблон, который затем может быть либо отправлен на печать, либо сохранен на компьютере пользователя. Веб-шаблон является инструментом для отделения содержимого от визуального представления в веб-дизайне, для массового создания веб-документов [4]. В простейшем своем смысле, веб-шаблон, функционирует аналогично документу на бланке для использования при создании веб-сайта.
Принимая к сведению описанные выше данные об веб-технологиях, можно сделать вывод, что их использование более чем уместно при разработке подобных систем учета оборудования. Их использование не несет за собой дополнительных затрат и обеспечивает приемлемую производительность, а также выполнение всех приведенных в начале статьи требований к системам учета оборудования. Для реализации этого проекта можно использовать связку «Операционная система – Apache – MySQL – PHP». Такая связка не имеет требований, чтобы на клиентской или серверной машине была установлена определенная операционная система, что позволяет сэкономить при проектировании сервера данных системы в условиях такого предприятия, как университет, установив на сервер операционную систему, распространяемую по бесплатной лицензии.
Литература
- Томсон Л., Веллинг Л. Разработка Web-приложений на PHP и MySQL. - К.: ДиаСофт, 2001. – 672 с.
- Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Практика создания Web-сайтов. - БХВ-Петербург, 2005. – 948 с.
- Яргер Р., Риз Дж., Кинг Т. MySQL и mSQL. Базы данных для небольших предприятий и Интернета. - СПб: Символ-Плюс, 2000. - 560 с.
- Суэринг С., Конверс Т., Парк Д. PHP и MySQL. Библия программиста. - Диалектика-Вильямс, - 2-е издание. – 912 с.