LAS CUATRO GRANDES CARACTERÍSTICAS DE LA PROGRAMACIÓN REACTIVA

<  VOLVER
Por: admin
mayo 11, 2020
admin
mayo 11, 2020

En el artículo anterior hablamos de qué es la arquitectura reactiva, sus principios y las principales plataformas, lenguajes… con las que se construye. Hoy hablaremos sobre las cuatro características principales de las aplicaciones reactivas, recogidas en el conocido como Manifiesto Reactivo. Estas cualidades forman un todo, pues están interconectadas entre sí.

LA PROGRAMACIÓN REACTIVA ES RESPONSIVA

Es decir, responde a tiempo y reacciona apropiadamente en la medida de lo posible. La responsividad es clave para la usabilidad y la utilidad, permite detectar los problemas rápidamente y tratarlos de forma efectiva. Los sistemas responsivos buscan tiempos de respuesta rápidos y consistentes, estableciendo límites superiores confiables para proporcionar una calidad consistente en el servicio. Esta consistencia simplifica el tratamiento de errores, da seguridad al usuario y fomenta una mayor interacción. En resumen, los sistemas responsivos:

  • Responden a tiempo en la medida de lo posible
  • Son la base de la usabilidad y la utilidad
  • Los fallos pueden detectarse rápidamente y tratarse efectivamente
  • La respuesta es rápida y consistente, estableciendo límites superiores confiables

LA PROGRAMACIÓN REACTIVA ES RESILIENTE

Se integran los posibles fallos en el modelo de programación, de forma que, al estar dentro del diseño desde el inicio, es posible reaccionar a ellos y solucionarlos. Así, las aplicaciones reactivas son altamente tolerantes a los fallos (son responsivas frente a ellos) y pueden repararse a ellas mismas en el tiempo de ejecución.Se alcanza la resiliencia mediante:

  • Replicación : Las mismas tareas se pueden replicar entre diferentes threads, runtimes (JVMs), servidores o data centers
  • Contención y Aislamiento (en espacio y tiempo)
    • El sender (quien solicita la tarea) y el receiver (quien la responde) son procesos diferentes con ciclos de vida diferentes.
    • No necesitan estar presentes en el mismo tiempo para que se produzca la acción (asincronía)
    • Los componentes se comunican de manera asíncrona en el tiempo mediante el paso de mensajes
    • Location Transparency, los diferentes componentes del sistema se comunican a través de referencias (nunca nombres de servidores, URLs, o demás).
  • Delegación: Los fallos se manejan dentro de cada componente, estando todos ellos aislados de los demás. Así, se asegura que cualquier parte del sistema pueda fallar y recuperarse sin comprometer el todo.  Para recuperar cada componente se delega en otro externo y, como hay alta disponibilidad, se asegura con replicación donde sea necesario. De este modo, el cliente de un componente no tiene que responsabilizarse del manejo sus fallos.

LA PROGRAMACIÓN REACTIVA ES ELÁSTICA Y ESCALABLE

Puede expandirse de acuerdo con su utilización, gracias a la elasticidad (opción de añadir, o remover nodos según petición) que se le añade. Gracias a la escalabilidad, se pueden minimizar los costes de tener aplicaciones en la nube y gestionar los riesgos (tener pocos recursos lleva a perder clientes, tener demasiados puede resultar costoso). Además, así los Sistemas Reactivos pueden reaccionar a variaciones en la carga de trabajo y a cambios en la frecuencia de peticiones incrementando o reduciendo los recursos asignados para servir dichas peticiones. Para ello, hay que diseñar una arquitectura sin puntos de contención o cuellos de botella centralizados, resultando en la capacidad de dividir o replicar componentes y distribuir las peticiones entre ellos. Los Sistemas Reactivos soportan algoritmos de escalado predictivos y Reactivos, al proporcionar relevantes medidas de rendimiento en tiempo real. Y lo mejor es que la elasticidad se consigue de forma rentable haciendo uso de plataformas con hardware y software genéricos como Kubernetes, Akka….

LA PROGRAMACIÓN REACTIVA ESTÁ ORIENTADA A MENSAJES

La Arquitectura orientada a eventos (algo que sucedió, no puede cambiarse y tiene un contexto) implica que un componente de software se ejecuta en respuesta a una o más notificaciones de eventos. Los Sistemas Reactivos confían en este intercambio de mensajes asíncrono para establecer fronteras entre componentes. Esto asegura bajo acoplamiento, aislamiento y transparencia de ubicación. Además, estas fronteras permiten delegar fallos como mensajes.El intercambio de mensajes (realizado mediante el modelado y monitorización de las colas de mensajes y la aplicación de back-pressure) permite gestionar la carga, la elasticidad y el control de flujo. Además, al utilizar la mensajería basada en ubicaciones transparentes, podemos gestionar fallos y trabajar con los mismos bloques y semánticas a través de un clúster o dentro de un solo nodo. Y con la comunicación no-bloqueante podemos consumir recursos solo mientras estén activos, evitando sobrecargar el sistema.

CONCLUSIONES

Para crear un sistema reactivo, debemos tener en cuenta que integrará estas cuatro características interrelacionadas, es decir, que será responsiva, resiliente escalable y orientada a mensajes.

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

¡Que no se te pase una!

Recibe nuestra programación mensual de eventos online y la apertura de nuevas convocatorias de cursos




    En Datahack Consulting SL trataremos los datos que nos facilites con la finalidad de enviarte información relacionada con tu solicitud sobre nuestros servicios, así como enviarte comunicaciones informativas sobre nuestra actividad. Podrás ejercer los derechos de acceso, rectificación, limitación, oposición, portabilidad, o retirar el consentimiento enviando un email a administracion@datahack.es. También puedes solicitar la tutela de derechos ante la Autoridad de Control (AEPD). Puedes consultar información adicional y detallada sobre protección de datos en nuestra Política de Privacidad.

    Estamos para ayudarte con cualquier duda, pequeña o grande

    Llámanos, escríbenos o inicia un chat y hablamos

    Llámanos al 910 91 28 42¿Prefieres que te llamemos?¿Prefieres que te llamemos?
    chevron-down