miniatura|300x300px|Les aplicacions monolítiques es poden comparar amb els monòlits, com ara Uluru, Austràlia: una gran roca (mono) única (lit) miniatura|Aplicació monolítica v0.4 En enginyeria de programari, una aplicació monolítica és una única aplicació de programari unificada que és autònoma i independent d'altres aplicacions, però que normalment no té flexibilitat. Hi ha avantatges i desavantatges de crear aplicacions en un estil monolític d' arquitectura de programari, depenent dels requisits. Les aplicacions monolítices són relativament simples i tenen un cost baix, però els seus inconvenients són la manca d' elasticitat, tolerància a fallades i escalabilitat. Els estils alternatius a les aplicacions monolítiques inclouen arquitectures multinivell, computació distribuïda i microserveis. Malgrat la seva popularitat en els darrers anys, les aplicacions monolítiques continuen sent una bona opció per a aplicacions amb un equip petit i poca complexitat. Tanmateix, un cop es torna massa complexa, podeu considerar refactoritzar-la en microserveis o una aplicació distribuïda. Tingueu en compte que una aplicació monolítica implementada en una sola màquina pot tenir un rendiment prou elevat per a la vostra càrrega de treball actual, però és menys disponible, menys duradora, menys canviable, menys ajustada i menys escalable que un sistema distribuït ben dissenyat.

La filosofia de disseny és que l'aplicació no només és responsable d'una tasca en particular, sinó que pot realitzar tots els passos necessaris per completar una funció en particular. Algunes aplicacions de finances personals són monolítiques en el sentit que ajuden l'usuari a dur a terme una tasca completa, de principi a fi, i són cups de dades privades en lloc de parts d'un sistema més gran d'aplicacions que funcionen juntes. Alguns processadors de text són aplicacions monolítiques. Aquestes aplicacions de vegades s'associen amb ordinadors centrals.

En enginyeria de programari, una aplicació monolítica descriu una aplicació de programari dissenyada com un únic servei. En determinats escenaris, poden ser desitjables diversos serveis, ja que poden facilitar el manteniment permetent la reparació o la substitució de parts de l'aplicació sense necessitat de substitució total.

La modularitat s'aconsegueix en diversos graus mitjançant diferents enfocaments de programació modular. La modularitat basada en codi permet als desenvolupadors reutilitzar i reparar parts de l'aplicació, però es necessiten eines de desenvolupament per dur a terme aquestes funcions de manteniment (per exemple, pot ser necessari recompilar l'aplicació). La modularitat basada en objectes proporciona l'aplicació com una col·lecció de fitxers executables separats que es poden mantenir i substituir de manera independent sense tornar a implementar tota l'aplicació (per exemple, la biblioteca d'enllaç dinàmic (DLL) de Microsoft; fitxers d'objectes compartits de Sun/UNIX). Algunes capacitats de missatgeria d'objectes permeten que les aplicacions basades en objectes es distribueixin entre diversos ordinadors (per exemple, el model d'objectes components (COM) de Microsoft). Les arquitectures orientades a serveis utilitzen estàndards/protocols de comunicació específics per comunicar-se entre mòduls.

En el seu ús original, el terme "monolític" descrivia enormes aplicacions de mainframe sense modularitat utilitzable. Això, en combinació amb el ràpid augment de la potència computacional i, per tant, el ràpid augment de la complexitat dels problemes que es podien abordar amb programari, va resultar en sistemes impossibles de mantenir i la "crisi del programari".

Patrons Aquests són els patrons arquitectònics comuns que s'utilitzen per a aplicacions monolítiques, cadascun amb els seus propis inconvenients:

Arquitectura en capes Monòlit modular Arquitectura del micronucli

Referències

Categoria:Programari Categoria:Sistemes operatius