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

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

3D
22H
26M
32S

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?

o inicia sesi贸n.

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 鈥渕odulares鈥 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 鈥渕odulares鈥 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