Internet Communication Engine (ICE)


Un sistema distribuido es aquel formado por varios  computadores interconectados  que colaboran para llevar a cabo determinado cometido. El software de red que ofrecen los sistemas operativos (por ejemplo el API de Sockets de Berkeley) posibilitan su implementación pero el nivel de abstracción que ofrecen es muy elemental. Así como los sistemas operativos crean una capa de abstracción del hardware de la computadora, es deseable disponer de una capa de abstracción que encapsule la complejidad y heterogeneidad de las aplicaciones distribuidas. Este tipo de software es el que se denomina middleware: una capa intermedia entra las aplicaciones y el software de red que ofrecen los sistemas operativos.

Atendiendo a las particularidades de cada aplicación, surge la necesidad de diferentes tipos de middlewares. Los clasificados como RPCs (Remote Procedure Call), permiten invocar procedimientos residentes en otras máquinas; el paradigma Objeto Remoto facilita la invocación de métodos de objetos que residen en otras computadoras. Los denominados MOMs (Message Oriented Middelware) se asemejan a un servicio de e-mail pero con características adicionales como la entrega garantizada de mensajes, persistencia de la comunicación, etc. Un paradigma más reciente es el conocido como DDS (Distributed Data Service) que implementa un modelo de comunicación publicador/subscriptor en la que la forma de colaborar de las diferentes partes del sistema  distribuido consiste en publicar información al resto del sistema o recibirla.

Pero además del modelo de aplicación que cada tipo de middleware propugne, los desarrolladores de aplicaciones necesitan tener en cuenta características no funcionales como son la escalabilidad, heterogeneidad, transparencia de ubicación, etc.  Y por supuesto,  aspectos comerciales como, ¿se trata de una solución propietaria? ¿qué y cuántas empresas son las que ofrecen mantenimiento? ¿Cuál es su “coste” de aprendizaje y adopción? …

Rompiendo con la que ha venido siendo habitual en la oferta de middlewares,  ICE es un middleware desarrollado por una única empresa, ZeroC  (www.zeroc.com), pero con licencia GPL. En vez de hablar de sus pros y contras, se remite al lector a visitar su página web para ver la lista de empresas que la han adoptado para sus productos.

ICE deriva de CORBA. Se aprovecharon las buenas ideas que surgieron en ella, descartaron los defectos de que todo producto novedoso adolece en su surgimiento y sobre todo,  aquellos debidos a la burocracia que un consorcio de más de 800 empresas supone.

ICE implementa el paradigma de Objeto Remoto; es decir, mantiene la semántica orientada a objeto entre computadoras. Encapsula las comunicaciones ofreciendo transparencia de localización: actualmente emplea TCP y UDP como mecanismos de transporte; también se pueden encriptar las comunicaciones mediante SSL. Es multiplataforma; actualmente es posible desarrollar en los lenguajes C++, Java, C#, Python, Rubi, PHP y Objetive-C bajo para las plataformas Windows, Linux, Solaris, Mac-OS, Android e iOS .  Y  viene acompañado de varios servicios entre los que destacamos:

  • IceGrid: servicio de localización, balanceo y distribución de carga, activación de servidores bajo demanda ,…
  • IceBox: Servidor de aplicaciones en el que se pueden orquestar la parada y activación de componentes de una aplicación.
  • IceStorm: Servicio de publicación/suscripción que permite desacoplar clientes de servidores y facilita un estilo de aplicaciones según el paradigma de DDS (aunque con menos facilidades).

 

Para finalizar, es difícil clasificarla con respecto a otros productos, ya que en cualquier elección entran factores dispares: eficiencia, aspectos comerciales, coste de aprendizaje, adecuación a las necesidades particulares de cada aplicación, y un largo etc. Pero de todas formas,  la consideramos una plataforma muy útil para la enseñanza tal y de hecho, en el grado en Informática y en el grado en Telecomunicaciones de la Universidad de Mondragón está siendo empleada en la asignatura de Sistemas Distribuidos.

+ No hay comentarios

Añade el tuyo