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

Quedan menos de 24 hrs para aprender Ingl茅s, AI y m谩s a precio especial.

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

0 D铆as
1 Hrs
11 Min
14 Seg

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

16/43
Recursos

Aportes 19

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Apuntes:

Orientado a eventos / Provisi贸n de eventos

Orientado a eventos. Trata sobre c贸mo conectar componentes a trav茅s de eventos. Cada componente publica eventos a un bus de eventos com煤n y los componentes interesados a estos eventos pueden estar suscritos y luego responder al respecto. No hay otra forma de comunicaci贸n, el bus de eventos pasa ser el m茅todo principal de comunicaci贸n entre componentes. Algo complejo es saber si una acci贸n que hicimos tuvo el resultado que esper谩bamos, en general suelen ser eventualmente consistentes, lo que significa que cuando hacemos una escritura el sistema no nos garantiza que va a estar disponible hasta que ese evento no se distribuya en todas las partes que lo necesita.

Provisi贸n de eventos. En vez de que nuestra aplicaci贸n tenga el estado actual del sitio, podr铆amos tener solamente guardados los eventos que nos importan.

###Patrones: Orientado a eventos
Trata de conectar componentes a trav茅s de eventos. Cada componente puede estar subscrito (conectado) a un Bus de Eventos y el componente que este interesado en dicho evento puede responder. El bus de eventos pasa a ser el m茅todo principal de componentes.


Es dif铆cil de testear porque hay que conectar e bus de eventos con los diferentes m贸dulos, esto hace que sea mas complejo las pruebas end to end.


<h4>Provisi贸n de eventos.</h4>

Se leen de forma secuencial para conocer el estado actual y a trav茅s del log de eventos, solo guarda los eventos que importan.

Patr贸n de arquitectura Orientado a Eventos
Conecta componentes a trav茅s de eventos.
Cada componente publica eventos a un bus de eventos com煤n y los componentes interesados en estos eventos pueden estar subscritos y luego responder al respecto.
En esta arquitectura, el bus de eventos pasa a ser el m茅todo principal de comunicaci贸n entre componentes.

Caso especifico de uso de eventos.
Arquitectura Provisi贸n de eventos.
Consiste en que la App tenga el estado actual del sitio, solo guardar los eventos que nos importan.
Se leen en forma secuencial para saber el estado actual.

Con esta arquitectura se puede saber el estado en cualquier momento de su ciclo de vida

Siempre se debe estudiar el caso de uso y evaluar si es el adecuado para el desarrollo de mi soluci贸n, ya que cada patron tiene sus pros y contras

En el caso del patron orientado a eventos:
Pro: permite desligar un sistema distribuido mediante el bus, logrando asi mayor capacidad a la hora de escalar mi sistema distribuido.
Contra: Mayor dificultad a la hora de hacer pruebas end to end.
Contra: El mismo bus de eventos podria ser un punto de falla. Se debe contar con buenas capacidades para soportar el nivel de transaccionalidad del bus de eventos.

Event Sourcing by Marting Fowler: https://martinfowler.com/eaaDev/EventSourcing.html

Blockchain! Eso ser铆a event sourcing, creo.

EventSourcing tiene algo que ver con BlockChain o solo se parecen?

**Event Sourcing: Concepto y Casos de Uso** * Event Sourcing es una t茅cnica de dise帽o de software donde los cambios en el estado de una aplicaci贸n se capturan como una secuencia de eventos. Estos eventos se almacenan y pueden ser consultados o utilizados para reconstruir estados anteriores de la aplicaci贸n. * **Casos de Uso**: * **Sistemas de Control de Versiones**: Utilizan consultas temporales y reconstrucci贸n de estados pasados. * **Aplicaciones Empresariales**: Aunque menos comunes, algunas aplicaciones empresariales implementan Event Sourcing para partes espec铆ficas de su funcionalidad. * **Ventajas**: * **Auditor铆a y Depuraci贸n**: Proporciona un registro completo de cambios para auditor铆as y facilita la depuraci贸n al permitir la reproducci贸n de eventos en ambientes de prueba. * **Retroactividad y Reversibilidad**: Permite ajustar estados pasados y revertir eventos si es necesario. * **Desventajas**: * **Complejidad con Sistemas Externos**: Manejar interacciones con sistemas que no utilizan Event Sourcing puede ser complicado, especialmente para actualizaciones y consultas externas. * **Rendimiento**: Calcular estados solicitados desde un estado inicial en blanco puede ser un proceso lento si hay muchos eventos. Event Sourcing es una t茅cnica poderosa con aplicaciones espec铆ficas, especialmente 煤til para sistemas que requieren un alto nivel de trazabilidad y capacidad de reconstruir estados pasados. Sin embargo, su implementaci贸n puede a帽adir complejidad y desaf铆os de rendimiento que deben ser considerados cuidadosamente. [Event Sourcing (martinfowler.com)](https://martinfowler.com/eaaDev/EventSourcing.html)
**Event Sourcing: Concepto y Casos de Uso** * [**Definici贸n**: Event Sourcing es una t茅cnica de dise帽o de software donde los cambios en el estado de una aplicaci贸n se capturan como una secuencia de eventos](https://edgeservices.bing.com/edgesvc/chat?udsframed=1\&form=SHORUN\&clientscopes=chat,noheader,udsedgeshop,channelstable,wincopilot,ntpquery,devtoolsapi,udsinwin11,udsdlpconsent,udsfrontload,cspgrd,\&shellsig=a3c86a9a9b12b5d03c13eb5b3a9b6ec9612aee64\&setlang=es\&darkschemeovr=1#sjevt%7CDiscover.Chat.SydneyClickPageCitation%7Cadpclick%7C0%7C77189148-cf36-47bc-8b1f-d6c60365e16b). Estos eventos se almacenan y pueden ser consultados o utilizados para reconstruir estados anteriores de la aplicaci贸n. * **Casos de Uso**: * **Sistemas de Control de Versiones**: Utilizan consultas temporales y reconstrucci贸n de estados pasados. * **Aplicaciones Empresariales**: Aunque menos comunes, algunas aplicaciones empresariales implementan Event Sourcing para partes espec铆ficas de su funcionalidad. * **Ventajas**: * **Auditor铆a y Depuraci贸n**: Proporciona un registro completo de cambios para auditor铆as y facilita la depuraci贸n al permitir la reproducci贸n de eventos en ambientes de prueba. * **Retroactividad y Reversibilidad**: Permite ajustar estados pasados y revertir eventos si es necesario. * **Desventajas**: * **Complejidad con Sistemas Externos**: Manejar interacciones con sistemas que no utilizan Event Sourcing puede ser complicado, especialmente para actualizaciones y consultas externas. * **Rendimiento**: Calcular estados solicitados desde un estado inicial en blanco puede ser un proceso lento si hay muchos eventos. Event Sourcing es una t茅cnica poderosa con aplicaciones espec铆ficas, especialmente 煤til para sistemas que requieren un alto nivel de trazabilidad y capacidad de reconstruir estados pasados. Sin embargo, su implementaci贸n puede a帽adir complejidad y desaf铆os de rendimiento que deben ser considerados cuidadosamente. [Event Sourcing (martinfowler.com)](https://martinfowler.com/eaaDev/EventSourcing.html)

Patron orientado a eventos: este patron trata de conectar componentes a trav茅s de eventos. Cada componente puede estar suscrito a un Bus de Eventos y el componente que este interesado en dicho evento puede responder. El m茅todo principal pasa a ser el Bus de eventos.

  • Ventajas: Escalabilidad, despliegue, Flexibilidad.

  • Desventajas: Tests, desarrollo.

Me gusto mucho la informaci贸n que encontr茅 en esta fuente: https://reactiveprogramming.io/blog/es/estilos-arquitectonicos/eda

Orientado a eventos / Provisi贸n de eventos
Orientado a eventos. Trata sobre c贸mo conectar componentes a trav茅s de eventos. Cada componente publica eventos a un bus de eventos com煤n y los componentes interesados a estos eventos pueden estar suscritos y luego responder al respecto. No hay otra forma de comunicaci贸n, el bus de eventos pasa ser el m茅todo principal de comunicaci贸n entre componentes. Algo complejo es saber si una acci贸n que hicimos tuvo el resultado que esper谩bamos, en general suelen ser eventualmente consistentes, lo que significa que cuando hacemos una escritura el sistema no nos garantiza que va a estar disponible hasta que ese evento no se distribuya en todas las partes que lo necesita.
Provisi贸n de eventos. En vez de que nuestra aplicaci贸n tenga el estado actual del sitio, podr铆amos tener solamente guardados los eventos que nos importan.

Este patr贸n trata principalmente con eventos y tiene 4 componentes principales; fuente de evento , escucha de evento , canal y bus de evento . Las fuentes publican mensajes en canales particulares en un bus de eventos. Los oyentes se suscriben a canales particulares. Los oyentes son notificados de los mensajes que se publican en un canal al que se han suscrito anteriormente.

Recordar que todo patr贸n de dise帽o va a tener beneficios y va a tener consecuencias, por eso hay que analizar cu谩l es el mejor o el patr贸n que m谩s beneficios tiene en la soluci贸n del problema!