УДК 004.722.2
А. О. ТАРАСОВ, А. И. ЯШИН
A. O. TARASOV, A. I. YASHIN
РАСПРЕДЕЛЕННАЯ СИСТЕМА КОНТРОЛЯ ДВИЖЕНИЯ НЕФТЕПРОДУКТОВ НА ПРЕДПРИЯТИЯХ НЕФТЕОБЕСПЕЧЕНИЯ
DISTRIBUTED SYSTEM OF CONTROLLING THE MOTION OF OIL PRODUCTS ON THE OIL COMPANIES
В данной статье авторы освещают проблему выбора актуальной архитектуры для распределенной многопользовательской системы, а так же приводят примеры методов повышения масштабируемости и отказоустойчивости разрабатываемого программного обеспечения.
Ключевые слова: архитектура; клиент-сервер; плагин; протокол взаимодействия; многопоточность.
In this article, the authors highlight the problem of choice of contemporary architecture for a distributed multi-user systemsand also provide examples of enhanced scalability and fault tolerance of the developed software.
Keywords: architecture; client-server; plug-in; the communication protocol; multi-threading.
В настоящее время информационные технологии всё более плотно интегрируются в производственные процессы на предприятиях. В некоторых отраслях производства программное обеспечение контролирует все стадии технологического процесса, начиная от планирования цепочек поставок, и заканчивая контролем конструкторской, технологической документации, а так же непосредственным производством товара.
Для каждой отрасли существует огромное количество своих специфических черт и нюансов, а, соответственно, не представляется практически возможным создание унифицированной системы. Нефтеперерабатывающая отрасль выделяется тем, что процессы, протекающие при производстве, являются непрерывно-дискретными. То есть часть из них могут быть представлены в виде последовательности элементарных действий, однако существуют и те, которые не поддаются такому описанию – например, перегонка топлива. Это накладывает дополнительные условия на информационные системы, внедряемые в этой отрасли.
Существует ряд программных продуктов, разработанных для автоматизации предприятий нефтеобеспечения, однако разработаны они зарубежными разработчиками. Несмотря на то, что эти продукты имеют обширный функционал, они абсолютно не учитывают специфику российского производства: его нормативные документы и стандарты отечественного оборудования. В связи с этим, становится невозможным полноценно интегрировать данные сервисы. А высокая стоимость программных комплексов еще более отталкивает потенциальных клиентов.
В результате было принято решение разработать пакет программного обеспечения, позволяющий с должной степенью автоматизировать контроль движения нефтепродуктов, с учётом специфики российского производства.
Разрабатываемая система должна обеспечивать следующий функционал:
· мониторинг всего оборудования, установленного на производстве
· разграничение прав доступа для персонала
· организация системы уведомлений персонала при наступлении определенного события
· учет потока нефтепродуктов
· формирование произвольных отчетов по запросу пользователя
· формирование журналов событий, происходящих в системе
Основными требованиями к разрабатываемой системе можно считать следующее:
· поддержка целостности значений в базе данных как программно, так и на уровне СУБД
· реализация системы обновления используемого ПО а так же структуры БД
· повышение гибкости, посредством использования клиент-серверной архитектуры
· максимизация отказоустойчивости системы
· возможность последующего масштабирования системы

Рисунок 1 – Архитектура разрабатываемой системы
Архитектура разрабатываемой системы должна быть прозрачной, но в то же время гибкой, и способной обеспечить быстрое перестроение взаимодействия, при выходе из строя сервера. За основу использовалась классическая клиент-серверная архитектура, однако были добавлены некоторые изменения. Разрабатываемое программное обеспечение будет поставляться на все ПК в комплекте «клиент + сервер». Любой ПК может выступать как сервером, так и клиентом. Используемые в ходе функционирования системы модули будут выполнены в виде динамических библиотек(DLL), которые содержат функционал как сервера, так и клиента, и, в зависимости от того, какая сущность вызывает библиотеку (клиент или сервер) будут доступны те или иные методы.
Взаимодействие между клиентом и сервером будет осуществляться только посредством протокола TCP, если они запущены на разных машинах, либо через глобальные объекты в оперативной памяти, если взаимодействие осуществляется на одной машине.
Запуская сервер, пользователь может указать диапазон «слушающих» TCP портов, по которым будет происходить взаимодействие с клиентскими приложениями. При запуске клиентского приложения пользователю так же возможно самостоятельно указать адрес сервера, в противном случае он будет выбран автоматически.
Для повышения отказоустойчивости системы, было принято решение разбить систему на функциональные части, и скомпоновать их в отдельные подгружаемые плагины. При запуске сервера, параметрами пользователь может указать список используемых плагинов. При подключении клиента, он первым шагом запрашивает список запущенных плагинов на сервере и выделенные им TCP порты, после этого клиент запускает аналогичные модули и начинает взаимодействие с сервером.
Клиентское приложение запускается одним процессом и функционирует, используя один поток. Использование многопоточности на стороне клиента не целесообразно, так как эта часть, в отличие от серверной, не имеет критического приоритета, и может быть перезапущена с минимальными затратами. Серверная же часть состоит из двух процессов: непосредственно сервером, и службой, реализующей функции слежения за основным процессом, и перезапускающей его при аварийном завершении.
Главный процесс серверной части является многопоточным: каждый используемый плагин функционирует в отдельном потоке. Такое решение позволяет сохранить корректное функционирование сервера, даже если один из запущенных плагинов аварийно завершится.
Представленное архитектурное решение предоставляет показатели заданной отказоустойчивости системы, и является наиболее оптимальным по требуемым затратам. Его использование позволяет добиться приемлемых показателей безотказной работы, что является достаточно важным критерием для систем, внедряемых в производство.
СПИСОК ЛИТЕРАТУРЫ
1. Загидуллин машиностроительным производством с помощью систем MES, APS, ERP.[Текст] : учебник для высш. учеб. зав. / — Старый Оскол: ТНТ, 2011. — 372 с.
2. Певзнер, автоматизации нефтегазопроводов и нефтебаз [Текст] : учебник для сред. спец. учеб. зав. / . — Москва : Недра, 1975. — 240с.
ФГБОУ «Госуниверситет – УНПК»
Магистрант
8 (9
*****@***ru
ФГБОУ ВПО «Госуниверситет – УНПК»
Студент
8 (9
*****@***ru


