El sistema M&P tiene facilidades nativas de Procesamiento Paralelo
y Procesamiento Distribuido (ver Abstract).
El procesador onBOARD del Computador Virtual MPVC
contiene un componente denominado OBe (abreviatura de "onBOARD
Everywhere") para manejar el Procesamiento Distribuido en modalidad peer-to-peer.
OBe permite distribuir
fácilmente en Internet funciones entre Servers y Browsers de diversos tipos (IE,
FireFox, Safari, etc).
OBe soporta la funcionalidad de la tecmologia obGC (onBOARD Graphic Console)
que simplifica y acelera la construcción de Rich Internet Applications (RIAs).
Valor Agregado
por OBe
El principal valor agregado por OBe es su capacidad de procesamiento distribuido
en el que el Server y los Browsers interoperan en el mismo nivel (procesamiento Peer-to-Peer).
OBe consta de dos partes que se ejecutan una en el Servidor (MPeServer) y la otra en el Browser y en la
arquitectura Peer-to-Peer cualquiera de las partes (el Server o el Browser) puede iniciar una interacción.
Comparación cpn la arquitectura tradicional
La arquitectura tradicional es Client-Server pudiendo solo el Browser (el Client) iniciar una interacción. Esto se debe a que el protocolo de comunicación HTTP utilizado es un protocolo Client-Server.
El esquema Client-Server resulta muy limitado para la implementación de "Rich Internet Applications". Por ejemplo, si el Client solicita al Server la realización de un calculo y en medio del calculo es necesario que el Server consulte al Usuario para poder continuar,
no lo puede hacer. Resolver una situación de este tipo implica la implementación de una lógica de interacción computacionalmente sofisticada y antinatural para los Usuarios
acostumbrados a operar aplicaciones "Desktop".
El esquema Client-Server HTTP implica "para un estimulo, una sola respuesta". Esta limitación es insalvable con el protocolo HTTP.
El esquema Peer-to-Peer, en el que cualquiera de las partes (el Server o el Browser) puede iniciar una interacción requiere la implementación de un canal de comunicación
"duplex".
Como el canal TCP básico es asincrónico el Channel Manager emula el funcionamiento sincrónico.
Compresión de Datos
El Channel Manager ademas realiza la Compresión de Datos.
Conexión automática
OBe establece automáticamente, en forma oculta, la comunicación duplex
al iniciar el procesamiento de la Aplicación.
De esta manera el Browser, mediante OBe, cuenta con dos canales de comunicación con el Server: el canal
tradicional HTTP (client-server) y el canal TCP
(duplex).
Procesadores mpLISP
El elemento central de la plataforma onBOARD es el Procesador mpLISP.
La plataforma OBe integra múltiples procesadores mpLISP en el sistema
distribuido.
En la plataforma onBOARD el procesador mpLISP desempeña, entre otros roles, el rol fundamental de
Dispatcher de Servicios y Eventos entre los Componentes onBOARD.
En la plataforma OBe los procesadores mpLISP tienen además la capacidad de actuar como
"Routers" ruteando Mensajes entre los procesadores mpLISP que integran
el sistma distribuido.
Adaptación Dinámica
Como consecuencia de la interaccion Peer-to-Peer OBe permite realizar una distribución optima de funciones entre el
Browser y el Server. Las funciones pueden ser redistribuidas con facilidad en cualquier momento permitiendo una adaptación
dinámica a nuevas exigencias de
procesamiento.
La plataforma
obGC forma parte de la plataforma OBe.
Los componentes de obGC convierten a cualquier Web Browser en una Consola Grafica Programable
(CGP).
La CGP tiene capacidad de desplegar tanto contenidos HTML como XAML (Silverlight).
En el esquema obGC se utiliza una única pagina HTML (que denominamos Pagina
Base) la cual es invocada inicialmente por el Usuario y al ser cargada en el Browser
carga automáticamente los componentes de OBe y de la obGC.
La Pagina Base HTML contiene un Control Silverlight
y presenta dos áreas de visua;ización:
una para visualizar contenidos HTML y otra para visualizar contenidos XAML
(Silverlight).
El contenido de la Pagina Base puede ser customizado y
puede ser embebido en paginas PHP, JSP y ASP.NET. en caso de ser
conveniente.
La Pagina Base permanece cargada durante toda la sesión del Usuario con la Aplicación. La navegación por la Aplicación implica el cambio de los contenidos HTML y XAML en las
áreas de visualización pero no el cambio de pagina.
Los contenidos de las áreas de visualización HTML y XAML pueden ser modificados en tiempo real,
total o parcialmente, por procesos realizados localmente en el Browser o remotamente en el Server. La obGC permite la manipulación directa de los elementos del
Object Graph de las áreas de visualización.
Las facilidades de OBe Remoting, que se describen mas abajo, permiten la
creación y manipulación de objetos remotos.
En la arquitectura obGC interoperan tres procesadores mpLISP, dos residentes en el Browser y uno en el Server
MPeServer.
Los procesadores mpLISP en obGC
En la pagina base HTML se incorpora un Control Silverlight (SL) para
desplegar el contenido XAML, interactuar con el usuario y hospedar un
procesador mpLISP.
Si fuere necesario, en la pagina base se pueden incorporar varios
Controles SL hospedando un procesador mpLISP cada uno. Estos procesadores
mpLISP adicionales interoperarán tambien en modo peer-to-peer.
El identificador del procesador mpLISP del control SL es "BSL". Las
funciones del procesador "BSL" incluyen:
la comunicación duplex, por el canal TCP, con el Server.
el ruteo de Mensajes en el Browser entre los procesadores mpLISP que operan
en el Browser.
El procesador mpLISP residente en el Server MPeServer brinda servicios en el ambiente del
Server. El identificador de este procesador es "SVR".
Mensajes (Packets)
Los procesadores mpLISP proveen funciones que permiten invocar Servicios en otros procesadores. También proveen una función que permite a un
procesador suscribirse a notificaciones de Eventos publicadas en otro procesador.
Las funciones CRS y CRSA permiten la invocación remota sincrónica y asincrónica
respectivamente.
Los Servicios invocados remotamente retornan expressiones Lisp que
son evaluadas en el procesador que origino la
invocación.
Este mecanismo permite retornar programas Lisp para su
ejecución en el procesador que origino la invocación.
Las funciones CRS y CRSA, crean Mensajes y los pasan al Router asociado el cual, usando
catálogos muy simples, realiza el intercambio de información requerido.
Cada Mensaje contiene 5 elementos:
UID - TOPROC - FROMPROC - F1 - F2
UID es un identificador univoco universal asignado por el Channel Manager para
identificar unívocamente a los mensajes y realizar el matching entre los
'Requests' y sus correspondientes 'Responses'.
El UID es un identificador de solo 8 caracteres generado con el
método AUTOKEY de onBOARD.
TOPROC es el identificador del procesador al cual va dirigido el mensaje.
FROMPROC es el identificador del procesador que origina el mensaje (al cual debe retornarse el resultado para su
evaluación).
Como veremos mas abajo los contenidos de F1 y F2 constituyen la "carga útil" del Mensaje.
Recordar que los valores retornados en las invocaciones son
tambien expressions Lisp.
Invocaciones Sincrónicas y Asincrónicas
Tanto las Invocaciones Sincrónicas como Asincrónicas se realizan a través del
canal duplex TCP.
Invocaciones Asincrónica y F2
En las Invocaciones asincrónica el contenido del elemento F2 contiene el nombre de la
funcion en FROMPROC que debe ser invocado por el Router al recibir la respuesta asincrónica
El quote "`" incluido en la expression por el Router permite que
la funcion designada en F2 (RetCliAddress en este ejemplo) decida si el valor retornado debe ser evaluado o no.
Si F2 es "" (Empty String) el Router invoca directamente la evaluación (en
FROMPROC) de la expression retornada.
Los procesadores mpLISP proveen la función RegRemoteEvtSusc que permite a una
Aplicación en un procesador suscribirse a notificaciones de Eventos publicadas en otro procesador.
La función RegRemoteEvtSusc permite asociar al evento remoto un evento "proxy"
local. Una vez registrada la suscripción (asociación) cada vez que el evento remoto ocurra
OBe dispara el evento "proxy" local asociado.
Los argumentos (datos) del evento remoto aparecen también como argumentos del evento "proxy" local asociado.
Ver Ejemplo.
Para la aplicación local es como si el evento fuera local.
Las facilidades de OBe Remoting permiten la creación y manipulación de objetos
.NET remotos en
forma muy simple invocando en forma remota mediante los Metodos CRS y CRSA.
El Computador Virtual MPVC contiene un componente
denominado MPe (abreviatura de "M&P Everywhere") para crear y manejar en
forma remota las In-Memory-Data-Bases (IMDBs) en en Server MPeServer y proveer el Databinding con la
Interface de Usuatio en el Browser.
Un Sistema BLOCKS esta conformado por componentes BLOCK interconectados
para
intercambiar información.
Un Sistema BLOCKS es una red heterarquica (no jerárquica) de componentes. La
red puede extenderse sobre múltiples computadores.
Secuencia de Arranque de la Aplicación
El Usuario invoca la Pagina Base HTML que contiene el control SL y el codigo
Javascript relacionado con OBe/obGC.
En forma oculta el Router del Server indica al Router del Browser el numero de Port al cual debe conectarse para la comunicación
duplex.
El Channel Manager del Browser se conecta al Server usando el Port indicado.
Concluida esta secuencia (automática y oculta) los Procesadores mpLISP pueden interoperar
("chatear") en modo peer-to-peer de acuerdo a los requerimientos de la Aplicación.