Parallel distributed implementation of workflow management module for operation support system for telecommunication providers

There is provided parallel distributed implementation of workflow management module for operation support system for telecommunication providers based on Hadoop framework. Conducted primary research for this implementation based on common problem of searching words that matching some pattern in the...

Full description

Saved in:
Bibliographic Details
Date:2017
Main Authors: Doroshenko, А.Yu., Shykhutska, S.O.
Format: Article
Language:Ukrainian
Published: PROBLEMS IN PROGRAMMING 2017
Subjects:
Online Access:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/158
Tags: Add Tag
No Tags, Be the first to tag this record!
Journal Title:Problems in programming
Download file: Pdf

Institution

Problems in programming
id pp_isofts_kiev_ua-article-158
record_format ojs
resource_txt_mv ppisoftskievua/be/f0d74f1afb3fe8519b8777519d7febbe.pdf
spelling pp_isofts_kiev_ua-article-1582018-07-12T14:26:39Z Parallel distributed implementation of workflow management module for operation support system for telecommunication providers Параллельная распределенная реа-лизация модуля управления рабочими процессами для системы поддержки операций оператора связи Паралельна розподілена реалізація модуля керування робочими процесами для системи підтримки операцій оператора зв’язку Doroshenko, А.Yu. Shykhutska, S.O. module; workflow process; operation support system; distributed computing; analysis UDC 004.424 модуль; рабочий процесс; система поддержки операций; распределенные вычисления; анализ УДК 004.424 модуль; робочий процес; система підтримки операцій; розподілені обчислення; аналіз УДК 004.424 There is provided parallel distributed implementation of workflow management module for operation support system for telecommunication providers based on Hadoop framework. Conducted primary research for this implementation based on common problem of searching words that matching some pattern in the files with big size. Предложена параллельная реализация модуля управления рабочими процессами для OSS системы оператора связи, построенная на основе фреймворка Hadoop. Проведено первичное исследование этой реализации на примере прикладной задачи поиска слов, совпадающих с шаблоном, в файлах большого размера. Запропонована паралельна реалізація модуля управління робочими процесами для OSS системи оператора зв’язку, побудована на основі фреймворку Hadoop. Проведене первинне дослідження цієї реалізації на прикладі прикладної задачі пошуку слів, що співпадають із шаблоном, у файлах великого розміру. PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2017-06-16 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/158 PROBLEMS IN PROGRAMMING; No 4 (2015) ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2015) ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2015) 1727-4907 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/158/152 Copyright (c) 2017 ПРОБЛЕМИ ПРОГРАМУВАННЯ
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2018-07-12T14:26:39Z
collection OJS
language Ukrainian
topic module
workflow process
operation support system
distributed computing
analysis
UDC 004.424
spellingShingle module
workflow process
operation support system
distributed computing
analysis
UDC 004.424
Doroshenko, А.Yu.
Shykhutska, S.O.
Parallel distributed implementation of workflow management module for operation support system for telecommunication providers
topic_facet module
workflow process
operation support system
distributed computing
analysis
UDC 004.424
модуль
рабочий процесс
система поддержки операций
распределенные вычисления
анализ
УДК 004.424
модуль
робочий процес
система підтримки операцій
розподілені обчислення
аналіз
УДК 004.424
format Article
author Doroshenko, А.Yu.
Shykhutska, S.O.
author_facet Doroshenko, А.Yu.
Shykhutska, S.O.
author_sort Doroshenko, А.Yu.
title Parallel distributed implementation of workflow management module for operation support system for telecommunication providers
title_short Parallel distributed implementation of workflow management module for operation support system for telecommunication providers
title_full Parallel distributed implementation of workflow management module for operation support system for telecommunication providers
title_fullStr Parallel distributed implementation of workflow management module for operation support system for telecommunication providers
title_full_unstemmed Parallel distributed implementation of workflow management module for operation support system for telecommunication providers
title_sort parallel distributed implementation of workflow management module for operation support system for telecommunication providers
title_alt Параллельная распределенная реа-лизация модуля управления рабочими процессами для системы поддержки операций оператора связи
Паралельна розподілена реалізація модуля керування робочими процесами для системи підтримки операцій оператора зв’язку
description There is provided parallel distributed implementation of workflow management module for operation support system for telecommunication providers based on Hadoop framework. Conducted primary research for this implementation based on common problem of searching words that matching some pattern in the files with big size.
publisher PROBLEMS IN PROGRAMMING
publishDate 2017
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/158
work_keys_str_mv AT doroshenkoayu paralleldistributedimplementationofworkflowmanagementmoduleforoperationsupportsystemfortelecommunicationproviders
AT shykhutskaso paralleldistributedimplementationofworkflowmanagementmoduleforoperationsupportsystemfortelecommunicationproviders
AT doroshenkoayu parallelʹnaâraspredelennaârealizaciâmodulâupravleniârabočimiprocessamidlâsistemypodderžkioperacijoperatorasvâzi
AT shykhutskaso parallelʹnaâraspredelennaârealizaciâmodulâupravleniârabočimiprocessamidlâsistemypodderžkioperacijoperatorasvâzi
AT doroshenkoayu paralelʹnarozpodílenarealízacíâmodulâkeruvannârobočimiprocesamidlâsistemipídtrimkioperacíjoperatorazvâzku
AT shykhutskaso paralelʹnarozpodílenarealízacíâmodulâkeruvannârobočimiprocesamidlâsistemipídtrimkioperacíjoperatorazvâzku
first_indexed 2025-07-17T09:59:13Z
last_indexed 2025-07-17T09:59:13Z
_version_ 1850411530261102592
fulltext Моделі та засоби паралельних і розподілених програм © А.Ю. Дорошенко, С.О. Шихутська, 2015 40 ISSN 1727-4907. Проблеми програмування. 2015. № 4 УДК 004.424 А.Ю. Дорошенко, С.О. Шихутська ПАРАЛЕЛЬНА РОЗПОДІЛЕНА РЕАЛІЗАЦІЯ МОДУЛЯ КЕРУВАННЯ РОБОЧИМИ ПРОЦЕСАМИ ДЛЯ СИСТЕМИ ПІДТРИМКИ ОПЕРАЦІЙ ОПЕРАТОРА ЗВ’ЯЗКУ Запропонована паралельна реалізація модуля управління робочими процесами для OSS системи опе- ратора зв’язку, побудована на основі фреймворку Hadoop. Проведене первинне дослідження цієї реа- лізації на прикладі прикладної задачі пошуку слів, що співпадають із шаблоном, у файлах великого розміру. Ключові слова: модуль, робочий процес, система підтримки операцій, розподілені обчислення, аналіз. Вступ Сьогодні телекомунікаційні опера- тори зв’язку стараються автоматизувати як можна більше своїх промислових та робочих операцій. Для цього використо- вуються системи підтримки операцій – системи OSS (Operation Support System). Системи OSS дуже складні та складають- ся з різноманітних модулів та окремих автономних систем, що взаємодіють між собою. Прикладами таких модулів/систем є ERP (Enterprise Resource Planning) сис- тема, CRM [1] (Customer Relationship Management) система, SCM (Supply chain management) система та інші. Одним з найважливіших модулів є модуль управ- ління робочими процесами. Цей модуль відповідає за інтеграцію різних систем між собою, а також забезпечує їх спільне виконання та можливість управління ро- бочим процесом. Також модуль може ви- конувати самостійні задачі, що задаються конфігуратором. З переходом телекомуні- каційних операторів зв’язку на системи OSS з’явилися задачі перенесення велико- го обсягу даних з попередніх систем, що використовувалися операторами, в систе- ми OSS, а також систематизація та струк- туризація цих даних. В статті запропоно- вана модифікація модуля управління ро- бочими процесами, яка вдосконалить мо- дуль управління робочими процесами та дозволить швидко обробляти великі обся- ги даних. Саме для таких задач викорис- товуються паралельні розподілені обчис- лювальні системи. З іншого боку, на сьогодні парале- льні розподілені обчислювальні системи набувають все більшого значення у зв’язку з технологічним розвитком та збільшенням інформаційних потоків у світі. Первинним призначенням подібних систем було вирі- шення наукових задач великих обсягів, які не могли бути вирішені на окремих класи- чних паралельних ресурсах. Вони також знайшли себе і в промислових масштабах. В даній статті розглянута модифікація мо- дуля управління робочими процесами для OSS системи оператора зв’язку, вдоскона- лення його можливостей оперування вели- кими обсягами даних, їх аналізом та швид- кою обробкою. Системи, що здатні здійснювати па- ралельні обчислення, зазвичай складні у розробці, конфігурації та не універсальні, що ускладнює їх використання для вирі- шення широкого спектру задач. Серед OSS систем, на які масово переходять операто- ри зв’язку, таких, що підтримують парале- льні обчислення, вкрай мало. Саме тому, задача створення механізму, що дозволить компонувати класичні паралельні обчис- лення з розподіленими, з доступним інте- рфейсом та гнучкою конфігурацією, є ак- туальною на сьогодні. Розробка подібного модуля управління робочими процесами для OSS систем операторів зв’язку не тіль- ки спростить конфігурацію та організацію паралельних розподілених обчислень, але й дозволить будувати бізнес-процеси, що будуть здатні працювати з будь-якими об- сягами даних. Необхідно зазначити, що напрямок обробки великих обсягів даних є іннова- ційним і тільки нещодавно зробив вели- Моделі та засоби паралельних і розподілених програм 41 кий стрибок у своєму розвитку. Саме тому, на разі є всього два фреймворки з відкритим програмним кодом, які мають у своєму арсеналі всі необхідні інструменти для створення систем з паралельними ро- зподіленими обчисленнями – це фрейм- ворк Hadoop та фреймворк Apache Spark. Фреймворк Apache Hadoop вже впрова- джений у такі продукти, як «Facebook» та «Yahoo!». Фреймворк Apache Spark тільки набирає обертів та ще не має своєї історії масштабних впроваджень. Саме через нестабільність та дуже швидку зміну про- грамного коду у фреймворці Apache Spark, був обраний за основу фреймворк Apache Hadoop. У даній роботі запропонована архі- тектура гнучкого та розширюваного ін- струментарію для побудови бізнес проце- сів у предметному середовищі OSS сис- тем для операторів зв’язку, що здатен компонувати класичні паралельні обчис- лення з розподільними обчисленнями, що дозволяє значно збільшити швидкість ви- конання процесів за умови обробки ними великих обсягів даних на базі Java- фреймворку Apache Hadoop. Описано прототип подібного модуля, створеного на основі запропонованої архітектури з використанням наступних фреймворків: Hibernate – для організації доступу до ба- зи даних [2]; Spring IoC – для гнучкості розробки та грамотного управління жит- тєвим циклом об’єктів, що створюються під час виконання програмного коду [3]; Spring Security – для забезпечення захи- щеного доступу до розробленого програ- много забезпечення [3]. В роботі наведені результати робо- ти прототипу на прикладі відомої задачі про підрахунок кількості слів у файлі. Задача була ускладнена підрахунком кі- лькості певних слів, що відповідають шаблону, заданому регулярним виразом. Задача була ускладнена до відповідного рівня, з урахуванням особливостей пред- метного середовища та найбільш популя- рних проблем, що в ньому виникають. В роботі виконано ще один крок у розвитку інструментарію для підтримки бізнес процесів, що протікають в OSS си- стемах операторів зв’язку, у напрямку підвищення його ефективності в роботі з великими обсягами даних за рахунок роз- робки його модифікації, що підтримує паралельні розподілені обчислення. Ма- теріал статті організований наступним чином: у розділі 1 розглянуті можливості фреймворку Apache Hadoop; в розділі 2 описана архітектура фреймворку Apache Hadoop; в розділі 3 розглянуто архітекту- ру модуля управління робочими процеса- ми для OSS системи оператора зв’язку; розділ 4 описує проведений дослід та його результати. Стаття завершується виснов- ками та подальшими напрямками розвит- ку роботи. 1. Опис Apache Hadoop фреймворку 1.1. Основні концепції Hadoop платформи. Apache Hadoop — вільна про- грамна платформа і каркас для організації розподіленої обробки великих обсягів да- них (що міряється у петабайтах) з викори- станням парадигми MapReduce, при якій завдання ділиться на безліч дрібніших від- особлених фрагментів, кожен з яких може бути запущений на окремому вузлі класте- ра [4]. До складу Hadoop входить також реалізація розподіленої файлової системи Hadoop Distributed Filesystem (HDFS), кот- ра автоматично забезпечує резервування даних і оптимізована для роботи MapReduce-застосунків. Для спрощення доступу до даних в сховищі Hadoop розро- блена БД HBase і SQL-подібна мова Hive, яка є свого роду SQL мовою для MapReduce і запити якої можуть бути роз- паралелені і оброблені кількома Hadoop- платформами. Переваги платформи: 1) велика швидкість операцій; 2) файлова система, що дозволяє зберігати в собі файли розмірів >10Gb; 3) відмовостійкість, наявність ре- плікацій даних; 4) масштабування – додавання нових серверів не викликає проблем; 5) робота задач безпосередньо на нодах, де зберігаються дані, не по відда- леному доступу. Моделі та засоби паралельних і розподілених програм 42 1.2. Можливості Hadoop. Основні можливості Hadoop платформи: 1) зручна файлова система HDFS; 2) використання парадигми MapReduce; 3) розподілена підтримка запитів, операцій; 4) підтримка Java2EE, віддаленого доступу; 5) наявність інструментів інтегра- ції з такими популярними Java фреймвор- ками, як Spring та Hibernate. 1.3. Коли варто застосовувати Hadoop? Hadoop варто використовувати у тому разі, якщо обчислення повинні бути компонованими, тобто ви повинні мати можливість запустити обчислення пара- лельно на певному масиві даних, потім сумістити отримані результати, можливо знову розпаралелити обчислення на осно- ві отриманих результатів і т. п. Або якщо ви плануєте обробляти великі обсяги да- них (більші, ніж може обробити одна ма- шина) [5]. 1.4. Коли не варто застосовувати Hadoop? Не потрібно застосовувати Hadoop платформу, якщо: 1) ваші задачі не компоновані – ви не можете розбити їх на частини, що можуть виконуватися паралельно та неза- лежно одна від одної; 2) якщо у вас невеликі обсяги да- них; 3) якщо ви будуєте систему, що буде виконуватися в режимі реального часу. 2. Архітектура Hadoop платформи 2.1. Архітектура Hadoop клас- тера. Основною особливістю Hadoop пла- тформи є її файлова система HDFS (Hadoop Distributed File System). По суті, це звичайна файлова система, тільки в рази більша та розкидана по різним серверам (нодам). Розглянемо її архітектуру. Hadoop-кластер складається з на- ступних нод: 1) NameNode – це центр системи. Як правило, вона створюється однією на кластер та зберігає в собі всі метадані си- стеми, такі як мапінг між файлами та бло- ками; 2) Secondary NameNode – це нода, що відслідковує зміни, що відбуваються в файловій системі та в кластері загалом. За рахунок цього з неї можливе ручне відно- влення NameNode ноди, хоча вона і не являється реплікою NameNode ноди. На реальних кластерах NameNode та Secondary NameNode – це окремі сервери, які дуже вимогливі до ресурсів; 3) DataNode нод може бути дуже багато. Ці ноди зберігають в собі безпосе- редньо блоки файлів та містять в собі ви- конавчі ланки TaskTracker, які займається виконанням задач та операцій над блока- ми даних, що зберігаються локально на нодах; 4) MapReduce мастер нода (JobTracker) – займається розподіленням по всім нодам задач. 2.2. Парадигма MapReduce. В Apache Hadoop фреймворку знайшла свою реалізацію така парадигма, як MapReduce [5]. При правильній архітектурі систе- ми, інформація про те, на яких маши- нах зберігаються блоки даних, дозволяє запустити на них же обчислювальні про- цеси і виконати більшу частину обчис- лень локально, тобто без передачі даних по мережі. Це в рази збільшує ефектив- ність обчислень. І саме ця ідея лежить в основі парадигми MapReduce та її конкретної реалізації під Hadoop плат- форму. Кожен MapReduce процес склада- ється з двох фаз:  Map – виконується паралельно, і по можливості локально над кожним блоком даних. Тобто замість того, щоб доставляти терабайти даних до програм- ної реалізації, невелика, визначена корис- тувачем програма копіюється на сервера з даними та виконує над ними все, що за- кладено в її логіці, що в свою чергу не вимагає перемішування та переміщення даних; Моделі та засоби паралельних і розподілених програм 43  Reduce – доповнює Map агре- гуючими операціями, тобто збирає ре- зультати паралельних обчислень в одне ціле. 3. Розподілена архітектура модуля управління робочими процесами для OSS системи оператора зв’язку 3.1. Основні поняття, якими опе- рує модуль. У попередній версії модуля управління робочими процесами було реа- лізовано паралельне виконання процесів в рамках одного серверу додатків та синх- ронне/асинхронне виконання задач, із яких складається процес [6]. Було реалізовано кілька задач, які виконують стандартні операції – такі як запис в базу даних, по- шук у базі даних, перетворення строкових даних, пошук даних по заданому шаблону і т. п. Також за допомогою базового функ- ціоналу Java [7] Reflection API було реалі- зовано задачу, яка виконувала будь-який Java клас, вказаний на ній параметром, який є присутнім на сервері додатків та такий, що реалізує інтерфейс com.dipl.Task. Також, були реалізовані інструмен- ти підтримання життєвих циклів процесів та задач, які дозволяли користувачу відслі- дковувати в якому стані перебуває процес та його окремі задачі, моніторити помил- ки, що виникали при виконанні процесів та задач, приймати рішення про повторне виконання задач, перевідкриття за- дач/процесів тощо [8]. Розглянемо діаграми класів базових інтерфейсів прототипу модуля управління робочими процесами для OSS системи оператора зв’язку (рис. 1). Опишемо детально кожен з класів. Base – містить в собі загальні для всіх інших класів поля. Process – клас є основним та окрім своїх параметрів містить також список задач, які повинні бути послідовно вико- нані. Task – це основний об’єкт процесу. Має посилання на операцію, яка викону- ється при обробці задачі, порядок вико- нання серед всіх останніх задач процесу та на сам процес, в рамках якого викону- ється. Operation – найменша атомарна частина процесу, що виконується. Міс- тить в собі три параметри: path – шлях до класу, method – метод цього класу, params – вхідні параметри до вказаного методу, якщо їх кілька, вони записуються через символ «|». Також розглянемо інструмент, що дозволив забезпечити життєвий цикл процесу та задачам [9]. 3.2. Життєвий цикл процесу та задачі. Процес та кожна його задача ма- ють свої життєві цикли. Життєві цикли нерозривно пов’язані з обробкою процесів і задач, та з їх виконанням. Саме тому роз- глянемо рівень, який виконує управління виконанням процесів та задач, разом з рів- нем забезпечення життєвих циклів, та їх взаємодію. Для початку, визначимо основні етапи, через які проходить кожен із проце- сів та задач: 1) створення процесу; 2) створення задач для процесу; 3) заповнення кожної із задач опе- раціями; 4) запуск виконання процесу. В залежності від того, як заверши- лося виконання процесу, слідуючи прави- лам життєвого циклу процесів та задач можна повторити виконання певних за- дач, перевідкрити задачу, призупинити процес, відмінити виконання задачі та ін. Перехід процесу чи задачі із одно- го стану в інший є основним завданням рівня управління життєвим циклом. Та- кож від цього рівня залежать дозволи або заборони на виконання певних дій в зале- жності від того, чи дозволяє стан процесу чи задачі їх виконувати. У випадку окремого використання модуля, виклики до Process Manager є на- слідками дій користувача та приходять від UI (User Interface). В реакцію на дії корис- тувача Process Manager генерує відповід- ну подію POEvent. Події POEvent можуть бути різних типів та відповідають діям, Моделі та засоби паралельних і розподілених програм 44 які можна проводити над процесом та над задачею. Після того, як було згенеровано подію POEvent, Event Manager обробляє її, та в залежності від її типу, зверта- ється до рівня DAO на створення /модифікацію/видалення задачі чи проце- су, або звертається до Life Cycle Manager за дозволом на виконання певної операції. Life Cycle Manager перевіряє пото- чний статус процесу чи задачі і видає дозвіл або заборону на виконання запи- туваної операції. Якщо видається дозвіл, він міняє статус процесу чи задачі на відповідний та дозволяє подальшу оброб- ку, яка здійснюється в класі Process Engine. Process Engine має всього два метода – виконання процесу та вико- нання задачі. При виконанні процесу, він послідовно виконує всі задачі, що належать цьому процесу, та перед кож- ною задачею генерує для задачі необхідну подію для отримання від Life Cycle Manager дозволу на її виконання. В зале- жності від конфігурації окремої задачі, вона виконується або асинхронно, або синхронно [10]. 4. Реалізація задачі пошуку слів у файлах великого розміру, яка буде паралельно розподільно виконувати обчислення Для реалізації визначимо новий тип операції – DistributedOperation, який буде наслідуватися від Operation, проте матиме наступні параметри: 1) Path – шлях до класу, в якому описана логіка запуску паралельного роз- поділеного обчислення; 2) Method – назва методу класу, вказаного в параметрі Path, в якому описа- на логіка запуску паралельного розподіле- ного обчислення; 3) Map path – шлях до класу, в якому описана логіка, що буде паралельно розподільно виконуватися на всіх DataNode нодах Hadoop кластера. Клас має бути об’явлений наступ- ним чином та містити метод map: public static class Map extends MapReduceBase implements Рисунок 1 Моделі та засоби паралельних і розподілених програм 45 Mapper<LongWritable, Text, Text, IntWritable> { public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) { } } 4) Reduce path – шлях до класу, в якому описана логіка, що буде збирати результати обчислень з них усіх воєдино. Клас має бути об’явлений наступ- ним чином та містити метод reduce: public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter){ } } 5) Input file path – шлях до файлу із вхідними данними; 6) Output file path – шлях до файлу із вихідними даними. 5. Дослід та отримані результати Для проведення досліду було змо- дельовано два процеси. 5.1. Послідовне обчислення. Пер- ший складався із задачі, сконфігурованої для послідовної обробки даних. Для її реалізації було створено та написано клас OperationImpl, який має ме- тод execute. В методі в одному потоці зчи- тується порядково файл та шукаються співпадіння із заданим шаблоном. 5.2. Паралельне розподілене об- числення. Другий складався із однієї за- дачі, зконфігурованої для розподіленої обробки даних. Для її реалізації було створено та написано класи Map, Reduce та DistributedOperationImpl. Реалізація класу Map полягає в тому, що при зчитуванні з блоку даних інформації, строкове значення ділиться на окремі слова, які перевіряються на те, чи є серед цих слів IP адреса. В якості шаблону, по якому проводився пошук, було використано наступний регулярний вираз: (.*)+(\\b((25[0-5]|2[0-4][0-9]|[01]? [0-9][0-9]?)(\\.|$)){4}\\b)*(.*)+ Цьому шаблону відповідають наступні рядки [11]: 1) (some text with symbols) 192.168.42.28 (some text with symbols); 2) 192.168.42.32(some text with symbols); 3) (some text with symbols) 192.168.13.01; 4) 10.0.0.13. Клас Reduce відповідає за зведення результатів пошуку воєдино. Клас DistributedOperationImpl відповідає за за- пуск пошуку та виступає інтерфейсом, який інтегрує роботу з розподільними об- численнями з модулем управління робо- чими процесами. 5.3. Проведення тестування сис- теми. Для проведення тестування системи, було створено один Hadoop кластер, що містив в собі дві віртуальні DataNode ноди – по одному ядру кожна. Описаний в пун- кті 4.1 процес запускався послідовно на одній ноді та паралельно на двох та на чо- тирьох декілька разів для файлів наступ- них розмірів: 1) 50Mb; 2) 100Mb; 3) 400 Mb; 4) 600Mb; 5) 1Gb. Для кожного із випадків були проведені виміри часу [12]. 5.4. Аналіз отриманих результа- тів. В результаті дослідження були отри- манні наступні середні значення для кож- ної із умов (таблиця). Моделі та засоби паралельних і розподілених програм 46 Таблиця Об- сяг фай- лу (Mb) Послідо- вно 1 нода (Tl, c) Парале- льно 2 ноди (Tp, c) Парале- льно 4 ноди (Тр, с) 50 4.674 5.417 4.704 100 8.967 7.129 6.839 400 34.925 14.145 8.142 600 52.508 20.081 4.093 1000 85.522 14.286 2.620 На рис. 2 показано графік залежно- сті часу виконання процесу від обсягу оброблених даних. Порівняльний графік часу, затраченого на обробку файлів різ- ного об’єму на одному, двох та чотирьох вузлах. Рисунок 2 Отримані результати показують, що за послідовної обробки файлів при збільшенні їхнього обсягу час їхньої об- робки та аналізу збільшується практично лінійно. Тестування ж паралельної розподі- леної обробки файлу показало, що на ма- лих розмірах файлів результати практично співпадають з послідовною обробкою. Проте при збільшенні обсягу даних, паралельна розподілена обробка показує значно кращі результати. Для досліду було використано од- ну, дві та чотири ноди, саме тому можна допустити, що при збільшенні кількості нод на великих обсягах даних, їхня пара- лельна розподілена обробка буде показу- вати значно кращі результати. Висновки У роботі запропонована архітекту- ра модуля управління робочими процеса- ми для OSS системи оператора зв’язку та його модифікація для виконання окремих незалежних операцій з обробки даних па- ралельно та розподілено. Для цієї реаліза- ції було обрано фреймворк Apache Hadoop [13]. На даний момент розроблено «яд- ро» модуля та інтегровано його з інстру- ментами, що дозволяють виконувати роз- поділено-паралельні обчислення. Розроб- лену частину системи було перевірено на задачі підрахування слів, що співпадають зі шаблоном, у файлах великих розмірів. Отримані результати досліду демонстру- ють значний приріст у швидкодії цієї сис- теми, що підтверджує ефективність обра- ної архітектури та реалізації. Одним із головних надбань даного рішення є те, що розроблений модуль управління робочими процесами для OSS системи оператора зв’язку дозволить не тільки нарощувати ресурси для більш швидкої обробки даних користувачів, а й гнучко конфігурувати та слідкувати за виконання бізнес процесів у системі. Рі- шення є масштабованим та легко підтри- муваним. На базі поточних розробок буде проведено кілька наступних модифікацій, котрі дозволять тісніше інтегрувати опе- рації по розподілено-паралельній обробці з уже існуючим ядром модуля, що дозво- лить ще більше скоротити час виконання подібних операцій. А також буде розроб- лено інтерфейс для виконання симуляцій, запуску процесів, їхнього моніторингу та управлінню. Ще один напрямок розвитку модуля – це його інтеграція з хмаринко- вими сервісами й повне перенесення об- числень в хмару. Моделі та засоби паралельних і розподілених програм 47 1. What is BPM? [Електронний ресурс]. – Ре- жим доступу: http://www.bpm.com/ what-is- bpm.html. 2. Hibernate ORM [Електронний ресурс]. – Режим доступу: http://hibernate.org/. 3. Spring Guides [Електронний ресурс]. – Ре- жим доступу: https://spring.io/guides. 4. Learning Apache Hadoop [Електронний ресурс]. – Режим доступу: http://shop. oreilly.com/product/110000753.do. 5. Building Hadoop Clusters [Електронний ресурс]. – Режим доступу: http://shop. oreilly.com/product/110000685.do. 6. Александров Л.В., Шепелев Н.П. Систем- ный анализ при создании и освоении объе- ктов техники. – М.: НПО «Поиск», 1992. – 88 с. 7. Java API – Oracle Documentation [Елект- ронний ресурс]. – Режим доступу: http://docs.oracle.com/javase/7/docs/api/. 8. Архитектура приложений – горячие точки [Електронний ресурс]. – Режим доступу: http://habrahabr.ru/post/40660/. 9. Service-oriented architecture [Електронний ресурс]. – Режим доступу: http://en.wikipedia.org/wiki/Service-oriented_ architecture 10. Мартин Фаулер, Дейвид Райс, Мэттью Фоммел, Эдвард Хайет, Роберт Ми, Рэнди Стаффорд. Шаблоны корпоративных приложений. – Вильямс, 2010. – 544 c. 11. Кей Хорстман, Гари Корнелл Java 2. Том 2. Тонкости программирования 9-е из- дание. – Вильямс, 2013. – 1008 с. 12. Бейзер Б. Тестирование черного ящика. Технологии функционального тестирова- ния программного обеспечения и систем. – Питер, 2004. – 320 с. 13. Hadoop 2 Essentials: An End-to-End Approach [Електронний ресурс]. – Режим доступу: http://www.amazon.com /Hadoop- Essentials-End---End-Approach /dp/1495496120/ref=sr_1_1?s=books&ie=UT F8&qid=1408657210&sr=1- 1&keywords=Hadoop+2+Essentials 1. What is BPM? [Online] Available from: http://www.bpm.com/what-is-bpm.html. [Accessed: 8 October 2015]. 2. Hibernate ORM [Online] Available from http://hibernate.org/. [Accessed 8 October 2015]. 3. Spring Guides [Online] Available from https://spring.io/guides [Accessed: 8 October 2015]. 4. Learning Apache Hadoop [Online] Available from: http://shop.oreilly.com/product /110000753.do [Accessed: 8 October 2015]. 5. Building Hadoop Clusters [Online] Available from: http://shop.oreilly.com/product /110000685.do [Accessed: 8 October 2015]. 6. Alexandrov L.V., Shepelev N.P. Systems analysis in the creation and using technics objects. – Moskow: “Poisk”, 1992. – 88 p. (in Russian). 7. Java API – Oracle Documentation [Online] Available from http://docs.oracle. com/javase/7/docs/api/. [Accessed: 8 October 2015]. 8. Application architecture [Online] Available from http://habrahabr.ru/post /40660/. [Accessed: 8 October 2015]. 9. Service-oriented architecture [Online] Available from http://en.wikipedia.org /wiki/Service-oriented_architecture [Accessed: 8 October 2015]. 10. Martin Fowler Patterns of Enterprise Application Architecture. Addison Wesley, November 05, 2002. ISBN: 0-321-12742-0, 544 p. 11. Cay Horstmann Core Java Volume II – Advanced Features (9 th Edition). Michigan: Ann Arbor, March 6, 2013. 1008 p. 12. Beyzer B. BlackBox testing. Functional testing of applications. Saint Petersburg: 2004. – 320 p. 13. Hadoop 2 Essentials: An End-to-End Approach [Online] Available from http://www.amazon.com/Hadoop-Essentials- End---End- Approach/dp/1495496120/ref=sr_1_1?s=book s&ie=UTF8&qid=1408657210&sr=1- 1&keywords=Hadoop+2+Essentials [Accessed: 8 October 2015] Одержано 09.10.2015 Про авторів: Дорошенко Анатолій Юхимович, доктор фізико-математичних наук, професор, завідувач відділу теорії комп’ютерних обчислень Інституту програмних систем НАН України, http://www.bpm.com/%20what-is-bpm.html http://www.bpm.com/%20what-is-bpm.html http://hibernate.org/ https://spring.io/guides http://docs.oracle.com/javase/7/docs/api/ http://habrahabr.ru/post/40660/ http://en/ http://www.bpm.com/what-is-bpm.html http://hibernate.org/ https://spring.io/guides http://shop.oreilly.com/product%20/110000753.do http://shop.oreilly.com/product%20/110000753.do http://shop.oreilly.com/product%20/110000685.do http://shop.oreilly.com/product%20/110000685.do http://habrahabr.ru/post%20/40660/ http://www.amazon.com/Hadoop-Essentials-End---End-Approach/dp/1495496120/ref=sr_1_1?s=books&ie=UTF8&qid=1408657210&sr=1-1&keywords=Hadoop+2+Essentials http://www.amazon.com/Hadoop-Essentials-End---End-Approach/dp/1495496120/ref=sr_1_1?s=books&ie=UTF8&qid=1408657210&sr=1-1&keywords=Hadoop+2+Essentials http://www.amazon.com/Hadoop-Essentials-End---End-Approach/dp/1495496120/ref=sr_1_1?s=books&ie=UTF8&qid=1408657210&sr=1-1&keywords=Hadoop+2+Essentials http://www.amazon.com/Hadoop-Essentials-End---End-Approach/dp/1495496120/ref=sr_1_1?s=books&ie=UTF8&qid=1408657210&sr=1-1&keywords=Hadoop+2+Essentials http://www.amazon.com/Hadoop-Essentials-End---End-Approach/dp/1495496120/ref=sr_1_1?s=books&ie=UTF8&qid=1408657210&sr=1-1&keywords=Hadoop+2+Essentials Моделі та засоби паралельних і розподілених програм 48 професор кафедри автоматики і управління в технічних системах НТУУ “КПІ”. Кількість наукових публікацій в українських виданнях – понад 150. Кількість наукових публікацій в іноземних виданнях – понад 30. Індекс Гірша – 3. ORCID orcid.org/0000-0002-8435-1451, Шихутська Світлана Олександрівна, студентка факультету інформатики та обчислювальної техніки, кафедри автоматики і управління в технічних системах НТУУ “КПІ”, Кількість наукових публікацій в українських виданнях – 1. ORCID orcid.org/0000-0002-8643-8999. Місце роботи авторів: Інститут програмних систем НАН України, 03680, Київ-187, проспект Академіка Глушкова, 40. Тел.: (044) 526 1538. E-mail: dor@isofts.kiev.ua, Національний технічний університет України "КПІ" 03056, Київ-56. Проспект Перемоги, 37. Тел.: (044) 236 7989. E-mail: shyk.shyk@gmail.com mailto:dor@isofts.kiev.ua mailto:shyk.shyk@gmail.com