Автор молодец выполнил работу раньше срока. Спасибо
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
ВВЕДЕНИЕ 5
1 АНАЛИЗ И ИССЛЕДОВАНИЕ ОТЛИЧИТЕЛЬНЫХ ОСОБЕННОСТЕЙ ПРЕДМЕТНОЙ ТЕМАТИКИ 7
1.1 Обзор распределенного программного брокера сообщений 7
1.2 Анализ назначения тем и журналов Kafka 9
1.2.1 Специфика распределений (distribution) 11
1.2.2 Специфика производителей (producers) 12
1.2.3 Специфика потребителей (consumers) 12
1.3 Обоснование выбора языка программирования 13
1.4 Возможности фреймворка PyQt 14
1.5 Возможности среды разработки PyCharm 16
1.6 Постановка целей и задач работы 19
2 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 20
2.1 Проектирование программного обеспечения в нотации UML 20
2.2 Проектирование генератора случайных сообщений 24
2.3 Проектирование потребителя сообщений 31
3 ОПИСАНИЕ ПОРЯДКА ВЗАИМОДЕЙСТВИЯ ПОЛЬЗОВАТЕЛЯ С ПРОГРАММОЙ 42
3.1 Разработка и описание алгоритма работы 42
3.2 Описание процесса работы пользователя с программой 45
3.3 Описание процесса развертывания рабочего окружения 51
4 ОХРАНА ТРУДА 56
ВЫВОДЫ 68
ПЕРЕЧЕНЬ ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ 69
ПРИЛОЖЕНИЕ А 71
1.1 Огляд розподіленого програмного брокера повідомлень
Розподілений програмний брокер повідомлень - це диспетчер, який приймає і віддає повідомлення між окремими модулями або додатками всередині деякої складної системи, де ці модулі або додатки повинні спілкуватися між собою - тобто пересилати дані один одному.
Процес пересилки даних є дуже важливим у сучасному світі інформаційних технологій. Одним із таких брокерів є Apache Kafka – проект з відкритим вихідним кодом, що розробляється в рамках фонду Apache. Він написаний на мові програмування Scala і Java. Це горизонтально масштабована система, що забезпечує нарощування пропускної здатності як при зростанні числа і навантаження з боку джерел, так і кількості систем-підписників. Для подальшої пакетної обробки є можливість тимчасового зберігання даних. Однією з особливостей реалізації інструменту є застосування техніки, схожої із журналами транзакцій, використовуваними в системах управління базами даних.
...
1.2 Аналіз призначення тем і журналів Kafka
Тема (Topic) це категорія або назва каналу, для якого публікуються записи. Теми в Кафці завжди розраховані на багато користувачів; тобто тема може мати нуль, одного або декілька споживачів, які підписуються на записані в неї дані. Для кожної теми кластер Kafka підтримує секціонований журнал, вигляд якого представлений на рис. 1.2.
Рисунок 1.2 – Секціонований журнал
Кожен розділ є впорядкованою, незмінною послідовністю записів, до якої постійно додаються, структурованим журналом фіксації. Кожному запису в розділах привласнюється послідовний ідентифікаційний номер, що називається зміщенням, який однозначно ідентифікує кожен запис в розділі (наведено на рис. 1.3). Кластер Kafka тривало зберігає усі опубліковані записи, незалежно від того, були вони використані або ні, використовуючи термін зберігання, що настроюється.
...
1.3 Обґрунтування вибору мови програмування
Для реалізації брокера повідомлень Apache Kafka була обрана мова програмування Python. Розглянемо детальніше її особливості.
Мова Python це інтерпретована об'єктно-орієнтована мова програмування високого рівня з динамічною типізацією, автоматичним управлінням пам'яттю і зручними високорівневими структурами даних, такими як словники (хеш-таблиці), списки, кортежі. Підтримує класи, модулі (які можуть бути об'єднані в пакети), обробку винятків, а також багатопотокові обчислення. Пітон має простий і виразний синтаксис. Мова підтримує кілька парадигм програмування: структурне, об'єктно-орієнтоване, функціональне і аспектно-орієнтоване.
До переваг обраної раніше мови можна віднести:
• інтерпретованість мови програмування. З одного боку, це дозволяє значно спростити налагодження програм, з іншого - зумовлює порівняно низьку швидкість виконання;
• динамічна типізація.
...
1.4 Можливості фреймворку PyQt
У якості графічного фреймворку був обран кросплатформений фреймворк Qt.
Qt може бути використаним в багатьох мовах програмування: C++, Ada(QtAda), C# (Qyoto/Kimono), Java (QtJambi), Qt Jambi, Node.js, Pascal, Perl, PHP (PHP-Qt), Ruby (QtRuby), та Python (PyQt,PySide).
У нашому випадку використовували саме PyQt.
PyQt - набор «прив'язок» графічного фреймворку Qt для мови програмування Python, Виконаний у вигляді розширення Python. PyQt реалізована у вигляді набору модулів Python. Він являє собою платформо-незалежний інструмент. Тобто він працює на всіх основних операційних систем (Unix, Windows і Mac).
...
1.5 Можливості середовища розробки PyCharm
PyCharm є IDE для Python.
IDE - Integrated development environment - інтегроване середовище розробки, комплекс програмних засобів, які дозволяють вести більш зручну розробку певною мовою програмування. Зазвичай IDE має текстовий редактор, компілятор або інтерпретатор, відладчик і інше програмне забезпечення.
IDE дозволяє збільшити швидкість розробки (за умови попереднього навчання роботі з IDE, природно).
З PyCharm можна розробляти програми на Python. Крім того, в Professional Edition можна розробляти програми Django, Flask і Pyramid. Крім того, він повністю підтримує HTML (включаючи HTML5), CSS, JavaScript і XML: ці мови включені в IDE через плагіни і включені для вас за замовчуванням. Підтримка інших мов і фреймворків також може бути додана через плагіни (перейдіть до Settings | Plugins або PyCharm | Preferences | Plugins.
...
2.1 Проектування програмного забезпечення у нотації UML
Діаграма варіантів використання (use case diagram) є вихідним концептуальним поданням системи в процесі її проектування і розробки. Діаграма варіантів використання містить варіанти використання системи, дійових осіб і зв'язку між ними. Варіант використання (use case) - це опис функціональності системи. Дійова особа (actor) - це все, що взаємодіє з системою.
У мові UML для варіантів використання і дійових осіб підтримується кілька типів зв'язків. Це зв'язку комунікації (communication), використання (uses), розширення (extends) і узагальнення дійової особи (actor generalization).
Діаграма варіантів використання програми наведена на рис.2.1. Функції використання користувачем програми є наступними:
1. Створення нового підключення та введення:
- назви;
- список тем (topic);
- список зсувів (offset);
- списки локацій (location);
- список груп (groupId);
- список ip-адрес серверів.
2.2 Проектування генератора випадкових повідомлень
Для імітації відправки повідомлень розробимо генератор випадкових даних з інформацією про стан телефонних дзвінків на віддаленому сервері.
Надіслані повідомлення будуть представлені в форматі json, тому першим кроком створимо шаблон файлів, який будемо наповнювати випадковими даними.
Фрагмент данних data.
...
2.3 Проектування споживача повідомлень
Проект розробленого програмного забезпечення складається з чотирьох директорій (файли журналу, файли графічного інтерфейсу, результати та конфігурації) та головного файлу коду main.py.
Директорія з файлами графічного інтерфейсу повинна містити верстку для головного вікна, вікна для зміни налаштувань і вікна для створення нового підключення. Склад програмних файлів реалізації програмного забезпечення наведено на рисунку на рис. 2.7.
Main.py – файл, що містить вихідний програмний код на мові Python 3.7, фрагмент його складу наведено у додатку А.
Він розроблений у редакторі PyCharm, містить основні класи програми та імпорт файлів графічного інтерфейсу.
Рисунок 2.7 – Склад програмних файлів реалізації ПЗ.
Файли графічного інтерфейсу:
• info.ui, містить графічні компоненти відображення даних про розробника;
• main.ui, містить графічні компоненти відображення функціональних та керуючих елементів;
• settings.
...
3.1 Розробка та опис алгоритму роботи
Для того, щоб програмний продукт був універсальним у використанні, необхідно реалізувати певний алгоритм роботи, і можливість гнучкої зміни налаштувань програми.
На першому етапі запуску програмного додатка відбувається функція ініціалізації, імпорту необхідних модулів і компонентів. На наступному етапі процес роботи програми ділиться на декілька потоків.
Перший фоновий потік забезпечує ведення журналу роботи програми на рівні DEBUG.
Це реалізовано для того, щоб будь-який користувач програми мав можливість простежити процес виконання функцій і етапи з'єднання з серверами.
Другий фоновий потік забезпечує роботу з файлом конфігурації. Його роль відстежувати зміни графічного інтерфейсу користувача і динамічно зберігати цю інформацію.
Це реалізовано для зручності кінцевого користувача.
Завдяки цьому немає необхідності налаштовувати програму при кожному новому запуску.
...
3.2 Опис процесу роботи користувача з програмою
Під час запуску споживача повідомлень користувачеві відображається головне вікно програми. Дане вікно містить головне меню, яке дозволяє створити нове підключення, Переглянути директорію з результатами і файлами журналу, подивитися інформацію про програму а також перейти на веб сервіс GitHub, для отримання вихідного коду програмного додатка.
Приклад підпунктів пункту «Файл» головного меню програми наведено на рис.3.3.
Рисунок 3.3 – Приклад підпунктів пункту «Файл» головного меню програми
Головне вікно містить налаштування відображення повідомлень, параметри фільтрації, поле для відображення отриманих текстових даних, поле пошуку по тексту і функціональні кнопки для підключення до сервера, відкриття файлу з збереженими результатом.
У нижній частині вікна розташований статус бар, в якому отображет версія конфігураційний файл, або тип помилки, якщо файл з настроюваннями був пошкоджений.
...
1. Нархид Н. Apache Kafka. Потоковая обработка и анализ даннях / Н. Нархид. - СПб.: Питер, 2019. - 474 с.
2. Apache Kafka [Електронний ресурс]. – Режим доступу: https://habr.com/ru/post/354486/.– Дата доступу: 06.06.19.
3. Apache Kafka и миллионы сообщений в секунду [Електронний ресурс]. – Режим доступу: https://habr.com/ru/company/tinkoff/blog/342892/.– Дата доступу: 06.06.19.
4. Краткое введение в apache kafka [Електронний ресурс]. – Режим доступу: https://dotsandbrackets.com/quick-intro-to-apache-kafka-ru/ .– Дата доступу: 06.06.19.
5. Камаев В.А. Технологии программирования / В.А. Камаев. – М.: Высш. шк., 2016. – 314 с.
и еще 9 источников
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
ВВЕДЕНИЕ 5
1 АНАЛИЗ И ИССЛЕДОВАНИЕ ОТЛИЧИТЕЛЬНЫХ ОСОБЕННОСТЕЙ ПРЕДМЕТНОЙ ТЕМАТИКИ 7
1.1 Обзор распределенного программного брокера сообщений 7
1.2 Анализ назначения тем и журналов Kafka 9
1.2.1 Специфика распределений (distribution) 11
1.2.2 Специфика производителей (producers) 12
1.2.3 Специфика потребителей (consumers) 12
1.3 Обоснование выбора языка программирования 13
1.4 Возможности фреймворка PyQt 14
1.5 Возможности среды разработки PyCharm 16
1.6 Постановка целей и задач работы 19
2 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 20
2.1 Проектирование программного обеспечения в нотации UML 20
2.2 Проектирование генератора случайных сообщений 24
2.3 Проектирование потребителя сообщений 31
3 ОПИСАНИЕ ПОРЯДКА ВЗАИМОДЕЙСТВИЯ ПОЛЬЗОВАТЕЛЯ С ПРОГРАММОЙ 42
3.1 Разработка и описание алгоритма работы 42
3.2 Описание процесса работы пользователя с программой 45
3.3 Описание процесса развертывания рабочего окружения 51
4 ОХРАНА ТРУДА 56
ВЫВОДЫ 68
ПЕРЕЧЕНЬ ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ 69
ПРИЛОЖЕНИЕ А 71
1.1 Огляд розподіленого програмного брокера повідомлень
Розподілений програмний брокер повідомлень - це диспетчер, який приймає і віддає повідомлення між окремими модулями або додатками всередині деякої складної системи, де ці модулі або додатки повинні спілкуватися між собою - тобто пересилати дані один одному.
Процес пересилки даних є дуже важливим у сучасному світі інформаційних технологій. Одним із таких брокерів є Apache Kafka – проект з відкритим вихідним кодом, що розробляється в рамках фонду Apache. Він написаний на мові програмування Scala і Java. Це горизонтально масштабована система, що забезпечує нарощування пропускної здатності як при зростанні числа і навантаження з боку джерел, так і кількості систем-підписників. Для подальшої пакетної обробки є можливість тимчасового зберігання даних. Однією з особливостей реалізації інструменту є застосування техніки, схожої із журналами транзакцій, використовуваними в системах управління базами даних.
...
1.2 Аналіз призначення тем і журналів Kafka
Тема (Topic) це категорія або назва каналу, для якого публікуються записи. Теми в Кафці завжди розраховані на багато користувачів; тобто тема може мати нуль, одного або декілька споживачів, які підписуються на записані в неї дані. Для кожної теми кластер Kafka підтримує секціонований журнал, вигляд якого представлений на рис. 1.2.
Рисунок 1.2 – Секціонований журнал
Кожен розділ є впорядкованою, незмінною послідовністю записів, до якої постійно додаються, структурованим журналом фіксації. Кожному запису в розділах привласнюється послідовний ідентифікаційний номер, що називається зміщенням, який однозначно ідентифікує кожен запис в розділі (наведено на рис. 1.3). Кластер Kafka тривало зберігає усі опубліковані записи, незалежно від того, були вони використані або ні, використовуючи термін зберігання, що настроюється.
...
1.3 Обґрунтування вибору мови програмування
Для реалізації брокера повідомлень Apache Kafka була обрана мова програмування Python. Розглянемо детальніше її особливості.
Мова Python це інтерпретована об'єктно-орієнтована мова програмування високого рівня з динамічною типізацією, автоматичним управлінням пам'яттю і зручними високорівневими структурами даних, такими як словники (хеш-таблиці), списки, кортежі. Підтримує класи, модулі (які можуть бути об'єднані в пакети), обробку винятків, а також багатопотокові обчислення. Пітон має простий і виразний синтаксис. Мова підтримує кілька парадигм програмування: структурне, об'єктно-орієнтоване, функціональне і аспектно-орієнтоване.
До переваг обраної раніше мови можна віднести:
• інтерпретованість мови програмування. З одного боку, це дозволяє значно спростити налагодження програм, з іншого - зумовлює порівняно низьку швидкість виконання;
• динамічна типізація.
...
1.4 Можливості фреймворку PyQt
У якості графічного фреймворку був обран кросплатформений фреймворк Qt.
Qt може бути використаним в багатьох мовах програмування: C++, Ada(QtAda), C# (Qyoto/Kimono), Java (QtJambi), Qt Jambi, Node.js, Pascal, Perl, PHP (PHP-Qt), Ruby (QtRuby), та Python (PyQt,PySide).
У нашому випадку використовували саме PyQt.
PyQt - набор «прив'язок» графічного фреймворку Qt для мови програмування Python, Виконаний у вигляді розширення Python. PyQt реалізована у вигляді набору модулів Python. Він являє собою платформо-незалежний інструмент. Тобто він працює на всіх основних операційних систем (Unix, Windows і Mac).
...
1.5 Можливості середовища розробки PyCharm
PyCharm є IDE для Python.
IDE - Integrated development environment - інтегроване середовище розробки, комплекс програмних засобів, які дозволяють вести більш зручну розробку певною мовою програмування. Зазвичай IDE має текстовий редактор, компілятор або інтерпретатор, відладчик і інше програмне забезпечення.
IDE дозволяє збільшити швидкість розробки (за умови попереднього навчання роботі з IDE, природно).
З PyCharm можна розробляти програми на Python. Крім того, в Professional Edition можна розробляти програми Django, Flask і Pyramid. Крім того, він повністю підтримує HTML (включаючи HTML5), CSS, JavaScript і XML: ці мови включені в IDE через плагіни і включені для вас за замовчуванням. Підтримка інших мов і фреймворків також може бути додана через плагіни (перейдіть до Settings | Plugins або PyCharm | Preferences | Plugins.
...
2.1 Проектування програмного забезпечення у нотації UML
Діаграма варіантів використання (use case diagram) є вихідним концептуальним поданням системи в процесі її проектування і розробки. Діаграма варіантів використання містить варіанти використання системи, дійових осіб і зв'язку між ними. Варіант використання (use case) - це опис функціональності системи. Дійова особа (actor) - це все, що взаємодіє з системою.
У мові UML для варіантів використання і дійових осіб підтримується кілька типів зв'язків. Це зв'язку комунікації (communication), використання (uses), розширення (extends) і узагальнення дійової особи (actor generalization).
Діаграма варіантів використання програми наведена на рис.2.1. Функції використання користувачем програми є наступними:
1. Створення нового підключення та введення:
- назви;
- список тем (topic);
- список зсувів (offset);
- списки локацій (location);
- список груп (groupId);
- список ip-адрес серверів.
2.2 Проектування генератора випадкових повідомлень
Для імітації відправки повідомлень розробимо генератор випадкових даних з інформацією про стан телефонних дзвінків на віддаленому сервері.
Надіслані повідомлення будуть представлені в форматі json, тому першим кроком створимо шаблон файлів, який будемо наповнювати випадковими даними.
Фрагмент данних data.
...
2.3 Проектування споживача повідомлень
Проект розробленого програмного забезпечення складається з чотирьох директорій (файли журналу, файли графічного інтерфейсу, результати та конфігурації) та головного файлу коду main.py.
Директорія з файлами графічного інтерфейсу повинна містити верстку для головного вікна, вікна для зміни налаштувань і вікна для створення нового підключення. Склад програмних файлів реалізації програмного забезпечення наведено на рисунку на рис. 2.7.
Main.py – файл, що містить вихідний програмний код на мові Python 3.7, фрагмент його складу наведено у додатку А.
Він розроблений у редакторі PyCharm, містить основні класи програми та імпорт файлів графічного інтерфейсу.
Рисунок 2.7 – Склад програмних файлів реалізації ПЗ.
Файли графічного інтерфейсу:
• info.ui, містить графічні компоненти відображення даних про розробника;
• main.ui, містить графічні компоненти відображення функціональних та керуючих елементів;
• settings.
...
3.1 Розробка та опис алгоритму роботи
Для того, щоб програмний продукт був універсальним у використанні, необхідно реалізувати певний алгоритм роботи, і можливість гнучкої зміни налаштувань програми.
На першому етапі запуску програмного додатка відбувається функція ініціалізації, імпорту необхідних модулів і компонентів. На наступному етапі процес роботи програми ділиться на декілька потоків.
Перший фоновий потік забезпечує ведення журналу роботи програми на рівні DEBUG.
Це реалізовано для того, щоб будь-який користувач програми мав можливість простежити процес виконання функцій і етапи з'єднання з серверами.
Другий фоновий потік забезпечує роботу з файлом конфігурації. Його роль відстежувати зміни графічного інтерфейсу користувача і динамічно зберігати цю інформацію.
Це реалізовано для зручності кінцевого користувача.
Завдяки цьому немає необхідності налаштовувати програму при кожному новому запуску.
...
3.2 Опис процесу роботи користувача з програмою
Під час запуску споживача повідомлень користувачеві відображається головне вікно програми. Дане вікно містить головне меню, яке дозволяє створити нове підключення, Переглянути директорію з результатами і файлами журналу, подивитися інформацію про програму а також перейти на веб сервіс GitHub, для отримання вихідного коду програмного додатка.
Приклад підпунктів пункту «Файл» головного меню програми наведено на рис.3.3.
Рисунок 3.3 – Приклад підпунктів пункту «Файл» головного меню програми
Головне вікно містить налаштування відображення повідомлень, параметри фільтрації, поле для відображення отриманих текстових даних, поле пошуку по тексту і функціональні кнопки для підключення до сервера, відкриття файлу з збереженими результатом.
У нижній частині вікна розташований статус бар, в якому отображет версія конфігураційний файл, або тип помилки, якщо файл з настроюваннями був пошкоджений.
...
1. Нархид Н. Apache Kafka. Потоковая обработка и анализ даннях / Н. Нархид. - СПб.: Питер, 2019. - 474 с.
2. Apache Kafka [Електронний ресурс]. – Режим доступу: https://habr.com/ru/post/354486/.– Дата доступу: 06.06.19.
3. Apache Kafka и миллионы сообщений в секунду [Електронний ресурс]. – Режим доступу: https://habr.com/ru/company/tinkoff/blog/342892/.– Дата доступу: 06.06.19.
4. Краткое введение в apache kafka [Електронний ресурс]. – Режим доступу: https://dotsandbrackets.com/quick-intro-to-apache-kafka-ru/ .– Дата доступу: 06.06.19.
5. Камаев В.А. Технологии программирования / В.А. Камаев. – М.: Высш. шк., 2016. – 314 с.
и еще 9 источников
Купить эту работу vs Заказать новую | ||
---|---|---|
0 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
2400 ₽ | Цена | от 3000 ₽ |
Не подошла эта работа?
В нашей базе 55695 Дипломных работ — поможем найти подходящую