Introducción al curso

1

Introducción al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definición

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecución

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monolíticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisión de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Diseño orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Diseño de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un diseño: Tipos de conectores

27

Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusión

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y tácticas

31

Escenarios: Disponibilidad, detección, reparación

32

Escenarios: Reintroducción y prevención

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos dominó y diferir enlace

35

Escenarios: Eficiencia de ejecución

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de diseño: Arquitectura en evolución

40

Último análisis a PlatziServicios

Modelado y documentación de arquitectura

41

Cómo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentación vs implementación

43

Conclusiones del curso

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Herramientas y partes de un diseño: Tipos de conectores

26/43
Recursos

Aportes 9

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Herramientas y partes de un diseño:

La arquitectura está separada en dos partes fundamentales:
Componentes: Son partes de nuestro sistema que cumplen una función específica
Estos mismos componentes “modulares” pueden estar formados por más componentes, ya bien objetos o capas, que actuan como subcomponentes en su interior.
La comunicación existente entre ellos se lleva a cabo por medio de conectores.
Conectores: Estos no están asociados a un dominio específico y son independientes a la hora de su análisis, pudiendo un e-commerce o una red social el mismo tipo de conector.


Tipos de conectores:

  • Llamado a procedimiento: Invocan de un componente a otro componente y esperan una respuesta.

  • Enlace: Vinculan fuertemente un componente a otro, incluso para la compilación. Visto en lenguajes compilados, y en componentes que forman parte de un monolito

  • Evento: Permiten a un componente notificar un evento (que algo sucedió), y a otros componentes escuchar y reaccionar ante un evento.

  • Adaptador: Ayudan a compatibilizar la interfaz de un componente con la de otro componente

  • Acceso a datos: Nos ayudan a acceder a recursos compartidos de datos, como APIs, sistemas de archivos y bases de datos. Compatibiliza la interfaz del dato con la interfaz que espera el componente que estamos usando.

  • Flujo: Permite la recolección de datos en un flujo de información continuo por parte de otro componente que tiene intereses en obtener varios o todos los datos del flujo.

  • Arbitraje: Coordinan los permisos de acceso a un recurso entre componentes y deciden quien se encarga de distribuir dichos comportamientos.
    Ej: Test A/B, teniendo varios componentes disponibles recibimos un pedido y se decide qué versión enviar para comparar diferentes atributos de calidad.

  • Distribuidor: Facilita la distribución de un mensaje a varios componentes a través de un solo conector.

Partes de la Arquitectura
Componentes
Partes del sistema que cumplen una función especifica.

Conectores
Forma de comunicación entre componentes.
Tipos de conectores

  • Llamado a procedimiento. Invocan de un componente a otro y esperan una respuesta
  • Enlace. Vinculan fuertemente un componente con otro. Incluso para compilar.
  • Evento. Permiten a un componente notificar que algo sucedió y a otro componente escucharlas y reaccionar
  • Adaptador. Ayudan a compatibilizar interfaces entre componentes.
  • Acceso a datos. Acceder a recursos compartidos de datos.
  • Flujo. La información esta todo el tiempo pasando y otro componente esta interesado en alguno
  • Arbitraje. Como los componentes se coordinan para saber si uno tiene acceso a un recurso y quien hace el trabajo.
  • Distribuidor. Ayuda a poder distribuir un mensaje a muchos componentes. Conectar un componente con muchos otros o muchos con muchos dependiendo nuestras necesidades.

Las Herramientas

  • Requerimientos
  • Restricciones
  • Atributos de Calidad
  • Estilos de Arquitectura
  • Patrones de Arquitectura
  • Escenarios y Tácticas.

Todas estas herramientas se combinan para realizar un diseño especifico de una arquitectura.


<h3>Por dónde Empezamos?</h3>

La arquitectura se separa en dos partes muy importantes:

  • Componentes: Son parte de nuestro sistema que cumplen una función especifica. Los componentes internamente pueden ser capas o objetos. Todo depende de que tipo de Estilo o patron se utilice.
  • Conectores: Para el negocio es relevante como se comunican los componentes entre ellos. Para esto existen los conectores. Es decir, la forma de comunicación entre componentes. Los conectores no están conectados a un dominio especifico por lo que facilita la separación de los componentes para su análisis.

<h3>Tipos de Conectores:</h3>
  • Llamado a procedimiento: Invocar un componente a otro y espera una respuesta.
  • Enlace: Puede que no sean dependientes, sino que son parte de un mismo monolito, conectan un componente con otro para que este lo compile.
  • Evento: Le permiten a un componente notificar que algo sucedió y a otros componentes estar escuchando esas notificaciones y reaccionar con otra funcionalidad o con algo que necesiten hacer al respecto.
  • Adaptador: Nos ayudan a compatibilizar un componente con la interfaz de otra. De esta forma nos permite conectar componente que pensábamos que no se podían conectar.
  • Acceso a datos: Pueden ser una API o BD, este conector nos ayuda a compatibilizar los datos de un componente con la interfaz diferente de un componente distinto que se encuentra esperando por dicho dato.
  • Flujo: Son conectores donde la información esta todo el tiempo pasando y otro componente esta interesado en ver ese flujo de datos e ir obteniendo quizás alguno o todos.
  • Arbitraje: Se trata de componentes que se coordinan para delegarse las tareas o comportamientos.
  • Distribuidor: Dado un componente poder distribuir mensajes a otros componentes.

Tipos de Conectores:

  • Llamado a procedimiento: invocar de un componentes a otro componente y esperar una respuesta.

  • Enlace: Vinculan fuertemente un componente con otro, incluso para poder compilarse. Lo vemos más en lenguajes compilados o lenguajes que dependen fuertemente entre componentes.

  • Evento: Permiten a un componente el notificar que algo sucedió, y a otros componentes estar escuchando a esa notificación, para reaccionar con otra funcionalidad o con algo que necesiten hacer al respecto.

  • Adaptador: Nos ayudan a compatibilizar la interfaz de un componente con la interfaz de otro componente. De esa forma podemos interconectar componentes que no estaban pensados para trabajar juntos.

  • Acceso a datos: Nos ayudan a acceder a recursos compartidos de datos (base de datos, sistemas de archivos o API que usamos como acceso común, etc.). Nos ayudan a compatibilizar la interfaz de este dato con la interfaz que espera el componente que estamos usando.

  • Flujo: Son conectores donde la información está todo el tiempo pasando y otro componente está interesado en ver ese flujo de datos. Dicho componente quiere obtener ciertos o todos los datos que están pasando.

  • Arbitraje: Tienen que ver cómo un componente y otro se coordinan para saber, por ejemplo, si es que uno tiene acceso a un recurso, o quien hace un trabajo o distribuir de alguna forma los comportamientos. Es importante si tenemos diferentes componentes disponibles y queremos hacer un Test A/B.

  • Distribuidor: Nos ayuda a dado un componente poder distribuir a muchos componentes. De esta forma podemos comunicar un mismo mensaje por medio de un mismo conector, un componente con muchos otros, o también podemos conectar muchos con muchos, dependiendo de lo que necesitemos.

Herramientas y partes de un diseño. Tipo de conectores

Pates de la arquitectura

Componentes. Partes de nuestro sistema que cumplen alguna función específica. Implementan las funcionalidades importantes para nuestro negocio.

Conectores. La forma de comunicación entre nuestros componentes.

Tipos de conectores
• Llamado a procedimiento. Invocan de un componente a otro y esperar una respuesta.
• Enlace. Vinculan fuertemente a un componente con otro incluso para poder compilarse.
• Evento. Permiten aun componente el notificar que algo sucedió y a otros componentes estar escuchando esas notificaciones y reaccionar con otra funcionalidad.
• Adaptador. Nos ayudan a compatibilizar la interfaz de un componente con la interfaz de otro, de esta manera podemos interconectar componentes que no estaban pensados para trabajar juntos.
• Acceso a datos. Nos ayudan a acceder a recursos compartidos de datos. Ayudan a compatibilizar la interfaz de este dato con la interfaz que espera el sistema o el componente que estamos utilizando.
• Flujo. Son conectores en dónde la información está todo el tiempo pasando y otro componente está interesado en ver ese flujo de datos e ir obteniendo alguno todos esos datos.
• Arbitraje. Tiene que ver con cómo un componente y otro se coordinan para saber si uno tiene acceso a un recurso o quién hace el trabajo o distribuir de alguna forma ese comportamiento.
• Distribuidor. Nos ayuda a, dado un componente, poder distribuir un mensaje a muchos otros componentes, de esta forma podemos tratar de comunicar a través de un mismo mensaje y a través de un mismo conector un componente con muchos otros o muchos con muchos.

🤖🤖🤖
La arquitectura está separada en dos partes fundamentales:
• Componentes: Son partes de nuestro sistema que cumplen una función específica
Estos mismos componentes “modulares” pueden estar formados por más componentes, ya bien objetos o capas, que actuan como subcomponentes en su interior.
La comunicación existente entre ellos se lleva a cabo por medio de conectores.
• Conectores: Estos no están asociados a un dominio específico y son independientes a la hora de su análisis, pudiendo un e-commerce o una red social el mismo tipo de conector.

Tipos de conectores:
• Llamado a procedimiento: Invocan de un componente a otro componente y esperan una respuesta.

• Enlace: Vinculan fuertemente un componente a otro, incluso para la compilación. Visto en lenguajes compilados, y en componentes que forman parte de un monolito

• Evento: Permiten a un componente notificar un evento (que algo sucedió), y a otros componentes escuchar y reaccionar ante un evento.
• Adaptador: Ayudan a compatibilizar la interfaz de un componente con la de otro componente

• Acceso a datos: Nos ayudan a acceder a recursos compartidos de datos, como APIs, sistemas de archivos y bases de datos. Compatibiliza la interfaz del dato con la interfaz que espera el componente que estamos usando.

• Flujo: Permite la recolección de datos en un flujo de información continuo por parte de otro componente que tiene intereses en obtener varios o todos los datos del flujo.

• Arbitraje: Coordinan los permisos de acceso a un recurso entre componentes y deciden quien se encarga de distribuir dichos comportamientos.

Tipos de conectores

Se puede distinguer dos tipo de elementos en una Arquitectura de Software.

  • Componentes: Son partes de nuestro sistema que cumplen una función específica.

  • Conectores: Se encargan de establecer la forma en la cual se comunican los componentes.

  • Tipos de conectores

  • Llamado a procedimiento

  • Enlace

  • Evento

  • Adaptador

  • Acceso a datos

  • Flujo

  • Arbitraje

  • Distribuidor