УДК 004.94
А.С. Неведров, А.Г. Олейник
ФГБУН Институт информатики и математического моделирования технологических процессов КНЦ РАН
Кольский филиал ПетрГУ
ОРГАНИЗАЦИЯ РАСПРЕДЕЛЕННОЙ ИСПОЛНИТЕЛЬНОЙ СРЕДЫ ДЛЯ ПОВЫШЕНИЯ ЭФФЕКТИВНОСТИ МОДЕЛИРОВАНИЯ СЛОЖНЫХ ПРОИЗВОДСТВЕННЫХ ПРОЦЕССОВ*
Аннотация
В работе рассмотрены вопросы организации исполнительной среды обработки информации и моделирования при исследовании и поддержке управления производственными процессами обогащения минеральных полезных ископаемых. Основное внимание уделено сервис-ориентированной архитектуре исполнительной среды.
Ключевые слова:
компьютерное моделирование, производственный процесс, распределенная среда, сервис-ориентированная архитектура.
A.S. Nevedrov, A.G. Oleynik
ORGANIZATION OF THE DISTRIBUTED EXECUTION ENVIRONMENT TO IMPROVE THE EFFICIENCY OF COMPLEX INDUSTRIAL PROCESSES MODELING
Abstract
The paper deals with the organization of the executive environment for information processing and modeling in the investigation and the control support of the industrial mineral dressing processes. The focus is on service-oriented architecture of the executive environment.
Key words:
rnmputer modeling, industrial process, distributed environment, service-oriented architecture. Введение
В рамках использования средств компьютерного моделирования для разработки и совершенствования аппаратов и технологических схем обогащения полезных ископаемых, а также оперативного управления производственными процессами обогащения, отдельное внимание должно уделяться вопросу эффективной организации исполнительной среды моделирования. В зависимости от целей моделирования приоритетные требования к его реализации различны. Так на «исследовательском» этапе, целью которого является определение эффективных конструкций аппаратов, режимов и схем разделения минеральных компонентов, приоритетным требованием будет точность моделей, обеспечивающая необходимую детальность представления объекта исследования, а быстродействие моделей - второстепенным. Модели, интегрируемые
* Работа выполнена при поддержке гранта РФФИ №12-07-98800-р_север_а «Разработка моделей и информационной технологии прогнозирования параметров производственных процессов обогащения руд».
в контур оперативного управления производственными процессами, напротив, должны отвечать жестким временным ограничениям на получение результата, точность которого предъявляются более мягкие требования. На сегодняшний день существует целый ряд инструментальных средств компьютерного моделирования и инженерных расчетов, позволяющих использовать различные математические методы для создания моделей обогатительных процессов [1]. Так для исследования конструкций и режимов функционирования разделительных аппаратов активно применяются инструментальные средства, реализующие методы вычислительной гидро-аэродинамики (CFD-пакеты). Они обеспечивают возможность построения моделей, детально отражающих движение минеральных частиц в объеме разделительных аппаратов, но являются довольно ресурсоемкими. Для повышения скорости вычислений многие инструментальные средства данной категории имеют встроенные механизмы распараллеливания на основе MPI (Message Passing Interface). К другой категории относятся модели, основанные на использовании метода системной динамики. Такие модели предназначены не для изучения деталей процессов разделения, а обеспечивают «укрупненную» имитацию разделительного процесса с целью оперативной оценки влияния вариабельности его параметров на значения характеристик выходных продуктов, или других контролируемых показателей. Модели данного типа позволяют достаточно быстро получить результат варианта вычислительного эксперимента, что делает их перспективными с точки зрения использования в контуре оперативного управления производственными процессами обогащения. Системно-динамическая модель может быть создана как для отдельного разделительного аппарата, так и для их комплекса, или всей схемы обогащения в целом. Аналогичными свойствами, с точки зрения оперативности получения результата, обладают средства Steady-state моделирования. Они реализуют одношаговый метод анализа (без зависимости от времени), который позволяет получить решения по усредненным характеристикам, используя эмпирические формулы.
Пути повышения скорости расчетов при моделировании производственных процессов
В исследованиях рассматривались два механизма ускорения расчетов, выполняемых моделями обогатительных процессов и аппаратов. Первый -распараллеливание вычислений. Второй - выбор состава и структуры исполнительной среды из некоторого набора доступных программных и аппаратных ресурсов, обеспечивающих наиболее эффективную реализацию конкретного вычислительного эксперимента. Очевидно, что наибольший эффект дает решение, в рамках которого эти два варианта используются совместно. Современные технологии предоставляют различные варианты аппаратной поддержки параллельных вычислений. Использование многопоточных графических процессоров (GPU - Graphical Processing Unit) позволяет реализовать высокопроизводительные параллельные вычисления на персональном компьютере. Подобные экономичные решения используются в мировой практике в качестве аппаратной платформы для симуляции различных процессов и выполнения инженерных расчетов высокой размерности. Эффективным, с точки зрения производительности, является использование специализированных
многопроцессорных вычислительных кластеров. Но данный вариант имеет ограниченное применение из-за высокой стоимости аппаратного решения. Учитывая общий уровень развития телекоммуникационных систем, глобальной информационной инфраструктуры и рост популярности облачных вычислений (от англ. cloud computing) [2], перспективным является использование
существующих в облаках программных и аппаратных ресурсов при решении различных задач в области исследования процессов обогащения. Очевидно, что далеко не все задачи конкретного исследования могут быть решены на основе их использования, но обращение к ним может существенно сократить объем необходимых авторских разработок. Для обращения к представленным в облаках программным разработкам предлагаются технологии, получившие в «облачной» терминологии название SaaS (от англ. Software-as-a-Service) -
Программное обеспечение как услуга. Они обеспечивают потребителю возможность использовать ресурсы облака, обращаясь к ним через клиентские устройства, в результате чего собственная программно-аппаратная база клиента может быть существенно упрощена. Для организации уровня SaaS наиболее подходящей является сервис-ориентированная архитектура, согласно которой каждый программный компонент представляется в виде сервиса с четко определенным интерфейсом. Это позволяет взаимодействовать гетерогенным программным средствам, доступ к возможностям которых осуществляется с помощью адаптера (обычно, web-сервиса), который обрабатывает поступающие запросы и вызывает соответствующие методы.
Типовыми требованиями, предъявляемыми к распределенным системам, имеющим сервис-ориентированную архитектуру, относятся:
- открытость, обеспечиваемая использованием проверенных стандартов в различных механизмах системы;
- масштабируемость системы за счет поддержки возможности добавления новых ресурсов (инструментов);
- интероперабельность системы по отношению к гетерогенным слабо связанным ресурсам;
- отказоустойчивость системы в рамках проведения вычислительного эксперимента, подразумевающая возможность корректного продолжения эксперимента при отключении отдельных ресурсов во время их использования для вычислений;
- обеспечение «прозрачного» использования ресурсов с точки зрения пользователя;
- предоставление единого формата спецификации интерфейсов ресурсов и средств для создания таких описаний;
- поддержка различных режимов вызова ресурсов и служб;
- обеспечение безопасного доступа к ресурсам за счет применения соответствующих политик доступа к ресурсам, авторизации и аутентификации пользователей.
Архитектура распределенной системы обработки информации
С учетом указанных требований была разработана архитектура распределенной системы организации вычислительного эксперимента (рис.1). Основным компонентом системы является Модуль управления заданиями (МУЗ), выполняющий функции определения, планирования и мониторинга заданий, поступающих от пользователей системы. Данный модуль принимает от пользователя задание (спецификацию исполнительной среды), подбирает конкретных исполнителей на каждый этап задания и помещает готовые для выполнения задания в очередь, ожидая доступности исполнителей. После успешного запуска задания МУЗ отслеживает его состояние и информирует пользователей о ходе выполнения.
За регистрацию, контроль и мониторинг исполнителей отвечает Модуль управления исполнителями (МУИ). Данный модуль отслеживает состояние исполнителей и предоставляет данные для МУЗ при планировании и в ходе выполнения задания. В соответствии с описанием задания, полученного из МУЗ, вызываются требуемые удаленные сервисы-исполнители, представляющие собой агрегат адаптера с инструментальным средством.
Рис. 1. Схема сервис-ориентированной распределенной системы организации вычислительного эксперимента
Для предоставления доступа пользователям к возможностям системы и выдачи прав на использование тех или иных исполнителей отдельно выделен Модуль управления пользователями (МУП). Пользователям предоставляются следующие возможности:
- формирование нового задания с передачей в систему входных данных;
- отслеживание состояния созданных заданий;
- просмотр промежуточных и конечных результатов;
- отмена выполняющихся заданий.
Все данные о пользователях, заданиях, промежуточных результатах и исполнителях хранятся в Базе данных системы. Входные данные для заданий и все результаты хранятся на сервере и передаются исполнителям по требованию.
Учитывая то, что при решении конкретной задачи моделирования или обработки данных может потребоваться обращение к большому числу ресурсов, распределенная система строится с использованием стиля REST (Representational State Transfer) [3]. Данный стиль имеет следующие важные особенности:
- все используемые сущности являются ресурсами и имеют уникальный адрес;
- для взаимодействия компонентов системы (запросы GET, PUT, POST, DELETE) используется HTTP-протокол.
Согласно этому Исполнитель характеризуется своим адресом в сети (URI
- Uniform Resource Identifier) и спецификацией интерфейса, содержащей описание анонсируемых методов и формата передаваемых параметров. Для соблюдения соглашения о платформонезависимости адаптеров взаимодействие осуществляется посредством передачи сообщений в формате расширяемого языка разметки XML (extensible Markup Language,) с помощью HTTP-протокола. Спецификация такого сообщения описывается в виде XML Schema, что позволяет проводить проверку содержимого на корректность. Взаимодействие сервера с исполнителями возможно в двух вариантах:
- исполнитель, после выполнения своей части задания, передает результат обратно на сервер, а сервер в свою очередь полученные данные передает следующему исполнителю;
- исполнители в соответствии со спецификацией задания взаимодействуют непосредственно друг с другом, минуя сервер, что позволяет не затрачивать время на передачу результатов через сервер в задачах, в которых время критично.
В любом случае сервер опрашивает исполнителей для отслеживания сбоев в ходе выполнения заданий. При возникновении сбоя (потеря связи, ошибка выполнения и другие) МУЗ корректирует задание, подбирая с помощью МУИ альтернативных исполнителей. Подбор исполнителей производится с учетом следующих критериев:
- наличие прав доступа;
- коэффициент доступности исполнителя (основан на времени);
- загруженность узла, на котором размещен исполнитель;
- локализация узла в сети (для уменьшения трафика в случае прямого взаимодействия исполнителей).
Схема реализации адаптера
Адаптер представляет собой web-сервис (рис.2), построенный на базе сервера приложений с открытым кодом GlassFish. Для взаимодействия сервера с адаптером используются следующие HTTP-запросы:
- GET job_id- получение состояния указанного задания;
- POST job_id - запуск указанного задания;
- DELETE job_id - отмена указанного задания;
- GET INFO - получение описания методов.
Рис. 2. Архитектура адаптера
Адаптер реализован с использованием языка Java и библиотеки Jersey -реализация открытой спецификации JAX-RS (Java API for RESTful Web Services). Ниже, в качестве примера представлена функция getStatusByld для обработки запроса состояния задания используется:
@Path("service") public class Service {
@GET
@Path("{job_id}")
@Produces(MediaType.APPLICATION_XML) public int getStatusById(@PathParam("job_id") long id) {
Job curr_job = Data.findJobById(id); if (curr_job == null) { throw new RuntimeException("can't find job with id = " + id);
}
return curr_job.status;
}
Аналогичным образом реализуются и другие обработчики поступающих запросов к адаптеру. Запрос POST инициирует запуск исполнителя: адаптер по номеру задания запрашивает с сервера файлы и передает их исполнителю на вход. По завершению работы выходные данные передаются обратно на сервер, а также меняется состояние исполнителя и задания.
Использование HTTP-протокола позволяет включить стандартные коды ошибок для описания исключительных событий (недоступность адаптера, ошибки в работе), а также SSL (Secure Sockets Layer) для обеспечения безопасного взаимодействия элементов системы.
Заключение
Сервис - ориентированный подход облегчает реализацию распределенных систем за счет инкапсулирования функциональности гетерогенных приложений (исполнителей) в сервисах. Обеспечение прозрачности достигается за счет четко определенного интерфейса и стандартных протоколов взаимодействия. Использование стиля REST позволяет воспользоваться возможностями протокола HTTP и обеспечить масштабируемость всей системы. Кроме того, построение адаптеров на языке Java дает возможность объединить в системе приложения на различных платформах.
Литература
1. Неведров, А.С. Об инструментальных средствах определения эффективных режимов обогащения минеральных руд / А.С. Неведров, А.Г. Олейник // Информационные ресурсы России, 2011. -№5 (123). - С.35-38.
2. Gillam, Lee. Cloud Computing: Principles, Systems and Applications / Editors: Nick Antonopoulos, Lee Gillam. - L.: Springer, 2010. - 379 p.
3. Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures / Doctoral dissertation, University of California, Irvine, 2000. -Режим доступа:http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm.
Сведения об авторах
Неведров Алексей Сергеевич - программист, e-mail: [email protected] Alexey S. Nevedrov - Programmer
Олейник Андрей Григорьевич - д.т.н., зам. директора института,
e-mail: [email protected]. net. ru
Andrey G. Oleynik - Dr. of Sci. (Tech), Deputy director