Файл: Практическая работа 01 по дисциплине программирование критических сервисов.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 93

Скачиваний: 11

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)Кафедра информационных управляющих системПрактическая работа № 01по дисциплине«ПРОГРАММИРОВАНИЕ КРИТИЧЕСКИХ СЕРВИСОВ»Студент гр. ИБ-13з ____________________________ Карнаухов Д.А.(подпись)Проверил ___________________________ Параничев А.В.(оценка и подпись)Санкт-Петербург2023 год Практическая работа № 01ЗАДАЧА.Построить диаграмму развертывания Full-stack приложения, определяя требования к развертыванию микросервисной архитектуры (MSA). Среда разработки приложения: PyCharm (язык программирования: Python), среда выполнения кода: Интернет-браузер на платформе Chromium (табл. 1).Таблица 1Исходные данные (вариант 09) для установления требований к MSA

Значение

По цифре y

По цифре z

Цифры (yz) 

Типовые операции 2

Интерфейсы (API)

Разрешенные
типовые операции для заданных ролей

Условие
изменения роли User

Мессенджер

Браузер для тестирования в Selenium

Доступ к контенту БД

0

CRUD

SOAP / XML

Guest: R;
User: CR;
TopUser: CRD;
Admin: CRUD

TopUser, если сообщений 10 и более







9









Telegram

Opera

Ssh key
решение
Решение задачи определения требований к MSA для варианта № 09 (табл. 1) приводится по следующим исходным данным:

  • типовые операции: CRUD; доступ к типовым операциям:

    • Create: Admin, User, TopUser;

    • Read: Guest, User, Admin, TopUser;

    • Update: Admin;

    • Delete: Admin, TopUser;

  • условие изменения роли User: становится TopUser, если сообщений 10 и более;

  • интерфейсы: SOAP / XML;

  • мессенджер: Telegram;

  • драйвер тестирования Selenium: для Интернет-браузеров на
платформе Chromium (Opera);

  • доступ к контенту БД: SSH key.
Соответствующая диаграмма развертывания представлена на рис. 1.Ориентируясь на рис. 1, необходимо установить следующие требования при построении Full-stack приложения на основе MSA:соответствие драйвера Selenium для задач автоматизированного тестирования: для установленного на компьютере Интернет-браузера Opera (версия 98.0.4759.15 для 64-разрядной Windows 7) выбрана предшествующая версия архива chromedriver_win32.zip (версия 90.0.4430.24 для операционной системы, совместимой с 32-разрядной Windows);Рис. 1. Диаграмма развертывания для определения требований к MSA

  • взаимодействие с веб-сервером, используя Python, может осуществляться с помощью Spyne (выполняет RPC на языке Python): входной протокол XML Document, выходной протокол SOAP 1.1;

  • Для ключа SSH была указана защищенная среда доступа PuTTY при выполнении разработки в операционной системе Windows.

  • СУБД должна быть реляционной, поскольку доступ задан с помощью XML;

  • при числе сообщений более 10, пользователь, имеющий роль User, получает привилегии роли TopUser.
Исходный код PlantUML-диаграммы:@startumlleft to right directiontitle Full-stack приложение на основе микросервисной архитектурыnode nPythonIDE as "Интегрированная среда разработки на Python\n{IDE=__PyCharm 2020.3.3__}\n{OS=__Windows x64__}"{node nChecking as "Модуль проверки\n{ RegExp = __SSH key__}"{artifact aKey as "PuTTY"}node nService as "Сервис обработки сообщений Telegram"{}node nRole as "Модуль управления ролью \n{ Operations = __CRUD__ }"{node Guest as "Гостевой пользователь\n __{Read}__"node User as "Зарегистрированный пользователь\n __{Create, Read}__"node TopUser as "Привилегированный пользователь\n __{Create, Read, Delete}__"node Admin as "Администратор\n __{Create, Read, Update, Delete}__"}}node nPythonRPC as "Сервер обработки RPC"{node nDatabase as "Сервер базы данных \n{Database = __{MySQL,__\n __PostgreSQL, MariaDB}__}"{artifact aMessages as "Число сообщений\n{MinCount = __10__}"}node nSpyne as "Веб-cервис Spyne"{}

}

node nWebServer as "Веб-сервер"{

artifact aSelenium as "WebDriver Selenium\n{Version = __90.0.4430.24__}\n{OS = __Windows x86__}"

artifact aBrowser as "Opera\n{Version = __98.0.4759.15__}\n{OS = __Windows x64__}"

}

User .> TopUser : manifest

Admin ..> nDatabase : deploy

Admin ..> nPythonRPC : manifest

nPythonIDE --> nPythonRPC : "\n__XML__"

nPythonRPC -> nWebServer : " __SOAP API__\n"

@enduml