¿Cómo?¿Que no sabes lo que es ICE? Pincha y echa un vistazo

Llevo un tiempo escribiendo la palabra «ICE» o diciendo que esto o lo otro lo voy a hacer utilizando «ICE», pero aún no te he explicado con detalle lo que es. Bien, hoy ha llegado el momento de hacerlo, y es que en este proyecto, es una pieza fundamental.

Internet Communications Engine ICE, es un middleware orientado a objetos hecho por la empresa ZeroC, que te ayuda a desarrollar aplicaciones distribuidas con menos esfuerzo. Digamos que ICE, como middleware, se hace cargo de las interacciones a bajo nivel en la red. No es necesario estar pendiente de abrir las conexiones de red, reintentar conexiones fallidas, etc. Soporta varios lenguajes de programación(C++, Java, Python, .NET, PHP, Pbjetive-C, Ruby y ActionScript), lo cual es una ventaja, ya que puedes hacer el servidor en un lenguaje y los clientes en otro. Por si fuera poco, es multiplataforma. Pero… lo importante, y lo que interesa son las caracterísitcas y servicios que provee ICE.

CLIENTES Y SERVIDORES

Los conceptos cliente y servidor varian un poco en lo fundamental, el cliente requierela funcionalidad que el servidor proporciona. Los servidores ICE necesitan un adaptador de objetos donde poder añadir los sirvientes necesarios para ofrecer el servicio. En cuanto a los clientes, necesitan un proxy al servidor para poder solicitar la funcionalidad requerida por la aplicación.estructuraice

SERVICIOS

ICE ofrece una serie de servicios, estos servicios suministran la funcionalidad que la mayoría de aplicaciones distribuidas requieren. Estos servicios proporcionan un excelente rendimiento y pueden ser replicados para lograr tolerancia a fallos y escalabilidad.

  • IceGrid: IceGrid es uno de los servicios más importantes de ICE, proporciona una gran cantidad de funcionalidades para un grid de ordenadores como activación automática de objetos, balanceo de carga y transparencia de localización. Permite que un cliente se comunique con un objeto remoto sin saber en qué nodo se encuentra ni en qué puerto está escuchando. IceGrid incluye dos herramientas de administración para controlar sus características, icegridadmin la cual tiene una interfaz por linea de co mandos y icegrid-admin con una interfaz gráfica.
  • IceStorm: IceStorm es el servicio de ICE que proporciona comunicación entre clientes y servidores a través de canales de eventos. En este ámbito es más común utilizar publicador y suscriptor en lugar de cliente y servidor. El o los publicadores envían datos a un canal mediante invocaciones remotas, que serán enviadas a los suscriptores de dicho canal. Por ejemplo, imagínese que hay nodos que quieren recibir audio de un nodo servidor. El publicador puede publicar el audio en un canal de eventos de tal forma que los clientes que quieran recibir el audio solamente tendrán que suscribirse a ese canal. Cada canal se identifica por su nombre y puede tener múltiples publicadores y suscriptores.
  • Freeze: Freeze es un servicio de persistencia que permite guardar el estado de los objetos en una base de datos Berkeley. Freeze puede recuperar auto máticamente los objetos de una base de datos sobre la demanda, y automáticamente actualizar la base de datos cuando cambia el estado del objeto.
  • Glacier2: Glacier2 es un servicio de firewall que permite la comunicación segura entre clientes y servidores.
  • IcePatch2: IcePatch permite la distribución de actualizaciones de software a los nodos que componen el grid. IcePatch comprueba automáticamente la versión que tiene cada nodo y envía las actualizaciones disponibles.

Hasta aquí esta pequeña introducción, por supuesto hay mucho más que contar sobre ICE, pero la entrada se haría infinita. Todo esto está escrito en la memoria del proyecto.

Tagged with: , , , , , ,
Publicado en Documentación, estado del arte, iteraciones

Deja un comentario