Читать книгу Mikroserwisy. Wzorce z przykładami w języku Java - Chris Richardson - Страница 13

1.1.1. Architektura aplikacji FTGO

Оглавление

FTGO jest typową korporacyjną aplikacją Java. Rysunek 1.1 pokazuje jej architekturę. Aplikacja FTGO ma architekturę heksagonalną, która jest stylem architektonicznym opisanym bardziej szczegółowo w rozdziale 2. W architekturze heksagonalnej rdzeń aplikacji składa się z logiki biznesowej. Logikę biznesową otaczają różne adaptery, które implementują interfejsy użytkownika i integrują się z systemami zewnętrznymi.


Rysunek 1.1. Aplikacja FTGO ma architekturę heksagonalną. Składa się z logiki biznesowej otoczonej adapterami, które implementują interfejsy użytkownika i współpracują z systemami zewnętrznymi, takimi jak aplikacje mobilne i usługi w chmurze, w celu realizacji płatności, przesyłania wiadomości i e-maili

Logika biznesowa składa się z modułów, z których każdy jest zbiorem obiektów domenowych. Przykładami modułów są: Order Management, Delivery Management, Billing i Payments. Istnieje kilka adapterów, które współpracują z systemami zewnętrznymi. Niektóre z nich to adaptery wejściowe, które obsługują żądania, wywołując logikę biznesową. Przykładami są adaptery REST API i Web UI. Istnieją także adaptery wyjściowe, które umożliwiają logice biznesowej dostęp do bazy danych MySQL i wywoływanie usług w chmurze, takich jak Twilio i Stripe.

Mimo logicznej modułowej architektury aplikacja FTGO została spakowana jako pojedynczy plik WAR. Aplikacja jest przykładem powszechnie stosowanego monolitycznego stylu architektury oprogramowania, który tworzy system jako pojedynczy wykonywalny lub możliwy do wdrożenia komponent. Gdyby aplikacja FTGO została napisana w języku Go (GoLang), byłby to pojedynczy plik wykonywalny. Wersja aplikacji w Ruby lub NodeJS byłaby pojedynczym katalogiem z hierarchią kodu źródłowego. Monolityczna architektura nie jest z natury zła. Programiści FTGO podjęli dobrą decyzję, wybierając do swoich zastosowań architekturę monolityczną.

Mikroserwisy. Wzorce z przykładami w języku Java

Подняться наверх