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

Кластер высокой доступности программного комплекса автоматизации процедуры сбора данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
183
56
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Кластер высокой доступности программного комплекса автоматизации процедуры сбора данных»

ритмы, методы и системы обработки данных. 2005. № 10. С. 249-254.

9. Маслобоев А.В., Шишаев М.Г. Модели и технологии информационной поддержки логистики инноваций // Инновации. 2011. № 6 (152). С. 40-53.

References

1. Oleynik A.G., Fedorov A.M. Issues of consolidated information area of Russian Arctic zone. Trudy Kolskogo nauchnogo centra RAN [Proc. of Kola science centre RAS]. Apatity, 2011, iss. 2, pp. 19-28 (in Russ.).

2. Masloboev A.V. Multi-agent research and information environment for regional security control support. Scientific and technical journ. of information technologies, mechanics and optics. 2013, no. 4 (86), pp. 128-138 (in Russ.).

3. Emelyanov S.V., Popkov Yu.S., Oleynik A.G., Puti-lov V.A. Informatsionnye tekhnologii regionalnogo upravleniya [Information technologies for regional management]. Moscow, Editorial URSS Publ., 2004, 400 p.

4. Gorokhov A.V., Oleynik A.G., Putilov V.A. Tezisy dokladov v 2 t. II Mezhdunar. konf. po kognitivnoy nauke [Proc. of

the 2nd int. conf. on cognitive science: thesis]. St. Petersburg, St. Petersburg State Univ. Publ., 2006, vol. 2, pp. 576-577.

5. Lomov P.A., Shishaev M.G. Ontologies integration using thesaurus for semantic search. Informatsionnye tekhnologii i vychislitelnye sistemy [IT and computer systems]. 2009, no. 3, pp. 49-59 (in Russ.).

6. Smirnov A.V., Sheremetov L.B. Formation models for collaborative agents combinations: current state and research trends. Iskusstvenny intellekt i prinyatie resheniy [Artificial intelligence and decision making]. 2011, no. 1, pp. 36-48 (in Russ.).

7. Putilov V.A., Shishaev M.G., Oleynik A.G. Trudy Instituta sistemnogo analiza RAN: Prikladnye problemy upravleniya makrosistemami [Proc. of ISA RAS: macrosystems control applied problems]. Moscow, "LIBROKOM" Publ., 2008, vol. 39, pp. 4063 (in Russ.).

8. Zhebrun N.N. Using service-oriented architechtures when designing information systems. Algoritmy, metody i sistemy obrabotki dannykh [Data processing algorithms, methods and systems]. 2005, no. 10, pp. 249-254 (in Russ.).

9. Masloboev A.V., Shishaev M.G. Innovatsii [Innovations]. 2011, no. 6 (152), pp. 40-53 (in Russ.).

УДК 004.42

КЛАСТЕР ВЫСОКОЙ ДОСТУПНОСТИ ПРОГРАММНОГО КОМПЛЕКСА АВТОМАТИЗАЦИИ ПРОЦЕДУРЫ1 СБОРА ДАННЫХ.

И.Ю. Артемов, ст. преподаватель (Тверской государственный технический университет, наб. Аф. Никитина, 22, г. Тверь, 1 70026, Россия, [email protected])

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

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

HA-CLUSTER OF DATA COLLECTION SYSTEM Artemov I.Yu., senior lecturer (Tver State Technical University, Quay Nikitin, Tver, 22, 170026, Russian Federation, [email protected])

Abstract. The article describes the high available cluster (failover cluster) architecture of the software system for automation of data collection procedures. This architecture allows implementing software systems that provide service availability with needed guarantee. The article describes all parts of the software system such as server side and client side software. The paper is focused on server side components of the system, that works in the hight available cluster. The author gives the description of method for distribution packets between different failover cluster nodes. This method eliminates the use of the central failover cluster nodes. The basic idea of the method is that client software automatically selects first available cluster node using special procedure discribed in the article. The author also discusses algorithms for the distribution of packets between cluster nodes within the server software.

Keywords: control, software architecture, server, mobile terminal, cluster.

Большинство крупных производителей заинтересованы в повышении эффективности работы сотрудников отделов продаж (торговых/медицинских представителей - ТП). Одним из возможных способов повышения эффективности является использование систем SFA (Sales Force Automation).

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

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

С учетом всего перечисленного сегодня наиболее часто используются следующие варианты развертывания SFA-систем:

1) у каждого дистрибьютора устанавливается серверное оборудование SFA-системы; данный сервер подключается к КИС дистрибьютора и отвечает за обслуживание небольшой группы ТП;

2) в специализированном дата-центре устанавливается сервер SFA-системы, который отвечает за обслуживание всех дистрибьюторов и ТП.

В связи с тем, что у производителя достаточно много дистрибьюторов (как правило, сотни), первый вариант развертывания SFA-систем характеризуется как высокой стоимостью владения (совокупная стоимость оборудования, ПО и дальнейшей поддержки аппаратно-программного комплекса), так и чрезвычайно низкой надежностью (возрастает вероятность выхода оборудования из строя, нестабильность каналов связи у дистрибьюторов и т.д.) [1, 2]. Главным достоинством данного варианта является возможность распределения нагрузки на серверные элементы SFA-системы и ускорения попадания данных в КИС дистрибьютора.

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

В данной статье описывается разработка архитектуры развертывания серверной составляющей SFA-системы ОМОВ^ (см. рис. 1), которая позволила бы повысить отказоустойчивость системы в целом и полностью устранила бы возможные риски, связанные с простоем системы.

Проведенные предварительные исследования показали, что фактически единственным способом, которым можно повысить отказоустойчивость системы, является организация кластера, состоящего из нескольких узлов [3]. Под кластером понимается группа компьютеров, объединенных высокоскоростными каналами связи и представляющая, с точки зрения пользователя, единый аппаратный ресурс. К кластеру SFA-системы OMOBUS предъявляются следующие основные требования:

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

- отсутствие в кластере центрального узла;

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

- введение узлов в эксплуатацию после сбоя без необходимости временной остановки всей системы.

Среди известных видов кластеров выделим [3]:

- отказоустойчивые кластеры (High-Availability Clusters - HA-кластеры высокой доступности) с холодным и горячим резервами, с модульной избыточностью;

- кластеры с балансировкой нагрузки (Load Balancing Clusters);

- вычислительные кластеры (High Perfomance Computing Clusters);

- grid-системы.

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

Internet Internet

Рис. 1. Схема взаимодействия элементов SFA-системы OMOBUS

Мобильный терминал

Отправка данных

на первый доступный узел

ftp-сервер

Т.

Сервер документов (отвечает за ввод документов, созданных пользователями )

\ У Сервер документов \

/ [ (отвечает за ввод I_w

^документов, полученных/ на узел node 2) У

Хранилище данных

ftp-сервер 2

Т

Сервер документо (отвечает за ввод документов, получен \___на узел node 1)

Генератор данных для дистрибьюторов

Генератор данных для производи -теля

Генератор

Сервер данных для

документов Храни- дистрибью-

(отвечает за ввод лище торов

документов, данных

созданных Генератор

пользователями ) данных для

производи-

теля

Рис. 2. Схема взаимодействия элементов SFA-системы OMOBUS (HA-кластер с модульной избыточностью)

Internet

nternet

node 1

1

node 2

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

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

Концептуально HA-кластер SFA-системы OMOBUS включает следующие основные элементы (в скобках указываются названия модулей, разработанных в рамках реализации задачи, описываемой в данной статье):

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

- FTP-сервер Pure-FTPd для обмена данными, в рамках которого происходит репликация (omobus-pk-repl) полученных пакетов на другие узлы кластера;

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

- сервер документов (omobus-node), который обрабатывает данные, полученные с других узлов кластера;

- агрегационное хранилище данных, реализованное на основе системы управления реляционных БД (в текущий момент времени поддерживаются СУБД Postgres и Firebird);

- генератор данных для дистрибьютора;

- генератор данных для производителя;

- единая шина (Enterprise Service Bus - ESB), к которой подключены производитель, дистрибьюторы и SFA-система OMOBUS.

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

Список узлов кластера загружается при запуске мобильного терминала из текстового конфигурационного файла. Из этого же файла загружаются параметры, связанные с проверкой доступности узла кластера (тайм-аут выполнения процедуры подключения к узлу). Код процедуры проверки доступности узла написан на языке C с использованием BSD sockets [4]. Данный подход позволяет добиться высокой производительности и переносимости кода. В настоящий момент процедура проверки доступности узла используется на терминалах, работающих под управлением Windows Mobile и Android. Схема проверки доступности узла кластера приводится на рисунке 3.

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

Загрузка параметров: 1. список узлов кластера; 2. тайм-аут подключения, получения и отправки данных

X

Выбор первого узла кластера из списка

5

Подключиться к узлу кластера

Подключение выполнено успешно

Тайм-аут или

ошибка подключения

Получить данные (приветствие) с ftp-сервера Ответ Вернуть адрес текущего узла кластера

корректный

Тайм-аут получения данных или данные возвращены в ошибочном виде

Переход к следующему узлу кластера

X

Рис. 3. Схема процедуры проверки доступности узла кластера

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

рующем режиме, который предполагает, что выполняющаяся в текущий момент операция имеет строго предписанное максимальное значение времени выполнения), а именно:

- подключение к требуемому узлу путем вызова функции connect; перед вызовом данной функции выполняется определение IP-адреса по DNS-имени;

- получение приветствия со стороны ftp-сервера согласно RFC959; данная процедура выполняется с помощью функции recv.

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

Модуль omobus-pk-repl работает на каждом узле кластера и отвечает за репликацию входящих потоков данных на общие ресурсы, доступные всем заинтересованным сторонам. Данный модуль написан на языке C с использованием компилятора gcc и может работать под управлением любой unix-подобной операционной системы (Linux, FreeBSD и т.д.). Модуль omobus-pk-repl интегрируется с ftp-сервером Pure-FTPd (http://www.pure-ftpd.org/project/pure-ftpd), который вызывает данный модуль для всех входящих потоков данных. Входящий поток данных представляет собой набор специально оформленных файлов (пакетов), содержащих структурированные данные в текстовом формате (XML - eXtensible Markup Language). При необходимости пакеты могут сжиматься с

помощью алгоритма deflate или Барроуза-Уилера. Исходя из этого omobus-pk-repl выполняет следующие операции.

• Распаковывается исходный пакет (если это необходимо). Для распаковки пакетов, сжатых с помощью алгоритма deflate, используется библиотека zlib (http://www.zlib.net/), а Барроуза-Уилера - bzip2 (http://www.bzip.org/).

• Выполняются разбор данных, хранящихся в формате XML, и их первичная проверка с помощью функций библиотеки libxml2 (http://www. xmlsoft.org/).

• Выполняется проверка соответствия разобранного XML предписанной схеме документов, хранящейся в формате XSD (XML Schema Definition). Это позволяет провести тонкую проверку входящих данных на соответствие требуемой спецификации.

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

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

В том случае, если узел (например node1) выходит из строя (допустим, по причине поломки аппаратуры) или временно недоступен (проблемы в дата-центре или плановое обслуживание оборудования), мобильные терминалы перестают обнаруживать такой узел и отправляют данные на первый доступный узел из оставшихся в эксплуатации (node2). На узле node2 реплицированные для узла node1 пакеты будут накапливаться до тех пор, пока узел node1 не будет возвращен к активной работе. Как только это произойдет, все накопленные данные будут загружены на узел node1 и обработаны. После этого узлы станут идентичными (по данным, которые в них хранятся).

В настоящий момент времени разработанное ПО находится в стадии финального тестирования. Реальная эксплуатация кластера SFA-системы OMOBUS намечена на ноябрь-декабрь 2013 года. Планируется, что кластер будет состоять из двух узлов (каждый из них оснащен двумя восьмиядер-ными процессорами Intel Xeon и 32 Gb RAM), которые разместятся в разных дата-центрах. К кластеру планируется подключить около 500 мобильных терминалов, предназначенных для работы на территории всей страны.

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

вис в непрерывном режиме в любой момент времени круглый год.

Литература

1. Everitt B.S., Landau S., Leese M. Cluster Analysis. A Hodder Arnold Publ., 2001, pp. 120-234.

2. Пономаренко В.С., Листровой С.В., Минухин С.В., Знахур С.В. Методы и модели планирования ресурсов в GRID-системах. Украина, Харьков: Издат. дом ИНЖЭК, 2008. 408 с.

3. Стивенс Р., Раго С. UNIX: профессиональное программирование: 2-е изд. СПб: Символ-Плюс, 2007. 1040 с.

4. Стивенс Р., Феннер Б., Рудофф Э.М. UNIX: разработка сетевых приложений: 3-е изд. СПб: Питер, 2007. 1039 с.

References

1. Everitt B.S., Landau S., Leese M. Cluster Analysis. A Hodder Arnold Publ., 2001, pp. 120-234.

2. Ponomarenko V.S., Listrovoy S.V., Minukhin S.V. Metody i modeli planirovaniya resursov v GRID- sistemakh [Planing methods and models for resourses in GRID-systems]. Ukraine, Kharkov, INZHEK Publ., 2008, pp. 95-102 (in Russ.).

3. Stivens R., Rago S. UNIX professionalnoye programmiro-vaniye [UNIX professional programming]. 2nd ed., St. Petersburg, Simvol-Plyus Publ., 2007, pp. 504-532.

4. Stivens R., Fenner B., Rudoff E.M. UNIX: razrabotka setevykh prilozheniy [UNIX developing network applications]. 3rd ed., St. Petersburg, Piter Publ., 2007, pp. 185-222.

УДК 004.05

ЗАЩИТА ИНФОРМАЦИИ В САМООРГАНИЗУЮЩЕЙСЯ ИНФОРМАЦИОННОЙ СИСТЕМЕ БЕЗ ИСПОЛЬЗОВАНИЯ СПЕЦИАЛЬНЫХ СРЕДСТВ

В.В. Дрождин, к.т.н., доцент, зав. кафедрой; Р.Е. Зинченко, к.т.н., доцент (Пензенский государственный университет, ул. Красная, 40, г. Пенза, 440026, Россия, [email protected], [email protected])

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

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

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

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

Таким образом, предложенный подход естественным образом сочетает программные (автоматические) и организационные средства защиты информационной системы.

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

DATA PROTECTION IN SELF-ORGANIZING INFORMATION SYSTEM WITHOUT USING SPECIAL FACILITIES Drozhdin V. V., Ph.D. Tech. Sc., associate professor, head of chair; Zinchenko R.E., Ph.D. Tech. Sc., associate professor (Penza State University, Krasnaya St., 40, Penza, 440026, Russian Federation, [email protected], [email protected])

Abstract. The safe access in self-organizing information system is described. The current state of information security and data protection is shown. To increase a level of safety of self-organizing information system three components are offered: interaction of information system with system of hierarchically connected users, interaction of users with the system via visibility areas, regular users' authentication based on their behavior.

Interaction of information system with the system of hierarchically connected users united in a network structure, on the one hand, simplifies system creation and provides control of subordinated users' activity by higher users. On the other hand,

i Надоели баннеры? Вы всегда можете отключить рекламу.