hdolder.com srl  

       Software R&D
     hdc Home    |    Contenido    |    KO1    |    Director    |    Direcciones    |    email    |   Twitter   
  M&P TBW - Elementos básicos

 

 

 

                                 v188

M&P TBW™ permite construir aplicaciones

  • Event-Driven  Dataflow

  • Distribuidas

  • Paralelas  -  Multithreaded

  • Configurables dinámicamente (Plug-and-Play) por demanda

utilizando Componentes denominados BLOCKS.

Un aplicación M&P esta conformado por  BLOCKS interconectados para intercambiar información.

El intercambio de información se hace en la modalidad
Event-Driven  Dataflow.

Una aplicación M&P es una red de BLOCKS que puede distribuirse sobre múltiples computadores.

Elementos constructivos básicos

A continuación describiremos los elementos constructivos básicos a nivel conceptual abstracto y luego veremos su implementación mediante recursos de .NET.

A nivel conceptual la arquitectura TBW define cuatro elementos básicos:

  • BLOCKS

  • Connectors

  •  Connections

  • Messages

BLOCKS

Son los componentes de diversos tipos con que se construye una aplicación.

Un BLOCK tiene Connectors que le permiten conectarse con otros BLOCKS conformando una red.

Connectors

Los Connectors (Conectores) de un BLOCK le permiten intercambiar información (Messages) con otros BLOCKS. El intercambio de información es Event-Driven (Asincrónico).

Los Conectores pueden ser de Input, de Output y Bidirecciónales.

La información se recibe mediante los Conectores de Input y se envía mediante los Conectores de Output.

Los Conectores Bidirecciónales pueden recibir y enviar información.

Connections (bindings)

Las Connections (Conexiones) son los elementos que conectan a los BLOCKS entre si, permitiendo su colaboración mediante el intercambio de información.

Una Conexión vincula un par de Conectores en diferentes BLOCKS. Una Conexión permite establecer un DataBinding entre el par de Conectores.

El DataBinding puede ser OneWay (Unidirecciónal) o TwoWay (Bidirecciónal).

Es posible poner lógica en las Conexiones de manera de hacer conversiones de valores, conversiones de tipos, formateos, etc.

IMPORTANTE: En M&P TBW las Connections son BLOCKS especializados. Ver Native Binding BLOCKS.

Messages

Los Messages (mensajes) son datos (valores o referencias a objetos) que se pasan de un BLOCK a otro mediante las Connrctions (bindings). La transmisión se realiza cuando un Connector de Output recibe internamente un nuevo valor.

Diversidad de Roles

Los elementos antes descriptos pueden desempeñar roles funciónales particulares. Así, por ejemplo, los Messages pueden actuar como:

  • Triggers
  • Enablers

Triggers

Un Trigger  dispara ciertas operaciones en el BLOCK receptor.

Enablers

Un Enabler habilita o deshabilita ciertas operaciones en el BLOCK receptor.

Los BLOCKS pueden ser TopBoards, Bindings (Connections), etc.

Operación Event-Driven Dataflow

En la red de BLOCKS los datos fluyen impulsados por eventos originados en el cambio de valor en un Connector de Output. Los BLOCKS esperan y actúan solo cuando reciben la información a través de una Connection,

Full-Asynchronous - Parallel

Los Mensajes son enviados en forma asincrónica permitiendo desacoplar los BLOCKS  de manera de aprovechar las facilidades de procesamiento paralelo disponibles (por ejemplo en procesadores multi-core).

BLOCKS-inside-BLOCKS

Un BLOCK puede contener una Red de BLOCKS. La red de BLOCKS interna es encapsulada por el BLOCK contenedor (sus Conectores no son accesibles desde fuera del Contenedor).

implementación mediante recursos .NET

La implementación se basa en el Engine XAML provista por .NET en WPF y Silverlight (SL) [R1].

Si bien XAML se asocia normalmente con los engines de graficación  de WPF y Silverlight XAML  es un "general purpose declarative language" que puede usarse fuera del entorno de graficación.

El XAML Engine es un procesador "Event-Driven Dataflow" [R1] de muy alta performance lo que lo convierte en el procesador ideal para las aplicaciones M&P TBW.

Property to Property Binding

Un BLOCK se implementa mediante  un User Control XAML, los Conectores se implementan usando Properties (Propiedades) del Control y las Conexiones se implementan usando Bindings de XAML (extendidos por M&P para su uso Multithreaded).

Las Conexiones implementan el concepto de Property-to-Property-Binding:

BLOCK Trees

XAML opera sobre árboles (Trees) de componentes (Controls). Mencionamos previamente que el Engine XAML puede funciónar desconectado del entorno de graficación. En M&P distinguimos dos tipos de Trees:

  • Visual Trees (conectadtados al engine de visualización).
  • Disconnected Trees

y M&P permite la interoperación entre ambos tipos.

M&P puede operar en ambos contextos:

  • Visual
  • No-visual (Diconnected)

Contexto Visual

En el contexto Visual los BLOCKS operan en forma estándar con el engine de visualización XAML de Silverlight en los Browsers y de WPF en el Desktop.

Si bien el XAML Engine esta enfocado en la interface gráfica de usuario (GUI) tiene capacidad de procesar Controles que no contienen elementos visuales ("Look-less controls") . Esta capacidad hace del XAML Engine un procesador de información de propósitos generales.

En este contexto pueden operar tanto BLOCKS con contenido visual como BLOCKS sin contenido visual (BLOCKS No-visuales).

Mas abajo describiremos algunas de las funciones y roles que pueden desempeñar los BLOCKS No-visuales.

Contexto No-visual

En el contexto No-visual se utilizan solo BLOCKS no-visuales.

Los Disconnected Trees de BLOCKS  pueden operar tanto en Browsers y Mobiles como en Servers y Desktops.

La posibilidad de operar en Servers es fundamental para la implementación de aplicaciones distribuidas.

En M&P múltiples Disconnected Trees pueden operar simultáneamente e interoperar entre si tanto en forma local como remota.

Compatibilidad entre Contextos

Un BLOCK no-visual normalmente funcióna sin modificaciones en ambos contextos (visual y no visual).

Granularidad

Un BLOCK puede contener desde unas pocas líneas de código a subsistemas completos.
 

Adaptación Dinámica

La configuración de red de BLOCKS se hace declarativamente, usando el lenguaje XAML y/o mediante código.

Utilizando código la red puede ser creada y/o modificada dinámicamente "al vuelo" (en run-time).

Versatilidad de los BLOCKS No-visuales

Los BLOCKS No-visuales permiten encapsular todo tipo de funciones y pueden usarse, por ejemplo, para:

  • Proveer data binding extendido para operar en Multithreding.
  • Proveer interoperación entre Trees visuales y disconnected.
  • Incorporar lógica y cálculos específicos de la aplicación.
  • Convertir Eventos .NET en Property Changes y viceversa,
  • Crear y Modificar al vuelo la estructura y el comportamiento de una red de BLOCKS.
  • Incorporar funciones de auto-organización.

así como implementar Aplicaciones Event-Driven Dataflow con funciónalidad avanzada.

Biblioteca de BLOCKS nativos

La sección M&P TBW - Biblioteca de BLOCKS nativos incluye un catalogo de los BLOCKS nativos disponibles.


Referencias


 

 

  TBW The BLOCKS World

©2012 hdolder.com srl  

CNNgAOxNb
2011-12-19