Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/9422
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorТАЗЕТДІНОВ, Валерій-
dc.contributor.authorТОЛМАЧОВ, Денис-
dc.date.accessioned2026-04-07T19:11:09Z-
dc.date.available2026-04-07T19:11:09Z-
dc.date.issued2022-
dc.identifier.urihttps://er.chdtu.edu.ua/handle/ChSTU/9422-
dc.description.abstractКваліфікаційна робота складається з пояснювальної записки яка містить 82 сторінки, рисунків – 34. Було проведено дослідження та синтез корпоративної мережі для енергетичного підприємства ПАТ «Черкасиобленерго». Були проаналізовані сучасні підходи для створення web-інтерфейсу. В зв’язку з поставленими задачами та правилами створення корпоративної мережі було підібрано стек технологій для продуктивного функціонування мережі.Використаним технологіям було дано коротку характеристику і опис. Проаналізувавши всі підходи та вибравши найбільш підходящі методи рішення був вибраний найоптимальніший із варіантів синтезувати мережу відеоконференцій для підприємства. Основою було вибрано сервер BigBlueButton. В даний час платформи для відеоконференцій мають великий попит. Вони стали невід'ємною частиною більшості бізнесів та підприємств. Їх використання призводить до поліпшення працездатності, прискорення обробки інформації, зменшення трудових та економічних витрат. Мета кваліфікаційної роботи магістра – розробити оптимальну структуру корпоративної мереж для проведення нарад, навчання шляхом використання відеоконференцій на основі вибраних технологій. Вибір оптимального шляху для вирішення поставлених задач на державному підприємстві. Об'єкт дослідження – Web-орієнтована, мультизадачна система відеоконференцій для персоналу підприємства. Предмет дослідження – найбільш ефективний стек технологій для швидкої та ефективної розробки та передачі даних для web-орієнтованих інформаційних систем. Наукова новизна – обґрунтовуються теоретичні положення і визначаються практичні рекомендації, пошук актуальних рішень як для державних підприємств так і для бізнесу. Аналіз та порівняння ефективності сучасних технологій. Робота пройшла апробацію на міжнародній науково- технічний конференції «Проблеми інформатизації 2022». Зроблено публікацію на тему: «Синтез корпоративної мережі ПАТ «Черкасиобленерго»».uk_UA
dc.subjectBIGBLUEBUTTONuk_UA
dc.subjectМЕРЕЖАuk_UA
dc.subjectWEBRTCuk_UA
dc.subjectWEB- ІНТЕРФЕЙСuk_UA
dc.titleДослідження і синтез корпоративної мережі ПАТ «Черкасиобленерго»uk_UA
dc.typeMaster Thesisuk_UA
Appears in Collections:123 Комп’ютерна інженерія (Комп'ютерні системи та мережі)

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_Толмачов_Друк-merged.pdf
  Restricted Access
2.9 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ
ІНЖЕНЕРІЇ
Пояснювальна записка
до кваліфікаційної роботи магістра
на тему: «Дослідження і синтез корпоративної
мережі ПАТ «Черкасиобленерго»»
ЧДТУ.222316.002 ПЗ
Виконав: студент 2 курсу, групи ЗМКМ-2105
спеціальності 123 – Комп’ютерна інженерія
за освітньою програмою – Комп’ютерні системи
та мережі
Денис ТОЛМАЧОВ
Керівник
к.т.н., доцент
Валерій ТАЗЕТДІНОВ
Н. контроль
Світлана ГРЕСЬКО
Рецензент
к.т.н., доцент
Марія ЗАХАРОВА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ______ Володимир РУДНИЦЬКИЙ
Черкаси 2022 року
Форма № Н-9.01
Черкаський державний технологічний університет
Факультет інформаційних технологій і систем
Кафедра інформаційної безпеки та комп‘ютерної інженерії
Освітньо-кваліфікаційний рівень Магістр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри _____ Володимир РУДНИЦЬКИЙ
«20» жовтня 2022 року
ЗАВДАННЯ
на кваліфікаційну роботу магістра студенту
Толмачову Денису Костянтиновичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Дослідження і синтез корпоративної мережі
ПАТ «Черкасиобленерго»
Керівник роботи к.т.н., доцент Тазетдінов Валерій Абударович
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «14» жовтня 2022 року № 275/04
2. Строк подання студентом роботи «01» грудня 2022 року
3. Вихідні дані до роботи: Об’єктом дослідження є корпоративна мережа для
проведення відеоконференцій персоналом підприємства ПАТ «Черкасиобленерго». Предметом
дослідження є процес створення найбільш ефективного стеку технологій для швидкої передачі
даних та розробки web-орієнтованої інформаційної системи.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
Розділ 1 Аналіз концепцій побудови корпоративних мереж підприємств
Розділ 2 Побудова моделі корпоративної мережі для підприємства ПАТ «Черкасиобленерго»
Розділ 3 Синтез мережі підприємства
Розділ 4 Дослідження продуктивності корпоративної мережі
Висновки
Список використаних джерел
Додатки
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
6. Консультанти розділів роботи
Підпис, дата
Розділ Прізвище, ініціали та
посада завдання видав завдання прийняв
консультанта
7. Дата видачі завдання 20 жовтня 2022 року
КАЛЕНДАРНИЙ ПЛАН
№ з/п Назва етапів кваліфікаційної роботи магістра Строк виконання
етапів роботи Примітка
1 Вибір теми та керівника кваліфікаційної роботи 01.10.22-01.10.22 Виконано
2 Написання пунктів плану та обговорення їх з
керівником 03.10.22-04.10.22 Виконано
3 Початок роботи, постановка задач 07.10.22-09.10.22 Виконано
4 Аналіз концепції побудови корпоративних мереж
підприємства 12.10.22-14.10.22 Виконано
5 Побудова моделі корпоративної мережі для
підприємства ПАТ «Черкасиобленерго» 15.10.22-17.10.22 Виконано
6 Синтез мережі підприємства 18.10.22-20.10.22 Виконано
7 Тестування готової моделі 21.10.22-22.10.22 Виконано
8 Дослідження продуктивності корпоративної
мережі 22.10.22-10.11.22 Виконано
9 Написання висновків та оформлення звіту 11.11.22-11.11.22 Виконано
10 Предзахист 17.11.22-17.11.22 Виконано
Студент-магістрант ____________________________ Денис ТОЛМАЧОВ
(підпис)
Керівник роботи ____________________________ Валерій ТАЗЕТДІНОВ
(підпис)
АНОТАЦІЯ
Кваліфікаційна робота складається з пояснювальної записки яка
містить 82 сторінки, рисунків – 34.
Було проведено дослідження та синтез корпоративної мережі для
енергетичного підприємства ПАТ «Черкасиобленерго». Були проаналізовані
сучасні підходи для створення web-інтерфейсу.
В зв’язку з поставленими задачами та правилами створення
корпоративної мережі було підібрано стек технологій для продуктивного
функціонування мережі.Використаним технологіям було дано коротку
характеристику і опис.
Проаналізувавши всі підходи та вибравши найбільш підходящі методи
рішення був вибраний найоптимальніший із варіантів синтезувати мережу
відеоконференцій для підприємства. Основою було вибрано сервер
BigBlueButton.
В даний час платформи для відеоконференцій мають великий попит.
Вони стали невід'ємною частиною більшості бізнесів та підприємств. Їх
використання призводить до поліпшення працездатності, прискорення
обробки інформації, зменшення трудових та економічних витрат.
Мета кваліфікаційної роботи магістра – розробити оптимальну
структуру корпоративної мереж для проведення нарад, навчання шляхом
використання відеоконференцій на основі вибраних технологій. Вибір
оптимального шляху для вирішення поставлених задач на державному
підприємстві.
Об'єкт дослідження – Web-орієнтована, мультизадачна система
відеоконференцій для персоналу підприємства.
Предмет дослідження – найбільш ефективний стек технологій для
швидкої та ефективної розробки та передачі даних для web-орієнтованих
інформаційних систем.
Наукова новизна – обґрунтовуються теоретичні положення і
визначаються практичні рекомендації, пошук актуальних рішень як для
державних підприємств так і для бізнесу. Аналіз та порівняння ефективності
сучасних технологій. Робота пройшла апробацію на міжнародній науково-
технічний конференції «Проблеми інформатизації 2022». Зроблено
публікацію на тему: «Синтез корпоративної мережі ПАТ
«Черкасиобленерго»».
Ключові слова: BIGBLUEBUTTON, МЕРЕЖА, WEBRTC, WEB-
ІНТЕРФЕЙС.
ANNOTATION
The qualification work consists of an explanatory note containing 82 pages,
34 figures.
Research and synthesis of the corporate network for the Cherkasioblenergo
PJSC energy enterprise was carried out. Modern approaches to creating a web
interface were analyzed.
In connection with the set tasks and rules for creating a corporate network, a
stack of technologies was selected for the productive functioning of the network. A
brief description and description was given to the technologies used.
After analyzing all the approaches and choosing the most suitable decision
methods, the most optimal solution was chosen from the options to synthesize a
video conference network for the enterprise. The BigBlueButton server was chosen
as the basis.
Video conferencing platforms are currently in high demand. They have
become an integral part of most businesses and enterprises. Their use leads to
improved performance, faster information processing, and reduced labor and
economic costs.
The purpose of the master's thesis is to develop an optimal structure of
corporate networks for holding meetings, training through the use of video
conferences based on selected technologies. Choosing the optimal way to solve the
tasks at the state enterprise.
The object of the research is a Web-oriented, multitasking video
conferencing system for the company's personnel.
The subject of research is the most effective stack of technologies for fast
and efficient development and data transfer for web-oriented information systems.
Scientific novelty – theoretical propositions are substantiated and practical
recommendations are determined, the search for relevant solutions for both state-
owned enterprises and business. Analysis and comparison of the effectiveness of
modern technologies. The work was approved at the international scientific and
technical conference "Problems of Informatization 2022". A publication was made
on the topic: "Synthesis of the corporate network of PJSC "Cherkasioblenergo"".
Keywords: BIGBLUEBUTTON, NETWORK, WEBRTC, WEB-
INTERFACE.
2
ЗМІСТ
ВСТУП………………………………………………………………………… 3
РОЗДІЛ 1 АНАЛІЗ КОНЦЕПЦІЙ ПОБУДОВИ КОРПОРАТИВНИХ
МЕРЕЖ ПІДПРИЄМСТВ……………………………………………………. 5
РОЗДІЛ 2 ПОБУДОВА МОДЕЛІ КОРПОРАТИВНОЇ МЕРЕЖІ ДЛЯ
ПІДПРИЄМСТВА ПАТ «ЧЕРКАСИОБЛЕНЕРГО»……………………….. 13
РОЗДІЛ 3 СИНТЕЗ МЕРЕЖІ ПІДПРИЄМСТВА…………………………... 20
3.1 Розгортання серверної частини мережі…………………………... 24
3.2 Налаштування безпеки мережі……………………………………. 39
3.3 Додавання web інтерфейсу………………………………………... 47
3.4 Збільшення функціональних можливостей, додавання
адміністративного клієнту…………………………………………….. 61
РОЗДІЛ 4 ДОСЛІДЖЕННЯ ПРОДУКТИВНОСТІ КОРПОРАТИВНОЇ
МЕРЕЖІ……………………………………………………………………….. 67
ВИСНОВКИ…………………………………………………………………... 69
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ…………………………………….. 81
ДОДАТКИ:
А – Створення частини інтерфейсу для форми входу
Б – Елемент створення користувачів
В – Структура Вибору білету
3
ВСТУП
В даний час майже кожна сучасна людина стикається з використанням
комп’ютерних мереж у своєму житті, мережі поширюються все більше,
пристрої стають дедалі технологічними та розповсюдженішими ніж століття
тому. Комп’ютерні мережі стали невід'ємною частиною більшості
підприємств та корпорацій. Швидкість обробки та передачі даних стали чи не
найголовнішим важелем про розвитку бізнесі та підприємств.
Актуальність теми. В умовах військового стану в країни, на
сьогоднішній день дуже важливим є можливість навчати працівників,
передавати інформацію, проводити збори чи селекторні наради в умовах
безпеки для життя. Тому ефективність розробки систем зв’язку та додатків
для проведення відеконференцій в безпечних умовах набуває
першочергового значення.
Розглядом даного питання в різний час займалися зарубіжні вчені:
О. Уэнделл, Д. Комер, В. Джейкобсон.
Мета магістерської роботи – розробити оптимальну структуру
корпоративної мереж для проведення нарад, навчання шляхом використання
відеоконференцій на основі вибраних технологій. Вибір оптимального
шляху для вирішення поставлених задач на державному підприємстві.
Об'єкт дослідження – Web-орієнтована, мультизадачна система
відеоконференцій для персоналу підприємства.
Предмет дослідження – найбільш ефективний стек технологій для
швидкої та ефективної розробки та передачі даних для web-орієнтованих
інформаційних систем.
Наукова новизна. Автором обґрунтовуються теоретичні положення і
визначаються практичні рекомендації, пошук актуальних рішень як для
державних підприємств так і для бізнесу. Аналіз та порівняння ефективності
сучасних технологій. Робота пройшла апробацію на міжнародній науково-
4
технічний конференції "Проблеми інформатизації 2022". Зроблено
публікацію на тему: «Синтез корпоративної мережі ПАТ
«Черкасиобленерго»».
5
РОЗДІЛ 1 АНАЛІЗ КОНЦЕПЦІЙ ПОБУДОВИ КОРПОРАТИВНИХ
МЕРЕЖ ПІДПРИЄМСТВ
Вибір концепції побудови визначеної корпоративної мережі
визначається низкою чинників: визначити які саме послуги потрібно
використовувати, обсяги трафіку, яка інфраструктура вже створена і т. д.
Корпоративна мережа – це інфраструктура організації, що підтримує
рішення актуальних завдань і забезпечує досягнення її цілей. Вона об'єднує в
єдиний інформаційний простір всі об'єкти підприємства. Корпоративна
мережа створюється як апаратно-технічна основа корпоративної мережі, як її
головний системоутворюючий компонент, на базі якого конструюються інші
системи та сервіси [1].
Існують і загальні вимоги до корпоративних мереж. Мережі
підприємств повинні бути надійними, в першу чергу, також мати такі
властивості як: мультисервісність, масштабованість, гнучкість та доступність
у використанні.
Сучасні підприємства не можуть функціонувати без своєчасної
передачі даних між відділами чи філіями. Корпоративна комп’ютерна мережа
забезпечує передачу даних, документообіг, аудіо- та відеоконференції.
високоякісну телефонію. Складність побудування мереж заключається в
тому, що кожна мережа є оригінальним середовищем, це зумовлюється
різним рівнем захисту, доступу, представлення інформації та сервісів які ця
мережа в себе включає.
Наприклад приймаючи рішення про побудову на підприємстві
мультисервісної мережі з інтеграцією в неї сервісу відеоконференцій, можна
спрогнозувати що планується зростання регіональних філій та покращення
акредитаційного рівня спеціалістів залучених до роботи на цьому
підприємстві.
Зазвичай, корпоративна мережа не обґрунтовується лише одним
офісом, найчастіше це об'єднання виробництва та документообігу, офісів та
6
віддалених підрозділів, що можуть базуватись в інших містах. Тому підходи
застосовані до створення корпоративної мережі чітко відрізняються від
створення локальної мережі.
Найрозповсюдженішою проблемою з якою зіштовхуються при
створення мультисервісної корпоративної мережі — це саме надійне
об'єднання підрозділів та філій підприємства. Цю проблему вирішує доступ
до глобальної мережі Інтернет. Але зважаючи на те що, під час передачі
даних, інформація проходить через безліч вузлів, тому важливо звернути
увагу на питання безпечної передачі трафіку. Особливо важливо забезпечити
безпеку саме інформації, яка передається в рамках корпоративних мереж. На
жаль такі засоби, як фаервол (Firewall) не можуть гарантувати повного
захисту, для цього корпоративну мережу поділяють на віртуальні локальні
мережі до яких можна застосувати політики безпеки [2].
Не зважаючи на це корпоративна мережа виглядає як єдине ціле, але
залучені користувачі відкривають для себе набір корисних сервісів та
додатків. До перечисленого належать такі сервіси як:
 сервіс управління базами даних;
 корпоративна пошта;
 файло-обмін;
 сервіс відео- та аудіо конференцій;
 інформаційний сервіс;
 мережевий друк та факс-листування;
 віддалений доступ спеціалістів до робочих станцій.
Список можна доповнювати, але головною перевагою сучасних
корпоративних мереж є те, що в разі зростання внутрішніх потреб різних
відділів чи служб підприємства, інфраструктура мереж може доповнюватися
і розвиватися. Але потрібно зауважити, що при побудові корпоративних
мереж важливу роль відіграє вибір архітектури. Концептуальним є шлях
створення архітектури мережі у вигляді ієрархічних рівнів, до яких в разі
потреби можна додавати різні рівні та розширювати функціонал та
7
можливості мережі, та в разі потреби мінімізувати витрати для пошуку
несправностей та пришвидши їх виявлення.
Типовими є трирівневі та дворівневі моделі мережі.
Модель проектування ієрархічної мережі розбиває складну плоску
мережу на кілька менших і більш керованих мереж. Кожен рівень ієрархії
орієнтований на певний набір ролей. Цей підхід до проектування пропонує
розробникам мереж високий ступінь гнучкості для оптимізації та вибору
правильного мережевого обладнання, програмного забезпечення та функцій
для виконання певних ролей для різних мережевих рівнів [3].
Рисунок1.1 – Трьохрівнева модель мережі
Типова ієрархічна мережа корпоративного містечка включає такі три
рівні:
 Рівень ядра – забезпечує максимально високий рівень надійності.
Базуючись на вершині ієрархії, рівень ядра відповідає за надійну та
швидку маршрутизацію трафіку. Через критичність цього рівня,
8
принципи конструкції ядра повинні забезпечувати відповідний рівень
стійкості, на цьому рівні не слід підтримувати доступ для робочих
груп.
 Рівень розподілу – забезпечує взаємодію та контроль меж між рівнем
доступу та рівнем ядра. Цей рівень іноді називають рівнем робочих
груп. Першочергові функції цього рівня мають забезпечувати
маршрутизацію, фільтрацію та надавати доступ до глобальної мережі,
та визначити яким чином пакет, в разі виникнення необхідності, може
отримати доступ до ядра. Має визначатися найбільш швидкий маршрут
для користувачів, після чого відправляється запит на рівень ядра.
 Рівень доступу – забезпечує доступ робочої групи (користувача) до
мережі. Цей рівень застосовує мережеві політики. Як правило тут
реалізовуються списки доступу, фільтрація і організація черг. Зазвичай
будь-які звернення до віддалених служб здійснюються за рівні
настільних систем (так іноді називають рівень розподілу). Функції
цього рівня включають в себе: створення сегментації (окремих
колізійних доменів), забезпечує взаємодію окремих користувачів з
рівнем розподілу.
Триярусна модель – це проектна модель, що зазвичай використовується
у великих корпоративних мережах, які складаються з кількох блоків
функціонального рівня розподілу.
Двоярусна модель більше підходить для розгортання малих та середніх
мереж, де основні функції розподілу можна об'єднати в один рівень.
9
Рисунок 1.2 – Двохрівнева модель мережі
Також очевидним є те, що майбутнє корпоративних мережевих систем
тісно пов’язане з різними варіантами та розвитком системи Ethernet (Gіgаbіt
Еthеrnеt, 10G-40G Еthеrnеt чи Fаst Еthеrnеt). Технологія Ethernet сьогодні
забезпечую просту практичну реалізацію, дозволяє використовувати
мультисервісні додатки, та має не високу вартість мережевих рішень.
Нерідко, відділи підприємства формують окремі мережі для вирішення
певних задач, наприклад: бухгалтерського обліку, маркетингових рішень,
селекторних нарад та робіт з персоналом. Такі мережі називають мережі
відділів. Відділ може нараховувати від 10 до 150 користувачів. Головним
призначенням є розміщення ресурсів, програм, принтерів та модемів в
одному локальному середовищі. Зазвичай така мережа створюється на основі
однієї мережевої технології: Token Ring чи Ethernet [4]. Та як правило
використовується користувачами один чи два типи операційних система:
Windows, Linux чи щось інше.
10
Рисунок 1.3 – Приклад мережі масштабу відділу
Вирізняють три етапи створення корпоративної мережі для підприємства:
 провести інформаційну діагностику підприємства (збір даних);
 вибрати архітектурну систему, програмні та апаратні засоби що
допоможуть у вирішенні питань йо виникли під час збору даних;
 вибрати основні компоненти та системи і розробити їх.
Для правильної роботи корпоративної мережі потрібно визначити
кількість робочих місць у відділі чи в структурному підрозділі, віддалених
точок. Визначити функції які підрозділи будуть виконувати на робочих
місцях. Розробити алгоритм проходження документообігу, описати головний
шлях та технології для їх обробки. Описати функції всіх підрозділів компанії,
та перелік задач які підрозділи виконують.
Проаналізувавши зібрані дані, можна зрозуміти який вигляд матиме
архітектура системи. Рекомендованою для корпоративних систем є клієнт-
сервер.
В основі клієнт-серверної архітектури лежать два компоненти: клієнт і
сервер.
Клієнт – комп'ютер на стороні користувача, який відправляє запит до
сервера для надання інформації або виконання певних дій.
11
Сервер – більш потужний комп'ютер або обладнання, призначене для
вирішення певних завдань з виконання програмних кодів, виконання
сервісних функцій за запитом клієнтів, надання користувачам доступу до
певних ресурсів, зберігання інформації і баз даних.
В корпоративній мережі працюють різні типи комп’ютерів, з різною
конфігурацією. Саме комп’ютери та їх характеристики диктують можливості
локальних мереж.
Для комунікацій обладнання потрібні такі пристрої: модеми, мережеві
кабелі, проміжне мережеве обладнання, між мережеві екрани, мережеві
карти.
В наш час взаємодію мережевого обладнання зумовлює семирівнева
модель відкритих локальних мереж – OSI [5]. Засоби взаємодії обладнання
поділено на 7 рівнів, кожен з яких унікальний в своєму функціоналу.
7 рівнів моделі взаємодії мережевого обладнання:
 прикладний;
 показний;
 сеансовий;
 транспортний;
 мережевий;
 канальний;
 фізичний.
Стек протоколів що дозволяє взаємодіяти мережевому обладнанню – це
TSCP/IP (Transmission Control Protocol – Протоколи керування передаванням/
Internet Protocol – мережевий протокол). Реалізація протоколів здійснюється
мережевими операційними системами, а також за допомогою
маршрутизаторів, комутаторів та іншого телекомунікаційного
обладнання [6].
12
Висновки до розділу 1
Корпоративна мережа – це інструмент за допомогою якого сучасне
підприємство досягає більшості своїх цілей. Мережа створюється як
головний системоутворюючий компонент, на базі якого генеруються та
користуються всі інші системи та сервіси, також складає основу
підприємства на апарат технічному рівні.
Корпоративна мережа надає можливість розгортання нових сервісів і їх
раціональне функціонування.
Рекомендується проаналізувати потреби підприємства та вибудовувати
мережу використовуючи ієрархічну систему відповідно до поставлених
задач. Це дозволить безпечно додати до мережі різні рівні, що дає
можливість розширити функціонал мережі, та виконувати нові поставлені
керівництвом задачі, та при потребі швидко усунути несправності в мережі.
13
РОЗДІЛ 2 ПОБУДОВА МОДЕЛІ КОРПОРАТИВНОЇ МЕРЕЖІ ДЛЯ
ПІДПРИЄМСТВА ПАТ «ЧЕРКАСИОБЛЕНЕРГО»
Будь-яке підприємство – це сукупність підрозділів, які виконують
встановлені функції та мають свою структуру. Підрозділи пов’язані між
собою функціонально, виконують роботу у рамках спільного процесу,
обмінюються даними та документообігом, факсами, настановами та
розпорядженнями, отримують задачі та вказівки від керівників. І ця система
працює і є впровадженою для всіх, без виключення, підприємств чи то
банківської, чи державної сфери чи навіть енергетичної.
Тому створення корпоративної мережі для підтримки успішної роботи
підприємства є надважливо. Корпоративна мережа з можливістю передачі
відео- та аудіо матеріалів для працівників може пришвидшити робочий
процес та продуктивність. Але перед тим як передавати цю інформацію
мережу потрібно створити.
Процес проектування об'єкта − комп'ютерної мережі носить
ітераційний характер. Ітерації можуть включати в себе більш ніж один рівень
проектування. Тобто, в процесі проектування доводиться багато разів
виконувати процедуру аналізу об'єкта. Тому очевидне прагнення зменшити
трудомісткість кожного варіанту аналізу без шкоди для якості остаточного
проекту. У цих умовах доцільно на початкових стадіях проектування, коли
високої точності результатів не потрібно, використовувати найбільш прості і
економічних моделі.
Створити проект мережі означає вибрати структуру мережі, визначити
значення всіх її параметрів і представити результати у встановленій формі.
Результати (проектна документація) можуть бути виражені у вигляді схем,
пояснювальних записок, програм та інших документів на папері або на
машинних носіях інформації. Розробка (або вибір) структури мережі є
проектна процедура структурного синтезу, а розрахунок значень параметрів
елементів − процедура параметричного синтезу.
14
Для аналізу комп'ютерної мережі широко використовуються
математичні методи і моделі масового обслуговування. Спрощені моделі
масового обслуговування дозволяють знаходити явний вигляд цільової
функції, в якості якої використовується характеристика мережі, така як час
затримки повідомлень (пакетів).
Комп'ютерна мережа при цьому підході в кожній стадії проходить
повторюваний цикл: планування − реалізація − перевірка − оцінка (англ. plan-
do-check-act cycle) [15].
Зростання складності комплектуючих комп'ютерних мереж вимагає
підвищення ефективності їх застосування та вдосконалення методів
управління і планування мереж.
Теорія масового обслуговування забезпечує можливість розрахунку
кількісних характеристик функціонування мереж, включаючи оцінку
ймовірносно-тимчасових характеристик вузлів комутації, але не дозволяє
розрахувати надійність мережі. Спрощений підхід теорії масового
обслуговування вимагає подальшого уточнення характеристик мережі за
допомогою більш реальних моделей, що призводить до ітераційної
процедури проектування комп'ютерних мереж.
Теорія масового обслуговування, або теорія черг, — розділ теорії
ймовірностей, метою досліджень якого є раціональний вибір структури
системи обслуговування та процесу обслуговування на основі вивчення
потоків вимог на обслуговування, що надходять у систему і виходять з неї,
тривалості очікування і довжини черг. У теорії масового обслуговування
використовуються методи теорії ймовірностей та математичної статистики.
Корпоративна Мережа створюється в якості системнотехнічної основи
інформаційної системи, як її головний системо утворюючий компонент, на
базі якого конструюються інші підсистеми.
Компанія Cisco визначила три ієрархічних рівня, на кожному з яких
виконуються специфічні мережеві функції. І сам трирівнева модель добре
підходить під структуру підприємства.
15
Кожен рівень відповідає за реалізацію певних функцій. Однак ці рівні є
логічними і не обов’язково погоджені з фізичними пристроями. В іншій
ієрархічній моделі – OSI – теж використовуються логічні рівні ієрархії. Сім
таких рівнів описують функції. Однак певний протокол не обов’язково
відповідає функціям. Іноді протокол відображається на кілька рівнів моделі
OSI, а в інших випадках одному рівню відповідає кілька протоколів.
Аналогічно, при побудові фізичної реалізації ієрархічної мережі декілька
пристроїв можуть потрапити на один рівень, або один пристрій буде
виконувати функції декількох рівнів. Отже, рівні є логічними, але не
фізичними поняттями.
Ієрархічна маршрутизація є найефективнішим способом проектування
корпоративної мережі завдяки тому, що:
 ієрархія передбачає розділення однієї великої проблеми на декілька
менших, кожна з яких може бути вирішена окремо від інших;
 дозволяє ефективно зменшити розмір ділянки мережі, на який впливає
зміна топології;
 дозволяє зменшити об’єм інформації, яку оброблює і підтримує
маршрутизатор;
 створює передумови для проведення додавання маршрутів та агрегації
потоків даних.
Єдиним нюансом стало те, що розгалуженість системи в рівні доступу
(рівні робочих станцій) стала значною, тому була погрупована на рівні
відділу, та створена база даних для відслідковування змін в кадрових
структурах на рівні відділів, так як підприємство налічує близько 3000
працівників и близько половини з них мають доступ до комерційної мережі.
16
Рисунок 2.1 – З'єднання компонентів мережі для взаємодії між собою.
В складних умовах військового часу, енергетичні підприємства
зіштовхнулися з рядом неприємних проблем. Комунікації підрозділів,
навчання нових працівників, проведення співбесід, проведення селекторних
нарад з Міністерством енергетики та зустрічі партнерів таким чином, щоб всі
працівники могли знаходитися в безпечному місці,
Підприємство ПАТ «Черкасиобленерго» не стало виключенням.
Кадрова структура таких підприємств розповсюджена по всій області для
швидкого реагування на зміни в електричних мережах. Корпорація налічує
22 регіональних філіали та центральний офіс, та виїздні бригади для
ремонтів. І всі вони пов’язані корпоративною мультисервісною мережею.
Дирекцією з інформаційних технологій та зв’язку було запропоновано
розробити модель корпоративної мережі для проведення відеоконференцій,
навчання нових працівників та проведення зустрічей з представниками
Міністерства та партнерів.
17
Підрозділи знаходяться на значному віддалені один від одного, тому
можна виділити основні етапи побудови мережі з можливістю передачі відео
зображення:
1. Провести інформаційне обстеження підприємства.
2. Визначити тип системи яка влаштовуватиме всіх користувачів, або
створити нову.
3. Вибрати тип пристроїв обробки та передачі аудіо- та відео файлів.
4. Вибрати технології для зв’язку між офісом та філіалами.
5. Розгорнути структуру корпоративної мережі зв’язку.
6. Вибрати канали зв’язку для передачі даних.
Мережа потрібна підприємству, щоб забезпечити інформаційно-
комунікаційну підтримку для основної та допоміжної діяльності.
Інформаційне обстеження підприємства включає в себе опис
формальних і неформальних потоків руху інформації, каналів взаємодії із
зовнішнім середовищем, у тому числі з партнерами підприємства, з
урахування необхідних заходів реінжирингу підприємства. Метою стало
відслідкувати економічний ефект в організаційній зміні на підприємстві, у
впровадження нових систем взаємодії із зовнішнім середовищем. [7]
Слабким місцем стало небажання керівництва підприємства вкладати
кошти в сервіси з підпискою, а створити нову систему яку не потрібно
фінансувати. Тому було запропоновано розробити комплекс, простий у
користування для великої кількості користувачів для швидкого та надійного
зв’язку та передачі мультимедійних даних. Товариство виділили кошти на
створення нового серверу під розгортання платформи, облаштування залів
відеоконференцій для проведення нарад з відділами чи філіалами, створення
навчального комбінату, для впровадження нового сервісу та можливості
проводити співбесіди, навчати нових працівників online використовуючи
інтерактивні способи навчання та транслювання процесу навчання
отримуючи зворотній зв’язок.
18
Однак не погодившись на стрімінгові сервіси з підпискою та певними
обмеженнями типу Zoom, Cisco Webex чи Microsoft Teams, було вирішено
розробити власний комплекс який влаштовує всі потреби підприємства [8].
Проаналізувавши наведені вище пропозиції, технології що вони
використовують та порівнявши їх між собою, вихід зі становищу було
знайдено. Потрібно біло об’єднати велику кількість користувачів,
можливість планувати зустрічі заздалегідь, створити максимально простий
інтерфейс та доступність для нових користувачів та стабільність передачі
даних.
Задача заключалась в розгортанні сервера зі сховищем, для оперування
даними, створення комплексу відеоконференцій, створення адмін-ресурсу
для управління, розміщення web-інтерфейсу для входу як з середини
корпоративної мережі так і ззовні, та можливість мультисервісних операцій
та інтерактивних об’єктів.
Перша проблема, яку доводиться вирішувати при створенні
корпоративної мережі – організація каналів зв'язку. Вартість оренди каналів
віддалених географічно вузлів надуває космічних значень, вирішенням цієї
проблеми є використання глобальних мереж. Сучасні мультисервісні
корпоративні мережі розгортаються на все більших територіях, інтенсивно
розширюють базу користувачів, запускають нові сервіси. Останнім часом
популярність завойовують інтерактивні додатки, які мають відмінні від
традиційних послуг передачі даних вимоги до каналів зв'язку. На жаль старі
методи розгортання комп’ютерних мереж стають все дедалі менш
актуальними і нерідко доводиться створювати щось нове стикаючись з
обмеженнями існуючих варіантів.
Висновки до розділу 2
Враховуючи складний стан в країні та на підприємстві в цілому,
раціональним є розробка та подальше використання сервісів з можливістю
комунікувати віддалено, не перериваючи свою роботу під час тривог чи
19
ракетних обстрілів. Забезпечити такі умови створення корпоративної мережі,
щоб життя працівників залишалось в безпеці.
Створені платформи які є на ринку, мають певні обмеження, в кількості
учасників, часових проміжках та можливостях передачі трафіку в тій
кількості та швидкості яка потрібна підприємству. Тому синтез розробленої
моделі є актуальним і підтримувався рішенням голови правління
підприємства ПАТ «Черкасиобленерго».
20
РОЗДІЛ 3 СИНТЕЗ МЕРЕЖІ ПІДПРИЄМСТВА
Створений комплекс включає в себе поєднання серверних технологій,
використання веб-бібліотек, плагінів, розробки інтерфейсу та адмін-ресурсу.
Категорія користувачів для цієї мережі є дуже різноманітною, від
розвинутих користувачів до новачків в середовищі комп’ютерної
грамотності. До того ж через військовий стан, низку тривог, та ракетних
обстрілів користувачі не завжди мають можливість використовувати саме
свої робочі станції для навчання чи селекторної наради, тому мережа була від
початку орієнтована на найбільш спрощений інтерфейс та можливість
користуватися будь-якою платформою, планшетом, телефоном чи ПК.
Рисунок 3.1 – Архітектура мережі сервера відеоконференцій BigBlueButton
Тому осередком сервісу став BigBlueButton. Це відкрите програмне
забезпечення для проведення веб-конференцій. Дослідивши його можливості
було виявлено що система є простою в користуванні та головне, простою в
інтегруванні в різні платформи та має безліч можливостей. Система від
початку була розроблена саме для дистанційного навчання, а назва походить
21
від початкової концепції, що користування має бути максимально простим,
як натискання однієї великої синьої кнопки.
BigBlueButton — це система веб-конференцій з відкритим доступом
для онлайн-навчання.
Відкритий доступ означає повний доступ до вихідного коду
BigBlueButton за ліцензією на відкритий код. За допомогою вихідного коду
ви можете встановлювати, налаштовувати, розробляти, масштабувати та
інтегрувати його у свої продукти та послуги за допомогою спільноти.
Система веб-конференцій – BigBluebutton надає всі основні функції, які
користувач та розробник може очікувати від комерційної системи веб-
конференцій (але за ліцензією з відкритим вихідним кодом), включаючи
обмін аудіо, відео, презентаціями та екраном у реальному часі, а також
інструменти для співпраці, такі як чат (загальнодоступні та приватні), дошка,
спільні нотатки, опитування та кімнати для сеансів. BigBlueButton може
записувати ваші сеанси для подальшого відтворення.
BigBlueButton – це веб-програма на основі HTML5 [9]. На відміну від
багатьох комерційних систем веб-конференцій, які вимагають встановлення
програмного забезпечення, BigBlueButton працює у веб-форматі. Щоб
приєднатися до сеансу BigBlueButton, створюється посилання яке відкриває
дійсну URL-адресу приєднання у вашому браузері. Сервер BigBlueButton
отримує URL-адресу, перевіряє її та завантажує клієнт BigBlueButton. Після
завантаження відразу пропонується приєднатися до аудіомосту та
розпочинається співпраця між користувачами сервісу. Немає плагінів для
завантаження, немає програмного забезпечення для встановлення.
BigBlueButton забезпечує високоякісне аудіо, відео та спільне використання
екрана за допомогою вбудованої підтримки веб-бібліотек веб-зв’язку в
реальному часі (WebRTC) [10].
22
Рисунок 3.2 – Вигляд Демо-інтерфесу програми BigBlueButton
WebRTC — це стандарт, який підтримується всіма основними
браузерами, включаючи Chrome, FireFox, Safari та Safari Mobile.
Протокол WebRTC: що це таке і як він працює?
WebRTC — це дуже гнучкий протокол потокової передачі, який
підходить майже для всіх випадків використання аудіо/відео. Веб-зв’язок у
реальному часі (WebRTC) — це протокол зв’язку з відкритим вихідним
кодом, який забезпечує передачу голосу, тексту та відео в реальному часі між
веб-браузерами та пристроями. За допомогою сигнальних серверів WebRTC
може керувати кількома з’єднаннями пристроїв і забезпечувати їх цілісність.
WebRTC надає інтерфейси прикладного програмування (API), написані
на JavaScript. Розробники можуть використовувати API для створення
однорангового конференц-з’єднання (P2P) між веб-браузерами та
мобільними програмами, не турбуючись про сумісність і підтримку
мультимедійного вмісту.
23
Передача даних відбувається в режимі реального часу без
використання користувацьких інтерфейсів, додаткових плагінів або
додаткового програмного забезпечення — WebRTC забезпечує потокове
передавання аудіо та відео в реальному часі, просто відкривши веб-сторінку.
Однак, щоб отримати доступ до більш розширених функцій, як-от спільний
доступ до екрана, можна встановити плагін. Саме цим осередком і є
BigBlueButton.
Чому вибір став саме для WebRTC?
WebRTC має широкий спектр переваг як для організатора/стрімера, так
і для аудиторії, що приймає:
 WebRTC позбавляє від значної частини внутрішньої ручної роботи з
інтеграції, необхідної для ІТ-команд, регулюючи якість зв’язку,
пропускну здатність і потік трафіку щоразу, коли змінюються умови
мережі.
 WebRTC підтримується більшістю основних веб-браузерів, включаючи
Google Chrome для комп’ютера та Android, Mozilla Firefox для
комп’ютера та Android і Safari, і працює в будь-якій операційній
системі. Що і біло вирішальним.
 WebRTC не вимагає сторонніх компонентів або плагінів і є
безкоштовним програмним забезпеченням з відкритим кодом.
Головним критерієм протоколу WebRTC для підприємства стало те, що
80% користувачів використовують такі браузери як Мozilla і Google Chrome,
а цей протокол саме цими компаніями і розроблювався, тому щоб уникнути
помилок з оновленнями версій, вирішено було зупинитись на ньому.
24
3.1 Розгортання серверної частини мережі
Для розробки мережі було придбано робочу станцію, «чистий» 64
розрядний сервер Ubuntu 20.04 без попереднього програмного забезпечення.
Чистий сервер не мав попередньо встановлених веб-серверів (таких як
apache) і без веб-додатків (таких як plesk чи webadmin), які прив’язані до
порту 80/443.
Чистим – мається на увазі що сервер не використовуватиметься ні для
чого іншого, окрім BigBlueButton та його компонентів таких як Greenlight чи
Moodle.
Для встановлення серверної частини використовувались такі
мінімальні характеристики:
 64-бітна ОС Ubuntu 20.04 із ядром Linux 5.x
 встановлено останню версію докера
 6 ГБ оперативної пам'яті
 8 ядер процесора з високою однопоточною продуктивністю
 500 ГБ вільного дискового простору (або більше) для записів або 50
ГБ, якщо запис сеансу вимкнено на сервері.
 порти TCP 80 і 443 доступні
 UDP-порти 16384–32768 доступні
 250 Мбіт/с пропускна здатність (симетрична) або більше.
 TCP-порт 80 і 443 не використовуються іншим веб-сервером або
зворотним проксі-сервером
 ім’я хоста (наприклад, bbb.cherkasyoblenergo.com) для
налаштування сертифіката SSL. [16]
 адреси IPv4 та IPv6.
Але перш ніж перейти до розділу встановлення було виконано декілька
швидких перевірок конфігурації, щоб переконатися, що сервер відповідає
мінімальним вимогам.
25
Виконання цих перевірок значно зменшить ймовірність виникнення
проблем під час встановлення. Це вже відтестований та перевірений етап.
Спочатку переконались, що мова сервера – en_US.UTF-8.
$ cat /etc/default/locale
LANG="en_US.UTF-8"
Потім вийшли із системи та знову увійшли у свій сеанс SSH – це
перезавантажить конфігурацію мови для сеансу. Знову виконали наведену
вище команду cat /etc/default/locale. Отримали відповідь -
LANG="en_US.UTF-8".
$ sudo systemctl show-environment
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Далі перевірили, чи сервер з яким пряцюємо має (принаймні) 16 ГБ
пам’яті за допомогою команди free -h. Ось результат одного з наших
тестових серверів.
$ free -h
total used free shared buff/cache available
Mem: 15G 3.1G 1.0G 305M 11G 12G
Swap: 0B 0B 0B
Тут показано 15 ГБ пам’яті (це досить близько, оскільки сервер має 16
ГБ пам’яті).
В тестовому порядку було встановлено значення Mem: у загальному
стовпці менше 15 ГБ, це означає, що на сервері недостатньо пам’яті для
запуску BigBlueButton у робочому режимі. Тому потрібно збільшити пам’ять
сервера до (принаймні) 16 ГБ.
Далі переконались, що операційною системою сервера є Ubuntu 20.04.
26
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"
Далі потрібно було переконатись в розрядності системи серверу, щоб
уникнути помилок.
$ uname -m
x86_64
Таким чином саме підготовка до інсталювання була завершена.
Щоб встановити на сервері BigBlueButton, використали скрипт bbb-
install-2.5.sh.
$ sudo bbb-conf --check
BigBlueButton Server 2.5.0-alpha.5 (135)
Kernel version: 5.4.0-97-generic
Distribution: Ubuntu 20.04.4 LTS (64-bit)
Memory: 16392 MB
CPU cores: 8
/etc/bigbluebutton/bbb-web.properties (override for bbb-web)
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties (bbb-web)
bigbluebutton.web.serverURL: https://bbb.example.com
defaultGuestPolicy: ALWAYS_ACCEPT
svgImagesRequired: true
defaultMeetingLayout: SMART_LAYOUT
/etc/nginx/sites-available/bigbluebutton (nginx)
server_name: bbb.example.com
port: 80, [::]:80
27
port: 443 ssl
/opt/freeswitch/etc/freeswitch/vars.xml (FreeSWITCH)
local_ip_v4: 133.203.31.211
external_rtp_ip: 133.203.31.211
external_sip_ip: 133.203.31.211
/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml (FreeSWITCH)
ext-rtp-ip: $${local_ip_v4}
ext-sip-ip: $${local_ip_v4}
ws-binding: 133.203.31.211:5066
wss-binding: 133.203.31.211:7443
/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
playback_host: bbb.example.com
playback_protocol: https
ffmpeg: 4.2.4-1ubuntu0.1
/usr/share/bigbluebutton/nginx/sip.nginx (sip.nginx)
proxy_pass: 133.203.31.211
protocol: http
/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml (Kurento SFU)
/etc/bigbluebutton/bbb-webrtc-sfu/production.yml (Kurento SFU - override)
kurento.ip: 133.203.31.211
kurento.url: ws://127.0.0.1:8888/kurento
kurento.sip_ip: 133.203.31.211
recordScreenSharing: true
recordWebcams: true
codec_video_main: VP8
codec_video_content: VP8
/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml (HTML5
client)
/etc/bigbluebutton/bbb-html5.yml (HTML5 client config override)
28
build: 19
kurentoUrl: wss://bbb.example.com/bbb-webrtc-sfu
enableListenOnly: true
sipjsHackViaWs: true
/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml (STUN Server)
stun: coturn8.example.com
# Potential problems described below
# The following properties in /usr/share/bbb-web/WEB-
INF/classes/bigbluebutton.properties have no value:
#
........
# Warning: The API are installed and accessible from:
#
# https://bbb.cherkasyoblenergo.com
#
# and
#
# https://bbb.сherkasyoblenergo.com/core.jsp
#
# These API allow anyone to access your server without authentication
# to create/manage meetings and recordings. They are for testing purposes only.
# If you are running a production system, remove them by running:
#
# apt-get purge bbb-core
Будь-який результат, що вийшов після потенційних проблем
(# Potential problems described below), може вказувати на помилки
конфігурації або інсталяції. У багатьох випадках повідомлення дають
рекомендації щодо вирішення проблеми.
Для перевірки використали команду sudo bbb-conf --status, щоб бути
впевненими, що всі процеси BigBlueButton запущені та працюють.
29
$ sudo bbb-conf --status
nginx —————————————————► [✔ - active]
freeswitch ————————————► [✔ - active]
redis-server ——————————► [✔ - active]
bbb-apps-akka —————————► [✔ - active]
bbb-fsesl-akka ————————► [✔ - active]
tomcat9 ———————————————► [✔ - active]
mongod ————————————————► [✔ - active]
bbb-html5 —————————————► [✔ - active]
bbb-webrtc-sfu ————————► [✔ - active]
kurento-media-server ——► [✔ - active]
bbb-html5-backend@1 ———► [✔ - active]
bbb-html5-backend@2 ———► [✔ - active]
bbb-html5-frontend@1 ——► [✔ - active]
bbb-html5-frontend@2 ——► [✔ - active]
etherpad ——————————————► [✔ - active]
bbb-web ———————————————► [✔ - active]
bbb-pads ——————————————► [✔ - active]
Після встановлення API, відкривається https:/// у браузері (де ім’я
хосту, вказали в команді `bbb-install-2.5.sh`), ввести своє ім’я, і натисніть
«Приєднатися», щоб приєднатися до «Веб-зустрічі». Клієнт BigBlueButton
має запуститися в «Веб-зустрічі» (дивитися рис.3.3).
Скрипт допомагає встановити API та потрібні компоненти одразу з
мережі інтернет.
На цьому етапі можна інтегрувати BigBlueButton з іншою особою щоб
перевірити з’єднання. Для цього потрібно використовувати bbb-conf для
відображення цієї інформації за допомогою bbb-conf --secret.
30
$ sudo bbb-conf --secret
URL: https://bbb.example.com/bigbluebutton/
Secret: 330a8b08c3b4c61533e1d0c334
Link to the API-Mate:
https://mconf.github.io/api-
mate/#server=https://bbb.cherkasyoblenergo.com/bigbluebutton/&sharedSecret=330a8b08c3b4
c61533e1d0c334
Рисунок 3.3 – Web-інтерфейс розробленого сервісу для відеоконференцій
Налаштування проксі кластера:
У традиційному налаштуванні кластера масштабувальник, такий як
Scalelite, відповідає за розподіл нових зустрічей і приєднання користувачів до
одного з доступних серверів BigBlueButton. Хоча це налаштування просте,
воно вимагає від користувачів надання дозволів на доступ до мікрофонів,
відео та показу екрана щоразу, коли користувача призначають на інший
сервер. Це пов’язано з поведінкою виклику API браузера getUserMedia(). Це
профілактичний захід, який захищає користувачів, щоб вони надавали доступ
лише до тих серверів, яким вони мають намір. Однак у налаштуваннях
31
кластера кожен сервер запитує дозвіл окремо. Це сприймається як неприємне
або навіть непостійне.
Потрібно було зробити налаштування кластера BigBlueButton таким
чином, щоб кожен користувач запитував дозвіл лише один раз для кожного
типу носія. Щоб забезпечити горизонтальну масштабованість, медіа-трафік і
з’єднання з веб-сокетами обмінюються безпосередньо між користувачем і
сервером BigBlueButton, який запускає конференцію. Це досягається шляхом
ретрансляції лише інтерфейсу клієнта HTML5 через загальний проксі-сервер.
Перш ніж заглиблюватися в деталі, важливо підкреслити, чим це
рішення не є:
1. Це не повний зворотний проксі для всього трафіку, пов’язаного з
BigBlueButton. Браузер і сервер BigBlueButton як і раніше
обмінюватимуться більшою частиною трафіку напряму.
2. Він також не прив'язаний до Scalelite.
Рисунок 3.4 – Концептуальна залежність середовища BigBlueButton
32
Greenlight — це проста у використанні веб-програма, яку можна
встановити на будь-якому сервері BigBlueButton. Greenlight було
представоено 2020 року, щоб надати користувачам можливість створювати
зустрічі, запрошувати інших приєднатися до зустрічі та керувати записами.
Greenlight має всі функції, необхідні для того, щоб зробити сервер
BigBlueButton керованим і доступним, наприклад:
1. Реєстрація/вхід через Twitter, Google або через саму програму.
2. Керування параметрами свого облікового запису та параметрами
користувача.
3. Створення власних особистих кімнати та керування ними (сесії
BigBlueButton).
4. Можливість очікування перед початком зустрічі, та автоматичний вхід
до конференції.
Scalelite — це балансувальник навантаження з відкритим кодом, який
керує пулом серверів BigBlueButton. Завдяки цьому пул серверів виглядає як
один (дуже масштабований) сервер BigBlueButton. Інтерфейс, наприклад
Moodle або Greenlight, надсилає стандартні запити BigBlueButton API на
сервер Scalelite, який, у свою чергу, розподіляє ці запити на найменш
завантажений сервер BigBlueButton у пулі.
Один сервер BigBlueButton, який відповідає мінімальній конфігурації,
підтримує близько 200 одночасних користувачів.
Для підприємстава застосування цього рішення дозволило на 1 сервері
одночасно проводити заняття з 50 користувачами або 8 одночасних зустрічей
з 25 користувачам.
Звернувшись до останнього рисунку зрозуміло що, коли користувач
починає зустріч або приєднується до неї (1), Greenlight або інший інтерфейс
BigBlueButton ініціює нову зустріч, викликаючи виклики API створення та
приєднання на Scalelite відповідно (2). Scalelite, у свою чергу, перенаправить
виклики API на один із серверів BigBlueButton (3). Сервер BigBlueButton
порадить веб-переглядачу отримати клієнтський інтерфейс користувача
33
HTML5 через адресу проксі-сервера кластера. Таким чином, сервер
BigBlueButton виглядатиме так, ніби він прихований за проксі-сервером
кластера (4).
У той час як такі ресурси, як зображення, файли CSS і javascript,
завантажуються через проксі-сервер кластера, усі веб-сокети, медіа-потоки та
слайди/завантаження безпосередньо обмінюються із сервером BigBlueButton,
який запускає зустріч (5).
Конфігурація:
Як приклад були використані назви:
 bbb-proxy.example.com: Проксі-сервер кластера
 bbb-XX.example.com: сервери BigBlueButton (XX означає номер
сервера BigBlueButton)
Для початку використовується проста установка на основі nginx. Для
кожного сервера BigBlueButton потрібно додати нову директиву
розташування. Для першого вузла це буде:
location /bbb-01/html5client/ {
proxy_pass https://bbb-01.example.com/bbb-01/html5client/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
Деректива повторюється для кожного сервера BigBlueButton.
Можна вибрати будь-яке інше програмне забезпечення зворотного
проксі-сервера HTTP для виконання ролі зворотного проксі-сервера в цьому
налаштуванні.
Оскільки це видиме для користувача ім’я хоста, потрібно вибрати
зручніше ім’я хосту, наприклад bbb-cluster.example.com.
34
Для кожного сервера BigBlueButton у вашому кластері повторіть
наступні дії:
1. Додайти ці параметри до /etc/bigbluebutton/bbb-web.properties:
defaultHTML5ClientUrl=https://bbb-proxy.example.com/bbb-01/html5client/join
presentationBaseURL=https://bbb-01.example.com/bigbluebutton/presentation
accessControlAllowOrigin=https://bbb-proxy.example.com
defaultGuestWaitURL=https://bbb-01.example.com/bbb-01/html5client/guestWait
2. Додайте такі параметри до /etc/bigbluebutton/bbb-html5.yml:
public:
app:
basename: '/bbb-01/html5client'
bbbWebBase: 'https://bbb-01.example.com/bigbluebutton'
learningDashboardBase: 'https://bbb-01.example.com/learning-dashboard'
media:
stunTurnServersFetchAddress: 'https://bbb-01.example.com/bigbluebutton/api/stuns'
sip_ws_host: 'bbb-01.example.com'
presentation:
uploadEndpoint: 'https://bbb-01.example.com/bigbluebutton/presentation/upload'
3. Створити файли для модуля:
 /etc/systemd/system/[email protected]/cluster.conf
 /etc/systemd/system/[email protected]/cluster.conf
Кожен повинен мати наступний вміст:
[Service]
Environment=ROOT_URL=https://127.0.0.1/bbb-01/html5client
Environment=DDP_DEFAULT_CONNECTION_URL=https://bbb-01.example.com/bbb-
01/html5client
35
Потрібно зробити змінну nginx $bbb_loadbalancer_node на назву вузла
балансувальника навантаження в /etc/bigbluebutton/nginx/loadbalancer.nginx,
щоб дозволити запити CORS:
set $bbb_loadbalancer_node https://bbb-proxy.example.com
Додати точку монтування bbb-html5 до всіх розділів розташування,
окрім розділу розташування @html5client у /etc/bigbluebutton/nginx/bbb-
html5.nginx:
location @html5client {
...
}
location /bbb-01/html5client/locales {
...
}
І як правило перезапустити BigBlueButton командою:
$ bbb-conf --restart
bbb-conf — це інструмент налаштування BigBlueButton. Завдяки цьому
набагато легше змінювати частини конфігурації BigBlueButton, керувати
системою BigBlueButton (запуск/зупинка/скидання) і вирішувати потенційні
проблеми з налаштуванням.
Загалом, цей інструмент був створений на початку розробки
BigBlueButton. Основні розробники створили цей інструмент для швидкого
оновлення файлів конфігурації BigBlueButton для налаштування та
тестування.
bbb-conf знаходиться в /usr/bin/bbb-conf.
36
Якщо ввести bbb-conf без параметрів, він роздрукує список доступних
параметрів.
Рисунок 3.5 – Список доступних параметрів
Якщо для певної команди потрібно запустити BigBlueButton від імені
користувача root, вона виведе повідомлення про те, що цю команду потрібно
виконати від імені користувача root. Нижче наведено схему різних:
--version
Показує версію BigBlueButton, встановлену на сервері, і версії
компонентів BigBlueButton.
--setip <hostname_or_ip>
Встановлює IP/ім’я хоста для конфігурації BigBlueButton. Наприклад,
якщо сервер BigBlueButton має IP-адресу 192.168.0.211, можна змінити
файли конфігурації BigBlueButton на використання цієї IP-адреси за
допомогою команди.
$ sudo bbb-conf --setip 192.168.0.211
37
Або, якщо ви хочете використовувати ім’я хоста bbb.mybbbserver.com,
скористайтеся командою.
$ sudo bbb-conf --setip bbb.mybbbserver.com
--clean
Перезапускає BigBlueButton і очищає всі файли журналу під час
перезапуску. Це добре для налагодження, оскільки видаляє попередні
помилки у файлах журналу.
--check
Виконує ряд перевірок поточних налаштувань і повідомляє про
можливі проблеми. Не всі повідомлені проблеми є реальними. Наприклад,
якщо використовується --setip <hostname_or_IP>, тоді bbb-conf скаржиться,
що ім’я хоста не збігається з IP-адресою сервера, але це нормально, оскільки
було налаштовано сервер BigBlueButton для прослуховування імені хоста
замість IP-адреси.
--debug
Переглядає різні файли журналу на наявність помилок (наприклад,
винятки у файлах журналу Java для Tomcat).
--network
Ця команда показує кількість активних з’єднань для портів 80 (HTTP) і
443 (HTTPS) для кожної віддаленої IP-адреси.
--secret
Відображає поточний рівень безпеки для API BigBlueButton. Наприклад:
$ bbb-conf --secret
URL: http://192.168.0.35/bigbluebutton/
Salt: f6c72afaaae95faa28c3fd90e39e7e6e
38
--setsecret <new_secret>
Призначає новий секрет безпеки для BigBlueButton API. Це не змінює
секрет безпеки для демонстраційних версій API, тому, якщо запустити цю
команду, але все одно потрібно використовувати демонстраційні версії API,
слід буде оновити спільний секрет у
/var/lib/tomcat8/webapps/demo/bbb_api_conf. jsp.
--start
Запускає всі процеси BigBlueButton.
--stop
Зупиняє всі процеси BigBlueButton.
--watch
Перегляд файлів журналу на наявність повідомлень про помилки кожні
2 секунди. Команда випористовужться після sudo bbb-conf --clean, щоб
очистити всі файли журналу.
--zip
Заархівовує файли журналу для повідомлення про помилку. Цей
параметр використовується рідко, оскільки часто простіше використовувати
pastebin, щоб поділитися журналом повідомлення про помилку.
Продуктивність, трафік даних і розподіл ролей:
BigBlueButton HTML5 має розмір у кілька мегабайт. Потрібно
переконатися, що трафік між серверами BigBlueButton і проксі-сервером
кластера не спричиняє додаткових витрат.
Це налаштування представляє видиму для користувача єдину точку
відмови, тобто помітну ціль DDoS. Потрібно переконатися, що зовнішній
сервер стійкий до DDoS-атак. Для цього у налаштуваннях брандмауера
39
вимкнено відстеження з’єднань, а веб-сервер налаштовано на обробку
достатньої кількості з’єднань. Однак ці оптимізації є досить специфічними
для окремих налаштувань.
З тієї ж причини доцільно залишити Scalelite на іншій машині та
забезпечити налаштування високої доступності для проксі-сервера (тобто за
допомогою IP-переходу після відмови або Anycast).
3.2 Налаштування безпеки мережі
Корпоративна мережа обов’язково має налаштування безпеки. А саме
налаштування брандмауера.
Найпростіша мережева конфігурація для встановлення BigBlueButton
на сервері, який має одну зовнішню IP-адресу, і сервер знаходиться в
загальнодоступному Інтернеті (і, отже, доступний для користувачів
підприємства). Брандмауер доступу на основі портів реалізований за
допомогою UFW.
UFW (Uncomplicated Firewall або «простий брандмауер») являє собою
інтерфейс iptables, призначений для cпрощення процесу налаштування
брандмауера.
Ось приклад такого налаштування з сервером BigBlueButton, який має
(вигадану) IP-адресу 203.0.113.1 з іменем хоста
bigbluebutton.cherkasyoblenergo.com.
Рисунок 3.6 – Приклад налаштування з сервером BigBlueButton
40
У цій простій мережевій конфігурації BigBlueButton має працювати
одразу після встановлення. Це пояснюється тим, що сценарії пакування
автоматично налаштовують BigBlueButton, використовуючи першу IP-адресу
без зворотного зв’язку, тоді як доступ до конфіденційних портів блокується.
Варіант цього налаштування виникає, коли сервер має кілька мережевих
інтерфейсів, але зовнішня IP-адреса все ще є першим мережевим
інтерфейсом (наприклад, eth0), який підбирають сценарії встановлення.
Налаштування IP брандмауера має важливе значення для захисту
інсталювання. За умовчанням багато служб доступні в мережі. Це дозволяє
BigBlueButton працювати в кластерах і приватних мережах центрів обробки
даних, але якщо сервер BigBlueButton загальнодоступний в Інтернеті,
потрібно запустити брандмауер, щоб зменшити доступ до мінімально
необхідних портів.
BigBlueButton поставляється з набором правил на основі UFW. Його
можна застосувати під час перезапуску і обмежити доступ лише до таких
необхідних портів:
 Порт TCP/IP 22 для SSH
 Порт TCP/IP 80 для HTTP
 Порт TCP/IP 443 для HTTPS
 UDP-порти 16384–32768 для медіа-з’єднань
Рисунок 3.7 – Приклад підключення до серверу з налаштованим
брендмауером
У цьому прикладі всі користувачі повинні підключатися до сервера
BigBlueButton через уніфікований покажчик ресурсів (URL)
41
https://bigbluebutton.cherkasyoblenergo.com/. Це ім’я хосту перетворюється на
IP-адресу 203.0.113.1, яка є брандмауером. Брандмауер має перенаправляти
певні підключення на сервер BigBlueButton, що працює за IP-адресою
10.0.2.12.
Для обмінну даними використовується проста модель передачі UDP.
Природа UDP як протокол без збереження стану також корисна для серверів,
що відповідають за невеликі запити від величезної кількості клієнтів,
наприклад DNS і потокові мультимедійні додатк.
За замовчуванням BigBlueButton використовує UDP-порти 16384-
32768, які використовуються FreeSWITCH, mediasoup і Kurento для
надсилання пакетів у реальному часі (RTP).
1. FreeSWITCH використовує діапазон 16384 - 24576, який визначено в
/opt/freeswitch/etc/freeswitch/autoload_configs/switch.conf.xml
<!-- RTP port range -->
<param name="rtp-start-port" value="16384"/>
<param name="rtp-end-port" value="24576"/>
FreeSWITCH — це програмно-визначений телекомунікаційний стек,
що забезпечує цифрову трансформацію від пропрієтарних
телекомунікаційних комутаторів до універсальної програмної реалізації, яка
працює на будь-якому стандартному апаратному забезпеченні. Від Raspberry
PI до багатоядерного сервера, FreeSWITCH може розкрити
телекомунікаційний потенціал будь-якого пристрою. FreeSWITCH може
з’єднуватися із зовнішнім світом і масштабуватися до будь-якого розміру
[11].
42
Рисунок 3.8 – Метод керування FreeSwitch
FreeSWITCH може обслуговувати голосовий, відео- та текстовий
зв’язок з IP-мережі (VoIP) і PSTN (тобто звичайних стаціонарних телефонів).
FreeSWITCH підтримує всі популярні протоколи VoIP, а також інтерфейс з
PRI. Деякі загальні можливості, для яких використовується FreeSWITCH,
включають:
 PBX (система офісного телефону)
 Програмний комутатор класу 5 (телефонний оператор)
 Сервер додатків, як-от голосова пошта, конференції, IVR
 Софтфон
Під час розробки мережі FreeSWITCH було визначено чудовим
програмним забезпеченням для роботи зі звуком.
FreeSWITCH надає можливість голосових конференцій у
BigBlueButton. Користувачі можуть приєднатися до голосової конференції
через гарнітуру. Користувачі, які приєднуються через Google Chrome або
43
Mozilla Firefox, можуть скористатися перевагами вищої якості звуку,
підключившись за допомогою WebRTC. FreeSWITCH також можна
інтегрувати з провайдерами VOIP, щоб користувачі, які не можуть
приєднатися за допомогою гарнітури, могли зателефонувати за допомогою
свого телефону.
2. Kurento використовує діапазон 24577–32768, який визначено в
/etc/kurento/modules/kurento/BaseRtpEndpoint.conf.ini
minPort=24577
maxPort=32768
WebRTC працює з браузера без додаткових програм або плагінів. А
Kurento уміє записувати все, те що проходит через него. І до того ж цей
медіасервер володіє хорошим набором готових бібліотек для роботи зі своїм
API за допомогою Java і JavaScript, що значно прискорює розробку [12].
3. Mediasoup також використовує 24577 - 32768 за замовчуванням
(визначено в /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml). Якщо
його потрібно змінити, слід використати файл налаштування bbb-webrtc-sfu
(розташований у /etc/bigbluebutton/bbb-webrtc-sfu/production.yml). Наприклад,
встановлення діапазону 50000–51999 має мати такий формат (синтаксис
YAML, /etc/bigbluebutton/bbb-webrtc-sfu/production.yml):
mediasoup:
worker:
rtcMinPort: 50000
rtcMaxPort: 51999
Для роботи більшості додатків необхідний сервер WebRTC для
ретрансляції трафіку між одноранговими вузлами, прямий сокет часто
неможливий між клієнтами (якщо тільки вони не знаходяться в одній
локальній мережі). Звичайний спосіб вирішити цю проблему —
44
використовувати сервер TURN. Цей термін розшифровується як Traversal
Using Relays навколо NAT і є протоколом для ретрансляції мережевого
трафіку.
NAT (від англ. Network Address Translation — «перетворення
мережевих адрес») — це механізм у мережах TCP/IP, котрий дозволяє
змінювати IP-адресу у заголовку пакунку, котрий проходить через пристрій
маршрутизації трафіку. Також має назви IP Masquerading, Network
Masquerading і Native Address Translation.
Для роботи системи BigBlueButton потрібна конкретна конфігурація
TURN сервера, виконали такі дії для apply-config.sh і змінили aaa.bbb.ccc.ddd
і secret за допомогою значень які використовує система.
echo " - Update TURN server configuration turn-stun-servers.xml"
cat <<HERE > /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="stun0" class="org.bigbluebutton.web.services.turn.StunServer">
<constructor-arg index="0" value="stun:aaa.bbb.ccc.ddd"/>
</bean>
<bean id="turn0" class="org.bigbluebutton.web.services.turn.TurnServer">
<constructor-arg index="0" value="secret"/>
<constructor-arg index="1" value="turns:aaa.bbb.ccc.ddd:443?transport=tcp"/>
<constructor-arg index="2" value="86400"/>
</bean>
<bean id="stunTurnService"
class="org.bigbluebutton.web.services.turn.StunTurnService">
<property name="stunServers">
<set>
<ref bean="stun0"/>
</set>
45
</property>
<property name="turnServers">
<set>
<ref bean="turn0"/>
</set>
</property>
</bean>
</beans>
HERE
Оскільки однорангові вузли не можуть безпосередньо підключатися
один до одного, сервер TURN діє як посередник між одноранговими вузлами
та пересилає трафік від одного однорангового вузла до іншого.
Увесь трафік (відео/аудіо + дані), який проходить через сервер TURN,
уже наскрізно зашифрований одноранговими вузлами, і сервер TURN не
може декодувати/прочитати зашифрований пакет, він просто передає пакет
іншим вузлам.
Весь трафік WebRTC наскрізно шифрується за допомогою DTLS-SRTP,
а сервер TURN просто ретранслює трафік. Сервер TURN аналізує лише
рівень UDP пакета WebRTC для цілей маршрутизації та не торкається (і не
може) шифрування DTLS.
Тестування брандмауера:
Після того, як було внесено зміни до налаштувань брандмауера,
потрібно перевірити, чи правильно налаштували брандмауер для правильної
переадресації зазначених вище з’єднань.
Щоб перевірити з’єднання на різних портах, необхідних для
BigBlueButton, скористались інструментом під назвою netcat для
прослуховування з’єднань. Netcat використовуватиметься на сервері
BigBlueButton і на зовнішньому сервері (поза брандмауером) для створення
з’єднань. Якщо перевірка підключень не вдається, це означає, що брандмауер
пересилає пакети.
46
Netcat встановлюється на BigBlueButton за допомогою такої команди:
$ sudo apt-get install netcat
Потім BigBlueButton зупиняється за допомогою команди sudo bbb-conf
--stop. Це звільняє порти, які потрібно перевірити. Тепер netcat запускається
для прослуховування портів і підключитися із зовнішнього комп’ютера. Від
імені root виконавши таку команду:
$ netcat -l 443
Тепер netcat передаватиме на термінал будь-який текст, який він
отримує на порт.
Далі на другому комп’ютері, який є зовнішнім щодо брандмауера –
тобто він має пройти через брандмауер, щоб отримати доступ до сервера
BigBlueButton – також встановлюється netcat. Замінюється
EXTERNAL_HOST_NAME на ім’я хоста існуючого брандмауера що
використовуються, виконайте таку команду:
$ netcat EXTERNAL_HOST_NAME 443
Для перевірки вводиться слово «test» і ENTER.
Якщо брандмауер пересилає вхідні з’єднання через порт 443 на
внутрішній сервер BigBlueButton, то повинно відобразити на екрані слово
«test» після команди netcat -l 443, як у прикладі:
$ netcat -l 443
test
Це стосується портів TCP/IP. Далі потрібно перевірити, чи
пересилаються UDP-з’єднання в діапазоні 16384-32768. На сервері
47
BigBlueButton виконується команда netcat, щоб прослухати вхідні дані через
UDP на порт 17000 (тут вибирається порт у діапазоні 16384-32768).
$ netcat -u -l 17000
Знову ж таки, на комп’ютері за межами брандмауера замінюється
EXTERNAL_HOST_NAME на ім’я хоста брандмауера та виконується
команда
$ netcat -u EXTERNAL_HOST_NAME 17000
На цьому етапі продовжується інсталяція BigBlueButton і після
завершення інсталяції можна продовжувати створення web-інтерфейсу.
3.3 Додавання web-інтерфейсу
Враховуючи що мережа пройшла тестові перевірки та працює, було
вирішено продовжувати роботу та створити web-клієнт для користувачів.
Головною задачею було створити комплекс, для навчального центру
ПАТ «Черкасиобленерго» для віддаленого навчання працівників,
проходження перекваліфікації, інструктажів у всіх 22 філія, які віддаленні від
центрального офісу і можливості проводити конференції, за аналогією схожі
на селекторний зв’язок але з відео.
Початковим кроком стало розробити інтерактивний сервіс для
навчального центру.
Основним пріоритетним напрямком діяльності навчальноцентру є:
 надання освітніх послуг, пов’язаних з одержанням професійної освіти
на рівні кваліфікаційних вимог до професійно-технічного навчання,
перепідготовки та підвищення кваліфікації працівників робітничих
професій;
48
 розробка нових підходів у формуванні системи забезпечення якості
освіти на основі впровадження державних стандартів, розвитку
матеріально-технічної бази, розробки та видання навчальних
посібників, перехід на навчання за програмами різних рівнів
кваліфікації і термінами.
Розробка почалась зі створення форми реєстрації.
Підприємство налічує близько 3000 працівників по Черкаській області і
хоча б на рівні керівників відділу, приймають участь у відеоконференціях та
нарадах.
Потрібно було створити інструмент для Логіну користувачів і
можливості керувати конференціями, проводити тестування, показувати
екрани з документацією. Доведено документацію прикладу в Додатку 1.
Рисунок 3.9 – Створення форми входу
49
В даному вікні, користувачі вже створеної бази, отримують пароль та
логін він системного адміністратора, можуть виконати вхід та потрапити до
меню Створення кімнат для відеоконференції. Користувачі в цій кімнати
вносять назву конференції, опис процесу що буде відбуватися, в базу
серверу. Та обирають час початку та дату проведення конференції.
Також адміністратор в цьому розділі може створити новому
користувачеві Логін та Пароль для доступу.
Рисунок 3.10 – Створення форми входу
Метод самореєстрації був виключений в даному кабінеті через
важливість створених заходів, і унеможливлює інших користувачів які не є
працівниками підприємства до участі в важливих нарадах. Меню для
користувачів розглянуто в Додатку 2.
В Навчальному центрі було створено окремий відділ, обладнаний
мультимедійним екраном та проектором, ноутбуками та комп’ютерними
класами. Отримуючи посилання на відеоконференції в окремому вікні,
працівники навчального центру отримали змогу віддалено проводити
навчання для нових працівників, та оновлювати знання коли відбуваються
зміни на законодавчому чи підприємницькому рівні.
50
Далі користувачам та адміністраторам була додана можливість
створювати екзамени для навчального центру та редагувати налаштування
для створених іспитів.
Рисунок 3.11 – Вікно створення екзаменів для працівників
Рисунок 3.12 – Ахрів створених іспитів з можливістю редагування
Також додано сервіс для налаштувань вже створених екзаменів.
Інтерактивний вибір білету та інформаційні панелі з номерами завдань для
білетів. Приклад структури вибору білету додано в Додатку 3.
Можливість корегувати налаштування створеного екзамену включає в
себе налаштування кількості білетів, створення погрупованої ланки питаннь,
та можливість їх видалення в разі помилки чи внесенні змін (рис. 3.12).
51
Також генерується посилання – доступ для вибору білетів та архіву
вибраних білетів, для ведення контролю екзаменатором.
Рисунок 3.13 – Вікно налаштувань екзаменів для працівників
Рисунок 3.14 – Інтерактивне поле вибору білетів з рандомною нумерацією
Працівник за рішенням Навчального центру отримує посилання та
підготувавшись вдома чи на робочому місці отримує доступ до сервісу
відеоконференцій, де за допомогою технічних пристроїв (камери та
мікрофона) може складати іспит. Отримавши посилання працівник
реєструється і долучається до конференції (рис.3.15).
52
Рисунок 3.15 – Реєстрація користувача для іспиту
Якщо відбувається якийсь запланований захід, а не навчання і його
потрібно провести онлайн додана функція звичайної зустрічі, де вказується
лише ім’я користувача та вибирається назва конференції яка цікавить.
Рисунок 3.16 – Вхід в заплановану конференцію чи нараду
Таким чином було створено спрощений інтерфейс для Навчального
центру ПАТ «Черкасиобленерго» що дозволяє створювати кімнати для
53
навчання співробітників та дає можливість створювати окремі кімнати для
відеоконференцій та нарад.
Налаштування web-інтерфейсу сервісу відеоконференцій
BigBlueButton — це система веб-конференцій з відкритим кодом для
онлайн-навчання. Основним завданням було максимально спростити
інтерфейс для користувачів.
Хороший інтерфейс має вирішальне значення для успіху будь-якого
продукту. Представлено огляд дизайнерських рішень, які прийняли під час
створення узгодженого інтерфейсу для клієнта HTML5, який охоплює
використання на мобільних, планшетних і настільних платформах.
Користувачі підприємства очікують, що версія програми на ПК та
мобільна версія, матимуть подібний інтерфейс користувача.
Деякі користувачі мали досвід користуванням програмами такими як
Zoom, Webex чи Skype. Саме тому для веб-інтерфейсу потрібно біло
створити зразок який би мав щось спільне в плані використання веб-камери,
мікрофона та екрана, аби не заплатувати користувачів.
Розробляючи клієнт BigBlueButton, не було потреби створювати
радикально нові способи взаємодії на мобільному та настільному клієнті;
скоріше потрібно було надати користувачам сучасний і доступний інтерфейс,
який був би знайомий усім на основі їх попереднього досвіду роботи з
іншими програмами.
Інсуючи робочий варіант зі створеною версією на ПК почали
розробляти версію для мобільних пристроїв.
54
Рисунок 3.17 – Інтерфейс для ПК версії
Спершу розробка для мобільних пристроїв дозволила відійти від
поточного досвіду користувача та подумати про мінімальний набір функцій,
необхідних для того, щоб користувач брав участь у онлайн-сеансі (нижче ви
побачите багато знімків екрана цього дизайну).
Поточна користувальницька програма на основі Flash має серію вікон і
макетів для різних користувачів. Однак мобільний додаток не має вікон.
Натомість це основний набір елементів, які розумно накладаються, коли
користувач потребує до них доступу.
55
Рисунок 3.18 – Початковий дезайн інтерфейсу для мобільного пристрою
Пк версія має серію вікон і макетів для різних користувачів. Однак
мобільний додаток не має вікон. Натомість це основний набір елементів, які
розумно накладаються, коли користувач потребує до них доступ.
56
Подібний набір елементів є у BigBlueButton:
 Зона презентації
 Груповий або приватний чат
 Список учасників
 Відео (спільне використання веб-камери та робочого столу)
 Уподобання
Сумісність на різних платформах
Мобільний пристрій відрізняється від взаємодії з веб-програмою.
Зрештою, це різні форми взаємодії: дотик чи миша, портативний комп’ютер
чи екран, дотик чи клавіатура.
З першим випуском HTML5 для мобільних пристроїв було
зосереджено зусилля на створенні функціональних можливостей засобу
перегляду. Це включає перегляд презентації, увімкнення/вимкнення аудіо,
взаємодії з емодзі, а також можливість брати участь у публічних/приватних
бесідах у чаті [14].
Рисунок 3.19 – Можливість додавати презентацію для подальшої трансляції
57
Рисунок 3.20 – Додано налаштування для користувача
Рисунок 3.21 – Додані субтитри під час трансляції
58
Рисунок 3.22 – Впроваджено різні за стилями типи учаників
Доповідач (Presenter): синій квадрат у верхньому лівому куті аватара
вказує на те, що учасник є доповідачем. У нижньому правому куті
розташований індикатор приєднання аудіо (значок аудіо + зелене коло), а
кільце навколо аватара візуально вказує на те, що хтось говорить.
Модератор (Moderator): Потрібно було відрізнити модераторів від усіх
інших учасників і зробили це, візуально змінивши аватар на квадрат. Також
відображено, що звук модератора вимкнено (значок вимкненого звуку +
червоне коло).
Учасник (Paticipant): учасники візуально позначаються за допомогою
аватара кола, а у випадку, зазначеному вище, цей учасник вибрав
приєднатися до лише прослуховування аудіо (піктограма гарнітури + зелене
коло).
Додано функцію демонстрування екрану:
Коли доповідач вирішить надати спільний доступ до свого робочого
столу, він замінить наявну область презентації. У будь-який час доповідач
може завершити спільний доступ до робочого столу, і презентація
відновиться у вихідному положенні.
59
Рисунок 3.23 – Зразок демонстрації екрану під час онлайн зустрічі
Під час переходу по посиланню, коли користувач приєднується до
сеансу, з’являється діалогове вікно, яке вказує, яким автоматичним
маршрутом він може скористатися, приєднатися до аудіо за допомогою
мікрофона або лише прослухати. Якщо користувач вибере приєднання через
мікрофон, користувачеві буде запропоновано ще один крок із запитанням, чи
чує він себе (тест ехо). Звідти, якщо вибрати «Так», вони перейдуть до
сеансу.
60
Рисунок 3.24 – Діалогове вікно що дає вибір: приєднатися за допомогою
мікрофона або лише прослухати
Рисунок 3.25 – Тест ехо
Запис відеоконференції на BigBlueButton:
Коли в BigBlueButton створюється кімната, яка дозволяє записувати
(тобто кнопка запису є видимою), BigBlueButton записуватиме весь сеанс. Це
61
не залежить від фактичного натискання кнопки запису чи ні. Технічна
причина цього полягає в тому, що частини записів (зокрема, файли SVG для
дошки) залежать від попереднього стану. За замовчуванням ці файли
зберігаються протягом двох тижнів. Крім того, залежно від прецеденту
використання та юрисдикції, можливо, було б доцільно зберегти опцію
створення «заднім числом» записів, наприклад, коли користувачі забули
натиснути кнопку запису.
Якщо зовнішній інтерфейс (який використовує BigBlueButton API для
створення/запуску кімнати) вказує record=true, весь сеанс буде записано,
якщо запис не вимкнено для всіх кімнат у BigBlueButton. Якщо інтерфейс
вказує record=false або не вказує цей параметр, сеанс не буде записаний, а
кнопка «почати»/«зупинити» запис буде недоступною під час сеансу.
Адміністратори сервера можуть перезаписати значення за
замовчуванням для disableRecordingDefault, початково встановлене в
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties, перезаписавши
його в /etc/bigbluebutton/bbb-web.properties. Для цього потрібно встановити
комманду disableRecordingDefault=false замість значення
disableRecordingDefault =true для глобального вимкнення записів.
Крім того, слід вимкнути запис сеансів, встановивши
breakoutRoomsRecord=false. Тому що запис кімнати очікування може бути
конфіденційним зі сторони користувачів.
Якщо записи ведуться, всі записи завжди доступні.
3.4 Збільшення функціональних можливостей, додавання
адміністративного клієнту
Розгортаючи готову модель була використана система навчальної
платформи Moodle в яку успішно було інтегровано модуль серверу
BigBlueButton.
Moodle — це безкоштовна, відкрита (Open Source) система управління
проектами і курсами яка має власні регулятори, налаштування і можливість
62
швидкого керуванню. Вона реалізує філософію «педагогіки соціального
конструктивізму» та орієнтована насамперед на організацію взаємодії між
викладачем та учнями, хоча підходить і для організації традиційних
дистанційних курсів чи онлайн зустрічей.
Зручним в користування платформою стало те, що можна швидко
створити сторінку курсів для Навчального центру, створити кімнату для
важливої відеоконференцій, і вона дозволяє проходити реєстрацію
користувачам як в середині корпоративної мережі, так і ззовні.
Сервіс Moodle дозволяє користувачам доєднатися до курсів де вони
отримують всі потрібні данні, погруповані по ланкам (рис 3.27).
Окрім точкових кімнат відеоконференцій які залишилися на
спрощеному інтерфейсі, всі циклічні курси для нових працівників було
терміново переведено на Moodle, та поділено на інтерактивні ланки де можна
додати матеріали для навчання, створити сторінку з питаннями до іспитів,
викладати важливі матеріали та розклади онлайн.
Рисунок 3.26 – Файли додані до вибраного курсі
63
Рисунок 3.27 – Список створених курсів на платформі Moodle
Важливим моментом тестування стало те, що сервер витримує
навантаження в передачі трафіку. Один сервер може витримувати одночасні
конференціями в 5+ різних кімнат та більш ніж 20 зареєстрованих учасників
з підтримкою відео та аудіо потоків.
Для перевірки навантаження, було переведено в онлайн режим 5
одночасних ранкових селекторних нарад для директорів філіалів
енергетичних мереж. Виникли деякі проблеми з передачею аудіо доріжки
через блокування портів на деяких машинах серед користувачів філіалів. Але
дана обставина не є проблемами синтезованого середовища, а скоріше
умовою захисту мереж прописаних в інструкції підприємства яке відноситься
до критичної інфраструктури.
64
Рисунок 3.28 – Список кімнат для проведення щоденних селекторних нарад
65
Рисунок 3.29 – Інтеграція сервісу BigBlueButton в платформу Moodle
Висновки до розділу 3
На разі розгорнута мережа для відеоконференцій повністю задовольняє
користувачів багатотисячного підприємства критичної інфраструктури.
В умовах постійних тривог та ракетних обстрілів мережа допомагає
уникнути переміщення особового складу підприємства та створює комфортні
умови для проведення нарад та зустрічей у безпечному середовищі.
Можливість безкоштовно, сплачуючи лише за трафік за тарифами
інтернет провайдера, багатотисячне підприємство може залучати
користувачів для постійного навчання, обміну інформацією, настановчих
нарад з керівництвом дуже цінується на сьогоднішній момент.
66
Сервіси які є запропонованими на ринку по типу Zoom чи Cisco Webex
мають певні обмеження та середовище постійної оплати підписки, яка не
задовольняє всі потреби підприємства. Тому створення даного середовище,
стало досить непоганою, майже безкоштовною заміною існуючих програм.
67
РОЗДІЛ 4 ДОСЛІДЖЕННЯ ПРОДУКТИВНОСТІ КОРПОРАТИВНОЇ
МЕРЕЖІ
До цього моменту акцент був зосереджений переважно на синтезі
мережі та її функціональних аспектах мереж. Проте, як від будь-якої
комп’ютерної системи, від комп’ютерних мереж очікується хороша
продуктивність. Це тому, що ефективність обчислень, розподілених по
мережі, часто безпосередньо залежить від ефективності, з якою мережа
доставляє дані обчислень.
Хоча стара програмістська приказка «спочатку зробіть все правильно, а
потім робіть це швидко» залишається вірною, у мережі часто необхідно
«проектувати для продуктивності». Тому важливо розуміти різні фактори, які
впливають на продуктивність мережі. Дослідивши систему відеоконференцій
яку довелося створити виявили, що продуктивність мережі вимірюється
двома основними способами: пропускною здатністю (throughput) і затримкою
(latency).
Пропускна здатність мережі визначається кількістю бітів, які можна
передати через мережу за певний період часу. Наприклад, мережа може мати
пропускну здатність 10 мільйонів біт/секунду (Мбіт/с), тобто вона здатна
передавати 10 мільйонів біт щосекунди. Іноді корисно думати про пропускну
здатність з точки зору того, скільки часу потрібно для передачі кожного біта
даних. Наприклад, у мережі 10 Мбіт/с передача кожного біта займає 0,1
мікросекунди (мік.с).
Перш за все, пропускна здатність - це буквально міра ширини смуги
частот. Наприклад, застарілі телефонні лінії підтримували діапазон частот від
300 до 3300 Гц; тобто пропускна здатність розраховується 3300 Гц - 300 Гц =
3000 Гц. Якщо пропускна здатність, вимірюється в герцах, то, ймовірно, воно
стосується діапазону сигналів, які можна прийняти.
Коли мова йде про пропускну здатність каналу зв’язку, то зазвичай
мається на увазі кількість біт за секунду, яку можна передати по каналу
68
зв’язку. Це також іноді називають швидкістю передачі даних. Можна
сказати, що пропускна здатність каналу Ethernet становить 10 Мбіт/с. Однак
звідси ми можемо виділити різницю між максимальною швидкістю передачі
даних, яка доступна в каналі зв’язку, і кількістю біт за секунду, яку ми
можемо фактично передати через канал зв’язк.
Зазвичай використовуємо слово пропускна здатність для позначення
виміряної продуктивності системи. Таким чином, через різні неефективності
реалізації, пара вузлів, з’єднаних каналом з пропускною здатністю 10 Мбіт/с,
може досягти пропускної здатності лише 2 Мбіт/с. Це означатиме, що
програма на одному хості може надсилати дані на інший хост зі швидкістю 2
Мбіт/с.
Програми та сервсіи також мають власну пропускну здатність. Це
кількість біт за секунду, яку вони повинні передати через мережу для
прийнятної роботи. Для деяких програм це може бути:
 «все, що я можу отримати»;
 для інших це може бути певне фіксоване число (бажано не більше,
ніж доступна пропускна здатність каналу);
 а для інших це може бути число, яке змінюється з часом.
Хоча можна говорити про пропускну здатність мережі в цілому, інколи
потрібно бути більш точним, зосередившись, наприклад, на пропускній
здатності окремого фізичного каналу або логічного каналу між процесами.
На фізичному рівні пропускна здатність постійно покращується, і кінця
цьому не видно. Інтуїтивно зрозуміло, якщо ви уявляєте секунду часу як
відстань, яку можна виміряти за допомогою лінійки, а пропускну здатність –
як кількість бітів, які вміщуються на цій відстані, тоді ви можете уявляти
кожен біт як імпульс певної ширини.
69
Наприклад, кожен біт на каналі 1 Мбіт/с має ширину 1 мік.с, тоді як
кожен біт на каналі 2 Мбіт/с має ширину 0,5 мік.с, як показано на малюнку.
Рисунок 4.1 – Біти, що передаються з певною смугою пропускання
Чим складніша технологія передачі та отримання, тим вужчим є кожен
біт і, отже, тим вищою пропускна здатність. Для логічних каналів між
процесами на пропускну здатність також впливають інші фактори, зокрема
те, скільки разів програмне забезпечення, яке реалізує канал, має обробляти
та, можливо, перетворювати кожен біт даних.
Другий показник продуктивності, затримка (latency) , відповідає тому,
скільки часу потрібно повідомленню для проходження від одного кінця
мережі до іншого. (Як і у випадку з пропускною спроможністю, ми можемо
зосередитися на затримці окремого зв’язку або наскрізного каналу.) Затримка
вимірюється суворо за часом. Наприклад, трансконтинентальна мережа може
мати затримку 24 мілісекунди (мс). Повідомленню потрібно 24 мс, щоб
пройти від одного узбережжя Північної Америки до іншого. Є багато
ситуацій, у яких важливіше знати, скільки часу потрібно, щоб надіслати
повідомлення з одного кінця мережі в інший і назад, а не односторонню
затримку (RTT).
Час в обидва кінці (RTT):
Час прийому-передачі (англ. Round Trip Time, RTT) - це час, який потрібний
для виправлення пакета даних у пункті призначення, плюс час, який
потрібний для підтвердження того, що цей пакет отримано назад. RTT між
70
мережею та сервером може бути визначений за допомогою команди
ping [13].
Затримка складається з трьох компонентів.
По-перше, існує затримка поширення швидкості світла. Ця затримка
виникає тому, що ніщо, включаючи біт на дроті, не може рухатися швидше за
швидкість світла. Маючи відстань мід двома точками, можна обчислити
затримку швидкості світла, хоча для цього потрібно бути обережним,
оскільки світло поширюється через різні середовища з різною швидкістю:
воно поширюється зі швидкістю 3,0 × 108 м/с у вакуумі, 2,3 × 108 м/с у
мідному кабелі та 2,0 × 108 м/с в оптичному волокні.
По-друге, це час, необхідний для передачі одиниці даних. Це функція
пропускної здатності мережі та розміру пакета, у якому передаються дані.
По-третє, у мережі можуть бути затримки в черзі, оскільки пакетні
комутатори зазвичай повинні зберігати пакети протягом деякого часу, перш
ніж пересилати їх по вихідному каналу. Отже, в інснуючій системі можемо
визначити загальну затримку як:
Затримка = Поширення + Передача + Черга
Поширення = Відстань / Швидкість Світла
Передача = Розмір / Пропускна здатність
Де Відстань — це довжина дроту, по якому будуть передаватись дані,
Швидкість Світла — це ефективна швидкість світла по цьому дроту, Розмір
— це розмір пакета, а Пропускна здатність — це пропускна здатність, за
якою пакет передається. Слід зауважити, що якщо повідомлення містить
лише один біт і ми говоримо про одне посилання (на відміну від цілої
мережі), тоді терміни передачі та черги не мають значення, а затримка
відповідає лише затримці поширення.
Пропускна здатність і затримка поєднуються, щоб визначити
характеристики продуктивності даного посилання або каналу. Однак їх
71
відносна важливість залежить від програми. Для деяких програм затримка
домінує над пропускною здатністю. Наприклад, клієнт, який надсилає 1-
байтове повідомлення на сервер і отримує у відповідь 1-байтове
повідомлення, обмежений затримкою. Якщо припустити, що для підготовки
відповіді не потрібно серйозних обчислень, програма працюватиме значно
інакше на трансконтинентальному каналі з RTT 100 мс, ніж на
міжкімнатному каналі з RTT 1 мс. Проте те, чи є канал 1 Мбіт/с чи 100
Мбіт/с, є відносно незначним, оскільки перше означає, що час передачі байта
(передавання) становить 8 мік.с, а останнє передбачає передачу = 0,08 мік.с.
На відміну від цього, розглянемо програму цифрової бібліотеки
серверу BBB, яку просять отримати зображення розміром 25 мегабайт (МБ)
— чим більша пропускна здатність доступна, тим швидше вона зможе
повернути зображення користувачеві мережі. Тут пропускна здатність каналу
домінує над продуктивністю. Щоб побачити це, припустимо, що канал має
пропускну здатність 10 Мбіт/с. Для передачі зображення знадобиться 20
секунд (25 × 106 × 8 біт / (10 × 106 Мбіт/с = 20 секунд), що робить це
відносно неважливим, якщо зображення знаходиться на іншому боці каналу 1
мс або 100-мс. канал мс; різниця між часом відповіді 20,001 секунди та часом
відповіді 20,1 секунди незначна.
72
Рисунок 4.2 – Затримка (час відгуку) проти часу зворотного зв’язку для
різних розмірів об’єктів і швидкості з’єднання
Рисунок 4.2 дає вам уявлення про те, як затримка або пропускна
здатність можуть домінувати над продуктивністю за різних обставин. На
графіку показано, скільки часу потрібно для переміщення об’єктів різного
розміру (1 байт, 2 КБ, 1 МБ) у мережах із RTT від 1 до 100 мс і швидкістю
з’єднання 1,5 або 10 Мбіт/с. Використано логарифмічні шкали, щоб показати
відносну продуктивність. Для 1-байтового об’єкта (скажімо, натискання
клавіші) затримка залишається майже рівною RTT, майже не можливо
розрізнити мережу 1,5 Мбіт/с і мережу 10 Мбіт/с. Для об’єкта розміром 2 КБ
73
(скажімо, повідомлення чаті) швидкість з’єднання має значну різницю в
мережі RTT 1 мс, але незначну різницю в мережі RTT 100 мс. А для об’єкта
розміром 1 МБ (скажімо, цифрового зображення під час конференції) RTT не
має значення — це швидкість з’єднання, яка домінує над продуктивністю у
всьому діапазоні RTT.
Термін «затримка» використовується в загальному вигляді, щоб
позначити, скільки часу потрібно для виконання певної функції, наприклад
доставки повідомлення або переміщення об’єкта. Коли йде мова про
конкретну кількість часу, який потрібен сигналу для поширення від одного
кінця каналу до іншого, використовується термін затримка поширення.
Крім того, комп’ютери стають настільки швидкими, що коли ми
під’єднуємо їх до мережі, іноді корисно думати, принаймні образно, в
термінах інструкцій на кілометр. Подумайте, що відбувається, коли
комп’ютер, здатний виконувати 100 мільярдів інструкцій за секунду,
надсилає повідомлення по каналу з RTT 100 мс. (Щоб полегшити підрахунки,
припустімо, що повідомлення охоплює відстань у 5000 кілометрів.) Якщо цей
комп’ютер простоює повні 100 мс, чекаючи на повідомлення відповіді, він
втрачає можливість виконати 10 мільярдів інструкцій або 2 мільйони
інструкцій. за кілометр. Краще було б зайти в мережу, щоб виправдати це
марнотратство.
Для дослідження середовища BigBlueButton використовувалась
програма Zabbix. Вільна в доступі система моніторингу статусу
різноманітних сервісів комп'ютерної мережі, серверів і мережевого
обладнання, написана Олексієм Владишевим. Для зберігання даних
використовуються MySQL, PostgreSQL, SQLite або Oracle Database, веб-
інтерфейс, написаний на PHP.
Підтримує кілька видів моніторингу:
 Прості перевірки — можуть перевіряти доступність і реакцію
стандартних сервісів, таких як SMTP або HTTP, без встановлення будь-
якого програмного забезпечення на спостережуваному хості.
74
 Zabbix agent — може бути встановлений на UNIX-подібних або Windows-
хостах для отримання даних про завантаження процесора, використання
мережі, простору дисків і так далі.
 Зовнішня перевірка — виконання зовнішніх програм, а також
підтримується моніторинг через SNMP.
Рисунок 4.3 – Середовище BigBlueButton: Загальний трафік/Учасники
У наведеному шаблоні доступні загальні цифри за:
1. Конференціям: загальне число, число активних, використовуваних як
"breakout room", з приєднавшимися учасниками, а також - наявна
можливість запису;
2. Учасникам: загальное число, кількість модераторів, слухачів, "спікерів" (з
підключеним мікрофоном) і бродкастерів (з включеною веб-камерою);
3. Записам: загальна кількість, сума по статусам (обробка, опубліковано,
неопубліковано, видалено), займаемий об'єкт в необробленому (raw) і
обробленому видах.
LLD доступний для:
Усі індивідуальні показники розміщені в додатку, який містить назву
зустрічі.
75
Пояснення ролей користувачів:
1. Учасники/глядачі. Люди, які підключилися до зустрічі, але не
підключені до аудіопотоку (не мають мікрофона чи навушників). Вони
можуть спілкуватися в чаті, відповідати на опитування, переглядати
презентацію, показувати емодзі (наприклад, підняту руку) і брати
участь у секціях;
2. Слухачі. Учасники, які підключилися до аудіопотоку в режимі «лише
прослуховування». Вони можуть робити те, що можуть глядачі, плюс
слухати інших учасників, які мають мікрофон;
3. Доповідачі. Учасники, які підключаються до аудіопотоку за допомогою
голосової функції. Вони можуть робити те, що можуть слухачі, а також
розмовляти з іншими учасниками через мікрофон;
4. Спікери (мовники). Учасники, які використовують веб-камеру. Вони
можуть робити те, що можуть глядачі, плюс транслювати відеопотік
іншим учасникам;
5. Модератори. Суперкористувачі в конференції. Вони можуть все, що
можуть учасники, і ще щось. Модератор може вимкнути/ввімкнути
звук інших спікерів, заблокувати глядачів (наприклад, заборонити їм
використовувати приватний чат) і зробити будь-кого поточним
доповідачем.
76
Рисунок 4.4 – Середовище BigBlueButton: Загальна кількість учасників
Як використовується програма-аналізатор трафіку:
1. Додається рядок коду
UserParameter=bbb.miner[*],curl -s
https://$1/bigbluebutton/api/$3?checksum=`echo -n "$3$2" | sha1sum | head -c 40`
2>&1
до кінця вашого файлу zabbix_agentd.conf.
2. Використовується bbb.cherkasyoblenergo.com ім’я хосту сервера BBB,
яке використовувалося для SSL-сертифікату.
3. Змінюється BigBlueButtonSecretStringThere секрет-ключ сервера BBB.
Команда щоб отримати ключ bbb-conf –secret.
4. Надходить шаблон з посиланням та аналізом мережі.
Важливо знати те, що відповідь BBB API на запит шаблону може бути
великою – ~65 Кб до BBB, який обслуговує 4 зустрічі з 50 учасниками кожна.
Таким чином відмоніторивши синтезоване середовище отримуємо
результат, що система працює, і працює без збоїв. Системні показники є
кращими ніж у запропонованих «товаришів» на поточному ринку. Кількість
з’єднань залежить лише від навантажень на сервер. Але є цілком задовільною
для успішної роботи в мережі підприємства. Кількість одночасних з’єднань
77
відтестована та доходить до 150 учасників в одному мітингу (кімнаті), де
організатор без проблем транслює відеоряд без збоїв.
Одночасна кількість учасників не лімітована стійкими рамками, лише
бажанням модератора тому цей аспект також переважає серед можливих
конкурентів таких як Zoom чи Cisco Webex. Але надзвичайно важливим для
головуючих керівників підприємства стала ціна розробки та подальшого
використання. Вона не потребує підписки та закупівлі ліцензій. Середовище
створене з програмного забезпечення розміщеного у вільному доступі, та з
легкістю інтегрується в потрібні мережі та сервіси.
Але навіть зі швидкістю мережі гігабайт на секунду неправильно
керовані дії та неконтрольовані програми можуть швидко призвести до
перевантажень, якщо їх не контролювати. До таких проблем належать вузькі
місця та обмеження пропускної здатності, коли певні програми споживають
непотрібну кількість пропускної здатності; що призводить до можливої
втрати пакетів, затримок і навіть тимчасової стагнації інших процесів.
Щоб уникнути цих заторів, дуже важливо визначити пріоритетність
мережевого трафіку. Користувачам потрібно слідкувати та видаляти
непотрібне програмне забезпечення, яке може збільшити навантаження,
наприклад програми, які пропонують щоденне оновлення шпалер робочого
столу.
Висновки по розділу 4
Створений сервіс відокремлює широкомовний трафік, який може не
бути актуальним для всіх користувачів; це досягнуто, розділивши мережу на
кілька віртуальних локальних мереж (також відомих як VLAN) [17].
Крім того, завдання які виконуються програмним забезпеченням
резервного копіювання та інструментами керування системами, виконуються
у відповідний час. Для цього використовується продумана конфігурація
системи. Дане програмне рішення та синтез всієї системи в цілому пропонує
гнучкі варіанти виконання завдань, наприклад обмежене використання смуги
78
пропускання під час активних (робочих) годин і повну швидкість у тихий час
трансляції. Це запобігає просочуванню їхніх процесів та перевантаженню
трафіка, і дозволяє управляти виконанням інших завдань з вищим
пріоритетом.
Не зважаючи на те, що для створення мережі було придбано новітні
системи та обладнання, слід пам’ятати що успішна робота підприємства це
не лише складова комп’ютерних мережі та нові технології, важливо також
інвестувати у своїх співробітників. Середовище було створене в першу чергу
для покращення навчання та сертифікацію працівників які користуються
мережею. Людський капітал приносить підприємству стільки ж зростання,
скільки дорога цифрова інфраструктура, допомагаючи залишатися
актуальною на сучасному ринку (в даному випадку, ринку енергетичних
послуг), що швидко розвивається.
79
ВИСНОВКИ
В магістерській роботі було проведено дослідження створеної
корпоративної мережі з використанням web-технологій, та на основі їх
аналізу було вибрано ефективне середовище для відеоконференцій та нарад
енергетичного підприємства ПАТ «Черкасиобленерго».
При цьому отримано такі наукові та практичні результати:
1. Проаналізовано концепції побудови корпоративних мереж.
2. Побудовано модель середовища відеоконференцій та зв’язку яке було
синтезовано на підприємстві ПАТ «Черкасиобленерго».
3. Описано створення серверної частини, налаштування захисту для
середовища з відкритим доступом до глобальної мережі, представлено
розробки web-інтерфейсу створеного для синтезованої мережі та
можливості її інтеграції у вже готові web-системи.
4. Система була протестована та успішно запущена в роботу.
5. Наведено приклади моніторингу трафіку та порівняння з готовими
системами розповсюджених в глобальній мережі.
Було проведено аналіз та вибір стеку веб-технологій для побудови
сучасної корпоративної мережі яка дозволяє підприємству з 3000 працівників
комунікувати, навчатись та проходити акредитаційні курси. Розроблено веб-
ресурс на основі вибраних технологій та знайдення оптимального шляху для
вирішення поставлених задач. Серед ринкових пропозицій не знайшлося
вдалого софту, який би задовольняв всі потреби підприємства в умовах
військового стану, обмеження сервісів було проаналізовано та усунено, до
уваги брались зауваження та побажання користувачів сервісу під час
тустуваннь та вровадження на підприємстві.
Розроблений сервіс на основі теxнологій BigBlueButton дозволив
створити середовище для навчання та підвищення кваліфікаційного рівня
сотням працівників щомісячно. Створив можливість проводити наради та
збори як з користувачами підприємства так і його партнерами у спокійній та
80
безпечній атмосферу online. Актуальність розробки та розгортання мережі є
безперечною, та високо оцінена керівництвом підприємства Пат
«Черкасиобленерго» та навчального центру.
81
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Махрин В. В. Вдосконалення управління промисловими підприємствами
з урахуванням сучасних інформаційних технологій., м.Київ 2002р - 59 с.
2. Що таке брандмауер? Різні типи брандмауерів = What is a Firewall? The
Different Types of Firewalls [Електронний ресурс] / Документація для
розробників - Режим доступу: https://www.checkpoint.com/cyber-
hub/network-security/what-is-firewall/, 2020р. — Назва з екрану.
3. Архітектура та проектування компонентних систем. [Електронний
ресурс] / Документація для розробників: - Режим доступу:
https://victana.lviv.ua/knyhy/, 2016 р. — Назва з екрану.
4. Що таке токен-ринг? = What is a token ring? [Електронний ресурс] /
Документація для розробників - Режим доступу:
https://www.techtarget.com/Token-Ring 2019р. – Назва з екрану.
5. Олифер В. Г. Комп’ютерні мережі. Принципи, технологій, протоколи:
підруч. [Для студ. вищ. навч. закл.] / Олифер В.Г, Олифер Н.А.. м.Київ
2012р - 146с .
6. Одом У. Computer Мережа: Перший крок = Networking First-step: підруч.
[Для студ. вищ. навч. закл.] / Одом У., м.Лондон 2019р - 44с.
7. Ткаченко В. А.: Комп'ютерні мережі та телекомунікації: підруч. [Для
студ. вищ. навч. закл.] / Ткаченко В. А., м.Київ 2021р. – 56с.
8. Janette Novak Webex чи Zoom: Що краще для вашої команди? = Webex vs.
Zoom: Which Is Best For Your Team? [Електронний ресурс] / Документація
для розробників - Janette Novak, Rob Watts - Режим доступу:
https://www.forbes.com/advisor/business/software/zoom-vs-webex/ — Назва з
екрану.
9. BigBlueButton: веб-конференції з відкритим кодом = BigBlueButton: Open
Source Web Conferencing [Електронний ресурс] / Документація для
82
розробників - Режим доступу: https://docs.bigbluebutton.org/ - 2020р. Назва
з екрану.
10.Web – rtc. Cпілкування в режимі реального часу [Електронний ресурс] /
Документація для розробників - Режим доступу: https://https://webrtc.org -
2018р. Назва з екрану.
11.Основи freeswitch [Електронний ресурс] / Документація для розробників -
Режим доступу: https://signalwire.com/freeswitch - 2019р. Назва з екрану.
12.Kurento/kurento-media-server [Електронний ресурс] / Документація для
розробників - Режим доступу: https://hub.docker.com/r/kurento/kurento-
media-server 2020р. Назва з екрану.
13.Час в обидва кінці RTT = Round Trip Time [Електронний ресурс] /
Документація для розробників - Режим доступу:
https://developer.mozilla.org/docs/Glossary/Round_Trip_Time_(RTT) 2021р.
Назва з екрану.
14.Лоусон Б. Знайомство з HTML5 = Introducing HTML5: підруч. [Для студ.
вищ. навч. закл.] / Bruce Lawson / Remy Sharp Lawson ; м. Нью-Йорк -
215с. ISBN-10 0321784421.
15.Що таке цикл планування-виконування-перевірка-дія (PDCA)? = WHAT
IS THE PLAN-DO-CHECK-ACT (PDCA) CYCLE? [Електронний ресурс] /
Документація для розробників - Режим доступу: https://asq.org/quality-
resources/pdca-cycle 2022р. Назва з екрану.
16.Що таке SSL сертифікат? = What is an SSL certificate? [Електронний
ресурс] / Документація для розробників - Режим доступу:
https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate/ - 2020р.
Назва з екрану.
17.Що таке VLAN: логіка, технологія і налаштування. [Електронний ресурс]
/ Документація для розробників - Режим доступу: https://e-
server.com.ua/uk/poradi/shho-take-vlan-logika-tehnologija-i-nalashtuvania -
2019р. Назва з екрану.
ДОДАТОК А
Створення частини інтерфейсу для форми входу
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come
*after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<title>Вхід в Навчальний центр</title>
<link href="${contextPath}/resources/css/bootstrap.min.css" rel="stylesheet">
<link href="${contextPath}/resources/css/mdb.min.css" rel="stylesheet">
<link href="${contextPath}/resources/css/common.css" rel="stylesheet">
<link href="${contextPath}/resources/css/all.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<div class="row d-flex justify-content-center logo-bg-color py-5">
<div class="text-center col-lg-4">
<img class="wow zoomInLeft" src="${contextPath}/resources/image/logo.png">
</div>
</div>
</div>
<div class="container my-5">
<div class="row d-flex justify-content-center wow bounceInUp">
<div class="text-center col-lg-4">
<!-- Material form subscription -->
<div class="card ">
<h5 class="card-header logo-bg-color white-text text-center py-4">
<strong>Вхід в відеоконференції 2.0</strong>
</h5>
<!--Card content-->
<div class="card-body px-lg-5">
<!-- Form -->
<form class="text-center " style="color: #757575;" method="POST"
action="${contextPath}/login">
<p></p>
<!-- Name -->
<div class="md-form mt-3">
<input name="login" type="text" id="materialSubscriptionFormPasswords"
class="form-control">
<label for="materialSubscriptionFormPasswords">Логін</label>
</div>
<!-- E-mai -->
<div class="md-form">
<input name="password" type="password" id="materialSubscriptionFormEmail"
class="form-control">
<label for="materialSubscriptionFormEmail">Пароль</label>
</div>
<span>${error}</span>
<!-- Sign in button -->
<button class="btn logo-color border-logo-color btn-outline-info btn-rounded btn-
block z-depth-0 my-4 waves-effect"
type="submit">Вхід
</button>
</form>
<!-- Form -->
</div>
</div>
<!-- Material form subscription -->
<%-- <form method="POST" action="${contextPath}/login" class="form-signin">--%>
<%-- <h2 class="form-heading">Вхід</h2>--%>
<%-- <div class="form-group ${error != null ? 'has-error' : ''}">--%>
<%-- <span>${message}</span>--%>
<%-- <input name="login" type="text" class="form-control"
placeholder="Username"--%>
<%-- autofocus="true"/>--%>
<%-- <input name="password" type="password" class="form-control"
placeholder="Password"/>--%>
<%-- <span>${error}</span>--%>
<%-- <button class="btn btn-lg btn-primary btn-block" type="submit">Log
In</button>--%>
<%-- </div>--%>
<%-- </form>--%>
</div>
</div>
</div>
<!-- /container -->
<script src="${contextPath}/resources/js/bootstrap.min.js"></script>
<!-- JQuery -->
<script type="text/javascript" src="${contextPath}/resources/js/jquery-3.3.1.min.js"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="${contextPath}/resources/js/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="${contextPath}/resources/js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="${contextPath}/resources/js/mdb.min.js"></script>
<script defer src="${contextPath}/resources/js/all.js"></script>
<script>new WOW().init();</script>
</body>
</html>
ДОДАТОК Б
Елемент створення користувачів
<body>
<div class="container">
<jsp:include page="elemenpage/header.jsp"></jsp:include>
<div class="container">
<div class="row">
<div class="card col-lg-5 mt-2">
<div class="card-body">
<form:form method="POST" modelAttribute="user" class=""
action="${contextPath}/user-redactor-${user.id}">
<h4 class="card-title">Редагувати користувача</h4>
<hr>
<spring:bind path="login">
<div class="md-form disabled ${status.error ? 'has-error' : ''}">
<label for="inputUserLogin">Логін</label>
<form:input type="text" path="login" class="form-control"
id="inputUserLogin"
cssClass=""
></form:input>
<form:errors path="login"></form:errors>
</div>
</spring:bind>
<spring:bind path="userName">
<div class="md-form ${status.error ? 'has-error' : ''}">
<label for="inputLastName">Ім'я користувача</label>
<form:input type="text" path="userName" class="form-control"
id="inputLastName"
></form:input>
<form:errors path="userName"></form:errors>
</div>
</spring:bind>
<spring:bind path="userLastName">
<div class="md-form ${status.error ? 'has-error' : ''}">
<label for="inputLastName">Прізвище користувача</label>
<form:input type="text" path="userLastName" class="form-control"
id="inputLastName"
></form:input>
<form:errors path="userLastName"></form:errors>
</div>
</spring:bind>
<spring:bind path="email">
<div class="md-form ${status.error ? 'has-error' : ''}">
<label for="inputEmail">E-mail наприклад
***@obl.ck.energy.gov.ua</label>
<form:input type="text" path="email" class="form-control" id="inputEmail"
></form:input>
<form:errors path="email"></form:errors>
</div>
</spring:bind>
<div class="row">
<spring:bind path="password">
<div class="col-7">
<div class="md-form my-0 ">
<label for="inputUserPW">Пароль</label>
<form:input type="password" path="password" class="form-control"
id="inputUserPW"
></form:input>
</div>
</div>
<div class="col-5">
<div class="md-form my-0">
<a class="btn btn-light-green btn-block"
onclick="generatePassword()">змінити
пароль</a>
</div>
</div>
<div class="col-12 ${status.error ? 'has-error' : ''}">
<form:errors path="password"></form:errors>
</div>
</spring:bind>
</div>
<button class="btn btn-info btn-block my-4" type="submit">Зберегти
</button>
</form:form>
</div>
</div>
<div class="col-lg-7 ml-auto mt-2">
<div class="card-body">
<h4 class="card-title">Відеоконференції користувача</h4>
<hr>
<ul class="list-group">
<c:forEach items="${meetingList}" var="meeting">
<li class="list-group-item"><a
href="${contextPath}/meeting-${meeting.id}">${meeting.name}</a>
</li>
</c:forEach>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- /container -->
<%--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>-
-%>
<script src="${contextPath}/resources/js/bootstrap.min.js"></script>
<!-- JQuery -->
<script type="text/javascript" src="${contextPath}/resources/js/jquery-3.3.1.min.js"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="${contextPath}/resources/js/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="${contextPath}/resources/js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="${contextPath}/resources/js/mdb.min.js"></script>
<script defer src="${contextPath}/resources/js/all.js"></script>
<script>
function generatePassword() {
var length = 8,
charset =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
retVal = "";
for (var i = 0, n = charset.length; i < length; ++i) {
retVal += charset.charAt(Math.floor(Math.random() * n));
}
console.log(retVal);
$("#inputUserPW").focus();
$("#inputUserPW").val(retVal);
// document.getElementById('inputUserPW').value = retVal;
return retVal;
}
generatePassword();
</script>
ДОДАТОК В
Структура Вибору білету
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come
*after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<title>Welcome</title>
<link href="${contextPath}/resources/css/bootstrap.min.css" rel="stylesheet">
<link href="${contextPath}/resources/css/mdb.min.css" rel="stylesheet">
<link href="${contextPath}/resources/css/common.css" rel="stylesheet">
<link href="${contextPath}/resources/css/all.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<div class="row d-flex justify-content-center logo-bg-color py-5">
<div class="text-center col-4">
<img class="wow zoomInLeft" src="${contextPath}/resources/image/logo.png">
</div>
</div>
</div>
<div class="container my-5">
<div class="row text-center">
<h1 class="col-lg-12">Екзаменаційні білети</h1>
<h2 class="col-lg-12"> ${ekzamen.name}</h2>
</div>
</div>
<div class="container my-5">
<div class="row text-center">
<c:forEach items="${biletRandom}" var="bilet">
<div class="col-lg-2">
<a href="${contextPath}/ekzamen-bilet-${bilet.checkSumMd5}">
<i class="fas fa-ticket-alt fa-5x"></i>
</a>
</div>
</c:forEach>
</div>
</div>
<!-- /container -->
<%--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>-
-%>
<script src="${contextPath}/resources/js/bootstrap.min.js"></script>
<!-- JQuery -->
<script type="text/javascript" src="${contextPath}/resources/js/jquery-3.3.1.min.js"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="${contextPath}/resources/js/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="${contextPath}/resources/js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="${contextPath}/resources/js/mdb.min.js"></script>
<script type="text/javascript" src="${contextPath}/resources/js/qrcode.min.js"></script>
<script>new WOW().init();
$(document).ready(function () {
$('.mdb-select').materialSelect();
});
</script>
<c:if test="${url!=null}">
<script type="text/javascript">
new QRCode(document.getElementById("qrcode"), "${url}");
</script>
</c:if>
</body>
</html>