ПКС / ПКС. Материалы лекций
.pdfМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
Кафедра информационных управляющих систем
Б1.В.24 «Программирование критических сервисов» для специальностей по направлению 09.03.02 «Информационные системы и технологии»
1.Cервисы программного обеспечения в международных стандартах.
2.Cервисы программного обеспечения в российских стандартах.
3.Критические объекты и процессы программных средств в международных стандартах. Часть 4: UML-диаграммы развертывания, объектов, классов и коммуникаций.
4.Шаблоны проектирования критических сервисов.
5.Программные компоненты для создания критического сервиса на языке Python.
6.Программные решения на основе критических сервисов в задаче развертывания микросервисной архитектуры.
Преподаватель: Параничев Андрей Викторович
Санкт-Петербург 2023
UML-диаграмма развертывания (Deployment) |
|
72 |
Диаграмма развертывания (Deployment) реализует архитектуру систем, а также определяет назначение программных элементов (артефактов) по отношению к элементам соответствующей системы.
Основные элементы:
node (узел) – управляющий объект программного обеспечения в виде одной из систем:
-устройство аппаратного обеспечения (hardware); например, системный блок;
-среда выполнения приложения (execution environment); например, операционная система (operating system);
-объект контейнеризации (container); например, zip-архив с модулями приложения;
artifact (артефакт) – физически инициированный элемент программного обеспечения (представимый в виде файла): инструкции, скрипты, модули запуска приложения, документы.
Для определения взаимодействия принято указывать одно из типовых действий: <<deploy>> (развертывание) – распределение памяти для артефакта или его сущности под конкретный объект;
<<manifest>> (декларирование) – конкретная физическая визуализация одного или более элементов с помощью артефакта.
UML-диаграмма развертывания (Deployment): пример |
73 |
node
artifact
UML-диаграмма развертывания (Deployment): |
74 |
пример скрипта PlantUML (начало) |
|
@startuml
left to right direction
title Full-stack приложение на основе микросервисной архитектуры
node nPythonIDE as "Интегрированная среда разработки на Python\n{IDE=__PyCharm 2020.3.3__}\n{OS=__Windows x64__}"{
node nChecking as "Модуль проверки\nлогин-пароля\n{ RegExp = __[A-Za-z0-9]{8,}__}"{ artifact aKey as "API Token"
artifact aLogin as "Логин" artifact aPassword as "Пароль"
}
node nService as "Сервис обработки сообщений WhatsApp"{
}
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}__"
}
}
UML-диаграмма развертывания (Deployment): |
75 |
пример скрипта PlantUML (окончание) |
|
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 : <U+003C><U+003C>manifest<U+003E><U+003E>
Admin ..> nDatabase : <U+003C><U+003C>deploy<U+003E><U+003E> Admin ..> nPythonRPC : <U+003C><U+003C>manifest<U+003E><U+003E> nPythonIDE --> nPythonRPC : "\n__XML__"
nPythonRPC -> nWebServer : " __SOAP API__\n"
aLogin .left.> aKey : \n<U+003C><U+003C>manifest<U+003E><U+003E> aPassword .right.> aKey : \n<U+003C><U+003C>manifest<U+003E><U+003E>
@enduml
UML-диаграмма развертывания (Deployment) |
|
76 |
UML-диаграмма развертывания (Deployment): пример фрагмента |
77 |
работы прототипа приложения |
UML-диаграмма развертывания |
78 |
(Deployment): пример скрипта и диаграммы в PlantUML |
Back-end-часть |
Front-end-часть |
в виде развертываемого блока |
в виде развертываемого блока |
|
node |
artifact
@startuml |
node application { |
|
artifact image |
left to right direction |
} |
node database { |
vendors "1" -- "*" navigators |
node navigators |
navigators "1" --- "30" image |
node vendors |
|
} |
@enduml |
UML-диаграмма объектов (Object) |
|
79 |
Диаграмма объектов (Object) определяет то, каким образом создаются экземпляры объектов (инстанцируются), используя спецификации по их созданию.
Основные элементы:
спецификация экземпляра объекта (instance specification) представляет возможное или действительное существование экземпляра объекта в моделируемом программном компоненте; например, спецификация экземпляра объекта «_info1»;
слот (slot) устанавливает, что некоторый экземпляр объекта, смоделированный с помощью блока "instance specification", содержит данные в формате «имя : тип_данных = значение» (которые определены на основе спецификации значений);
например, «-_info1:InfoDebugger»;
взаимосвязь (link) определяет графическую взаимосвязь между двумя спецификациями объектов по их слоту; например, взаимосвязь между «ChainPattern» и «_info1».
UML-диаграмма объектов (Object): пример (начало) |
|
80 |
instance specification
@startuml
skinparam classAttributeIconSize 0
1
'left to right direction
hide <<stereotype_object>> circle hide <<stereotype_object>> methods hide <<stereotype_object>> stereotype class ChainPattern <<stereotype_object
-_info1:InfoLogger
-_debug2:DebugLogger
-_error3:ErrorLogger
}
формат записи слота:
имя : тип_данных = значение slot
slot
2
3
4