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

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

27/43
Recursos
  • Llamado asíncrono, un componente llama a otro y luego evalúan la respuesta cuándo la necesitan, no espera respuesta para poder continuar.

  • Llamado sincrónico, el emisor espera y no sigue ejecutando hasta que recibe resultado por parte del receptor.

  • Cliente / servidor: La comunicación va a ser siempre del cliente hacia el servidor, la diferencia en este caso con respecto a los llamados síncronos, es que el cliente no sabe exactamente quien es el servidor. Trata de la forma en que están distribuidos los componentes.

Aportes 8

Preguntas 2

Ordenar por:

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

Llamado asincrónico
Un componente llama a otro. pero no espera a que termine esta ejecución, sigue con su trabajo y en algún momento evaluara cual fue el resultado. Típico en sistemas desconectados.

Llamado sincrónico
El emisor envía un mensaje al receptor y no sigue ejecutando hasta que no reciba el resultado. Típico en lenguajes orientado a objetos

Cliente servidor
La comunicación es del cliente al servidor y el cliente queda esperando la respuesta.

Apuntes:

Llamado asíncrono / síncrono. Modelo cliente servidor

Llamado asíncrono. Un componente llama a otro, este componente sabe a quién está llamando, pero no espera a que termine esa ejecución, simplemente sigue con su trabajo y en algún momento evaluará cuál es el resultado de esa ejecución.

Llamado síncrono. El emisor envía un mensaje al receptor y espera, es decir no sigue ejecutando, hasta que no recibe resultado.

Cliente - Servidor. Tenemos un componente tipo cliente y un componente tipo servidor, la comunicación va a ser siempre de cliente a servidor y el cliente va a esperar siempre la respuesta.

Conectores Específicos:

  • Llamado Asíncrono: Un componente sabe que debe llamar a otro especifico, peor no espera a que termine esa ejecución; sigue con su trabajo y en algún momento evaluará la ejecución.
  • Llamado Síncronico: El emisor envía una petición al receptor y espera la respuesta de la ejecución.
  • Cliente / Servidor: Trata sobre la forma es que están distribuidos los componentes.

Cuando se hace un llamado asincrónicoel sistema se sigue ejectuando sin esperar la respuesta de ese llamado.

En el caso de un llamado sincrónico el sistema para hasta que recibe la respuesta y luego sigue con la ejecución.

Gracias!!

⭐️⭐️⭐️
Conectores:
🤖
• Llamado asíncrono, Un componente llama a otro y luego evalúan la respuesta cuándo la necesitan, no espera respuesta para poder continuar.
🤖
• Llamado sincrónico, El emisor espera y no sigue ejecutando hasta que recibe resultado por parte del receptor.
🤖
• Cliente / servidor La comunicación va a ser siempre del cliente hacia el servidor, la diferencia en este caso con respecto a los llamados síncronos, es que el cliente no sabe exactamente quien es el servidor. Trata de la forma en que están distribuidos los componentes.

Síncrono: La respuesta sucede en el presente, una operación síncrona esperará el resultado.
Asíncrono: La respuesta sucede a futuro, una operación asíncrona no esperará el resultado.

#### Llamado Asincrónico El **llamado asíncrono** es un tipo de comunicación en el que un componente (el emisor) invoca a otro componente (el receptor) pero no espera a que el receptor procese la solicitud y devuelva una respuesta. En su lugar, el emisor continúa ejecutándose y puede evaluar la respuesta en un momento posterior, cuando realmente la necesite. Este enfoque es especialmente útil en situaciones donde el tiempo de respuesta del receptor puede ser variable o en operaciones que pueden tardar un tiempo considerable. ##### Características: * **No Bloqueante**: El emisor no se detiene para esperar la respuesta, lo que permite una mayor eficiencia en la ejecución. * **Manejo de Respuestas**: A menudo utiliza callbacks, promesas o mecanismos de suscripción para manejar la respuesta cuando esté disponible. * **Escalabilidad**: Aumenta la capacidad del sistema para manejar múltiples solicitudes simultáneamente, ya que la espera no bloquea el hilo de ejecución. ##### Ejemplo: Un ejemplo común de llamado asíncrono es una aplicación web que realiza una solicitud a un servidor para cargar datos. La interfaz de usuario puede seguir funcionando mientras se cargan esos datos en segundo plano. Esto es típico en aplicaciones que utilizan AJAX, donde el navegador puede solicitar datos sin interrumpir la experiencia del usuario. #### Llamado Sincrónico En contraste, el **llamado sincrónico** implica que el emisor espera a que el receptor complete el procesamiento de la solicitud y devuelva una respuesta antes de continuar con su ejecución. Este modelo puede ser más simple de implementar en algunos casos, pero puede llevar a bloqueos, especialmente si el receptor tarda más de lo esperado en responder. ##### Características: * **Bloqueante**: El emisor se detiene hasta que recibe una respuesta, lo que puede llevar a una menor eficiencia en algunos escenarios. * **Simplicidad**: La implementación puede ser más directa, ya que la secuencia de llamadas es lineal. * **Control**: El emisor tiene un control más inmediato sobre el flujo de ejecución, lo que puede ser beneficioso en ciertas aplicaciones críticas donde se necesita una respuesta antes de proceder. ##### Ejemplo: Un ejemplo clásico de llamado sincrónico es una aplicación que consulta una base de datos. En este caso, el código que realiza la consulta debe esperar hasta que la base de datos devuelva los datos antes de continuar con la siguiente línea de código. ### Modelo Cliente/Servidor El **modelo cliente/servidor** es una arquitectura fundamental en la informática que define cómo los componentes de un sistema se comunican entre sí. En este modelo, la comunicación fluye siempre del cliente hacia el servidor. A continuación, se describen sus características y funcionamiento: #### Características del Modelo Cliente/Servidor: * **Separación de Roles**: Los clientes son las entidades que realizan solicitudes de servicio, mientras que los servidores son las que proporcionan esos servicios. * **Interacción de Solicitud y Respuesta**: Un cliente envía una solicitud al servidor, y el servidor procesa esa solicitud y devuelve una respuesta. Esta interacción puede ser sincrónica o asincrónica. * **Desconocimiento del Servidor por Parte del Cliente**: Una característica distintiva es que el cliente no necesariamente sabe quién es el servidor. Puede haber múltiples servidores disponibles, y el cliente puede interactuar con diferentes servidores en diferentes momentos. * **Distribución de Componentes**: El modelo permite que los componentes estén distribuidos en diferentes máquinas o entornos. Esto es esencial para aplicaciones escalables y en la nube. #### Ejemplo: En un sistema de control de inventarios, un cliente podría ser una aplicación de escritorio que permite a los empleados consultar y actualizar información de productos. Cuando un empleado añade un nuevo producto, el cliente envía una solicitud al servidor que maneja la base de datos del inventario. El servidor procesa la solicitud y devuelve una respuesta confirmando la acción. En un entorno real, el cliente no necesita saber cuál es la IP o el nombre del servidor, ya que puede haber varios servidores que gestionen las solicitudes en función de la carga o la disponibilidad.