Conectores en arquitectura: tipos y cuándo usarlos

Clase 26 de 43Curso Profesional de Arquitectura de Software

Contenido del curso

Atributos de calidad

Patrones de arquitectura

Diseño de una arquitectura

Resumen

Diseñar con criterio exige unir piezas clave de arquitectura de software con foco en valor y calidad. Aquí se repasan, con claridad práctica, las herramientas para pasar de requerimientos y restricciones a estilos y patrones de arquitectura, identificando riesgos, y culminando en escenarios y tácticas que alinean el diseño con los atributos de calidad de la solución.

¿Cómo se integra la arquitectura de software con requerimientos y riesgos?

Partimos de entender qué afecta el diseño: requerimientos y restricciones guían decisiones de alto impacto. Desde allí, los estilos de arquitectura orientan el diseño a gran escala y revelan riesgos que ayudan a priorizar el trabajo de arquitectura. Luego, los atributos de calidad se conectan con requerimientos funcionales y no funcionales para aclarar qué resolver y dónde hay incertidumbre o complejidad. Los patrones de arquitectura bajan al detalle la solución de problemas concretos. Finalmente, escenarios y tácticas enlazan los atributos con opciones de implementación: se plantea un estímulo como una falla o un ataque, se analizan respuestas posibles y se elige el camino para llegar a buen puerto.

  • Identificar restricciones y su impacto en el diseño.
  • Elegir estilos de arquitectura y reconocer riesgos tempranos.
  • Mapear atributos de calidad a requerimientos funcionales y no funcionales.
  • Seleccionar patrones para problemas específicos.
  • Formular escenarios con estímulo y evaluar tácticas de respuesta.

¿Qué son los componentes y cómo se organizan?

Los componentes son partes del sistema que cumplen una función específica. En una arquitectura distribuida, esas partes se separan y se comunican por protocolos de red u otros mecanismos. Cada parte es un componente y, si hacemos zoom, aparecen subcomponentes internos: pueden ser objetos o capas dentro de ese componente. Mientras los componentes implementan funcionalidades clave de negocio, su comunicación es igual de relevante para la calidad y el comportamiento global.

  • Ver un sistema como conjunto de componentes con responsabilidades claras.
  • Distinguir entre componentes distribuidos y los que conviven en un monolito.
  • Analizar componentes internos: objetos o capas que colaboran.
  • Definir el rol de cada parte y cómo se coordina con las demás.

¿Qué tipos de conectores existen y cuándo usarlos?

Los conectores tipifican la comunicación entre componentes y son independientes del dominio. Un e-commerce, una red social, un sistema bancario o una aplicación móvil pueden usar los mismos tipos. Elegir bien el conector es clave para cumplir los atributos de calidad y sostener la evolución del diseño.

  • Llamado a procedimiento: invocar de un componente a otro y esperar respuesta.
  • Enlace: vínculo fuerte entre componentes que incluso condiciona la compilación, típico en lenguajes compilados o en un mismo monolito.
  • Evento: un componente notifica que algo sucedió y otros escuchan y reaccionan.
  • Adaptador: compatibiliza la interfaz de un componente con la de otro para que colaboren aunque no hayan sido pensados juntos.
  • Acceso a datos: facilita el uso de recursos compartidos como bases de datos, sistemas de archivos o una API, ajustando la interfaz de los datos a la que espera el sistema.
  • Flujo o stream: la información circula de forma continua y otro componente consume parte o la totalidad de ese flujo.
  • Arbitraje: coordina quién accede a un recurso o quién realiza una tarea, y permite distribuir comportamientos, por ejemplo en un A/B test.
  • Distribuidor: desde un componente se envía un mensaje a muchos otros, o se conectan muchos con muchos según la necesidad.

Cada elección de conector influye en el comportamiento del sistema y se combina con componentes, patrones, escenarios y tácticas para alcanzar un diseño específico y coherente con los atributos de calidad buscados.

¿Te gustaría comentar un escenario real en el que estés evaluando conectores o tácticas?

      Conectores en arquitectura: tipos y cuándo usarlos