Arquitecturas Concurrentes


Homepage

¡Bienvenidos!

Este es el sitio de la materia Implementación de Arquitecturas de Software Concurrentes. Sí, lo sabemos, es un nombre bastante largo, así que informalmente le diremos Arquitecturas Concurrentes. Se trata de una materia electiva de 5to año de la carrera de Ingeniería en Sistemas de Información, en UTN FRBA, inaugurada en Agosto de 2015.

¿Arquitecturas Concurrentes? ¿Qué es eso?

En esta materia vamos a contarte sobre algunas ideas de arquitectura e implementacion (es decir, a veces a alto nivel, a veces a mas bajo nivel) de aplicaciones concurrentes: cualquier sistema software que tenga más de un usuario, proceso, hilo o cosa que se le parezca (en la materia vamos a hablar de contextos de ejecución). Sí, adivinaste: casi todo software entra en esta categoría.

Aham... ¿y esas ideas cuales són?

Te daremos un pantallazo sobre distintos modelos y tecnologías que nos ayudan a diseñar aplicaciones concurrentes sin utilizar locking. El plato fuerte de la materia será el paradigma de actores, que nos servirá para estudiar paso de mensajes asincrónicos, distribución, resiliencia, manejo de errores mediante jerarquías de supervisión, concurrencia vs paralelismo, el teorema CAP, entre otras cosas tanto de arquitectura como implementación. Pero también buscaremos hacer lugar para hablar sobre memoria transaccional (STM), continuaciones, programación reactiva, programación funcional y algunas cuestiones de más bajo nivel.

¿Y esto con qué se come?

Nuestra intención también es dar un pantallazo de varias tecnologías comerciales: Akka, Erlang/OTP, NodeJS, Clojure, Go. Evidentemente no podremos verlas a todas porque moririamos en el intento, así que trataremos sólo las más representativas de su tipo.

Mamá, tengo miedo

No desesperes. ¡Sabemos que es mucho! Y también, que esta materia será bastante única en su tipo. Nuestro plan es iterar a lo largo de los cuatrimestres hasta alcanzar el equilibrio entre nuestros tres pilares:

  • actualidad: queremos mantener una materia actualizada
  • didáctica: no queremos aburrir ni abrumar a nadie
  • y amplitud temática: queremos dar un pantallazo de ideas arquitecturales bajadas a la práctica, pero no pretenderemos volver al alumno experto en ninguna de ellas.

¿Práctica o teórica?

Arquitecturas Concurrentes es una materia teórico-práctica: vamos a presentar en clase algunos elementos teóricos, pero vamos a hacer mucho énfasis en hacer implementaciones de las ideas de arquitectura, en clase. Si mirás el programa y la planificación, vas a ver que vamos a tener una prueba de concepto de las ideas cada tres clases. ¡Traé tu notebook!

Ya que estamos, te comentamos que también habrá un TP no presencial, a modo de integración sobre lo anterior. Nuevamente, la idea es que nos sirva para validar nuestros conocimientos de arquitectura, por lo que tampoco tratará de hacer un sistema completo. Y tanto este TP como los presenciales serán grupales, 4 o 5 personas.

There will be blood code

Ah, habrá un TP cuatrimestral. Y sí, habrá que programar un poco (¡si no fuera así, no podrías demostrar que tu arquitectura funciona!). La idea es no construir modelos complicados, sino concentrarse en construir la comunicación entre los componentes. Y eventualmente alguna parte la podemos hacer de mentirita (eso que llaman mocking).

Se acabó, ¡me voy de aquí!

Bueno, bueno, capaz no sea un tema que te cope tanto.... pero permitinos unas últimas palabras: creamos esta materia porque estamos convencidos que hay ideas de arquitectura interesante que merecen ser contadas (esperemos que TED no nos haga juicio por usarles su frase) y que te van a ser útiles si de alguna forma seguís trabajando en algunos de los planos del desarrollo de software.

Nuestra intención es que haya un maridaje entre cursar esta materia e Implementación de Bases de Datos NoSQL. Ambas son materias que toman elementos de otra (Paradigmas, Gestión de Datos, respectivamente), pero los llevan a un contexto más arquitectónico, industrial y tecnológico. Si podés cursar ambas al mismo tiempo, te va a aportar mucho.

Bueno, cambié de opinión. ¿Puedo empezar a leer de estos temas?

Hay bastante material (en construccion) en este sitio. ¡Explorarlo!