Файл: Практическая работа 01 по дисциплине программирование критических сервисов Студент гр. Иб06с Фамилия И. О.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 69
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)Кафедра информационных управляющих системПрактическая работа № 01по дисциплине«ПРОГРАММИРОВАНИЕ КРИТИЧЕСКИХ СЕРВИСОВ»Студент гр. ИБ-06с ____________________________ Фамилия И.О.(подпись)Проверил ___________________________ Параничев А.В.(оценка и подпись)Санкт-Петербург2021 год Практическая работа № 01ЗАДАЧА.Построить диаграмму развертывания Full-stack приложения, определяя требования к развертыванию микросервисной архитектуры (MSA). Среда разработки приложения: PyCharm (язык программирования: Python), среда выполнения кода: Интернет-браузер на платформе Chromium (табл. 1).Таблица 1Исходные данные (вариант 00) для установления требований к MSA
решениеРешение задачи определения требований к MSA для варианта № 00 (табл. 1) приводится по следующим исходным данным:
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 "Google Chrome\n{Version = __91.0.4472.101__}\n{OS = __Windows x64__}"}User .> TopUser : manifest
Admin ..> nDatabase : deploy
Admin ..> nPythonRPC : manifest
nPythonIDE --> nPythonRPC : "\n__XML__"
nPythonRPC -> nWebServer : " __SOAP API__\n"
aLogin .left.> aKey : \nmanifest
aPassword .right.> aKey : \nmanifest
@enduml
| Значение | По цифре y | По цифре z | |||||
| Цифры (yz) | Типовые операции 2 | Интерфейсы (API) | Разрешенные типовые операции для заданных ролей | Условие изменения роли User | Мессенджер | Браузер для тестирования в Selenium | Доступ к контенту БД |
| 0 | CRUD | SOAP / XML | Guest: R; User: CR; TopUser: CRD; Admin: CRUD | TopUser, если сообщений 10 и более | – | – | – |
| 0 | – | – | – | – | | Chrome | Логин и пароль (более 8 букв / цифр) |
решениеРешение задачи определения требований к MSA для варианта № 00 (табл. 1) приводится по следующим исходным данным:
-
типовые операции: CRUD; доступ к типовым операциям:-
Create: Admin, User, TopUser; -
Read: Guest, User, Admin, TopUser; -
Update: Admin; -
Delete: Admin, TopUser;
-
-
условие изменения роли User: становится TopUser, если сообщений 10 и более; -
интерфейсы: SOAP / XML; -
мессенджер: WhatsApp; -
драйвер тестирования Selenium: для Интернет-браузеров на платформе Chromium; -
доступ к контенту БД: логин и пароль с более 8 буквами или цифрами.
-
соответствие драйвера Selenium для задач автоматизированного тестирования: для установленного на компьютере Интернет-браузера Google Chrome (версия 91.0.4472.101 для 64-разрядной Windows 7) выбрана предшествующая версия архива chromedriver_win32.zip (версия 90.0.4430.24 для операционной системы, совместимой с 32-разрядной Windows);
-
взаимодействие с веб-сервером, используя Python, может осуществляться с помощью Spyne (выполняет RPC на языке Python): входной протокол XML Document, выходной протокол SOAP 1.1; -
на основе логина и пароля, требования к которым определяются регулярным выражением «[A-Za-z0-9]{8,}», должен быть сформирован токен API, доступ к которому есть только у администратора (роль Admin); -
СУБД должна быть реляционной, поскольку доступ задан с помощью XML; -
при числе сообщений более 10, пользователь, имеющий роль User, получает привилегии роли TopUser.
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 "Google Chrome\n{Version = __91.0.4472.101__}\n{OS = __Windows x64__}"}User .> TopUser : manifest
Admin ..> nDatabase : deploy
Admin ..> nPythonRPC : manifest
nPythonIDE --> nPythonRPC : "\n__XML__"
nPythonRPC -> nWebServer : " __SOAP API__\n"
aLogin .left.> aKey : \nmanifest
aPassword .right.> aKey : \nmanifest
@enduml