
- •Реферат
- •Список термінів та скорочень
- •Розділ 1. Система автоматичного управління автопілот
- •Підвищення рівня безпеки роботи автопілоту
- •Системи реального часу
- •Операційна система реального часу qnx
- •Розділ 2. Алгоритм програми
- •Опис взаємодії клієнта та сервера
- •Алгоритм серверного застосування
- •Алгоритм клієнтського застосування
- •Розділ 3. Особливості програмної реалізації
- •Вибір мови та середовища розробки
- •Мережева взаємодія на стороні сервера
- •Мережева взаємодія на стороні клієнта
- •Логування
- •Розділ 4 експеримент
- •Апаратне забезпечення
- •Програмне забезпечення
- •Результати експерименту
- •Висновки
- •Список використаних джерел
- •Додаток а інструкція з використання застосування
- •Додаток б тестування програми
Розділ 2. Алгоритм програми
У розділі описані алгоритми, за якими були втілені механізми виконання поставленої задачі.
Опис взаємодії клієнта та сервера
Програма, що реалізовує передачу, складається з двох застосувань – клієнтської частини та серверної частини. Діаграма послідовності взаємодії клієнта і сервера наведена на Рис. 3.
Після запуску сервера, він переходить в режим очікування підключень клієнтів. Сервер створює три потоки, на які підключаться клієнти. Кожен клієнт має свій окремий потік, на якому і відбувається передача даних. Після завершення процедури інформаційної взаємодії потік припиняє свою життєдіяльність.
Рис. 3. Діаграма взаємодії клієнта та сервера
Після завантаження, сервер очікує на підключення клієнтів. Після отримання запиту на з’єднання, сервер віддає для даного клієнта один потік, на якому і відбувається передача даних. Паралельно, сервер очікує на отримання інших запитів на підключення. Коли він отримує запит, віддає наступні потоки для роботи з новими клієнтами. Розроблений сервер може підключити три клієнти. Така архітектура дозволяє трьом клієнтам одночасно передавати пакети даних серверу, а серверу, відповідно, їх обробляти. Після завершення передачі пакетів кожним з клієнтів, відповідні потоки завершуються. Сервер закінчує свою роботу після завершення всіх трьох потоків.
В якості транспортного протоколу передачі даних був використаний протокол TCP. Транспортний механізм TCP дає можливість перед передачею даних створити сесію між сервером та клієнтом для гарантування отримання відісланих пакетів, також він, в разі втрати пакета, відправляє повторний запит про передачу, і анулює можливість дублювання пакетів, на відмінну від UDP, в якому дана можливість не передбачена. Реалізація транспортного механізму реалізована в операційній системі QNX, тому клієнт-серверній програмі не потрібно перевіряти цілісність пакетів.
Алгоритм серверного застосування
Блок-схема алгоритму показує етапи створення сокета, очікування клієнта, підключення (Рис. 4).
Починається робота сервера з відкриття сокета. Якщо сокет відкритий, відбувається отримання параметрів сокета і пов’язання його з локальною адресою. Якщо локальна адреса була визначена, то відбувається очікування приєднання клієнта. Після підключення клієнта, створюється новий потік, відкривається новий сокет для клієнта, та відбувається прийом пакетів даних від клієнта. Після завершення передачі, завершуються всі потоки та закривається сокет.
Рис. 4. Блок – схема алгоритму роботи серверного застосування
Рис. 5. Блок – схема алгоритму взаємодії з клієнтом на стороні сервера
Клієнтська частина генерує пакети та відправляє їх серверу, симуляція відправки на клієнтській частині триває 20 хв. На серверній частині іде замірювання часу прийому пакету та розміру пакету. На основі отриманих даних сервер веде лог – файл, в якому відмічається порядковий номер клієнта, його ІР – адреса, дата та час початку прийому блоку даних, тривалість прийому в мс, розмір отриманого блоку в байтах.
Блок – схема алгоритму взаємодії сервера з клієнтом зображена на Рис. 5.
Взаємодія з клієнтом на стороні сервера відбувається за рахунок циклічної обробки пакетів. Для кожного пакету замірюється час до його отримання та після. Ця інформація записується в файл логів, разом з іншою інформацією про пакет. Після завершення циклічної обробки пакетів, сервер отримує повідомлення про це, та надсилає повідомлення клієнту про його відключення.