RU   EN
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Увага! На момент написання цього реферату магістерська робота ще не завершена. Передбачувана дата завершення – травень 2022 р. Повний текст роботи, а також матеріали на тему можуть бути отримані у автора або його наукового керівника після зазначеної дати.

Зміст

Вступ

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

У зв'язку з цим, підприємства та компанії зацікавлені у використанні спеціалізованого програмного забезпечення та впровадження його у свої бізнес-процеси. Воно дозволить вирішити певні бізнес-завдання та підвищити продуктивність праці співробітників.

Така система може служити для комунікації співробітників, обміну інформацією, кадрового обліку співробітників, а також може виконати інтеграцію з іншими сторонніми системами та сервісами.

1. Актуальність теми

Завдання створення автоматизованих систем, покликаних допомагати людині в роботі, має більш ніж 30-річну історію. Досліджуються різні напрямки, такі як проектування систем та комплексів, проблеми розробки програмного забезпечення, управління проектами розробки, що в комплексі дозволяють створювати складні та функціональні системи.

Ефективна комунікація в команді – одна з ключових складових швидкої та продуктивної роботи працівників ІТ-підприємства. Якщо в команді немає зручних комунікаційних інструментів, працювати така команда буде менш ефективно і в даний момент у багатьох компаніях є складнощі з налагодженням комунікації, тому що хтось віддає перевагу зв'язку через електронну пошту, хтось за допомогою Viber, хтось за допомогою WhatsApp або Facebook Messenger [1]. Доводиться витрачати час, щоб з'ясувати, як зв'язатися з людиною.

До цього додається і те, що в командах розробників прийнято щодня або хоча б кілька разів на тиждень проводити meeting.

Meeting – це збори розробників для обговорення планів на день, проблем, помилок, нюансів архітектури програмного забезпечення, конфліктів версій, змін і правок від замовника, додавання нових функцій і так далі. Вони завжди проводяться у форматі Web-конференцій – це найбільш ефективний підхід, коли всі учасники команди, що працює над конкретним проектом, підключаються до однієї кімнати для зв'язку через мікрофон і веб-камера. Для цього використовуються спеціалізовані системи, які не завжди мають необхідний функціонал.

Також все більшу популярність набирає найм працівників для роботи віддалено, оскільки таким чином IT-підприємства можуть знизити свої витрати на оренду офісних приміщень, немає необхідності купувати дороге обладнання та додаткове ліцензійне програмне забезпечення. У цьому є і певна частка вигоди для співробітників, тому що багатьом людям комфортніше та зручніше працювати з дому, ніж їздити щодня в офіс, також немає витрат на дорогу до роботи та назад, як у плані часу, так і у плані коштів.Для реалізації цієї концепції необхідно налагодити комунікацію віддалених співробітників один з одним або віддалених співробітників з офісними, оскільки без налагоджених комунікацій зростають витрати, зсуваються терміни виконання завдань, що анулює вигоду від найму працівників для роботи віддалено.

У зв'язку з усіма цими факторами, виникає гостра потреба у використанні спеціалізованих інструментів та їх впровадження у свої бізнес-процеси. Необхідно створити ефективну систему, яка вирішуватиме дане бізнес-завдання, а також буде кросплатформною, тобто працювати в будь-якій операційній системі. Вона повинна відповідати всім необхідним функціональним вимогам, а також мати зручний та інтуїтивно зрозумілий інтерфейс для комфортної та продуктивної роботи працівників IT-підприємства. Дана необхідна промислова система є програмною системою.

2. Мета і задачі дослідження та заплановані результати

Метою даної роботи є розробка системи для управління бізнес-процесами ІТ-підприємства, призначеної для роботи в інтернеті, з різним функціоналом. Це комунікація співробітників, обмін інформацією, облік кадрів, відстеження отримання та виконання завдань співробітниками, а також інтеграція з необхідними сторонніми системами та сервісами.

Для досягнення поставленої мети необхідно виконати такі завдання:

  1. Провести аналіз підходів, методів проектування та розробки спеціалізованих програмних систем для вирішення бізнес-процесів підприємств;
  2. Виробити принципи проектування архітектури спеціалізованого ПЗ для підприємств;
  3. Розробити модульну архітектуру спеціалізованої системи;
  4. Сформулювати необхідні функціональні вимоги до системи;
  5. Вибрати найоптимальніші інструменти для розробки та тестування системи;
  6. Розробити на основі запропонованої архітектури та використовуючи обрані інструменти спеціалізовану систему для вирішення бізнес-процесів конкретного IT-підприємства, яка відповідатиме всім функціональним вимогам.

Об'єктом дослідження в даній роботі є математичне та програмне забезпечення систем для управління бізнес-процесами підприємств.

Предметом дослідження є вивчення функціональних вимог до спеціалізованих систем для підприємств.

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

3. Огляд досліджень та розробок

Досліджувана в даній роботі тема відноситься до галузі розробки спеціалізованих програмних продуктів, званих Enterprise-додатки. Це велика область, яка вивчає потреби бізнесу та пропонує методи автоматизації або спрощення певних завдань. Її вивченням займаються дуже активно як національні, так і зарубіжні фахівці, тому статей та іншої літератури на даний момент є достатньо для занурення в предметну галузь.

Проектування мікросервісної архітектури програмного забезпечення для спеціалізованих систем було розглянуто Шитьком О.М. [2]. Ця стаття присвячена вивченню технології побудови мікросервісної архітектури, яка дозволяє зберігати модульність та незалежність розгортання компонентів Enterprise-додатка.

Долженко О.І. [3] визначив завдання вибору хмарних технологій для економічних інформаційних систем та розглянув перспективи використання хмарних технологій в економічних інформаційних системах, та завдання обґрунтування вибору вендорів та хмарних ІТ-сервісів для таких систем на основі нечітких моделей.

У роботі Барановської Т.П., Іванової Є.А., Сайкінова В.Є. [4] обговорювалися перспективи розгортання системи підтримки прийняття рішень щодо обґрунтування обсягів кредитування малих сільськогосподарських підприємств у хмарному середовищі. Вони описали можливості та перспективи розгортання системи підтримки прийняття рішень щодо обґрунтування обсягів кредитування малих сільськогосподарських підприємств у хмарному середовищі. Виявили недоліки в існуючих системах автоматизації малих підприємств, у зв'язку з чим обґрунтовано необхідність розробки системи, що дозволяє керівнику коректно та оперативно розрахувати обсяг необхідних кредитних коштів.

Дослідження актуальності використання архітектури REST для обміну даними між клієнт-серверними програмами було проведено Ковальовим В.В., Храмковим В.В. та Семенової Є.І. [5]. Також була розглянута структура клієнт серверної програми та архітектурний стиль REST.

Серед зарубіжних джерел слід виділити роботу Chloe Henderson [6], де було дано визначення того, що таке корпоративне застосування, а також були дані приклади та аргументовані тенденції. Rob Johnson [7] виділив 7 типів корпоративних додатків, які дадуть конкурентну перевагу.

Серед магістрів ДонНТУ також були люди, які досліджували спеціалізовані системи.

Однією з таких є робота Седневеця М.А. [8], де було досліджено розподілені системи, а саме їх архітектура та вимоги до них. Також у роботі Філенка М.С. [9] вивчалася розробка механізму розподіленого зберігання та захисту інформації.

4. Проектування архітектури веб-програми

Архітектура програмного забезпечення – структура, на основі якої створюється програма, взаємодіють модулі та компоненти всієї програми. На даний момент існує два види архітектурних шаблонів проектування веб-додатків: клієнт-серверна архітектура та трирівнева.

Клієнт-серверна архітектура – шаблон дизайну, основа для створення веб-додатків. Ця архітектура складається з трьох компонентів:

  1. Клієнт – це користувач сервісу (веб-програми), який звертається до сервера для отримання будь-якої інформації;
  2. Сервер – місце, де розміщується веб-програма або його серверна частина. Він володіє необхідною інформацією про користувачів або може її вимагати. Також при зверненні клієнта сервер повертає йому запитувану інформацію;
  3. Мережа – забезпечує обмін інформацією між клієнтом та сервером.

Схема даної архітектури представлена на малюнку 1.

Схема архітектури клієнт-сервер

Рисунок 1 — Схема архітектури клієнт-сервер

Трирівнева архітектура — це архітектурний шаблон, де з'являється третій учасник — сховище даних. При використанні цього шаблону три рівні прийнято називати шарами (мал. 2):

Схема трирівневої архітектури

Рисунок 2 — Схема трирівневої архітектури (5 кадрів/5 секунд/88,5 Кб/8 повторень)

  1. Клієнтський шар – інтерфейс користувача. Це може бути веб-браузер, якому надсилаються HTML-сторінки або графічна програма, написана за допомогою JavaFX. Головне, щоб за його допомогою користувач міг надсилати запити на сервер та обробляти його відповіді;
  2. Шар логіки – сервер, на якому відбувається обробка запитів/відповідей. Часто його ще називають серверним шаром. Також тут відбуваються всі логічні операції: математичні розрахунки, операції з даними, звернення до інших послуг або сховищ даних;
  3. Шар даних – сервер баз даних, якого звертається сервер. У цьому шарі зберігається вся необхідна інформація, якою користується програма під час роботи.

Використання трирівневої архітектури дає низку переваг, серед яких:

  1. Можливість побудувати захист від SQL-ін'єкцій – це вид атаки на сервер, коли він передається SQL-код, і під час виконання цього коду зловмисник може впливати на базу даних;
  2. Розмежування даних, до яких потрібно регулювати доступ користувача;
  3. Можливість модифікувати дані перед відправкою клієнту;
  4. Масштабованість – можливість розширити додаток на кілька серверів, які будуть використовувати ту саму базу даних;
  5. Менші вимоги до якості з'єднання користувача. Формуючи відповідь на сервері, часто необхідно брати з бази даних багато різної інформації, форматувати її, залишаючи лише те, що потрібно користувачеві. Таким чином, скорочується обсяг інформації, який відправляється як відповідь клієнту.

Також з трирівневою архітектурою можна використовувати патерн MVC (Model (Модель) – View (Вид) – Controller (Контролер)) [10], який поділяє аспекти програми (логіку введення, бізнес-логіку та логіку інтерфейсу користувача), забезпечуючи при цьому вільний зв'язок між ними.

Для реалізації веб-системи було прийнято рішення використовувати трирівневу архітектуру у зв'язку з її переліченими вище перевагами та взаємодією з фреймворком Spring MVC, який забезпечує реалізацію патерна Model – View – Controller за допомогою слабо пов'язаних готових компонентів.

Висновки

Розглянуто архітектурні шаблони проектування веб-додатків для подальшого застосування під час реалізації власної системи. Також було досліджено актуальність обраної теми, було поставлено мету, сформульовано завдання та очікувані результати.

У поданому матеріалі були розглянуті дослідження та розробки на тему роботи, проаналізувавши які були зроблені висновки для подальшого вивчення та розвитку теми.

Надалі планується розробити власний продукт, власну Enterprise-систему, яка відповідатиме необхідним функціональним вимогам конкретного IT-підприємства та дозволить вирішити, спростити та автоматизувати його певні бізнес-завдання. Також були обрані інструменти та шляхи реалізації даної системи для швидкодії та захисту даних.

Перелік джерел

  1. Хабр. Сообщество IT-специалистов. Режим доступа: https://habr.com/ru/company/mvideo/blog/426469. – Заглавие с экрана.
  2. Шитько Андрей Михайлович Проектирование микросервисной архитектуры программного обеспечения // Труды БГТУ. Серия 3: Физико-математические науки и информатика. 2017. №9 (200). URL: https://cyberleninka.ru/article/n/proektirovanie-mikroservisnoy-arhitektury-programmnogo-obespecheniya
  3. Долженко А.И. Задачи выбора облачных технологий для экономических информационных систем // Вестник РГЭУ РИНХ. 2014. №4 (48). URL: https://cyberleninka.ru/article/n/zadachi-vybora-oblachnyh-tehnologiy-dlya-ekonomicheskih-informatsionnyh-sistem
  4. Барановская Татьяна Петровна, Иванова Елена Александровна, Сайкинов Виктор Евгеньевич Перспективы развертывания системы поддержки принятия решений обоснования объемов кредитования малых сельскохозяйственных предприятий в облачной среде // Научный журнал КубГАУ. 2015. №112. URL: https://cyberleninka.ru/article/n/perspektivy-razvertyvaniya-sistemy-podderzhki-prinyatiya-resheniy-obosnovaniya-obemov-kreditovaniya-malyh-selskohozyaystvennyh
  5. Ковалев В.В., Храмков В. В., Семенова Е. И. АКТУАЛЬНОСТЬ ИСПОЛЬЗОВАНИЯ АРХИТЕКТУРЫ REST ДЛЯ ОБМЕНА ДАННЫМИ МЕЖДУ КЛИЕНТ-СЕРВЕРНЫМИ ПРИЛОЖЕНИЯМИ // Актуальные проблемы авиации и космонавтики. 2019. №. URL: https://cyberleninka.ru/article/n/aktualnost-ispolzovaniya-arhitektury-rest-dlya-obmena-dannymi-mezhdu-klient-servernymi-prilozheniyami
  6. AnyConnector. What Is An Enterprise Application? Definition, Examples, and Trends. Режим доступа: https://anyconnector.com/enterprise-application.html. – Заглавие с экрана.
  7. Mindk. 7 types of enterprise software that will give you a competitive edge. Режим доступа: https://www.mindk.com/blog/enterprise-software/. – Заглавие с экрана.
  8. Седневец М.А. Разработка и исследование рспределенных систем – Режим доступа: http://masters.donntu.ru/2018/fknt/sednevets/index.htm
  9. Филенко М.С. Разработка механизма распределенного хранения и защиты информации – Режим доступа: http://masters.donntu.ru/2009/fvti/filenko/diss/index.htm
  10. Википедия – свободная энциклопедия. Model-View-Controller. Режим доступа: https://ru.wikipedia.org/wiki/Model-View-Controller. – Заглавие с экрана.