sábado, 17 de mayo de 2008

Orbited scaling comet applications

Comenze a utilizar Comet, realizando el modulo que despliegas las "Alarmas".jeje enrealidad he estado haciendo un montón de pruebas... (el hola mundo mas básico es un chat jejeje.) Pero ayer viernes, algo ya estaba integrado y funcionando con UltraGPS.

Me estoy apoyando por Orbited 0.3, un servicio o demonio Open Source, escrito en Python que implementa un protocolo extremadamente sencillo (de hecho es quien hace todo el trabajo)

En principio funciona todo Ok, Aunque aun me preocupa un poco la concurrencia y la estabilidad del servicio (de los servicios) bajo tensión. En teoría debe aguantar.

Ahora, me falta optimizar el transporte... estoy utilizando el mas básico (IFrame- "Forever Frame").. Pero es claro que podría mejorar este aspecto según Browser (IE - Gecko - WebKit) HTMLFile, MultiPart XHR, XHR streaming, XHR long polling,

Ha grandes rasgos esto funciona así:

1. Browser (IE - Gecko - WebKit) crea un canal de comunicación con demonio Orbited indicando "identificador del canal", el transporte (por ejemplo Iframe) y la función que realiza ante el impredecible evento.

La version 0.4 promete una API para javascript completa, de modo resulte sencillo realizar la conexión (los distintos tipos de conexiones) y el control sobre las mismas

2. Informar de eventos y recipientes (identificador del canal) a demonio Orbited (desde un servicio Win32 C#, desde Python, quizás desde un motor de datos ..etc..)

Orbit/1.0\r\n
Action: Event\r\n
Id: 45\r\n

Recipient: (michael, 123, /event)\r\n
Recipient: (jacob, 543, /event)\r\n

Length: 10\r\n
\r\n
event text

normalmente el evento resulta ser un objeto codificado en JSON, ademas el protocolo soporta N recipientes para un mismo evento.. en este caso el recipiente es un usuario y la instancia de ese mismo usuario... ejemplo rbarriga logeado en 3 navegadores, son tres canales de comunicacion distintos.


3. Orbited envia el evento a los diferentes Recipientes de manera concurrente. es decir envia en un mismo tiempo un evento a todos los Browser involucrados atravez del transporte correspondiente (indicado previamente - Paso 1)


www.orbited.org

Suerte

No hay comentarios: