martes, marzo 23, 2010

Plataforma GO para aplicaciones GOSSIP

GO es una plataforma preparada para el soporte de aplicaciones y protocolos gossip, protocolos que son populares en aplicaciones distribuidas a gran escala. Esta plataforma facilita el trabajo para el desarrollo de nuevos protocolos y aplicaciones gossip, también garantiza el ancho de banda y optimiza la entrega de rumores, desarrollando un algoritmo heurístico que reúne varios rumores en un paquete IP y los distribuye indirectamente de una forma llamada “epidemia”.

Los rumores son paquetes de información que el sistema envía o intercambia cada cierto periodo de tiempo, con esto se consigue tener la distribución "distribuida" en varios servidores replicando los datos de una forma asíncrona.
Los protocolos gossip tienen las siguientes propiedades:
• Robustez: tolerante a fallos y con normas muy severas en su implementación.
• Constancia, carga balanceada: un mensaje por nodo y tanda de emisión.
• Simplicidad: son fáciles de escribir y depurar, no depende de tecnologías en comunicaciones especiales.
• Escalabilidad: la simplicidad e independencia de los nodos permite escalar el sistema añadiendo nuevos nodos sin modificar las características del sistema.

Aun así, con estas propiedades, también existen algunos problemas con los protocolos gossips como son la recepción de algunos rumores demasiado tarde o la recepción sin orden en el caso de actualizaciones. También podemos encontrarnos con varios nodos que formen un grupo gossip para soportar una aplicación creada con objetos gossip distribuidos por esos nodos. Este tipo de programación (orientada a objetos) podría desarrollar una gran cantidad de objetos que podría interferir entre ellos o saturar la red con mucha información.

La plataforma GO nace con la idea de solventar estos problemas creando una extensión al sistema operativo que estandarice las operaciones más comunes, permita a diferentes aplicaciones coexistir y compartir recursos y como se ha dicho al principio, agrupar varios rumores en el mismo paquete IP ya que éstos suelen ser muy pequeños en tamaño., 12-16 bytes. GO se implementa como una capa de comunicación basada en LDO (Live Distributed Object) con las siguientes contribuciones:
• Una extensión de los protocolos gossip para agrupar varios objetos gossip dentro del mismo nodo.
• Un algoritmo heurístico para encontrar similitudes en grupos gossips.
• La simulación en una plataforma real.

Los algoritmos desarrollados en la plataforma GO son:
Model: el modelo se enfoca en un estilo publicación-suscripción o suscripción sólo.
Diseminación aleatoria: los rumores son distribuidos aleatoriamente a un recipiente.
Diseminación optimizada: Aquí es donde se desarrolla el algoritmo heurístico para calcular la probabilidad de “infección” de nodos con rumores que reúnan unas determinadas características como las susceptibilidad de ser infectado, el esperado nº de veces que en una epidemia un nodo es susceptible de ser infectado, la conectividad entre objetos gossips, etc..
Control y limitación de los ratios de tráfico y uso de memoria: para evitar sobrecargas o gran consumo de ancho de banda.

La plataforma GO implementa un interfaz estándar para las aplicaciones vía librería de cliente o conexión IPC y corre en todos los nodos del sistema. Esta arquitectura es rica, flexible, y fácil de extender. Podemos dividirlo en estas partes:
• Arranque: los objetos gossip arrancan con un mecanismo que depende de un directorio de servicio similar a una DNS.
• Mecanismo Gossip: se ejecuta periódicamente realizando llamadas a las aplicaciones para añadir rumores a la cola de rumores.
• Componentes cercanos: Se mantienen información de los nodos vecinos
• Cola de rumores.

Las pruebas de la plataforma se han efectuado usando un simulador discreto basado en tiempo, que compara implementaciones de objetos gossips ejecutándose independientemente sin ayuda de la plataforma y objetos gossips ejecutándose con la ayuda de la plataforma. En el tratamiento con la cola de rumores e in-dirección de los mensajes, mejora con la plataforma GO, pero las pruebas no garantizan que la plataforma GO funciona en cualquier infraestructura, el intercambio de mensajes mediante GO absorbe una gran cantidad de ancho de banda, o una sobrecarga de buffer de las colas de rumores.

La optimización de la plataforma GO para el futuro pasaría por investigar la forma de optimizar el espacio de buffer asignado a los rumores por las aplicaciones y una mejor utilización de los mismos. También es deseable que para potenciar el uso de GO que éste pueda soportar un gran variedad de estilos gossip, así como algún que otro protocolo no-gossip. Quedaría en el aire un reforzamiento de la seguridad, ya que una aplicación agresiva podría dominar a aquellas menos agresivas quedándose con la mayoría del espacio de la cola de mensajes o saturar el ancho de banda asignado.

En mi sencilla opinión creo que a la plataforma le queda un largo camino que recorrer, pensando que si tiene que incorporar más protocolos no-gossip para poder extenderla fácilmente, se van a encontrar con problemas de arquitectura nuevos que tendrán que soportar varios tipos de protocolos.

Para ampliar información he encontrado los siguientes links, uno de ellos es el mismo artículo pero más ampliado:

http://en.wikipedia.org/wiki/Gossip_protocol
http://www.cs.cornell.edu/projects/quicksilver/public_pdfs/journal.pdf

No hay comentarios:

Etiquetas

.net (1) ALGORITMO (4) algoritmos (1) Android (1) angular (2) aplicaciones WEB (1) ARGENTINA (1) ASP (4) asp .NET (1) ASP .NET Identity (1) attach (1) Azure (1) base de datos (1) BINDING (1) BioInformática (2) bootstrap (1) C (2) C# (27) castellano (1) catalán (1) Charla (1) CheckedListBox (1) Clase (1) clausura transitiva (2) CLIENTES (1) Closing (1) Combobox (1) Comisiones (1) CONCURSO (1) condones (1) consultas (1) corrupta (1) CORS OWIN (1) CORS WEB API 2 (1) Criptografía (1) CUENTA NARANJA (1) Custom Control (1) Daniel Seara (1) DATAGRIDVIEW (1) David Salgado (2) dendrograma (6) depurar (1) desarrollo (1) Deserializar (1) DEVCAMP (2) durex (1) e-DNI (1) el Guille (2) Eladio Rincón (1) elGamal (1) encriptación (1) encuesta (1) Entidad (1) ERROR (2) error 3624 (1) España (1) España es nido de víboras. (1) Euclides (1) Euclides extendido (1) evento (1) eventos. (1) factorización (1) factorizar (1) física (1) Framework 2.0 (1) Framework 3.5 (5) Framework 4 (2) Francisco González (1) Francisco Ruiz (1) GO (1) google (1) gossip (1) Grupos de usuarios (1) Guadalajara (1) Guille Comunity Tour (2) Gusenet (9) GUSENET. (1) Huelga informáticos (1) IBEX 35 (1) Idioma (1) IFT (1) IISExpress (1) Indice de Fuerza Tecnica (1) informática (1) Informix (1) ING DIRECT (1) INGDIRECT (1) Ingeniería Informática (2) Inteligencia artificial (5) Intro (1) IOS (1) IPad (1) IPhone (1) IV Aniversario (1) JavaScript (2) JPA (2) keybd_event (1) LA CAIXA (1) La Pineda (1) ladroentidad (1) Lector RSS (2) LINQ (5) LINQ2XML (1) ListBox (1) Live Distributed Objects (1) llenar (1) LOG (1) Madrid .NET (1) MainMenu (1) MAP (1) MAP 2011 (1) MAR DEL PLATA (1) matemáticas (1) Matriculación (1) MDIList (1) MdiWindowsListItem (1) MenuItem (1) MenuStrip (1) Microsoft (18) Microsoft Active Professional (1) Miguel Egea (2) MSDE 2 (1) MSDE 2000 (1) MVVM Light (2) mysql (1) NAMESPACE (1) Needleman (2) NET (1) NS (1) Oferta empleo (1) Office 14 (1) Office 2007 (1) Office 2009 (1) ON ERROR (1) OOB (1) Oscar Montesinos (1) OWIN (1) OWIN Security middleware (1) Paginación (1) PDC (1) Pedro Hurtado (1) PINTARTECA (1) PrinterSettings (1) Process (1) ProcessStartInfo (1) Programador (1) Relacional (1) robo (1) RSS (1) Rubén Garrigós (1) Salvador Ramos (1) Santa Pola (1) scrape (1) scraping (1) ScrollBar (1) Secretaría (1) SendInput (1) SENDKEYS (1) Sergio Vázquez (1) Serializar (1) Silverlight 2.0 (2) Silverlight 4 (1) Silverlight 5 (3) Silverlight. (1) Sindicado (1) Sistema Personal de Trading (3) Sistemas Distribuidos (1) SOLID SUMMIT 2009 (1) SPT (2) SQL Server (3) SQL Server 2000 (2) SQL Server 2005 (2) SQL Server 2008 (3) SQL Server Denali (1) SQL Server Information Services. (1) SQLU (1) SSIS (1) SUMMIT SQL (1) Suspect (1) Syndication (1) TAB (1) Tablas (1) Tarragona (1) Token bearer (1) ToolStripMenuItem (1) ToString() (1) Traductor (1) transacciones (1) treeview (1) truco (1) TRY CATCH (1) UCI (1) Unience (2) Universad (1) Universidad Oberta Catalunya (2) UOC (8) Usuarios. (1) VB (1) VB6 (1) VB9 (1) VIAJAR (1) Vila-seca (1) VISUAL BASIC (3) Visual Basic. (1) visual studio (1) Visual Studio 2005 (1) Visual Studio 2008 (16) Visual Studio 2010 (2) Visual Studio 2013 (1) VS2010 (1) VSTA (1) VSTO (1) WCF (1) WEB API (1) web.config (1) WebClient (1) WF (1) windows (1) Windows 7 (3) Windows 8 (2) Windows Azure (1) Windows pone (1) Windows Server 2008 (1) Windows Vista (1) woff (1) WP7 (1) WPF (1) Wunsch (2) XAML (4) XDocument (1) XElement (1) XML (3) XNA (1) Yield (2)