Celem niniejszego wpisu jest zaprezentowanie techniki, która wspomaga modelowanie fizycznych aspektów rozwiązań informatycznych, ze szczególnym uwzględnieniem diagramu wdrożenia w języku UML.
Diagram wdrożenia – definicja i zastosowanie
Diagram wdrożenia (ang. Deployment Diagram) służy do obrazowania konfiguracji poszczególnych węzłów fizycznych działającego systemu i zainstalowanych na nich komponentów.
Na diagramie wdrożenia prezentuje się węzły fizyczne systemu, którymi są komputery, serwery i inny sprzęt komputerowy funkcjonujący w działającym systemie, oraz związki między nimi. Sprzęt fizyczny przedstawiany na diagramie wdrożenia może obejmować:
- Serwery:
- Serwery aplikacji (np. Apache Tomcat, JBoss)
- Serwery baz danych (np. MySQL, Oracle, Microsoft SQL Server)
- Serwery WWW (np. Apache, Nginx)
- Serwery plików
- Serwery poczty elektronicznej
- Komputery klienckie:
- Komputery stacjonarne
- Laptopy
- Terminale
- Urządzenia mobilne:
- Smartfony
- Tablety
- Urządzenia IoT (Internet of Things)
- Urządzenia sieciowe:
- Routery
- Przełączniki (switche)
- Firewalle
- Load balancery
- Urządzenia peryferyjne:
- Drukarki
- Skanery
- Urządzenia wielofunkcyjne
- Systemy pamięci masowej:
- Macierze dyskowe
- Systemy NAS (Network Attached Storage)
- Systemy SAN (Storage Area Network)
- Urządzenia specjalistyczne:
- Systemy kontroli dostępu
- Kasy fiskalne
- Terminale płatnicze
- Systemy monitoringu
- Urządzenia wbudowane:
- Sterowniki PLC
- Systemy SCADA
- Urządzenia przemysłowe
Związki między tymi elementami mogą reprezentować:
- Połączenia sieciowe (np. LAN, WAN, VPN)
- Protokoły komunikacyjne (np. HTTP, TCP/IP, FTP)
- Zależności funkcjonalne (np. klient-serwer, master-slave)
Diagram wdrożenia pozwala na zobrazowanie, jak różne komponenty oprogramowania są rozlokowane na fizycznych urządzeniach, co jest kluczowe dla zrozumienia architektury systemu, planowania wydajności, bezpieczeństwa oraz strategii utrzymania i rozwoju infrastruktury IT.
Diagram wdrożenia – notacja i semantyka
W ninijeszym wpisie skupię się tylko na najwazniejszych elementach wchodzących w skład diagramów wdożenia.
Węzeł
![diagramy uml węzeł](https://wolski.pro/wp-content/uploads/2024/07/diagramy_uml_wezel.png)
Węzeł (ang. Node) to działający fizycznie składnik systemu. Węzeł zazwyczaj ma pewne zdolności przetwarzania i pamięć. Reprezentuje zasoby obliczeniowe. Na diagramach wdrożenia węzły stanowią fizyczne byty, na których rezyduje budowany system.
Artefakt
Artefakt (ang. Artifact) to fizycznie istniejący zasób informatyczny w postaci takich bytów jak: model, plik lub tabela. Jest używany lub wytwarzany w czasie wdrażania oprogramowania. Artefakt może posiadać atrybuty i operacje i może być połączony asocjacją z innym artefaktem.
Środowisko wykonania
![diagramy uml artefakt](https://wolski.pro/wp-content/uploads/2024/07/diagramy_uml_artefakt.png)
![diagramy uml środowisko wykonania](https://wolski.pro/wp-content/uploads/2024/07/diagramy_uml_srodowisko_wykonania.png)
Środowisko wykonania (ang. Execution Environment) to element prezentujący wybrany rodzaj platformy, np. system operacyjny, silnik bazy danych i inne. Jest zazwyczaj częścią innego węzła, który modeluje sprzęt.
Urządzenie
![diagramy uml urządzenie](https://wolski.pro/wp-content/uploads/2024/07/diagramy_uml_urzadzenie.png)
Urządzenie (ang. Device) stanowi fizyczne zasoby komputerowe, na których mogą być wykonane wdrażane artefakty. Różnica pomiędzy zwykłym węzłem a urządzeniem jest nieznaczna, z naciskiem na używanie urządzenia w sytuacjach, gdy przedstawiany element jest typową maszyną – sprzętem komputerowym. Często w urządzeniu zagnieżdżone jest środowisko wykonania do specyfikowania oprogramowania.
Diagram wdrożenia – przykładowe zastosowanie
![diagramy uml diagram wdrożenia struktura wezła](https://wolski.pro/wp-content/uploads/2024/07/diagramy_uml_diagram_wdrozenia_struktura_wezla.png)
Powyższy rysunek przedstawia diagram wdrożenia systemu, który wykorzystuje maszynę wirtualną i środowiska wykonawcze. Oto szczegółowy opis:
- Maszyna Wirtualna:
- Jest to najwyższy poziom diagramu, reprezentujący wirtualne środowisko, na którym zainstalowane są pozostałe komponenty.
- Windows Server:
- Jest to pierwsza warstwa środowiska wykonawczego (executionEnvironment) wewnątrz maszyny wirtualnej.
- Reprezentuje system operacyjny, na którym uruchamiane są pozostałe komponenty.
- MS SQL Server:
- To druga warstwa środowiska wykonawczego, zagnieżdżona wewnątrz Windows Server.
- Reprezentuje system zarządzania bazą danych Microsoft SQL Server.
- Renatal BD Schema:
- Jest to artefakt reprezentujący schemat bazy danych, prawdopodobnie dla systemu wynajmu (rental).
- Znajduje się wewnątrz środowiska MS SQL Server.
- Fizyczny model danych:
- To kolejny artefakt, również znajdujący się wewnątrz środowiska MS SQL Server.
- Zawiera element oznaczony jako „+ Tabela”, co sugeruje, że reprezentuje fizyczną strukturę danych w bazie.
- Relacja „manifest”:
- Istnieje strzałka z opisem „«manifest»” łącząca „Renatal BD Schema” z „Fizyczny model danych”.
- Ta relacja wskazuje, że schemat bazy danych jest manifestowany (realizowany) w fizycznym modelu danych.
Diagram ten pokazuje warstwową strukturę środowiska, gdzie maszyna wirtualna zawiera system operacyjny Windows Server, który z kolei hostuje MS SQL Server. Wewnątrz serwera SQL znajdują się artefakty reprezentujące schemat bazy danych i jej fizyczną implementację. Całość ilustruje typowe wdrożenie systemu bazodanowego w środowisku wirtualnym, z wyraźnym podziałem na warstwy logiczne i fizyczne.
Powyższy rysunke przedstawia diagram wdrożenia dla systemu rozproszonego, ilustrujący architekturę wysokiej dostępności. Oto szczegółowy opis:
![diagramy uml diagram wdrożenia połaczenia fiziczne](https://wolski.pro/wp-content/uploads/2024/07/diagramy_uml_diagram_wdrozenia_polaczenia_fiziczne.png)
- Maszyny Wirtualne [DB]:
- Widoczne są dwie maszyny wirtualne oznaczone jako [DB], co sugeruje, że są to serwery baz danych.
- Umieszczenie dwóch maszyn DB wskazuje na redundancję, prawdopodobnie w celu zapewnienia wysokiej dostępności lub rozłożenia obciążenia.
- Maszyny Wirtualne [Serwer aplikacji]:
- Widoczne są również dwie maszyny wirtualne oznaczone jako [Serwer aplikacji].
- Podobnie jak w przypadku baz danych, duplikacja serwerów aplikacji sugeruje redundancję i możliwość rozłożenia obciążenia.
- Load balancer:
- Pomiędzy serwerami aplikacji a klientem znajduje się element oznaczony jako „Load balancer”.
- Jego rolą jest równoważenie obciążenia między serwerami aplikacji, co poprawia wydajność i niezawodność systemu.
- Laptop:
- Po prawej stronie diagramu widoczny jest element oznaczony jako „«device» Laptop”.
- Reprezentuje on urządzenie klienckie, z którego użytkownicy łączą się z systemem.
- Połączenia:
- Widoczne są linie łączące poszczególne elementy, reprezentujące połączenia sieciowe między komponentami systemu.
- Maszyny DB są połączone z odpowiadającymi im serwerami aplikacji.
- Serwery aplikacji są połączone z load balancerem.
- Load balancer jest połączony z laptopem klienta.
Ten diagram ilustruje typową architekturę systemu o wysokiej dostępności, z redundancją na poziomie baz danych i serwerów aplikacji, oraz z wykorzystaniem load balancera do optymalizacji ruchu. Taka struktura zapewnia odporność na awarie, możliwość skalowania oraz efektywne zarządzanie obciążeniem, co jest kluczowe dla systemów wymagających ciągłości działania i obsługi dużej liczby użytkowników.
Podsumowanie
Modelowanie infrastruktury, w tym wykorzystanie diagramów wdrożenia, nie jest tylko technicznym aspektem rozwoju oprogramowania. Jest to strategiczne narzędzie, które wspiera cały cykl życia systemu informatycznego, od planowania przez implementację, aż po utrzymanie i rozwój. Pozwala na podejmowanie świadomych decyzji, optymalizację zasobów i efektywne zarządzanie ryzykiem w złożonych środowiskach IT.
Pozostałe diagramy UML: