Accede a los proyectos de formación en PBF (Flow-Based)

contenido base de formación tutordigital.cc

PROGRAMACIÓN BASADA
EN FLUJO <PBF>

La programación Basada en Flujo (PBF) o en inglés FLOW-BASED PROGRAMMING es un paradigma de programación, el cual utiliza una metáfora de “Fábrica de procesamiento de datos” para diseñar y construir aplicaciones. De esta manera lo explica la persona que conceptualizo este modelo en la decada de 1970, J Paul Morrison .

PBF define las aplicaciones como redes de procesos de “caja negra”, que se comunican a traés de fragmentos de datos (llamados paquetes de información) que viajan a través de conexiones predefinidas. Se puede entender como “cintas transportadoras”, donde las conexiones se especifican externamente a los procesos, reflejado en la morfologia de la caja y su representación a nivel grafíco.

Estos procesos de caja negra,  representados como NODOS, se pueden volver a conectar ilimitadamente con otros procesos para formar diferentes aplicaciones, sin tener que ser modificado internamente la estructura de la caja inicial. Las conexiones funcionan como Entradas de alimentación de datos para el proceso, y de salida de los datos resultantes. La PBF, por lo tanto, está naturalmente orientada a componentes o en ingles component-oriented.

Los componentes son la base fundamental del proceso de aprendizaje en TutorDigital ,  entendiendolos a estos como la finalidad general en cada proyecto formativo, permitiendo llegar  a un nivel de desarrollo tal, que al concluir cada proceso se sume una nueva herramienta o componente, capaz de ser aplicable en distintos proyectos, gracias a su naturaleza de programación basada en flujo.

PBF es una forma particular de programación de flujo de datos ( DataFlow ) basados en buffers acotados, paquetes de información con tiempos de vida definidos, puertos nombrados y definición separada de conexiones.

Implica un "CAMBIO DE PARADIGMA" significativo de la programación convencional

La programación basada en flujos PBF, promueve un estilo funcional de alto nivel de especificaciones que simplifica el razonamiento sobre el comportamiento del sistema. Implica un “cambio de paradigma” significativo de la programación convencional, ya que utiliza una imagen de “línea de ensamblaje” del procesamiento de datos, que realmente debe utilizarse para experimentar sus ventajas.

La PBF es un caso especial de programación de flujo de datos que se caracteriza por procesos asincrónicos y concurrentes “en secreto”, paquetes de información con vidas definidas, puertos con nombre, conexiones de “búfer acotado” y definición de conexiones externas a los componentes.

CARACTERISTICAS DE LA <PBF>

La PBF menudo se confunde con la programación de Dataflow, pero de hecho es un subconjunto de la programación de Dataflow con las siguientes propiedades únicas:

ESTRUCTURA

Los gráficos están estructurados; los componentes también tienen estructura (interfaz, estado y comportamiento).

PARALELO

De manera paralela, cada proceso de PBF se ejecuta en su propio hilo, rutina u otra facilidad de concurrencia.

PUERTOS

Los puertos pueden ser puertos elementales o puertos de matriz, donde los elementos individuales se tratan como puertos separados, pero se direccionan por nombre de puerto más un índice.

CONEXIONES

Las conexiones se implementan como memorias intermedias limitadas con un orden FIFO y una capacidad de 0 a un número limitado por la implementación.

CICLO DE VIDA

Los paquetes de información tienen un ciclo de vida y son propiedad explícitamente de un proceso a la vez.

FUSIONES

Las conexiones se pueden fusionar en el gráfico, lo que implica que los paquetes de diferentes arcos llegan al puerto de entrada en orden FIFO. Las conexiones deben dividirse explícitamente a través de un componente debido a la variedad de estrategias de división.

PARAMETROS

Los parámetros se proporcionan a las instancias de componentes en la definición de red asociando un valor de datos con un puerto de entrada particular. Este concepto se llama “IP inicial” y sus detalles de implementación varían entre las versiones de FBP.

ENTRADAS

Los componentes pueden tener múltiples entradas o salidas.

CAPAS

El diseño del sistema se divide en 2 capas, capa de gráfico (generalmente visual) y capa de componente (generalmente textual). Desde el punto de vista de la arquitectura de software, se alientan los diferentes roles, el “diseñador gráfico” y el “implementador de componentes”.

ACTIVACIÓN

Desde el punto de vista del diseñador gráfico, los procesos se ejecutan simultáneamente, y la función del software de programación es asignar tiempo de CPU y administrar otros servicios según sea necesario para mantener esta ilusión.

PAQUETES DE DATOS

Un paquete puede tener subpaquetes y los componentes no necesitan conocer los datos que posee. Las estructuras de árbol y los diccionarios se pueden crear así.

BUCLES

La aplicación es un gráfico en lugar de un árbol. Se permiten conexiones cíclicas (bucles de retroalimentación).

PBF

PRINCIPIOS <Programación Basada en Flujo>

Los principales motivadores son la reutilización de código, la capacidad de prueba, la concurrencia y la mantenibilidad.

J Paul Morrison

FLOW-BASED INVENTOR

ENTREVISTA REALIZADA POR CREADORES  DE FLOWHUB

HERRAMIENTAS TD.CC

NOS ENFOCAMOS PRINCIPALMENTE EN EL USO DE ESTAS HERRAMIENTASDE NATURALEZA PFB

TouchDesigner

Lenguaje de programación visual basado en nodos para contenido multimedia interactivo en tiempo real, desarrollado por la compañía Derivative. Ha sido utilizado por artistas, programadores, programadores creativos, diseñadores de software e intérpretes para crear representaciones e instalaciones.

Houdini

Software de animación 3D desarrollada por SideFX, el cual adaptó Houdini del conjunto de herramientas de software de generación de procedimientos PRISMS. Su atención exclusiva a la generación de procedimientos lo distingue de otro software de gráficos por computadora en 3D.

Notch

Motor de creación visual en tiempo real. Desde gráficos en movimiento hasta instalaciones interactivas, desde experiencias de realidad virtual hasta las actuaciones más grandes del mundo, ayuda a los creadores a redescubrir la alegría de crear.

TutorDigital.cc esta en VIVO
TutorDigital.cc esta OFFLINE