Роль программиста серверной части в командной разработке интеллектуального web-приложения как системного продукта

Минюров Е.С.

Шарипов Д.М.

 

Создание web-приложений[1] сегодня считается одним из перспективных направлений деятельности в сфере высокотехнологичных цифровых и компьютерных технологий. Разработка web-приложений стало актуальной темой, однако сегодня, с развитием интернет-технологий, работа в этой сфере существенно усложнилась, и одиночкам уже не справиться с поставленными задачами. Постепенно эта сфера деятельности переходит в руки небольших команд разработчиков.

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

Программистам серверной части Шарипову Д.М., Минюрову Е.С. требовалось выполнить разработку приложения. Для этой цели нами был выбран язык парадигмы логического программирования SWI-Prolog. Новизна решения задачи заключалась в поиске специализированного сервера, работающего под SWI-Prolog. Обычно используется сервер Apache, но для решения данной задачи было целесообразнее использовать Open Source сервер, так как эта среда программирования позволяет решать логические задачи. Таким образом, в качестве сервера нами использовался Open Source сервер от SWI-Prolog, а в качестве клиента – браузер.

Основная задача заключалась в том, чтобы реализовать приложение согласно спецификациям в установленные сроки (Написать 2 модуля: модуль для работы сервера, модуль решателя для игры “Восемь”). Программисты клиентской части занимались:

1) Сборкой продукта (Сборка модулей);

2) Устранением дефектов (Устранение возникших неполадок, исправление ошибок в коде);

3) Реализацией задач по разработке (Написание кода на языке Swi-Prolog).

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

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

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

Создание любого программного продукта высокого уровня связано с рисками.

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

2. Также риском являлось использование SWI-Prolog в качестве языка программирования, в частности был затруднителен анализ и парсинг сервером ответа от клиента с точки зрения SWI-Prolog. Риск был снят доскональным изучением SWI-Prolog и выполнением учебных программ.

В результате проделанной работы нам удалось создать два функционирующих модуля:

1 Модуль для работы сервера

1. Запуск сервера;

2. обмен сообщениями между сервером и клиентом;

3. остановка работы сервера.

2 Модуль решателя

1. Получение сообщения от клиента;

2. обработка полученного сообщения;

3. построение графа поиска решения игры;

4. передача сообщения клиенту.

Написанные программы помогли получить общее представление о клиент-серверных технологиях конкретно в SWI-Prolog. Кроме того, с их помощью на начальных этапах осуществлялось предварительное тестирование программы на предмет работоспособности. Все заданные функции спроектированных модулей были успешно реализованы. Отдельную благодарность за помощь в разработке модулей хотелось бы выразить менеджеру проекта – Вахитову Антону, и руководителю проекта – Клюкину Виктору Эммануиловичу.


Литература

1 Википедия [Электронный ресурс] – режим доступа: ru.wikipedia.org/wiki/Веб-приложение;

2 Microsoft® Solutions Framework «Гибкая методология разработки программного обеспечения» – Москва: «Русская редакция», 2008.

 

Контакты

  1. Минюров Е.С. minyurovevgeniy@mail.ru
  2. Шарипов Д.М. dan999999@rambler.ru

[1] Web-приложение — клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются межплатформенными сервисами.