Przejdź do treści
Read this post in: de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » TOGAF » TOGAF ADM: 10 najważniejszych technik – Część 3: Szablony architektury

TOGAF ADM: 10 najważniejszych technik – Część 3: Szablony architektury

W dziedzinie architektury przedsiębiorstwa szablony architektury są ważnym narzędziem do tworzenia skutecznych rozwiązań dla typowych problemów. Szablony pozwalają umieścić elementy konstrukcyjne w kontekście i mogą zapewnić architektom szkic rozwiązań, które zostały udowodnione jako skuteczne w przeszłości. W tym artykule omawiamy pojęcie szablonów architektury w kontekście TOGAF ADM oraz przedstawiamy przykład szablonu architektury w kontekście rozwoju aplikacji biznesowych.

Co to są szablony architektury

„Szablon” został zdefiniowany jako: „idea, która okazała się przydatna w jednym kontekście praktycznym i prawdopodobnie będzie przydatna w innych” (Źródło: Analiza szablonów – Modelu obiektów ponownie używanych, autor: M. Fowler).

W standardzie TOGAF szablony są traktowane jako sposób umieszczania elementów konstrukcyjnych w kontekście; na przykład do opisania rozwiązań ponownie używanych dla danego problemu. Elementy konstrukcyjne to to, co używasz: szablony mogą wskazać, jak je używać, kiedy, dlaczego oraz jakie kompromisy należy zaakceptować podczas ich stosowania.

Szablony oferują obietnicę pomocy architektom w identyfikacji kombinacji elementów konstrukcyjnych architektury i/lub rozwiązań (ABB/SBB), które zostały udowodnione jako skuteczne w przeszłości, i mogą stanowić podstawę skutecznych rozwiązań w przyszłości.

Techniki szablonów są ogólnie uznawane za ustanowione jako wartościową technikę projektowania architektonicznego przez Christophera Alexandera, architekta budynków, który opisał ten podejście w swojej książce The Timeless Way of Building, wydanej w 1979 roku. Ta książka stanowi wprowadzenie do idei stojących za stosowaniem szablonów, a Alexander kontynuował ją dwiema kolejnymi książkami (A Pattern Language i The Oregon Experiment), w których rozwinął opis cech i korzyści wynikających z podejścia opartego na szablonach architektonicznych.

Szablony architektury w TOGAF ADM

Metoda rozwoju architektury (ADM) to kluczowy element standardu TOGAF firmy Open Group, który zapewnia ramy do tworzenia i zarządzania architekturą przedsiębiorstwa. W ramach ADM szablony architektury są potężnym narzędziem, które mogą pomóc architektom identyfikować udowodnione rozwiązania dla typowych problemów i przyspieszać rozwój skutecznych architektur.

W swoim jądrze szablon architektury to po prostu opis rozwiązania ponownie używane do problemu, które zostało udowodnione jako skuteczne w praktyce. Jak sugeruje powyższa definicja, szablon to idea, która okazała się przydatna w jednym kontekście i prawdopodobnie będzie przydatna w innych. Szablony mogą służyć do opisywania rozwiązań na różnych poziomach abstrakcji – od szablonów architektonicznych najwyższego poziomu, które opisują ogólną strukturę systemu, po szablony projektowe niższego poziomu, które opisują sposób implementacji poszczególnych komponentów.

Jednym z kluczowych korzyści z wykorzystania szablonów architektury jest to, że mogą pomóc architektom identyfikować kombinacje elementów konstrukcyjnych architektury (ABB) lub elementów konstrukcyjnych rozwiązań (SBB), które zostały udowodnione jako skuteczne w przeszłości. Może to oszczędzić czas i wysiłek, zapewniając punkt wyjścia do rozwoju architektury, zamiast zaczynać od zera przy każdym nowym projekcie.

Dodatkowo szablony architektury mogą pomóc zapewnić spójność i zgodność architektur. Wykorzystując szablony do opisywania rozwiązań dla typowych problemów, architekci mogą stworzyć wspólny język i zbiór pojęć, które mogą być używane w całej organizacji. Może to pomóc uniknąć nieporozumień i zapewnić, że wszyscy pracują w kierunku wspólnej wizji architektury.

Techniki szablonów zostały uznane za wartościową technikę projektowania architektonicznego przez Christophera Alexandera, architekta budynków, który opisał to podejście w swojej książce The Timeless Way of Building. Idee Alexandera zostały później rozwinięte w dwóch kolejnych książkach: A Pattern Language i The Oregon Experiment.

W kontekście architektury przedsiębiorstwa istnieje kilka różnych typów szablonów architektury, które można wykorzystać. Do najpopularniejszych zaliczają się:

  1. Architektury referencyjne – opisują ogólną strukturę systemu lub aplikacji i stanowią punkt wyjścia do rozwoju architektury.
  2. Szablony rozwiązań – opisują, jak konkretne problemy mogą zostać rozwiązane za pomocą kombinacji ABB i SBB.
  3. Szablony procesów – opisują najlepsze praktyki i typowe przepływy pracy dotyczące rozwoju i wdrażania architektur.
  4. Szablony projektowe – opisują, jak powinny być projektowane i implementowane poszczególne komponenty, i mogą pomóc zapewnić spójność i utrzymywalność architektury.

Szablony architektury to potężne narzędzie dla architektów, którzy chcą tworzyć skuteczne i efektywne architektury przedsiębiorstwa. Identyfikując udowodnione rozwiązania dla typowych problemów, architekci mogą oszczędzić czas i wysiłek, jednocześnie zapewniając spójność, zgodność i zgodność architektury z celami i celami organizacyjnymi.

Szablon do dokumentowania szablonów architektury

1. Nazwa szablonu

Opisowa nazwa szablonu, która powinna jasno przekazywać problem, który jest rozwiązywany.

2. Problem

Opis problemu lub wyzwania, które ma rozwiązać szablon. Powinien być jasny i szczegółowy, a także dostarczać kontekst dla szablonu.

3. Kontekst

Opis kontekstu, w którym ma być stosowany szablon. Powinien zawierać informacje o organizacji, systemie lub aplikacji, które są tworzone, oraz o wszelkich istotnych ograniczeniach lub ograniczeniach.

4. Rozwiązanie

Opis rozwiązania, które oferuje szablon. Powinien być jasny i szczegółowy, a także wyjaśniać, jak szablon może zostać wykorzystany do rozwiązania problemu opisanego w sekcji 2.

5. Korzyści

Opis korzyści wynikających z wykorzystania szablonu. Powinien wyjaśnić, jak szablon może pomóc w rozwiązaniu problemu, oraz przedstawić dowody potwierdzające jego skuteczność.

6. Kompromisy

Opis dowolnych kompromisów lub ustępstw, które należy dokonać przy stosowaniu wzorca. Powinien zawierać wszelkie ograniczenia lub wady wzorca, a także ryzyka, które należy zarządzać.

7. Wdrożenie

Opis sposobu wdrożenia wzorca. Powinien zawierać wytyczne dotyczące jego stosowania, a także odpowiednie przykłady lub przypadki użycia.

8. Powiązane wzorce

Lista powiązanych wzorców, które mogą być pomocne w połączeniu z bieżącym wzorcem. Powinna zawierać wszelkie wzorce blisko związane lub mogące być stosowane razem z bieżącym wzorcem.

9. Odwołania

Lista odwołań i źródeł użytych przy tworzeniu wzorca. Powinna zawierać wszelkie istotne publikacje, artykuły lub inne zasoby.

Używając tego szablonu, architekci mogą tworzyć jasne i skuteczne wzorce architektury, które można łatwo dzielić i ponownie używać w różnych projektach i kontekstach.

Przykład wzorca architektury w kontekście biznesowym

Rozważmy przykład wzorca architektury w kontekście rozwoju aplikacji biznesowych.

Załóżmy, że firma musi stworzyć nową aplikację internetową do zarządzania relacjami z klientami. Jednym z kluczowych wyzwań, przed którymi stoi, jest zapewnienie jej skalowalności i zdolności do obsługi dużej liczby użytkowników równocześnie.

 

Korzystając z przedstawionego powyżej szablonu wzorca architektury, możemy stworzyć wzorzec rozwiązujący ten problem:

1. Nazwa wzorca:Skalowalna aplikacja internetowa

2. Problem:Tworzenie aplikacji internetowej do zarządzania relacjami z klientami, która może obsługiwać dużą liczbę użytkowników równocześnie.

3. Kontekst:Firma musi stworzyć nową aplikację internetową do zarządzania relacjami z klientami. Aplikacja będzie dostępna dla dużej liczby użytkowników i musi być skalowalna, aby radzić sobie z okresami szczytowego obciążenia.

4. Rozwiązanie:Wzorzec Skalowalnej Aplikacji Internetowej oferuje rozwiązanie do tworzenia aplikacji internetowej, która może obsługiwać dużą liczbę użytkowników równocześnie. Kluczowe elementy wzorca obejmują:

  • Rozdzielanie obciążenia: dystrybucja przychodzących żądań na wiele serwerów w celu zapewnienia, że żaden pojedynczy serwer nie zostanie przeciążony.
  • Buforowanie: wykorzystywanie pamięci wewnętrznej do przechowywania często dostępnego danych i zmniejszania obciążenia bazy danych.
  • Skalowanie poziome: dodawanie dodatkowych serwerów do infrastruktury w celu obsługi wzrostu obciążenia.
  • Fragmentacja bazy danych: dzielenie bazy danych na mniejsze fragmenty w celu rozłożenia obciążenia na wiele serwerów.

5. Korzyści:Korzystając ze wzorca Skalowalnej Aplikacji Internetowej, firma może zapewnić, że jej aplikacja może obsługiwać dużą liczbę użytkowników równocześnie bez problemów z wydajnością lub przestojów. Może to poprawić satysfakcję klientów i zwiększyć przychód, zapewniając ciągłą dostępność aplikacji.

6. Kompromisy:Wzorzec Skalowalnej Aplikacji Internetowej wymaga dodatkowej infrastruktury i zasobów do wdrożenia, co może zwiększyć koszty. Dodatkowo, wdrożenie rozdzielania obciążenia i buforowania może zwiększyć złożoność architektury aplikacji.

7. Wdrożenie: Aby zaimplementować wzorzec aplikacji internetowej skalowalnej, firma powinna rozważyć użycie balansownika obciążenia, takiego jak NGINX, wdrożenie buforowania za pomocą technologii takich jak Redis lub Memcached oraz poziome skalowanie aplikacji przy użyciu platformy chmurowej, takiej jak AWS lub Azure. Fragmentacja bazy danych może zostać zaimplementowana przy użyciu technologii baz danych, takich jak MongoDB.

8. Powiązane wzorce: Wzorce powiązane, które mogą okazać się przydatne w połączeniu z wzorcem aplikacji internetowej skalowalnej, obejmują:

  • Architektura mikroserwisów: dzielenie aplikacji na mniejsze, łatwiejsze w zarządzaniu usługi, które mogą być skalowane niezależnie.
  • Brama interfejsu API: zapewnianie jednego punktu wejścia do usług aplikacji i zarządzanie ruchem.

9. Odwołania: Niektóre odwołania, które mogą okazać się przydatne przy tworzeniu wzorca aplikacji internetowej skalowalnej, obejmują:

  • High Scalability (blog):
  • Tworzenie skalowalnych stron internetowych (książka) przez Cala Hendersona

Wykorzystując ten wzorzec architektoniczny, firma może zaoszczędzić czas i wysiłek przy tworzeniu skalowalnej aplikacji internetowej do zarządzania relacjami z klientami. Wzorzec oferuje sprawdzoną odpowiedź na typowy problem i może być łatwo dostosowany do specyficznych potrzeb i ograniczeń firmy.

Przykład wzorca architektonicznego w kontekście jednokrotnego logowania

Oto przykład wzorca architektonicznego w kontekście jednokrotnego logowania (SSO):

Two Factor Multi-Factor Authentication Security Concept

1. Nazwa wzorca: Jednokrotne logowanie (SSO)

2. Problem: Wiele aplikacji w organizacji wymaga od użytkowników osobnego uwierzytelniania, co prowadzi do złego doświadczenia użytkownika i zwiększonego obciążenia administracyjnego związane z zarządzaniem kontami użytkowników.

3. Kontekst: Organizacja posiada wiele aplikacji, które wymagają od użytkowników osobnego uwierzytelniania, co powoduje frustrację i zamieszanie wśród użytkowników. Organizacja chce zapewnić płynne doświadczenie użytkownika, pozwalając użytkownikom na uwierzytelnienie raz i dostęp do wszystkich aplikacji bez konieczności ponownego wpisywania danych logowania.

4. Rozwiązanie: Wzorzec jednokrotnego logowania oferuje rozwiązanie umożliwiające użytkownikom uwierzytelnienie raz i dostęp do wielu aplikacji bez konieczności ponownego wpisywania danych. Kluczowe elementy wzorca obejmują:

  • Dostawca tożsamości (IdP): usługa centralna, która uwierzytelnia użytkowników i udziela tokenów lub potwierdzeń, które mogą być używane do uzyskania dostępu do innych aplikacji.
  • Dostawca usługi (SP): aplikacja lub usługa, która opiera się na IdP w celu uwierzytelnienia użytkowników i udziela dostępu na podstawie tokenów lub potwierdzeń dostarczonych przez IdP.
  • Standardowe protokoły: wykorzystywanie standardów branżowych, takich jak SAML, OAuth lub OpenID Connect, aby umożliwić komunikację między IdP a SP.

5. Korzyści: Wykorzystując wzorzec jednokrotnego logowania, organizacja może zapewnić płynne doświadczenie użytkownika i zmniejszyć obciążenie administracyjne związane z zarządzaniem kontami użytkowników. Użytkownicy muszą się uwierzytelnić tylko raz i mogą następnie uzyskać dostęp do wszystkich aplikacji bez konieczności zapamiętywania wielu zestawów danych logowania. Może to poprawić satysfakcję użytkowników i zmniejszyć koszty obsługi helpdesku.

6. Kompromisy: Wdrożenie wzorca jednokrotnego logowania wymaga dodatkowej infrastruktury i zasobów, co może zwiększyć koszty. Dodatkowo, integracja z istniejącymi aplikacjami może wymagać rozwoju niestandardowego lub konfiguracji, co może zwiększyć złożoność.

7. Wdrożenie: Aby zaimplementować wzorzec jednokrotnego logowania, organizacja powinna wybrać dostawcę tożsamości obsługujący standardowe protokoły branżowe, takie jak SAML, OAuth lub OpenID Connect. Dostawcy usług powinni być skonfigurowani tak, aby polegali na IdP podczas uwierzytelniania i autoryzacji. Istniejące aplikacje mogą wymagać integracji z IdP, co może wymagać rozwoju niestandardowego lub konfiguracji.

8. Powiązane wzorce: Powiązane wzorce, które mogą być przydatne w połączeniu z wzorcem jednokrotnego logowania, obejmują:

  • Tożsamość federacyjna: rozszerzenie wzorca jednokrotnego logowania w celu obsługi uwierzytelniania między organizacjami lub domenami.
  • Kontrola dostępu oparta na atrybutach: wykorzystywanie atrybutów użytkownika dostarczanych przez IdP w celu kontroli dostępu do zasobów w aplikacjach.

9. Odwołania: Niektóre odwołania, które mogą być przydatne przy tworzeniu wzorca jednokrotnego logowania, obejmują:

  • Jednokrotne logowanie (SSO) (Wikipedia)
  • Omówienie techniczne SAML (OASIS)

Wykorzystując ten wzorzec architektoniczny, organizacja może poprawić doświadczenie użytkownika i zmniejszyć obciążenie administracyjne, wprowadzając rozwiązanie jednokrotnego logowania, które pozwala użytkownikom uzyskiwać dostęp do wielu aplikacji bez konieczności ponownego wpisywania poświadczeń. Wzorzec oferuje sprawdzoną odpowiedź na typowy problem i może być łatwo dostosowany do specyficznych potrzeb i ograniczeń organizacji.

Wzorce architektury przedsiębiorstwa w porównaniu do wzorców architektury oprogramowania

Wzorce architektury przedsiębiorstwa i wzorce architektury oprogramowania są powiązane, ale rozróżnione pojęcia.

Wzorce architektury oprogramowania skupiają się na projektowaniu i wdrażaniu pojedynczych systemów oprogramowania lub aplikacji. Zapewniają zestaw wytycznych i najlepszych rozwiązań w zakresie projektowania i wdrażania elementów oprogramowania systemu, takich jak jego moduły, interfejsy i interakcje.

Wzorce architektury przedsiębiorstwa skupiają się za to na projektowaniu i dopasowaniu wielu systemów oprogramowania i aplikacji w obrębie organizacji. Zapewniają zestaw wytycznych i najlepszych rozwiązań w zakresie projektowania i wdrażania architektury ogólnej przedsiębiorstwa, w tym jej procesów biznesowych, struktur danych i infrastruktury technologicznej.

Wzorce architektury przedsiębiorstwa zazwyczaj rozwiązywają problemy takie jak integracja systemów, wzajemna kompatybilność i skalowalność, które nie są typowo omawiane przez wzorce architektury oprogramowania. Zwracają również uwagę na szerszy kontekst biznesowy, w którym wdrażane są systemy oprogramowania, i dążą do dopasowania systemów IT do celów i celów organizacyjnych.

Przykłady wzorców architektury przedsiębiorstwa obejmują architekturę opartą na usługach (SOA), zarządzanie procesami biznesowymi (BPM) oraz wzorce integracji przedsiębiorstwa (EIP), podczas gdy przykłady wzorców architektury oprogramowania obejmują Model-View-Controller (MVC), mikroserwisy i architekturę warstwową.

Wzorce architektury oprogramowania

Wzorce architektury oprogramowania to ponownie używane rozwiązania problemów występujących powszechnie w projektowaniu oprogramowania. Zapewniają strukturalny podejście do projektowania i wdrażania systemów oprogramowania, definiując zestaw zasad i wytycznych, które pomagają zapewnić odporność, skalowalność i utrzymywalność systemu.

Wzorce architektury oprogramowania zapewniają widok najwyższego poziomu systemu, identyfikując jego kluczowe komponenty i ich interakcje. Określają relacje między tymi komponentami i zapewniają zestaw zasad, jak powinny komunikować się i działać razem.

Wykorzystując wzorce architektury oprogramowania, programiści mogą oszczędzić czas i wysiłek, ponownie używając sprawdzonych rozwiązań dla typowych problemów, zamiast zaczynać od zera przy każdym nowym projekcie. Może to pomóc poprawić jakość oprogramowania, a także zmniejszyć czas i koszty rozwoju.

Przykłady wzorców architektury oprogramowania obejmują Model-View-Controller (MVC), mikroserwisy, architekturę warstwową, architekturę opartą na usługach (SOA) oraz architekturę opartą na zdarzeniach (EDA).

Oto niektóre popularne wzorce architektury oprogramowania:

  1. Wzorzec Model-View-Controller (MVC): ten wzorzec dzieli aplikację na trzy wzajemnie powiązane komponenty – Model, Widok i Kontroler – w celu ułatwienia zarządzania złożonością i osiągnięcia rozdzielenia odpowiedzialności.
  2. Architektura mikroserwisów: ten wzorzec dzieli aplikację na mniejsze, niezależnie wdrażalne usługi, które mogą być rozwijane, wdrażane i skalowane oddzielnie.
  3. Architektura warstwowa: ten wzorzec dzieli aplikację na logiczne warstwy, każda z odpowiedzialnością za określony aspekt funkcjonalności aplikacji, w celu zapewnienia modułowości i rozdzielenia odpowiedzialności.
  4. Architektura oparta na usługach (SOA): ten wzorzec to podejście architektoniczne do budowania systemów rozproszonych, które wykorzystują usługi jako podstawowe elementy budowlane.
  5. Architektura oparta na zdarzeniach (EDA): ten wzorzec podkreśla produkcję, wykrywanie, zużycie i reakcję na zdarzenia zachodzące w systemie, umożliwiając bardziej elastyczną i skalowalną architekturę.
  6. Projektowanie zorientowane na domenę (DDD): ten wzorzec zachęca do stosowania wspólnej języka i modelu do opisywania domeny problemu, co prowadzi do bardziej utrzymywalnego i zrozumiałego kodu źródłowego.
  7. Architektura sześcienna: ten wzorzec strukturyzuje aplikację wokół centralnego jądra, z portami i adapterami, które umożliwiają komunikację między jądrem a systemami zewnętrznymi.
  8. CQRS (segregacja odpowiedzialności poleceń i zapytań): ten wzorzec oddziela modele odczytu i zapisu aplikacji, umożliwiając bardziej efektywne zapytania i poprawę skalowalności.
  9. Architektura reaktywna: ten wzorzec to zbiór zasad projektowych, które mają na celu budowę odpornych, skalowalnych i reaktywnych systemów, które mogą reagować na zmiany w środowisku.
  10. Czysta architektura: ten wzorzec podkreśla rozdzielenie odpowiedzialności między różnymi warstwami aplikacji, z celem wytworzenia kodu, który jest łatwy do odczytania, testowania i utrzymania.

Podsumowanie

Wzorce architektury to cenna technika projektowania w architekturze przedsiębiorstwa, która oferuje architektom sposób projektowania skutecznych rozwiązań dla typowych problemów. Dzięki dostarczaniu szablonu do projektowania rozwiązań, które zostały już udowodnione jako skuteczne, wzorce architektury mogą pomóc architektom oszczędzić czas i zasoby, jednocześnie poprawiając ogólną jakość rozwiązania. W tym artykule przedstawiliśmy przykład wzorca architektury w kontekście rozwoju aplikacji biznesowych, a konkretnie w kontekście jednokrotnego logowania (SSO). Wykorzystując wzorzec jednokrotnego logowania, organizacje mogą zapewnić płynne doświadczenie użytkownika i zmniejszyć koszty administracyjne związane z zarządzaniem kontami użytkowników, jednocześnie poprawiając satysfakcję użytkowników i redukując koszty obsługi helpdesku.

Dodaj komentarz