Modele mają za zadanie pokazać rzeczywistość w sposób uproszczony, w którym uwypuklamy interesującą nasz cechę. Projektując nowe lub zmieniając istniejące oprogramowanie bardzo często modelujemy przypadki użycia, architekturę logiczną aplikacji. Budujemy modele procesów biznesowych. Tworzymy diagramy sekwencji. Coraz częściej zachodzi potrzeba by opisać to co bez czego nie byłoby na czym zainstalować oprogramowania. Jest potrzeba by opisać infrastrukturę.
Do modelowania infrastruktury można skorzystać z notacji ArchiMate. Przykład podałem w tekście: ArchiMate w praktyce a w rozwiązaniach w których korzystamy z chmury można użyć notacji, która opisałem w tekście Modelowanie AWS, Azure i Google Cloud w Enterprise Architect Modelując bardziej klasycznie można skorzystać notacji UML i diagramu wdrożenia.
Diagram wdrożenia (ang. deployment diagram) odpowiada za reprezentację fizycznej architektury rozwiązania. Diagramy wdrożenia pokazują relacje między komponentami oprogramowania a sprzętem a także relacje pomiędzy poszczególnymi elementami infrastruktury technicznej. Na diagramie wdrożenia prezentuje się węzły systemu, którymi są komputery, serwery i inny sprzęt komputerowy funkcjonujący w działającym systemie oraz związki między nimi.
Diagram wdrożenia – podstawowa notacja
Węzeł
Węzeł (ang. Node) to fizyczne urządzenie, na którym wdrożona jest aplikacja. Węzeł zazwyczaj zawiera komponenty i inne wykonywalne fragmenty kodu. Typowymi węzłami na diagramach wdrożenia są klienckie stacje robocze, serwery aplikacji, komputery mainframe, routery i serwery terminalowe, maszyny wirtualne oraz wszystkie inne elementy infrastruktury mające zdolność do przetwarzania danych.
Urządzenie
Urządzenie to fizyczny zasób – maszyna, który ma możliwość przetwarzania. Urządzenie jest węzłem ze stereotypem <<Device>>. Różnica pomiędzy zwykłym węzłem a urządzeniem jest nieznaczna z naciskiem na używanie urządzenia w sytuacjach, w których przedstawiany element jest typową maszyną – sprzętem komputerowym. Na diagramie wdrożenia mogą to być mogą być „serwer aplikacji”, „stacja robocza klienta”, „telefon komórkowy” lub „urządzenie wbudowane”.
Środowisko wykonania
Środowisko wykonania (wykonawcze) (ang. Execution Environment) to węzeł, który oferuje środowisko dla określonych typów komponentów, które są na nim wdrożone w postaci wykonywalnych artefaktów.
W modelowaniu UML środowisko wykonawcze jest rodzajem węzła, który reprezentuje konkretną platformę wykonawczą, taką jak system operacyjny lub system zarządzania bazą danych. Możesz użyć środowisk wykonawczych do opisania kontekstu, w którym odbywa się wykonanie modelu. Przykłady węzłów wykonania to środowisko bazy danych, system operacyjny, serwer aplikacji.
Artefakt
Artefakt na diagramach wdrożenia reprezentują jednostki fizyczne w systemie oprogramowania. Artefakty reprezentują fizyczne jednostki implementacyjne, takie jak pliki wykonywalne, biblioteki, komponenty oprogramowania, dokumenty i schematy bazy danych.
Diagram wdrożenia – zastosowania
Modelując infrastrukturę za pomocą diagramu wdrożenia tworzę, w zależności od potrzeb, trzy widoki. Widok struktury wewnętrznej infrastruktury, widok instalacji komponentów i widok połączeń sieciowych. Dość często w modelując infrastrukturę korzystam z diagramu wdrożenia, który przedstawia obiekty. W repozytorium definiuje elementy składowe np.: maszyny wirtualne itp, którym przypisuje atrybuty. Diagram wdrożenia zawiera obiekty – konkretne wystąpienia, wcześniej zdefiniowanych elementów.
Diagram wdrożenia – widok struktury wewnętrznej infrastruktury
Diagram wdrożenia – widok struktury wewnętrznej infrastruktury to widok, który pozwala pokazać elementy składowe infrastruktury. Skupiam się tutaj na logicznym powiązaniu poszczególnych elementów. Do modelowania używam, trochę naciągając notację UML, relację agregacji albo kompozycji.
Diagram wdrożenia – widok instalacji komponentów
Widokiem tym prezentuję, w jaki sposób, gdzie są zainstalowane poszczególne komponenty aplikacji. Na powyższym diagramie celowo umieściłem dodatkowe elementy z poprzedniego widoku, tak by pokazać, iż te widoki mogą zostać połączone w jeden byt. Warto zauważyć, że aplikacja (element komponent) na tym diagramie jest przedstawiony także jako dwie instancje. Dzięki temu zabiegowi można zaprezentować różne implementacje tej samej aplikacji. Dodatkowym połączeniem, które wykonuje jest relacja realizacji łącząca komponent z jego wystąpieniem. Pomaga to w raportowaniu. Do mapowania aplikacji z elementami infrastruktury wykorzystuję relację deployment. Mapując wystąpienia aplikacji warto jest zmapować je z elementami będącymi na niskim poziomie abstrakcji. Dzięki temu jednoznacznie zostaną wskazane elementy, które są wymagane przez aplikację.
Diagram wdrożenia – Widok połączeń sieciowych
Widok połączeń sieciowych to diagram, na którym wcześniej zdefiniowane elementy są połączone siecią. Dość często na tych diagramach wstępują takie elementy jak switch, router, load balancer i inne elementy zapewniające łączność pomiędzy węzłami. Dodatkowo połączenia można uszczegółowić stereotypami, tak jak przykładowo zostało zrobione na powyższym rysunku lub opisami poszczególnych relacji.
Podsumowując diagram wdrożenia umożliwia zamodelowanie infrastruktury technicznej, na który uruchomione są aplikacje. Wykorzystanie obiektów na bazie wcześniej zdefiniowanych elementów standaryzuje ten opis. Ponadto narzędzia take jak Enterprise Architect dają pewną w swobodę w opisie relacji. Dzięki temu modele mogą lepiej odzwierciedlać złożoną rzeczywistość jaką niewątpliwie jest infrastruktura techniczna.