Tipos de arquitecturas


Arquitectura Monolítica
 

Sistema en el cual todos los módulos relevantes se encuentran empaquetados en una única pieza, y un sistema en el cual todas las funcionalidades deben desplegarse juntas (Newman, 2019).

La arquitectura monolítica es un enfoque de diseño de software en el cual una aplicación o sistema se construye como una sola entidad integral en la cual todos los elementos y funcionalidades están conectados y se ejecutan dentro de un único proceso o aplicación.







Arquitectura de software en capas

La programación por capas es una técnica de ingeniería de software propia de la programación por objetos, éstos se organizan principalmente en 3 capas: la capa de presentación o frontera, la capa de lógica de negocio o control, y la capa de datos. Siguiendo el modelo, el desarrollador se asegura avanzar en la programación del proyecto de una forma ordenada, lo cual beneficia en cuanto a reducción de costos por tiempo, debido a que se podrá avanzar de manera más segura en el desarrollo, al ser dividida la aplicación general en varios módulos y capas que pueden ser tratados de manera independiente y hasta en forma paralela.

Ricardo J. Vargas Del Valle (2007).

Consiste en organizar un sistema en partes jerárquicas y claramente definidas, lo cual beneficia la estructura, la capacidad de adaptación, el mantenimiento y la flexibilidad del software. Este método es ampliamente utilizado en programas empresariales, aplicaciones web y otros proyectos de gran envergadura para asegurar una administración efectiva y un desarrollo constante del software.
La separación de las diversas funciones y componentes de un sistema de software en capas o niveles bien definidos es un enfoque de diseño y organización de sistemas.



 


Arquitectura orientada a servicios

SOA es un estilo de Arquitectura de Software basado en la definición de servicios reutilizables, con interfaces públicas bien definidas, donde los proveedores y consumidores de servicios interactúan en forma desacoplada para realizar los procesos de negocio. Se basa en cuatro abstracciones básicas: servicios, aplicación frontend, repositorio de servicios y bus de servicios. Un servicio consiste en una implementación que provee lógica de negocio y datos, un contrato de servicio, las restricciones para el consumidor, y una interfaz que expone físicamente la funcionalidad. Las aplicación frontend consumen los servicios formando procesos de negocios. Un repositorio de servicios almacena los contratos de servicios y el bus de servicios interconecta las aplicación frontend y los servicios. 

Los servicios representan grupos lógicos de operaciones relacionadas con algún concepto del negocio. Por su parte, los procesos del negocio se realizan en servicios orientados a procesos que se componen de secuencias definidas de invocaciones a servicios, mediante una orquestación de los mismos en lo que se conoce como coreografías de servicios.

Andrea Delgado, Laura González, Federico Piedrabuena (2006)

También conocida por sus siglas SOA es un enfoque de diseño de software que permite la reutilización de sus componentes mediante el uso de interfaces de servicios que se comunican a través de una red utilizando un lenguaje compartido.

En resumen, la SOA une los componentes del software que se incorporan y se gestionan de manera independiente, y facilita su comunicación y colaboración para crear aplicaciones de software en diferentes sistemas.


 



Arquitectura de microservicios

Los microservicios se conciben como un estilo arquitectónico enfocado en desarrollar una aplicación mediante un conjunto de servicios, independientes, escalables, colaborativos, evolutivos, capaces de auto adaptarse a ecosistemas complejos.

Richardson, Bandeira y otros, 2019.

Es un método de diseño de software que se centra en la creación de una aplicación a partir de servicios autónomos que pueden ser desplegados de forma independiente. Cada servicio funciona de manera independiente y se centra en una función o característica específica de la aplicación.


 


Arquitectura cliente-servidor

Cliente-Servidor es uno de los estilos arquitectónicos distribuidos más conocidos, el cual está compuesto por dos componentes, el proveedor y el consumidor. El proveedor es un servidor que brinda una serie de servicios o recursos los cuales son consumido por el Cliente.

En una arquitectura Cliente-Servidor existe un servidor y múltiples clientes que se conectan al servidor para recuperar todos los recursos necesarios para funcionar, en este sentido, el cliente solo es una capa para representar los datos y se detonan acciones para modificar el estado del servidor, mientras que el servidor es el que hace todo el trabajo pesado.

Oscar Blancarte, 2018

Se puede encontrar un servidor y varios clientes que se conectan a dicho servidor para acceder a todos los recursos necesarios para su operación. En esta dinámica, el cliente funciona principalmente como una capa encargada de mostrar los datos y ejecuta acciones que modifican el estado del servidor, mientras que el servidor es el encargado de realizar las tareas más complejas y laboriosas.



Comentarios

Entradas populares de este blog