Web service for enterprise resource management systems

A web service for enterprise resource management systems has been developed, which allows creating and managing fast secure enterprise resource management systems based on user-required modules. The uniqueness of the service is that in addition to the fact that it contains most of the existing stand...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2022
Автори: Tarasenko, A.D., Doroshenko, A.Yu.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут програмних систем НАН України 2022
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/499
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-499
record_format ojs
resource_txt_mv ppisoftskievua/6d/b89f67680667c211a40a0c1bb8aa166d.pdf
spelling pp_isofts_kiev_ua-article-4992023-01-15T13:09:56Z Web service for enterprise resource management systems Веб-сервіс для систем управління ресурсами підприємства Tarasenko, A.D. Doroshenko, A.Yu. management system; enterprise resources; ERP system; modularity; network interaction UDC 004.031’43 система управління ресурсами підприємства; ERP система; модульність; мережева взаємодія УДК 004.031’43 A web service for enterprise resource management systems has been developed, which allows creating and managing fast secure enterprise resource management systems based on user-required modules. The uniqueness of the service is that in addition to the fact that it contains most of the existing standards and capabilities of other ERP systems from other IT companies, it has a significant advantage - there is no need to address IT-specialists for the development and configuration of ERP systems for the needs of the end user in its use. The main website of the web service has been developed, which provides authentication and authorization; installer application for creating and running ERP system; ERP server application, and client application for interaction with ERP system. Functional testing of the developed web service was carried out by testing each application separately and in a joint relationship. Thanks to the concept of modularity, this system is easily supplemented and expanded. In the future, this service can be supplemented with new functionality, depending on business requirements.Problems in programming 2022; 2: 47-56 Розроблено веб-сервіс для систем управлін- ня ресурсами підприємства, що дозволяє створювати та управляти швидкими захищеними системами управління ресурсами підприємства на основі необхідних користувачеві модулів. Унікальність сервісу полягає в тому, що окрім того, що в ньому при- сутня більшість вже існуючих стандартів та можливостей інших ERP систем від інших ІТ-компаній, він має суттєву перевагу – в його використанні відсутня необхідність звертання до ІТ-спеціалістів задля розробки та налаштування ERP системи під потреби кінцевого користувача. Здійснено розробку головного веб-сайту веб-сервісу, який передбачає автентифікацію та авторизацію; додатку інсталятору для створення і запуску ERP системи; додаток серверу ERP системи та клієнтського додатку для взаємодії із сервером ERP системи. Проведено функціональне тестування розробленого веб-сервісу шляхом тестування кожного додатку окремо та у спільному взаємозв’язку. Завдяки концепції модульності, дана система легко доповнюється та розширюється. В перспективі сервіс можна доповнювати новим функціоналом залежно від вимог бізнесу.Problems in programming 2022; 2: 47-56 Інститут програмних систем НАН України 2022-09-26 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/499 10.15407/pp2022.02.047 PROBLEMS IN PROGRAMMING; No 2 (2022); 47-56 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2 (2022); 47-56 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2 (2022); 47-56 1727-4907 10.15407/pp2022.02 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/499/497 Copyright (c) 2022 PROBLEMS IN PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2023-01-15T13:09:56Z
collection OJS
language Ukrainian
topic management system
enterprise resources
ERP system
modularity
network interaction
UDC 004.031’43
spellingShingle management system
enterprise resources
ERP system
modularity
network interaction
UDC 004.031’43
Tarasenko, A.D.
Doroshenko, A.Yu.
Web service for enterprise resource management systems
topic_facet management system
enterprise resources
ERP system
modularity
network interaction
UDC 004.031’43
система управління ресурсами підприємства
ERP система
модульність
мережева взаємодія
УДК 004.031’43
format Article
author Tarasenko, A.D.
Doroshenko, A.Yu.
author_facet Tarasenko, A.D.
Doroshenko, A.Yu.
author_sort Tarasenko, A.D.
title Web service for enterprise resource management systems
title_short Web service for enterprise resource management systems
title_full Web service for enterprise resource management systems
title_fullStr Web service for enterprise resource management systems
title_full_unstemmed Web service for enterprise resource management systems
title_sort web service for enterprise resource management systems
title_alt Веб-сервіс для систем управління ресурсами підприємства
description A web service for enterprise resource management systems has been developed, which allows creating and managing fast secure enterprise resource management systems based on user-required modules. The uniqueness of the service is that in addition to the fact that it contains most of the existing standards and capabilities of other ERP systems from other IT companies, it has a significant advantage - there is no need to address IT-specialists for the development and configuration of ERP systems for the needs of the end user in its use. The main website of the web service has been developed, which provides authentication and authorization; installer application for creating and running ERP system; ERP server application, and client application for interaction with ERP system. Functional testing of the developed web service was carried out by testing each application separately and in a joint relationship. Thanks to the concept of modularity, this system is easily supplemented and expanded. In the future, this service can be supplemented with new functionality, depending on business requirements.Problems in programming 2022; 2: 47-56
publisher Інститут програмних систем НАН України
publishDate 2022
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/499
work_keys_str_mv AT tarasenkoad webserviceforenterpriseresourcemanagementsystems
AT doroshenkoayu webserviceforenterpriseresourcemanagementsystems
AT tarasenkoad vebservísdlâsistemupravlínnâresursamipídpriêmstva
AT doroshenkoayu vebservísdlâsistemupravlínnâresursamipídpriêmstva
first_indexed 2025-07-17T09:46:24Z
last_indexed 2025-07-17T09:46:24Z
_version_ 1838409386768203776
fulltext 47 Програмування для комп’ютерних мереж та Інтернет Вступ Процес організації бізнесу все більше компаній та корпорацій почина- ють із встановлення системи управління її ресурсами та загальним функціоналом автоматизації бізнес-процесів усередині компанії. Відповідно, для вирішення да- ного питання бізнес звертається до по- слуг ІТ-спеціалістів для створення даної системи. В більшості випадків ці системи мали схожий функціонал, схожі сервіси й можливості, тому із часом у деяких про- відних ІТ-компаній виникла ідея напи- сання даної системи із усіма основними функціями та можливостями та постачан- ня її як ІТ-послуги. Але оскільки ніколи не відомо, який функціонал буде необхід- ним потенційному клієнтові, від процесу створення програмних доповнень до вже існуючої системи постачальники даного сервісу вирішили не відмовлятися. В ре- зультаті маємо ERP систему із базовим функціоналом, яка за необхідності допо- внюється потрібними клієнтові механіз- мами, та постачається даному клієнтові у вигляді ІТ-послуги. Клієнтові це вигідно, бо йому не потрібно витрачати час та ре- сурси (в основному грошові – на найман- ня ІТ-спеціалістів на розробку системи), а постачальнику системи дає прибуток за користування цією системою клієнтом. У даній роботі натомість реалізо- вано систему, призначену для викорис- тання як ІТ-послуги на потенційних ко- мерційних засадах. Кінцевими користу- вачами даної системи є адміністратори або ІТ-спеціалісти компаній, яким по- ставлена задача впровадження ERP сис- теми у даній компанії. 1. Стратегії та основні компоненти ERP система – інформаційна систе- ма управління ресурсами підприємства, належить до програмного забезпечення, що їх компанії, корпорації та організації використовують для управління повсяк- денними процесами всередині своєї біз- нес-структури, такими як бухгалтерський облік, управління проєктами, закупівлею, операціями з ланцюгами поставок тощо. «Під інформаційною розуміють будь-яку систему, яка за допомогою технічних за- собів виконує одну, або кілька функцій, як збирання, передавання, перетворення, накопичення, зберігання, та обробка ін- формації» [1-2]. Повний пакет ERP системи також включає управління ефективністю діяль- ності підприємства, а також програмне забезпечення, яке полегшує процеси пла- нування, складання бюджету, прогнозу- УДК 004.031’43 https://doi.org/10.15407/pp2022.02.047 А.Д. Тарасенко, А.Ю. Дорошенко ВЕБ-СЕРВІС ДЛЯ СИСТЕМ УПРАВЛІННЯ РЕСУРСАМИ ПІДПРИЄМСТВА Розроблено веб-сервіс для систем управління ресурсами підприємства, що дозволяє створювати та управляти швидкими захищеними системами управління ресурсами підприємства на основі необ- хідних користувачеві модулів. Унікальність сервісу полягає в тому, що окрім наявності більшості вже існуючих стандартів та можливостей інших ERP систем від інших ІТ-компаній, він має суттєву перевагу – в його використанні відсутня необхідність звертання до ІТ-спеціалістів задля розробки та налаштування ERP системи під потреби кінцевого користувача. Здійснено розробку головного веб- сайту веб-сервісу, який передбачає автентифікацію та авторизацію; додатку інсталятору для ство- рення і запуску ERP системи; додаток серверу ERP системи, та клієнтського додатку для взаємодії із сервером ERP системи. Передбачено створення облікових записів працівників компанії у ERP системі, їх розподіл за відділами для доступу до встановлених модулів, а також створення системи як у локальному дата-центрі, так і у хмарному середовищі. Проведено функціональне тестування розробленого веб-сервісу через тестування кожного додатку окремо та у спільному взаємозв’язку. Ключові слова: система управління ресурсами підприємства, ERP система, модульність, мережева взаємодія. © А.Д. Тарасенко, А.Ю. Дорошенко, 2022 ISSN 1727-4907. Проблеми програмування. 2022. № 2 48 Програмування для комп’ютерних мереж та Інтернет вання та звітності про фінансові досяг- нення компанії [3]. До основних характеристик стра- тегії ERP належать: - централізація: використання єди- ної системи транзакцій для переважної більшості операцій та бізнес-процесів підприємства. Усі операції об’єднані в єдину базу даних для подальшої оброб- ки та збалансованих планів у реальному часі; - відтворюваність: забезпечення можливості використання одного пакету програмного забезпечення для різних ор- ганізацій (можливо, з різними налашту- ваннями та розширеннями); - локалізація: підтримка в єдиній системі декількох валют та мов; - підтримка декількох юридичних осіб, кількох підприємств, декількох об- лікових політик та різних схем оподатку- вання в єдиній системі; це необхідно для використання у корпораціях, зокрема, транснаціональних. Окрім цього, є ключові компоненти сучасної ERP-системи, які мають виріши- ти головні проблеми більшості компаній у розгляді питання про перехід до хмари. Є сім компонентів, які поділяються на дві категорії – сучасні параметри платформи та сучасний дизайн бізнес-додатків. Разом ці сім компонентів визначають стандарти сучасної ERP-системи. До того ж, сучас- ні хмарні додатки мають масштабуватися відповідно до вимог бізнесу та підтриму- вати новітні цифрові технології для задо- волення потреб організації [4]. До вищезгаданих компонентів су- часної ERP-системи належать: - безпека. Багатошаровий підхід до захисту даних на кожному шарі стеку є головним для максимального захисту даних [5]. Використання безпечної архі- тектури ізоляції даних у хмарі зменшує ризик та забезпечує швидший доступ до даних та їх обробку; - інтеграція. Хмарні рішення ERP мають безперешкодно поєднувати біз- нес, людей та процеси. Також має бути продумана та реалізована можливість підключення до інших хмар, локальних систем та сторонніх рішень. Для забез- печення сумісності та масштабованості слід вибрати рішення, яке використовує загальну структуру, засновану на галузе- вих стандартах; - персоналізація. Хмарні рішення, побудовані на платформі, що базується на стандартах, пропонують персоналіза- цію та конфігурацію в додатку, що при- зводить до покращень, безпечних для оновлення. Якщо локальні налаштування клієнта потрапляють у такі сфери, як ро- бочі процеси, інтеграція та звітування, є велика ймовірність вирішення вимог біз- несу за допомогою хмарних рішень; - повнота. Вбудовані найкращі прак- тики підтримують стандартизацію, що до- зволяє знизити витрати та збільшити про- дуктивність. Навіть якщо хмарний перехід поступовий, доступ до повного набору ін- тегрованих передових бізнес-процесів за- безпечує стандартизацію підприємств; - глобалізація. Вихід на нові рин- ки та географії створюють складність, вимагаючи будь-якого хмарного рішен- ня ERP для підтримки декількох дочір- ніх компаній та локалізації країн. Часто місцеві центри обробки даних повинні відповідати вимогам щодо збереження даних. Правильний хмарний ERP має за- безпечувати безперебійний обмін корпо- ративною інформацією між операціями, бізнес-підрозділами та штаб-квартирою; - аналіз, заснований на аналізі. Хмарне ERP-рішення повинно мати на- дійний доступ до даних у реальному часі у своїй основі для забезпечення єдиного джерела істинності між ролями, звітами та аналізом. Це забезпечує своєчасну до- ставку точних показників ефективнос- ті для передових менеджерів та суттєво спрощує процес у разі його залежності від періоду закриття або окремого витягу сховища даних; - цифрові можливості. Для сучас- ного бек-офісу цифрові технології ма- ютьбути інтегровані в бізнес-процеси та операції для створення цілісного, продук- тивного та інтуїтивно зрозумілого досві- ду. Користувацький досвід повинен бути цікавим і включати мобільну доступність для постійних співробітників, власну со- ціальну інтеграцію для безпечної спіль- 49 Програмування для комп’ютерних мереж та Інтернет ної роботи в контексті та нестандартне оптичне розпізнавання символів для зо- браження рахунків-фактур. 2. Огляд аналогів Одним із найбільш популярних та передових сервісів ERP систем є розробка від технологічного гіганта Microsoft – MS Dynamics 365 BC. Це програмне рішення управління для малого та середнього біз- несу з метою автоматизації бізнес проце- сів. Даний продукт є частиною сімейства Microsoft Dynamics [6]. Насамперед цей продукт є веб-орієнтованим SaaS (англ. «Software as a Service» – «програмне за- безпечення як сервіс») рішенням. До вер- сії #14 була доступна локальна версія, у складі налаштувань якої була можливість використання спеціально налаштованого клієнта. Починаючи із версії #15, доступ до системи здійснюється лише через Ін- тернет на веб сайті dynamics.com. Іншим не менш популярним та не менш передовим сервісом ERP систем відносно іншого технологічного гіганта – компанії Oracle – є система Oracle ERP [7]. Це інтегрований хмарний комплекс додатків для управління фінансами, за- купівлею і портфелем проєктів для мало- го та середнього бізнесу. Даний продукт побудований на міцному об’єднанні платформи, додатків та підходу з ви- користанням фінансових, закупівельних, портфельних проєктів та управління ефективністю діяльності підприємств. На відміну від MS Dynamics 365 BC, дана система доступна лише у ви- гляді хмарного сервісу, без можливості локального встановлення або гібридного розгортання. В обох даних аналогах присутній суттєвий недолік – кінцевий користувач має звертатися до постачальника даної системи (Microsoft, Oracle тощо) задля налаштування системи під свої потреби. Розроблена система даного недоліка по- збувається. 3. Розробка АРІ АРІ сервер даної системи – її голо- вний компонент. Взаємодія із зовнішніми запитами у даному проєкті реалізована у вигляді АРІ контролерів – набору ме- тодів, які приймають HTTP GET, POST, PUT і DELETE запити, та виконують пев- ну бізнес-логіку. У даному АРІ присутні три контр- олери: - Modules: даний контролер відпо- відає за роботу із репозиторієм модулів із БД. В ньому присутні наступні методи: 1) GET api/modules?moduleID= по- вертає детальну інформацію про модуль за його ідентифікатором; 2) POST api/modules/all = повертає масив усіх модулів із врахуванням філь- тру (фільтр передається через Body у за- питі); 3) POST api/modules/non-default = повертає масив усіх модулів не за замов- чуванням із врахуванням фільтру (фільтр передається через Body у запиті); 4) POST api/modules/marketplace = повертає масив усіх невстановлених на вказаній ERP системі (через Body у запи- ті передається ідентифікатор системи та фільтр); 5) POST api/modules/marketplace/ add = запит на додавання модулю до вка- заної ERP системи (через Body у запиті передаються ідентифікатори системи та модулю); 6) POST api/modules/marketplace/ remove = запит на видалення модулю із вказаної ERP системи (через Body у за- питі передаються ідентифікатори систе- ми та модулю); - ErpSystems: основний контролер у даному додатку. Відповідає за роботу із репозиторієм ERP систем із базою даних. Даний контролер захищений авторизаці- єю (для виклику будь-якого методу необ- хідно спочатку успішно авторизуватися у системі) через токени, час дії яких – 20 хвилин. У ньому присутні наступні методи: 1) GET api/erp-systems/check- company?company= перевіряє наявність у головній базі даних сервісу ERP системи із вказаною назвою компанії; 2) GET api/erp-systems/installed- modules?erpID= повертає масив встанов- лених у вказаній ERP системі модулів за ідентифікатором ERP системи; 50 Програмування для комп’ютерних мереж та Інтернет 3) POST api/erp-systems/user-erp- systems?userID= повертає відфільтрова- ний масив ERP систем, які належать вка- заному користувачеві за ідентифікатором користувача (фільтр передається через Body у запиті); 4) POST api/erp-systems виконує запит на створення ERP системи корис- тувачем; 5) DELETE api/erp-systems/erp- systemID= виконує запит на видалення ERP системи користувачем за ідентифі- катором ERP системи. - Users – даний контролер відпові- дає за роботу із репозиторієм користува- чів у базі даних. Аналогічно контролеру «ErpSystems», даний контролер також за- хищений авторизацією. Володіє наступ- ними методами: 1) POST api/users/login виконує за- пит на авторизацію користувача. Модель на авторизацію передається через Body запиту; 2) POST api/users виконує запит на реєстрацію користувача. Модель на реєстрацію передається через Body за- питу; 3) GET api/users/confirm- email?userID= виконує запит на підтвер- дження електронної пошти за ідентифі- катором користувача; 4) GET api/users/forgot- password?email= виконує запит на надси- лання листа для відновлення паролю за вказаною електронною поштою; 5) POST api/users/restore-password виконує запит на відновлення паролю. Модель на відновлення паролю переда- ється через Body запиту; 6) POST api/users/change-password виконує запит на зміну паролю. Модель на зміну паролю передається через Body запиту; 7) PUT api/users виконує запит на оновлення даних про користувача (елек- тронна пошта, логін тощо). Модель із новими даними передається через Body запиту; 8) DELETE api/users виконує запит на видалення облікового запису користу- вача. Модель із користувачем передаєть- ся через Body запиту. 4. Розробка головного веб-сайту Головний веб-додаток повинен слугувати відразу як ознайомчий веб- сайт, на якому користувач може ознайо- митися із усіма послугами даного сервісу (модулями (їхніми описами та деталями) та серверним і клієнтським додатками), так і функціональний веб-застосунок. Вибираючи потрібну сторінку, ко- ристувач може знайти необхідну інфор- мацію про модулі, серверний додаток ERP системи та клієнтський додаток. Для початку було розроблено 3 мо- дулі: модуль управління (встановлений у системі за замовчування та надає доступ до таблиць працівників компанії, відді- лів та власне модулів), модуль фінансів (надає базовий функціонал управління бухгалтерським обліком) та модуль ло- гістики (надає базовий функціонал для управління оборотом товарів, транспор- тування тощо). 5. Розробка інсталятора Інсталятор – головний інструмент користувача для створення ERP системи. Головна мета даного застосунку – дати користувачеві механізм попередніх на- лаштувань серверу перед його початком роботи. Важливо зазначити, що перед встановленням системи, необхідно нала- штувати правила фаєрволу, щоб зробити комп’ютер, на якому буде встановлений сервер, доступним за його публічною ІР адресою. Задля забезпечення коректної ро- боти реєстрації систем, даний додаток взаємодіє із головним АРІ сервером. Це відбувається на трьох етапах: - Авторизація – для запуску систе- ми користувач повинен мати обліковий запис у системі; - Перевірка наявності системи за назвою компанії – в процесі успішного створення системи їй буде наданий до- мен. Цей домен генерується залежно саме від назви компанії власника систе- ми за формулою 1: Домен = «erp-»+назва_компанії+ «.com» (1) 51 Програмування для комп’ютерних мереж та Інтернет Даний домен слугуватиме ключем шифрування адреси серверу системи (його публічного ІР та порту), результа- том шифрування буде ключ організації, який надалі використовуватиметься пра- цівниками для успішної авторизації у системі через клієнтський додаток; - Реєстрація – власне процес від- правлення запиту на АРІ для реєстрації нової системи. 6. Розробка серверу ERP системи Головний компонент – сервер ERP системи – є, по суті, веб-додатком, при- значеним для взаємозв’язку між робітни- ками компанії та базою даних. Мережева взаємодія буде досягнута шляхом вико- ристання АРІ контролеру серверу ERP системи. Сам додаток працює в об’єднанні із інсталятором. Після успішної реєстра- ції системи через інсталятор генерується JSON файл із налаштуваннями системи. Даний JSON передається у виконуючий файл серверу, де на основі даних нала- штувань і конфігурується система. До да- них налаштувань належать: - публічна та приватна ІР адреси; - порт самого додатку, за яким у веб-браузері можна відкрити веб- інтерфейс серверу; - ключі організації та шифрування; - домен та ідентифікатор ERP сис- теми; - перелік модулів; - шлях підключення до бази даних; - назва компанії. Додаток складається із набору сер- вісів, кожен із яких виконує певну зада- чу, та головного сервісу, котрий вирішує, який сервіс (або сервіси) необхідно вико- ристати залежно від запиту користувача. Веб-інтерфейс серверу є його візу- альною частиною. Він створений для по- легшення роботи адміністратора системи і надає весь необхідний інструментарій. Єдиний спосіб для працівників отримати доступ до функціоналу модулів - це бути частиною відділу, до якого при- кріплені необхідні модулі. По суті, відділ є логічним об’єднанням працівників із метою надання їм певних модулів. Тому для полегшення роботи адміністраторів під час запуску серверу буте автоматич- но створений відділ із доступом до всіх встановлених модулів. Для початку най- му нових працівників достатньо створити відділ із доступом до модулю управління (який, як вже було зазначено, встановле- но в системі за замовчуванням), та облі- ковий запис головного HR (англ. «Human Resources») менеджера і закріпити його за даним відділом. Створюючи обліковй запис ново- го працівника, необхідно вказати адресу його електронної пошти, на яку надійде лист із його логіном, паролем (котрий генерується системою закрито від адмі- ністратора та буде відомий лише самому працівнику в листі) та ключем організа- ції. Логін працівника генерується за фор- мулою 2: Логін = нікнейм_пошти + «@» + + домен_системи, (2) де нікнейм_пошти це набір символів із електронної пошти працівника до симво- лу «@» виключно. Використовуючи дані із електро- нного листа та клієнтський додаток, пра- цівник компанії може успішно авторизу- ватися у системі та починаючи роботу. Аналогічно користувач отримува- тиме листи при оновленні або видаленні його облікових записів. Головний ERP сервіс є основним компонентом, котрий має доступ до усіх інших сервісів та здійснює на них керу- ючий вплив. Саме даний сервіс обробляє запит користувача та виконує певні дії для виконання необхідної операції. Не менш ваговим є сервіс взаємодії із базою даних, оскільки саме через ньо- го відбувається взаємодія із базою даних ERP системи. Алгоритм дій залежить від операцій у БД, які потребує користувач. Таких операцій може бути сім: - GetByID – пошук за ідентифіка- тором; - Select – повна вибірка із таблиці; - Insert – запис до таблиці; - Update – оновлення запису у та- блиці; - Delete – видалення із таблиці; 52 Програмування для комп’ютерних мереж та Інтернет - SelfUpdate – аналогічно оновлен- ня у таблиці, проте дана операція викли- кається лише у разі оновлення користу- вачем власного профілю у клієнтському додатку; - CreateDB – створення БД. Дана операція викликається лише один раз – на самому початку роботи сервера для створення усіх таблиць на основі вста- новлених модулів. Сервіс зовнішньої інтеграції є обов’язковим згідно з технічними та функціональними умовами, та слугує основною ланкою у комунікації між пра- цівниками та системою. Даний інструмент реалізований у вигляді АРІ контролеру, який має один єдиний HTTP POST метод. Даний метод приймає модель запиту у Body HTTP за- питу. Варто зазначити, що відповідно до технічних вимог, запити не передаються мережею в чистому вигляді. Тому на даний сервіс надходять лише зашифро- вані повідомлення. Після цього, згідно з блок-схемами алгоритму дешифрування повідомлення, відбувається процес деко- дування (рисунок 1): Блок 1 – прийом закодованого по- відомлення; Блок 2 – Перевірка, чи починаєть- ся повідомлення на спеціальний розділь- ник. Якщо так, то перейти до блоку 4, інакше – перейти до блоку 3; Блок 3 – Дешифрування повідо- млення доменом системи; Блок 4 – Видалити роздільник із початку повідомлення; Блок 5 – Дешифрування повідо- млення головним секретним ключем; Блок 6 – Перевірка успішності де- шифрування повідомлення. Дана пере- вірка спрацьовує, якщо під час декоду- вання не виникає жодного виключення (Exception). Якщо ні, то у моделі відпові- ді позначається, що вона не була успішна та вказується повідомлення про помилку, інакше – перейти до блоку 7; Блок 7 – При успішному дешифру- ванні результатом виходить модель запи- ту у форматі JSON, тому для подальшої роботи необхідно конвертувати даний формат у об’єкт класу. Після цього об’єкт запиту переда- ється на головний ERP сервіс, де викону- ється уся необхідна бізнес-логіка. Після цього модель відповіді шифрується згід- но алгоритму кодування (рисунок 2): Блок 1 – надходить модель відпо- віді; Блок 2 – модель відповіді серіалі- зується у формат JSON; Блок 3 – перевірка операції запиту. Якщо відбувалась операція авторизації у системі (Login), перейти до блоку 5, інак- ше – перейти до блоку 4; Блок 4 – зашифрувати JSON голо- вним шифрувальним ключем; Блок 5 – зашифрувати JSON доме- ном системи; Блок 6 – дописати на початок по- відомлення роздільник. У кінці процедури зашифрована відповідь повертається користувачеві. Задля коректної роботи додатку був використаний стандартний механізм про- єктування додатків Dependency Injection. Для цього під час запуску додатку гене- рується колекція абстракцій сервісів, які будуть використані у роботі серверу та їх відповідних реалізацій. Приклад такого налаштування наведено далі. public void ConfigureServices (IServiceCollection services) { services.AddRazorPages(); services.AddServerSideBlazor(); services.AddHttpClient(); services. AddHttpContextAccessor(); var json = Configuration.GetValu e<string>(ConfigurationMak erService.ServerApplication); _erpSystem = Converter. FromJson<ErpSystem>(json); services.AddSingleton(_erpSystem); services.AddTransient<Core. Domain.Configuration. IConfigurationService, ConfigurationService>(); services. AddTransient<IServerConfig urationService,Configuration Service>(); services.AddTran sient<IRequestSenderService, RequestSenderService>(); 53 Програмування для комп’ютерних мереж та Інтернет switch (_erpSystem.DatabaseType) { case DatabaseType.SQL: services.AddTransient<IDatabas eService,RelationalDatabaseServ ice>(); break; case DatabaseType.NoSQL: switch(_erpSystem. DatabaseProvider) { caseDatabaseProvider. DynamoDb: services. AddTransient<IDatabaseService, DynamoDatabaseService>(); break; case DatabaseProvider.MongoDb: case DatabaseProvider. DocumentDb: MongoDatabaseService. RegisterGuidSerializer(); services. AddTransient<IDatabaseService, MongoDatabaseService>(); Рис.1 – Блок-схема алгоритму декодування Рис.2 – Блок-схема алгоритму кодування 54 Програмування для комп’ютерних мереж та Інтернет break; } break; } services.AddTransient<IEmailSende rService, EmailSenderService>(); services. AddTransient<ISystemTerminator, SystemTerminator>(); services.AddTransient<ISettingsSav erService, SettingsSaverService>(); services. AddTransient<IMainErpService, MainErpService>(); services.AddTransient<IErpService Encryption, ErpServiceEncryption>(); services. AddTransient<IScreenService, ScreenService>(); services.AddTransient<ILocalizatio nService, LocalizationService>(); services. AddScoped<ICookieService, CookieService>(); services. AddSingleton<IStateService, ServerStateService>(); services. AddSingleton<IEventBusService, EventBusService>(); } 7. Розробка клієнтського додатку ERP системи Працівники компанії також по- винні мати можливість працювати із ERP системою своєї компанії. Даний додаток є програмними засобом, який надає цю можливість. Цей застосунок є кросплатформним, що робить мож- ливим запускати його на будь-якій опе- раційній системі (Windows, Linux або MacOS). Аналогічно до серверу ERP сис- теми, даний додаток також поділений на сервіси. Всього їх два: - сервіс зовнішньої інтеграції: ана- логічно до серверу, це АРІ сервіс, який протоколом HTTP та аналогічними алгоритмами шифрування та дешифру- вання надсилає на сервер системи запити та отримує відповіді; - головний сервіс, який по суті є обгорткою АРІ сервісу, з метою прихова- ти деталі реалізації зовнішньої взаємодії та не працювати безпосередньо із АРІ сервісом, що полегшить тестування та дасть можливість розширювати його до- датковим функціоналом. Стартовим вікном у даному додат- ку є сторінка авторизації. Під час авто- ризації користувач має ввести свої логін, пароль та ключ організації (усі ці дані будуть відомі у електронному листі, який йому надійде після створення його облі- кового запису). Оскільки ключ організа- ції - це зашифровані доменом системи, її публічна ІР адреса та порт, а домен буде частиною логіну користувача, то шляхом дешифрування ключа організації отри- мується загальна адреса АРІ серверу ERP системи, із яким налаштовується на взаємодію АРІ сервіс клієнтського додат- ку. На нього і надсилається запит на ав- торизацію. У разі успішної авторизації, користувач переходить до головної сто- рінки. А ні – користувач отримує повідо- млення про проблему авторизації. Після авторизації користувачеві надається можливість до всіх оперува- ти даними кожного доступного модуля. Для кожної таблиці кожного модуля по- стачальнику необхідно на програмному рівні реалізувати візуальні форми для за- повнення та інші графічні елементи. У даному додатку для кожної та- блиці створюється три візуальні компо- ненти: - DataGridView – відображення усіх даних таблиці у вигляді самої таблиці; - CardView – картка конкретного запису таблиці із короткими відомостя- ми про елемент та з переходом до форми елементу; - FormView – форма елементу, де повною мірою розкривається інформація про нього та можливе доповнення додат- ковими даними. Також саме через форму відбувається створення нового елементу, його редагування або видалення. Окрім цього, присутні дві окремі сторінки: - DepartmentView – сторінка відді- лу працівника; 55 Програмування для комп’ютерних мереж та Інтернет - Profi leView – профіль працівника, де він матиме можливість редагувати такі свої персональні дані як логін, пароль, номер те- лефону або адресу електронної пошти. У момент закриття додатку систе- ма надсилає запит до серверу із операці- єю Disconnect, під час чого на сервері да- ний користувач видаляється із переліку онлайн користувачів. 8. Експеримент Для визначення ефективності пе- ре-твореної програми проведені експе- ри-менти щодо кожного додатку системи. Передовсім було проведено дода- ток головного веб-сайту. Процес реєстра- ції відбувається із використанням логіну, адреси електронної пошти та паролю. Одночасно відбувається валідація на на- явність у системі користувача із вказа- ним логіном або імейлом. Процес авто- ризації відбувається із введенням логіну або імейлу та паролю. За умови успіш- ної авторизації користувач потрапляє на сторінку свого облікового запису, де він може перейти до налаштувань свого про- філю або до переліку своїх ERP систем. На сторінці «Your ERP systems» користувач знайде усі свої створені ERP системи. У даній таблиці подається лише основна інформація (назва компанії, ключ організації, домен, тип бази даних). Розкриваючи кожний запис таблиці, мож- на додатково дізнатися адресу даної сис- теми або перейти до веб-консолі вибра- ної ERP системи. Наступним перевіряється додаток інсталятора. Налаштувати та запустити сервер системи можливо лише із вико- ристанням додатку інсталятора. Сам про- цес інсталяції складається із 4 кроків: – Авторизація – користувач має бути зареєстрований у системі; – Перевірка назви компанії – назва компанії має бути унікальна в межах сервісу; – Налаштування серверу– необхідно вказати порт роботи серверу, а також вказа- ти адресу підключення до бази даних; – Вибір модулів, необхідних для встановлення. Далі, переглянувши свої налашту- вання та підтвердивши їх, система реє- струється на АРІ та запускається на да- ному сервері. Після успішного запуску вказує користувачу відповідним повідо- мленням. Потім відбувається перевірка робо- тоздатності сервера ERP системи. Перей- шовши на порт веб-інтерфейсу, користу- вач переходить на його головну сторінку. Згідно з функціональними умовами, ко- ристувачу надається можливість оперу- вати відділами та обліковими записами працівників, а також переглядати записи усіх таблиць кожного модуля. Останньою здійснюється перевір- ка роботоздатності клієнтського додат- ку для працівників. Запустивши клієнт- ський додаток, користувач має спочатку авторизуватись із використанням логіну, паролю та ключа організації. Успішно ав- торизувавшись, користувач потрапляє на головну сторінку, де можна побачити до- ступні йому модулі. Перейшовши на сторінку відпо- відного модуля, користувач може відразу почати оперувати даними даного модуля. Звісно, кількість даних при тес- туванні була мала, але варто зазначити, що і реальні сервери будуть набагато по- тужніші за комп’ютер, на якому прово- дилися тестування (процесор Intel Core i7-8550K, 8 гігабайт оперативної пам’яті, 256 гігабайт SSD). Висновки Реалізовано сервіс систем управ- ління ресурсів підприємства, що відпові- дає усім висунутим технічним та функці- ональним вимогам. На основі інструмен- тарію та функціональних можливостей систем аналогів був сформований пере- лік технічних та функціональних вимог до проєкту. На базі даних вимог були об- рані технології та принципи проєктуван- ня, які стануть у пригоді та полегшать процес розробки та тестування системи. За допомогою сучасних шаблонів проєк- тування була розроблена архітектура сис- теми, яка в перспективі може стати осно- вою справжнього комерційного сервісу. Завдяки вищезазначеній концепції мо- дульності дана система легко доповню- ється та розширюється. В перспективі 56 Програмування для комп’ютерних мереж та Інтернет сервіс можна доповнити впровадженням ERP систем не лише на сервері клієнта, а й у хмарі, як це пропонують компанії Oracle та Microsoft, а також доповнювати його новим функціоналом, залежно від вимог бізнесу. 1. Жураковський Ю.П. Теорія інформації та кодування: Підручник / Ю.П. Жура- ковський, В.П. Полторак. - К.: Вища шк, 2001. - 255 с. 2. Полторак, В.П. Інформаційна безпека та захист даних в комп’ютерних техно- логіях і мережах [Електронний ресурс]: навчальний посібник для студентів спе- ціальності 126 «Інформаційні системи та технології» / В. П. Полторак ; КПІ ім. Ігоря Сікорського. – Електронні текстові дані (1 файл: 1,77 Мбайт). – Київ : КПІ ім. Ігоря Сікорського, 2020. – 78 с. 3. Top 3 Essential ERP Modules [Елек- тронний ресурс]. – режим доступу: https://www.chetu.com/blogs/technical- perspectives/oracle-erp-modules.php 4. Что такое ERP и зачем это нужно? [Елек- тронний ресурс] – Режим доступу до ре- сурсу: https://dynamics.microsoft.com/ru- ru/erp/what-is-erp/. 5. What is AES Encryption and How Does it Work? [Електронний ресурс]. – режим доступу: https://searchsecurity.techtarget. com/def in i t ion/AdvancedEncrypt ion- Standard 6. Microsoft Dynamics 365 Business Central [Електронний ресурс]. – режим доступу: https://dynamics.microsoft.com/en-cy/ 7. Oracle ERP [Електронний ресурс]. – ре- жим доступу: https://www.oracle.com/erp/ References 1. Zhurakovskiy Y.P., Poltorak V.P. Theory of information and coding: Textbook, 2001. – p.10 (in Ukrainian). 2. Poltorak V.P. Information security and data protection in computer technology and net- works [Online]: textbook for students ma- joring in 126 “Information Systems and Technologies”, 2020. – p.78 (in Ukrainian). 3. Top 3 Essential ERP Modules [Online] – Available from: https://www.chetu.com/ blogs/technical-perspectives/oracle-erp- modules.php. 4. What is ERP and why it is necessary? [On- line] – Available from: https://dynamics. microsoft.com/ru-ru/erp/what-is-erp/ (in Ukrainian). 5. What is AES Encryption and How Does it Work? [Online]. – Available from: https:// searchsecurity.techtarget.com/defi nition/Ad- vancedEncryption-Standard (in Ukrainian). 6. Microsoft Dynamics 365 Business Central [Online]. – Available from: https://dynam- ics.microsoft.com/en-cy/ 7. Oracle ERP [Online]. – Available from: https://www.oracle.com/erp/ Отримано: 17.05.2022 Про авторів: Тарасенко Артем Дмитрович, магістрант Національного Технічного Університету України «КПІ імені Ігоря Сікорського». https://orcid. org/0000-0003-2631-2558, Дорошенко Анатолій Юхимович, доктор фізико-математичних наук, професор, завідувач відділу теорії комп’ютерних обчислень, професор кафедри інформа- ційних систем та технологій Національ- ного Технічного Університету України «КПІ імені Ігоря Сікорського». Кількість наукових публікацій в українських ви- даннях – понад 190. Кількість наукових публікацій в зарубіжних виданнях – по- над 80. Індекс Гірша – 6. http://orcid. org/0000-0002-8435-1451 Місце роботи авторів: Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», проспект Перемоги 37 та Інститут програмних систем НАН України, 03187, м. Київ-187, проспект Академіка Глушкова, 40. Тел.: (044) 526 3559 E-mail: artemissterio@gmail.com, doroshenkoanatoliy2@gmail.com