Смекни!
smekni.com

Разработка компьютерного лабораторного практикума "Теория оптимизации и численные методы" (стр. 7 из 12)

2.2 Анализ программных средств

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

Выбор основывается на способности программной среды выполнять поставленные задачи в рамках выбранной архитектуры.

2.2.1 Свободное программное обеспечение

В дипломном проекте используется свободное (свободно распространяемое) программное обеспечение. В последнее время в мире все большее развитие получило движение за свободное программное обеспечение. «Свободное программное обеспечение» означает свободу, а не цену. «Свобода ПО» означает право пользователя свободно запускать, копировать, распространять, изучать, изменять и улучшать его.

В настоящее время большинство создаваемых в мире программных продуктов распространяется потребителям в соответствии с условиями пользовательского соглашения. Обычно это соглашение закрепляет программный продукт как объект авторского права. Этот объект не передается в собственность потребителю, а принадлежит изговотовителю, а передается только права использовать этот продукт на определенных условиях. Эти условия, как правило, запрещают практически все другие действия с программами, кроме тех, для которых она предназначена.

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

Основными общественными организациями, продвигающими свободное программное обеспечение, являются международные Free software foundation (FSF) и проект GNU, цель которого — создание полностью свободной операционной системы. С большим количеством материалов по данной теме можно ознакомиться на сайтах этих организаций в интернете.

2.2.2 Серверные программные средства

Для реализации клиент-серверной модели можно пойти путем создания отдельно клиентской части, отдельно серверной части и разработать протокол на уровне операционной системы, посредством которого эти части будут сообщаться.

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

Преимущества и недостатки этих двух подходов представлены для сравнения в таблице 2.2.

Таблица 2.2 Преимущества и недостатки готовых решений

Характеристика Разработка своими силами Использование готовых решений
Трудоемкость Высокая Низкая
Надежность Повышенная Низкая
Скорость работы Высокая Низкая
Требуемые знания Протоколы взаимодействия ОС Знание используемого продукта
Использование памяти Практически отсутствует Используется дополнительная память

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

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

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

Таблица 2.3 Сравнение HTTP-серверов

Характеристика Apache Microsoft IIS ngnix
Разработчик Apache Microsoft Игорь Сысоев
Условия распространения Свободно Совместно с MS Windows Свободно
Настройка Конфигурационные файлы Графический интерфейс Конфигурационные файлы
Трудоемкость настройки Высокая, требуются специальные знания Средняя Высокая, требуются специальные знания
Операционная система UNIX-подобные Microsoft Windows UNIX-подобные

Как мы видим, Apache и ngnix более универсальны, но требуют более тщательной настройки. В дипломной работе используется веб-сервер Apache, но возможен переход и к другому веб-серверу, если он будет поддерживать используемые технологии.

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

2.2.3 Клиентские программные средства

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

- Javascript

- CSS

- XSLT

- Cookies

Данным требованиям удовлетворяют наиболее популярные веб браузеры, созданные в последнее время, работа программ тестировалась в браузерах Mozilla Firefox версий 2 и 3 и Microsoft Internet Explorer версий 6 и 7.

Javascript — это язык программирования, единственный в настоящее время, который используется в веб-браузерах для программирования действий на HTML страницах. Язык обладает богатыми возможностями, поддерживает работу с объектами и позволяет подключать дополнительные библиотеки, реализующие в готовом виде многие требуемые операции.

При создании форм приложений в формате HTML в составе программного продукта желательно, чтобы эти страницы имели одинаковое оформление элементов управления и отображения информации. В настоящее время для этого разработана технология CSS (Cascading Style Sheets), которая описывает задание общих параметров отображения на уровнях иерархии элементов управления.

Условия задания требуют отображения составленных программой графиков, но у различных веб-браузеров до сих пор нет единой реализации набора процедур для использования возможностей рисования. Наиболее распространенная модель, SVG, работает в большинстве браузеров, но не работает в Microsoft Internet Explorer. Поскольку данный браузер широко используется на практике, то игнорирование его недопустимо. Поэтому применяется специальная библиотека Dojo, которая реализует рисование графиков в любом веб-браузере, используя технологии SVG, VML, Silverlight, когда они доступны.

Также используется библиотека Jquery, облегчающая написание кода работы с элементами управления в окнах программы и выполнение запросов на сервер.

2.3 Описание практикума

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

Клиентская часть практикума обеспечивает работу пользовательского интерфейса и позволяет пользователям подключаться к серверной части и выполнять выданное им задание (рис 2.1).

Рисунок 2.1 Клиент-серверная архитектура

Библиотека алгоритмов, использующаяся в практикуме, состоит главным образом из алгоритмов расчета методов оптимизации и алгоритмов построения линий уровня, которые хранятся в библиотеке алгоритмов. Серверная часть использует алгоритмы расчета методов оптимизации для работы методов, а клиентская часть отвечает за рисование линий уровня и использует соответствующие алгоритмы. Общая схема работы алгоритмической части представлена на рис.2.2


Рисунок 2.2.Алгоритмическая часть

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

Также в состав практикума входит справочная система, содержащая основные сведения по работе с практикумом.

Общая последовательность операций при работе с практикумом представлен на рис. 2.3


Рисунок 2.3. Функциональная схема практикума

2.3.1 Описание серверной части

Серверная часть состоит из набора HTML-страниц программ на языке PHP. HTML-страницы обеспечивают отображение пользовательского интерфейса и справочной системы, а PHP-программы — хранение информации о проводимых работах, произведение математических расчетов и ведение отчетности.