El patrón de arquitectura en capas es uno de los patrones más comunes. La idea detrás de un patrón en capas es que los componentes con las mismas funcionalidades se organizarán en capas horizontales. Como resultado, cada capa cumple una función específica dentro de la aplicación.

En este patrón, no tenemos una restricción en la cantidad de capas que puede tener la aplicación. En esto, también promovemos el concepto de separación de intereses. El estilo de patrón en capas abstrae la vista del software como un todo; al mismo tiempo que proporciona suficientes detalles para comprender las funciones y responsabilidades de las capas individuales y la relación entre ellas. Una implementación típica del patrón en capas podría ser:

  • Interfaz de usuario/capa de presentación : renderiza y ejecuta la interfaz de usuario, envía solicitudes a la aplicación del servidor.
  • Capa de aplicación : contiene la capa de presentación, la capa de aplicación, la capa de dominio y la capa de persistencia.
  • Dominio/capa empresarial : esta capa contiene toda la lógica empresarial, las entidades, los eventos y otros tipos de objetos que contienen la lógica empresarial.
  • Capa de base de datos : esta sería la capa de datos y se usaría para la persistencia de los datos, que serían utilizados por el servidor de aplicaciones.

Ejemplo : aplicación de escritorio, comercio electrónico o aplicaciones basadas en web, etc.

Es el patrón de arquitectura más simple, que consta de un servidor y varios clientes. Este patrón es una estructura distribuida que divide tareas/cargas de trabajo entre los proveedores de un recurso/servicio, denominados servidores, y los solicitantes de servicios denominados clientes.

En el patrón cliente-servidor, cuando el cliente envía una solicitud de datos al servidor, el servidor acepta el proceso solicitado y responde con los datos requeridos al cliente. Los clientes no comparten ninguno de sus recursos.

Ejemplos : correo electrónico, uso compartido de documentos, banca, etc.

Este patrón es un patrón de arquitectura asíncrona distribuida para crear aplicaciones reactivas altamente escalables. Los trajes para cada nivel de aplicación se apilan, desde los más pequeños hasta los más complejos. La idea principal de este patrón es entregar y procesar eventos de forma asíncrona.

Este patrón tiene cuatro componentes principales:

  1. Origen del evento
  2. Oyente de eventos
  3. Canal
  4. Autobús de eventos.

Las fuentes publican mensajes en canales particulares en un bus de eventos. Los oyentes se suscriben a canales particulares. Los oyentes reciben mensajes que se publican en un canal al que se han suscrito.

Ejemplos : comercio electrónico, desarrollo de aplicaciones móviles, servicios de notificación, etc.

Patrón de intermediario

Este patrón se puede utilizar para estructurar sistemas distribuidos con componentes desacoplados que interactúan mediante invocaciones de servicios remotos. Un componente intermediario es responsable de la coordinación de la comunicación entre los componentes; como el reenvío de solicitudes, así como la transmisión de resultados y excepciones.

Los servidores publican sus capacidades (servicios y características) a un intermediario . Los clientes solicitan un servicio del corredor , y el corredor luego redirige al cliente a un servicio adecuado desde su registro.

Ejemplos : programas de software de intermediación de mensajes, Apache ActiveMQ, Apache Kafka, RabbitMQ, JBoss Messaging, etc.

En este patrón, los servicios se comunican mediante protocolos síncronos como HTTP/REST o protocolos asíncronos como AMQP (Advanced Message Queuing Protocol). Los servicios se pueden desarrollar e implementar de forma independiente, y cada servicio tendrá su propia base de datos de otros servicios. La coherencia de los datos entre los servicios se mantiene mediante el uso de Saga Pattern (una secuencia de transacciones locales).

Ejemplos : se puede implementar en muchos casos de uso, especialmente en una canalización de datos extensa.

Patrón de Peer to Peer

Como en la arquitectura cliente-servidor común, varios clientes se comunican con un servidor central. Pero un patrón peer-to-peer (P2P) consiste en una red descentralizada de pares

En este patrón, los nodos se comportan como clientes y servidores. Los pares pueden funcionar tanto como cliente, solicitando servicios de otros pares, como servidor, brindando servicios a otros pares.

Las redes P2P distribuyen la carga de trabajo entre pares, y todos los pares contribuyen y consumen recursos dentro de la red sin necesidad de un servidor centralizado. Un compañero puede cambiar su rol dinámicamente con el tiempo.

Ejemplos : redes de intercambio de archivos, protocolos multimedia PDTP, P2PTV, bitcoin, blockchain, etc.

Patrón de Blackboard

Este patrón es útil para problemas para los que no se conocen estrategias de solución deterministas.

Todos los componentes tienen acceso a la pizarra. Los componentes pueden producir nuevos objetos de datos que se agregarán a la pizarra. Los componentes buscan tipos específicos de datos en la pizarra y los encontrarían mediante la coincidencia de patrones con la fuente de conocimiento existente.

Este patrón consta de tres componentes principales:

  • pizarra: una memoria global estructurada que contiene objetos del espacio de solución
  • fuente de conocimiento: módulos especializados con su propia representación
  • componente de control: selecciona, configura y ejecuta módulos.

Ejemplos : reconocimiento de velocidad, identificación de estructuras de proteínas, interpretación de señales de sonar, programas de aprendizaje automático, etc.


Compartir:

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.