JXTA 2.0 El Framework de nivel empresarial que se nos viene (Introducción 1era Parte)

Escrito por Javier Urrutia en October 9th, 2006

logo jxtaCon tanta tecnología en estos días, no es raro que se me halla pasado una como JXTA,lo complicado fue darme cuenta que no era una tecnología mas, pero por suerte mi colega Cesar Esquerre, en una reunión nos llamo la atención acerca de JXTA y lo que significara para nuestra profesión, después de escucharlo decidí empezar una serie de artículos referente a JXTA de Sun. Este es el primero, en el expondré la tecnología de forma general. En los próximos post agregare unos podcast donde cesar nos comentara detalles de la misma, y en un tercer post expondré código especifico de su utilización.

Ahora usted se preguntara como podría una tecnología informática, jugar un rol preponderante en las profesiones ligadas al desarrollo de software?. Piense en cuando se programaba en arquitecturas monolíticas y llego cliente-servidor para cambiarlo todo, piense luego cuando llego la web para darle un sabor distinto al modelo cliente-servidor y cambiarlo en gran medida. Bueno JXTA es el primer esfuerzo serio, para desarrollar un Framework de desarrollo (preliminarmente en java, pero no limitado a este lenguaje) para agregar a sus aplicaciones capacidades de redes P2P. Imagine distribuyendo la responsabilidades de su aplicación y su data en una red P2P en base a un Framework potente, bien pensado y capas de lidiar con todas las problemáticas de redes P2P, desde los firewall con tecnologías FirewallFrendly, hasta todas las temáticas propias de la tecnología P2P, como mensajería, avisos, distribución, búsquedas, etc.

El tema no es trivial, tendrá que aprender muchos conceptos que cambian la estructura típica de programar y ver los flujos de información. Lo Invito a pensar en las aplicaciones y ventajas que podría tener para sus desarrollos el contar con ingresar al mundo de las redes P2P. Veamos de que se trata…


Veamos cuales son los objetivos de JXTA cuando se definió su creación:

  • Resolver las necesidades de la mayor variedad posible de aplicaciones P2P
  • Sin suposiciones sobre SO, hardware, lenguaje, o mecanismos de transporte
  • Recomendaciones: caché para reducir tráfico de red y routers para los participantes no conectados directamente
  • Sin servidor central
  • Responsabilidad del servicio distribuida
  • Explotar el ancho de banda en toda la red

Veamos ahora un listado simple de algunos conceptos y relaciones de P2P generales:

  • Peer (Participante): Una entidad capaz de realizar alguna tarea útil y de comunicar los resultados a otra entidad en la red, ya sea directa o indirectamente.
    • Tres tipos:
      • Simples: servir a un usuario, normalmente en una red privada
      • Descubrimiento (rendezvous): para descubrir otros participantes, fuera de la red privada
      • Encaminamiento (router): permiten atravesar una red privada
  • Grupos de participantes: formado para servir un objetivo común. Proporciona servicios a sus participantes miembros que no son accesibles a otros participantes en la red P2P.
    • Datos privados
    • Seguridad
    • Monitorización ente miembros
  • Red de transporte:
    • Puntos finales: inicio o final de paquetes de datos
    • Conductos (pipes): canales unidireccionales asíncronos entre dos o más puntos finales
    • Mensajes: contenedores de datos transmitidos por un conducto de un punto final a otro. Se necesitan dos conductos para una comunicación bidireccional entre dos participantes
  • Servicios: trabajo útil
    • Servicio de participante: funcionalidad ofrecida por un un participante a los demás.
    • Servicio de grupo de participantes: ofrecido por un grupo de participantes al resto. Acceso redundante al servicio.
    • Servicios esenciales: proporciona la base de P2P y se utiliza para construir servicios más complejos.
  • Anuncio: una representación estructurada de una entidad, servicio o recurso disponible para un participante o grupo de ellos en una red P2P.
  • Protocolo
    • Un modo estructurado de intercambiar información entre dos o más partes utilizando reglas previamente acordadas por todas las partes.
    • Organizan el intercambio de anuncios.
  • Identificación de entidades
    • Participantes, grupos, conductos, contenido
    • Se necesita un sistema independiente de identificación de entidades

Si le parecen muchos, hay mas pero la potencia que contiene y podría contener su propia aplicación son realmente impresionantes. Permítame mostrarle el siguiente diagrama que le permitirá ver de mejor manera como JXTA lidia con los problemas de infraestructura propios de Internet para crear redes virtuales P2P.

jxta1

Como puede observar, una de las gracias de JXTA es que esconde al programador toda la problemática de redes P2P en Internet, en el sentido de lidiar con firewalls, NAT, y permitir realmente implementar una red P2P con integrantes estén donde este, si es que tienen conectividad Internet.

Y si lo anterior le parece poco, pude en el siguiente diagrama darse cuenta, que JXTA también esta pensado para considerar como peerID o cliente, no solo computadores o notebooks, sino también dispositivos de los mas diversos desde teléfonos hasta PDAs y otros dispositivos que corran alguna de las versiones de Java. Pude hacer click en la siguiente figura para ampliarla y ver en detalle lo que le comento en este párrafo, y algunos de los conceptos interesantes como Rendzvous y J2ME.

JXTAOverview

Pero a grandes rasgos, cuales son los servicios que ofrece a nivel de Arquitectura de Software JXTA a programadores como Framework de redes P2P?. Puede ver en el siguiente diagrama una respuesta rápida esta pregunta (click para aumentar tamaño).

jxta2

En los próximos post desarrollare en profundidad estos tres niveles de JXTA y ejemplos de codificación. La invitación es a considerar darle capacidades P2P a sus aplicaciones.

No limite P2P a ambientes de Internet como redes sociales. Considere P2P también a nivel empresarial, dentro de una organización donde su red Internet es la red privada de su empresa, y pude considerar a sus aplicaciones empresariales dando servicios en esta modalidad de manera de mantener conectados a todos los departamentos.

El paradigma es muy distinto y necesitara darse el tiempo y revisar donde y como aplicarlo en su organización o empresa. Pero creo que su intuición al igual que la mía, y de otros expertos que están clamando para que se considere a este JXTA como el primer Framework serio y Abierto para el nuevo salto tecnológico en el desarrollo de software.

La invitación esta hecha.
Ups! se me olvidaban los links, por si desean ver mas mientras desarrollo el tema, algunos de ellos fueron utilizados para presentar parte del material usado en este post.

La fundación JXTA
Introducción a JXTA en Sun (de Daniel Brookshier)
Peer to Peer JXTA 2.0 (de Jesús Vegas)

Javier Urrutia

4 Votes | Average: 3.75 out of 54 Votes | Average: 3.75 out of 54 Votes | Average: 3.75 out of 54 Votes | Average: 3.75 out of 54 Votes | Average: 3.75 out of 5 (4 votos, promedio: 3.75 de 5)
Loading ... Loading ...
Envie a un Amigo este Post (Click Aqui)Enviar a un Amigo | Version para Impresion del Post (Click Aqui)Version para Impresion


Posibles articulos relacionados


BackBase (Ajax para terrícolas)
Ajax la tecnología con la cual se agrupan diversas tecnologías ya existentes, desde Dhtml, css, JavaScript y xml, nos permite crear ricas aplicaciones visuales para Internet. Como sabemos la parte gráfica de los resultados de un desarrollo web esto

Herramientas y Framework de Scheduler a nivel empresarial (Quartz O.Source y Flux)
Cuando enfrentamos la operación de un departamento de informática, nos damos cuenta que el concepto "Operación" con lleva varios puntos en común, mas halla de la empresa en donde estemos trabajando y dando soporte operativo con nuestros sistemas informáticos.Descubrimos que

Aplicación empresarial de Ontologías Informáticas SWWS. 1era Parte - Introducción (El próximo salto)
Hoy día quiero dar un salto, de forma y estilo de los post que escribo en este blog. Después de interactuar mediante la red con distintas personas y en particular después de visitar el Blog de Jorge Fernandez Gonzales ,

Pramati Application Server
A estas alturas si sigue leyendo esta pagina imagino esta un poco relacionado con tecnologías de desarrollo actuales y emergentes, por lo tanto seguramente esta algo familiarizado con Jboss (Servidor de Aplicaciones J2EE) y tal vez otros servidores Java

Jboss JBPM (Open Source)
Aquí estamos una vez mas hablando de BPMs, Anteriormente escribí un articulo de una BPM Suite denominada Intalio, bastante completa y con la gracia de ser Open Source. Ahora voy a escribir de una alternativa llamada JBPM de Jboss.


Link de trackback a este post

Boton derecho para copiar enlace de trackback JXTA 2.0 El Framework de nivel empresarial que se nos viene (Introducción 1era Parte)


Escriba un comentario

Tome un momento y escriba su pensar hacerca de este post. Algunos codigos HTML son permitidos para el formato.

Comentarios escritos

Animese escriba el primer comentario del post!


Technorati Z22 XML-Sitemap RSS a PodCast Usa Firefox es mejor