Aplikacja monolityczna

Z Wikipedii, wolnej encyklopedii

W inżynierii oprogramowania, monolitycznym aplikacja opisuje jedno-warstwowych aplikację, w której interfejs użytkownika i kod dostępu do danych są połączone w jeden program z pojedynczej platformy.

Aplikacja monolityczna jest samodzielna i niezależna od innych aplikacji komputerowych. Filozofia projektowania polega na tym, że aplikacja jest odpowiedzialna nie tylko za konkretne zadanie, ale może wykonać każdy krok potrzebny do wykonania określonej funkcji. Obecnie niektóre aplikacje do finansów osobistych są monolityczne w tym sensie, że pomagają użytkownikowi wykonać kompletne zadanie, kompleksowo i stanowią prywatne silosy danych, a nie części większego systemu współpracujących ze sobą aplikacji. Niektóre edytory tekstu są aplikacjami monolitycznymi[1]. Aplikacje te są czasami powiązane z komputerami typu mainframe.

Inżynieria oprogramowania opisuje aplikację monolityczną jako zaprojektowaną bez modułowości (podziału na moduły). Ogólnie rzecz biorąc, modułowość jest pożądana, ponieważ umożliwia ponowne wykorzystanie części logiki aplikacji, a także ułatwia konserwację, umożliwiając naprawę lub wymianę części aplikacji bez konieczności wymiany hurtowej.

Modułowość jest osiągana w różnym stopniu przez różne podejścia do modularyzacji. Modułowość oparta na kodzie pozwala programistom na ponowne wykorzystanie i naprawę części aplikacji, ale narzędzia programistyczne są wymagane do wykonywania tych funkcji konserwacyjnych (np. aplikacja może wymagać ponownej kompilacji). Modułowość oparta na obiektach zapewnia aplikacji jako zbiór oddzielnych plików wykonywalnych, które mogą być niezależnie utrzymywane i zastępowane bez ponownego wdrażania całej aplikacji (np. pliki "dll" firmy Microsoft ; Pliki "obiektów współdzielonych" Sun/UNIX). Niektóre funkcje przesyłania wiadomości obiektowych pozwalają aplikacjom obiektowym na dystrybucję na wiele komputerów (np Microsoft COM+). Architektury zorientowane na usługi wykorzystują określone standardy/protokoły komunikacji do komunikacji między modułami.

Istnieje również alternatywne podejście – modularny monolit, które oznacza system monolityczny zaprojektowany w sposób modułowy. Posiada on prostszą infrastrukturę w porównaniu do np. architektury mikroserwisowej, a jednocześnie w takim systemie występują autonomiczne moduły biznesowe. Ponadto, takie podejście umożliwia łatwą migrację do architektury rozproszonej[2][3].

Przypisy[edytuj | edytuj kod]

  1. Microsoft Three-tier Application Retrieved on 3 August 2007
  2. Arkadiusz Rosłoniec, Modular software architecture: advantages and disadvantages of using monolith, microservices and modular monolith [online], Pretius, 27 kwietnia 2023 [dostęp 2023-05-25] (ang.).
  3. Modular Monolith: A Primer — Kamil Grzybek [online], www.kamilgrzybek.com [dostęp 2023-05-25].