Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vkr.doc
Скачиваний:
109
Добавлен:
11.05.2015
Размер:
1.89 Mб
Скачать

1.5Выбор средств реализации

Создаваемая АИС будет иметь клиент-серверную архитектуру, при которой функции хранения и обработки данных реализуются серверной компонентой, функционирующей на централизованном сервере приложений и базы данных, а клиентская компонента функционирует на ПЭВМ пользователя АИС и реализует функции представления данных.

Представляется целесообразным предоставить пользователю возможность пользоваться этой системой без необходимости установки на свой компьютер дополнительного программного обеспечения. Для этого разрабатываемая АИС будет иметь клиент-серверную архитектуру, в которой клиентской частью выступит браузер («обозреватель» в терминологии операционной системы MicrosoftWindows), имеющийся в составе современной операционной системы. Клиентская компонента обеспечит получение информации от пользователя и предоставление пользователю результатов работы серверной компоненты. Обработка и хранение информации будет осуществляться серверной компонентой АИС.

Состав серверной компоненты АИС изображен на рисунке 1.2 и включает:

  • базу данных под управлением системы управления базами данных (далее - СУБД);

  • сервер приложений (реализует основную логику АИС);

  • веб-сервер (передает запросы клиента серверу приложений, а ответы сервера приложений - клиенту).

Рисунок 1.1– Клиент-серверная архитектура АИС

Применение такой архитектуры имеет следующие преимущества:

  • снижение аппаратных требований к ПЭВМ пользователя АИС, поскольку все вычисления физически выполняются на сервере;

  • все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.

В то же время клиент-серверная архитектура приложения имеет свои слабые стороны, которые в данном случае можно попытаться избежать. К примеру, неработоспособность серверной компоненты АИС может сделать неработоспособной всю АИС. Этого можно избежать размещением сервера в датацентре, специально оснащенном для поддержания оптимальных условий работы оборудования, а также регулярным резервированием данных для минимизации времени простоя в случае выходя сервера из строя.

Для полноценного функционирования приложений клиент-серверной архитектуры часто требуется мощный сервер, что влечет за собой крупные расходы на приобретение оборудования необходимой мощности. Для преодоления данного недостатка возможно не покупать собственный физический сервер, а арендовать сервер в датацентре. В качестве дальнейшего развития идеи ухода от приобретения собственных серверов возможно арендовать в датацентре не физический сервер, а т.н. «облачные» вычислительные мощности в виде виртуальных машин и виртуальных хранилищ данных. Данные технологии успешно продвигаются на рынке хостинга и зарекомендовали себя как достаточно надежные и производительные.

Поскольку в качестве клиентской компоненты будет использован браузер, необходимо спроектировать и создать только серверную компоненту АИС.

К операционной системе (далее - ОС) сервера выдвигаются следующие требования:

  • требование надежности (операционная система должна позволять пользователям и системным администраторам восстанавливать предыдущее состояние компьютерной системы без потери данных);

  • требование защиты информации (операционная система должна иметь средства аутентификации, идентификации, аудита доступа к информации);

  • требование минимизации затрат на сопровождение и поддержку;

  • требование эргономичности.

ОС для серверов часто условно разбивают на три класса:

  • семейство проприетарных ОС MicrosoftWindows;

  • семейство проприетарных ОС UNIX;

  • семейство UNIX-подобных открытых ОС (с открытым кодом и свободно распространяемых).

В рамках данного проекта выбор сделан в пользу UNIX-подобных свободно распространяемых ОС, удовлетворяющих всем требованиям надежности, защиты информации, мобильности, масштабируемости, минимизации затрат на сопровождение и поддержку, эргономичности, описанным выше. Их отличительной чертой является возможность полноценного удаленного администрирования без применения стороннего ПО, чего нет (прямо) в ОС семействаMicrosoftWindows, если сервер и клиент не находятся в одной сети. Кроме того, свободная распространяемость указанных ОС позволит избежать дополнительных денежных затрат на приобретение лицензий, как в случае с проприетарными ОС. Из выбранного класса ОС большое распространение в датацентрах хостинговых компаний получили ОСUbuntu,CentOS,Fedora. В нашем случае эти ОС предоставляют практически одинаковое окружение и условия для функционирования компонент разрабатываемой АИС, поэтому выбор конкретного дистрибутива из указанных значения не имеет.

Для реализации базового функционала (ядра) серверной компоненты представляется целесообразным использовать готовый сторонний программный продукт, который реализовывал бы базовые функции разрабатываемой АИС и предоставлял бы средства для расширения функционала путем создания и подключения дополнительных модулей.

В рамках данного проекта в качестве ядра системы выбран и будет использоваться программный продукт WHMCSпроизводства компании WHMCS Limited, к которому будут написаны дополнительные модули, реализующие необходимые для разрабатываемой системы функции.

Основные возможности WHMCS:

  • реализован базовый функционал по учету заказчиков (клиентов) и их заказов;

  • встроенные средства разделения и управления доступом пользователей к функциональным модулям системы;

  • поддержка взаимодействия со многими современными платежными системами;

  • встроенные средства для организации службы поддержки пользователей;

  • встроенные средства для индивидуальной или массовой почтовой рассылки уведомлений;

  • возможность изменения пользовательского интерфейса с помощью механизма шаблонов;

  • встроенные средства для организации регулярного резервного копирования информации, содержащейся в базе данных.

Также преимуществами WHMCS являются полноценная поддержка со стороны разработчика, оперативное устранение выявленных ошибок и неточностей в коде продукта, консультирование пользователей, дальнейшее развитие и регулярный выпуск обновлений продукта. Кроме того, WHMCSпредоставляет удобный и хорошо документированный интерфейс программирования приложений (API) для расширения функционала с помощью дополнительных модулей.

WHMCSнаписан на языке программированияPHPи использует базу данных под управлением СУБД MySQL.

Для обеспечения полной совместимости ядра системы с модулями, подлежащими разработке в рамках данной работы, код модулей будет написан также на PHP, а необходимые новым модулям таблицы данных будут встроены в существующую структуру базы данных ядра системы.

MySQL обладает такими качествами как:

  • возможность полноценного функционирования в окружении, предоставляемом выбранной операционной системой;

  • производительность (IT-корпорации Google и Yahoo используют для построения хранилищ своих данных именно MySQL);

  • масштабируемость (в компании Omniture в реальном масштабе времени одновременно используются и взаимодействуют друг с другом 7000 серверов MySQL);

  • надежность (MySQL позволяет восстанавливать предыдущее состояние СУБД без потери данных);

  • требование защиты информации (MySQLобладает средствами идентификации, аутентификации и авторизации субъектов доступа, имеет возможность разграничения доступа к объектам базы данных – различные группы пользователей могут иметь разные права на доступ к объектам базы данных);

  • требование модифицируемости (база данных MySQL легко расширяема при помощи добавления новых объектов);

  • простота внедрения, использования и сопровождения (за 15 минут можно скачать, установить и запустить полностью работающую систему);

  • минимальные совокупные затраты, поскольку сама СУБД распространяется свободно по лицензии GNU General Public License и ее использование в данном проекте не потребует приобретения платных лицензий;

  • полноценная поддержка данной СУБД датацентрами, предоставляющими услуги облачного хостинга, т.е. аренды вычислительных мощностей в виде виртуальных машин и виртуальных хранилищ данных.

PHP- скриптовый язык программирования общего назначения, широко применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов. Огромное количество веб-сайтов в Интернете написано на PHP, включая таких гигантов как Wikipedia, Facebook, Digg, WordPress. Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект свободно распространяется под собственной лицензией.

В области программирования для сети Интернет PHP - один из популярных скриптовых языков (наряду с JSP, Perl, языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP. Некоторые характеристики PHP для разработки веб-приложений:

  • автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

  • взаимодействие с большим количеством различных СУБД (MySQL, PostgreSQL, Oracle, Microsoft SQL Server, Sybase и др.);

  • автоматизированная отправка HTTP-заголовков;

  • полноценная работа с HTTP-авторизацией, cookies и сессиями;

  • работа с локальными и удалёнными файлами, сокетами;

  • обработка файлов, загружаемых на сервер;

  • средства для автоматического управления памятью (вся выделенная память возвращается системе после завершения работы скрипта) [1].

Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в декабре 2012 года PHP находился на 6 месте среди языков программирования. Альтернативные PHPязыки программированияPythonиPerlнаходятся на 8 и 9 местах соответственно [2].

PHPпрост в изучении и достаточно функционален для реализации требуемого функционала разрабатываемой АИС.

Следует учесть, что написание приложения на «чистом» языке программирования потребует привлечения больших ресурсов. Имеется возможность сократить сроки разработки и уменьшить трудозатраты на создание АИС, используя как готовое стороннее ПО для реализации отдельных функций АИС, так и т.н. «фреймворки» - своеобразные конструкторы для быстрого создания приложений.

Фреймворк (англ. framework, Каркас) - структура программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. В отличие от библиотек, которые объединяют набор подпрограмм близкой функциональности, фреймворк содержит в себе большое количество разных по назначению библиотек. Также отличается от библиотеки тем, что выполняет код, написанный для него, а не исполняется непосредственно сам.

В настоящее время для быстрой разработки приложений на PHP распространены и активно развиваются такие фреймворки как Zend Framework, CakePHP, Symfony, CodeIgniter, Kohana, Yii [3].

Выбор того или иного фреймворка целесообразно основывать на балансе имеющихся в распоряжении разработчика трудовых ресурсов, имеющихся навыков работы с той или иной технологией, трудоемкости освоения и использования фреймворка, а также необходимом уровне производительности и отказоустойчивости создаваемой АИС.

По результатам сравнительного тестирования производительности фреймворков [4, 5, 6, 7, 8] среди PHP-фреймворков наибольшую скорость обработки запросов и отказоустойчивость в совокупности с простотой установки и использования обеспечивает CodeIgniter.

CodeIgniter отличает простота, которая достигается благодаря следующим факторам:

  • дает свободу программисту, не создавая каких-либо структурных ограничений и конвенций;

  • поддерживает СУБД MySQL, PostgreSQL, MSSQL, SQLite, Oracle;

  • содержит в себе множество необходимых библиотек, которые реализуют функционал для работы с файлами, отправки электронных писем, проверки входных значений, поддержки сессий, работы с изображениями и так далее;

  • легко расширяется за счет возможности использования сторонних и самописных библиотек, а также дополнения или переопределения существующих;

  • имеет качественную и полную документацию с примерами, а также большое сообщество пользователей и множество видео-уроков, которые можно найти как на официальном сайте, так и на сторонних ресурсах.

CodeIgniter работает на любом UNIX-подобном сервере, который имеет поддержку PHP версии 5.1 и выше, и считается одним из наиболее нетребовательных к ресурсам сервера.

В итоге для реализации бизнес-логики АИС выбраны программный продукт WHMCS, СУБД MySQL , язык программирования PHPи фреймворкCodeIgniter.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]