La computación en malla (en inglés grid computing) es una tecnología que permite utilizar de forma coordinada recursos heterogéneos (entre ellos procesadores, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado. Es una forma de computación distribuida, en la cual los nodos participantes pueden ser de iguales o distintas arquitecturas y cubrir toda la gama de potencia de cómputo, desde embebidos hasta supercomputadoras.
Los sistemas que forman parte de una topología en malla están interconectados mediante redes de área extensa (por ejemplo internet). Desarrollado en ámbitos científicos a principios de los años 1990, su entrada al mercado comercial siguió la idea de la llamada computación bajo demanda.
El término malla se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones. Puesto que la colaboración entre instituciones envuelve un intercambio de datos, o de tiempo de computación, el propósito de la red en malla es facilitar la integración de recursos computacionales. Universidades, laboratorios de investigación o empresas se asocian para formar mallas para lo cual utilizan algún tipo de software que implemente este concepto.
En la computación en malla, las redes pueden ser vistas como una forma de computación distribuida donde un “supercomputador virtual” está compuesto por una serie de computadores agrupados para realizar grandes tareas.
Visión general Llamamos malla al sistema de computación distribuido que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos pueden ser ordenadores (PC, estaciones de trabajo, supercomputadoras, PDA, portátiles, móviles, etc), software, datos e información, instrumentos especiales (radio, telescopios, etc.) o personas/colaboradores.
Grid Computing consiste en conectar un grupo de ordenadores de manera descentralizada con el fin de formar un superordenador virtual.La potencia de cálculo distribuida de manera flexible permite realizar tareas complejas con varios recursos simultáneamente y optimizar el uso de la infraestructura.
La computación en malla ofrece muchas ventajas frente a otras tecnologías alternativas. La potencia que ofrecen multitud de computadores conectados en red usando una malla es prácticamente ilimitada, además de que ofrece una perfecta integración de sistemas y dispositivos heterogéneos, por lo que las conexiones entre diferentes máquinas no generarán ningún problema. Se trata de una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.
Estos recursos se distribuyen en la red de forma transparente pero guardando unas pautas de seguridad y políticas de gestión de carácter tanto técnico como económico. Así pues, su objetivo será el de compartir una serie de recursos en la red de manera uniforme, segura, transparente, eficiente y fiable, ofreciendo un único punto de acceso a un conjunto de recursos distribuidos geográficamente en diferentes dominios de administración. Esto nos puede llevar a pensar que la computación Grid permite la creación de empresas virtuales. Es importante saber que una malla es un conjunto de máquinas distribuidas que ayudan a mejorar el trabajo sobre software pesados.
Funcionamiento El funcionamiento del grid computing requiere de un middleware e interfaces (nodos) para asegurar la comunicación entre los equipos distribuidos. Otro de los elementos es el motor de búsqueda, ya que este no solo servirá para que el usuario encuentre los datos que necesite, también encontrará las herramientas para analizarlos y el poder de cómputo necesario para realizar las operaciones.
Como norma general, el grid computing comienza con la instalación de un software en los equipos cliente, este es el encargado de descargar un trozo de la tarea total del proyecto. Este software hace uso de la computadora cuando esta no se encuentra en uso, o usa los recursos que la computadora no está usando en ese momento para no intervenir en el trabajo normal del usuario. Una vez que el proceso termina, el software enviará los resultados a un servidor central y comenzará la descarga de la siguiente tarea que debe realizar. Entre más usuarios instalen el software en sus equipos, más elementos son añadidos a la red y el proceso de computación se vuelve más rápido.
Arquitectura La arquitectura de la computación grid esta descrita por capas, en donde cada una de estas capas tiene funciones específicas. Gracias a esta arquitectura, el grid computing ha sido usada para tareas dentro del ámbito científico y de investigación. Dicha arquitectura está basada en protocolos, esto quiere decir que, entre cada uno de los niveles, los usuarios pueden gestionar condiciones para explotar al máximo el uso compartido de recursos.
En el nivel de infraestructura, también denominado fábrica, están los recursos computacionales, como los servidores, bases de datos, etc. Asimismo, se incluyen los mecanismos de control y gestión. El nivel de conectividad pertenece a los protocolos de comunicación y seguridad, los cuales son usados para permitir que los recursos físicos puedan comunicarse, entre estos protocolos se encuentra, el protocolo SSL, certificados X.509 y la pila del protocolo TCP/IP. La seguridad se vuelve un punto muy importante, ya que se pueden compartir recursos entre varias organizaciones, las cuales pueden tener sus propias políticas de seguridad. Dentro del nivel de recurso se lleva a cabo la negociación, control y monitoreo de algún recurso en específico, así como toda su información, también es donde se ejecutan los protocolos de control y monitoreo de dicho recurso. En el nivel de recursos es donde están todos los servicios que se pueden gestionar, en estos servicios se pueden encontrar el servicio de directorios, este servicio es el que permite al usuario encontrar recursos de su interés. También se encuentran los planificadores distribuidos, los cuales son los encargados de asignar tareas a cada uno de los recursos. Finalmente, en el nivel de aplicación es donde los protocolos de dicha capa permiten a las aplicaciones acceder a la infraestructura del grid computing. Dependiendo del tipo de aplicación puede ser necesario conectarse a las distintas capas o acceder directamente a una de ellas, o incluso acceder directamente a la infraestructura.
Historia El término computación en malla tiene su origen en el comienzo de los años noventa como una metáfora para hacer que el acceso a la potencia de los computadores sea tan sencillo como acceder a una red eléctrica. La metáfora de la red eléctrica para el computación accesible en seguida se volvió canónica cuando Ian Foster y Carl Kesselman publicaron su trabajo seminal, The Grid: Blueprint for a new computer infrastructure en 1999.
Las ideas de la computación mallada (incluidas aquellas de la computación distribuida, programación orientada a objetos y servicios Web) fueron reunidas por Ian Foster, Carl Kesselman, y Steve Tuecke, conocidos como los padres de la computación en malla. Lideraron el esfuerzo por la creación del Globus Toolkit incorporando no solo la gestión de la computación, sino también la gestión del almacenamiento, aprovisionamiento de seguridad, traslado de datos, monitorización, y un conjunto de herramientas para el desarrollo de servicios adicionales basados en la misma infraestructura, incluyendo la negociación de los acuerdos, mecanismos de notificación, servicios de activación y agregación de información. Mientras que Globus Toolkit se mantiene como el estándar de facto para soluciones de creación de redes, otras herramientas han sido creadas para responder a una serie de servicios necesarios para crear una red empresarial o global.
En 2007, el término computación en la nube se hizo popular, lo cual es conceptualmente similar a la definición canónica de Foster de la computación en malla (en términos de recursos de computación consumidos tal como la electricidad en una red eléctrica).
Actualidad Existen muchos proyectos que han sido desarrollados en esta línea, tales como Edonkey, Emule o Limewire. Se trata de programas para compartir datos a nivel mundial entre diferentes máquinas. Las redes en malla y P2P tienen mucho en común y especialmente la idea básica de compartición de recursos. Entre las características diferentes podemos ver la P2P como más anónima y generalizada en ordenadores de usuarios de Internet, mientras que las mallas nacen de una estructura de nodos más controlada y jerarquizada en centros científicos. Una primera experiencia fue GriPhyN, para unir nodos en el proceso de físicas de altas energías en Estados Unidos.
250px|miniaturadeimagen|Captura de pantalla del software cliente de SETI@home
Otro proyecto también muy importante es SETI@home. Éste cuenta con miles de PC repartidos por Internet que ceden tiempo de sus procesadores, ciclos de proceso desocupados, para analizar señales buscando patrones inteligentes extraterrestres. Sin embargo, su uso destaca también en los centros de investigación desde finales del 1990 en proyectos que van desde Física de Partículas a Astrofísica o incluso Biología. En Europa con el apoyo de proyectos de Centro Europeo Investigación Nuclear y el programa marco europeo se creó el software y red EDG (malla de datos europea). El uso de la computación mallada en estos campos ha supuesto una mejora exponencial en los últimos años.
Las empresas e instituciones que han participado en el desarrollo de estas tecnologías quieren entrar cuanto antes en una etapa de explotación comercial. Empresas como Microsoft y Sun Microsystems se han dado cuenta de la importancia que tendrá a medio plazo ofrecer computación en malla a sus clientes. Destacamos el papel de IBM invirtiendo en mallas como plataforma para ofrecer a sus clientes las ventajas como ahorro de tiempo y recursos económicos.
Existen varias soluciones comerciales en forma de empresas, por ejemplo:
La Enterprise Grid Alliance (EGA): se crea en California, en abril de 2004, por un grupo de empresas líderes en tecnología para desarrollar soluciones comerciales y empresariales de informática distribuida y para acelerar el despliegue de esta tecnología en las empresas. Es un consorcio abierto enfocado en el desarrollo y promoción de soluciones de mallas empresariales. Sun Microsystems: el software Grid Engine de Sun hace más fácil agregar máquinas a la malla y automáticamente toma ventaja de la energía incrementada, por lo que ahorra tiempo y recursos a través de una red en malla rápida, eficiente y confiable para el manejo y despliegue. Andago: con el objetivo de acercar la topología de malla a los entornos industriales y de negocio, Andago añadió a su oferta de soluciones su experiencia en proyectos Grid. JPPF: el software JPPF habilita las aplicaciones con altos requerimientos de procesamiento para ser ejecutadas en varias computadoras con diferentes características heterógeneas gracias a su arquitectura basada en Java, de manera escalable (agregando o disminuyendo computadoras participantes) de manera dinámica, distribuyendo la aplicación en tareas.
Existen diversos middleware con capacidades y funcionalidades muy variadas que, en función de la complejidad, servicios ofrecidos y dimensión de la red en malla a implantar, se seleccionará la opción idónea. Las soluciones middleware, todas ellas de código abierto, utilizadas (por ejemplo por Andago) son: EGEE para grandes proyectos, Globus Solutions para proyectos medios, Grid Engine para pequeñas implantaciones.
Características