Articulo de referencia

Rana inteligente

SmartFrog ( Smart Framework for Object Groups ) es un framework de código abierto basado en Java que ayuda a alojar aplicaciones a gran escala en sistemas distribuidos basados ​...

SmartFrog ( Smart Framework for Object Groups ) es un framework de código abierto basado en Java que ayuda a alojar aplicaciones a gran escala en sistemas distribuidos basados ​​en componentes . Su objetivo es simplificar, automatizar y corregir el diseño, la configuración , el despliegue y la gestión de sistemas distribuidos. SmartFrog consta principalmente de tres aspectos: el lenguaje SmartFrog, un sistema de ejecución y una biblioteca de componentes SmartFrog que implementan el modelo de componentes SmartFrog. [ 1 ]

Historia

SmartFrog se desarrolló originalmente en los laboratorios de investigación europeos de Hewlett-Packard . Se ha utilizado en la investigación de HP sobre automatización de infraestructura y automatización de servicios, así como en una variedad de productos de HP. [ 2 ] SmartFrog se abrió al público en enero de 2004 bajo la licencia GNU Lesser General Public License (LGPL) alojada en SourceForge . Como resultado, los usuarios y desarrolladores fuera del laboratorio también pueden hacer sus contribuciones utilizando, extendiendo el marco o informando errores. [ 3 ] En 2017, tras la división corporativa de Hewlett-Packard en HP Inc. y Hewlett Packard Enterprise , mientras estaba bajo la propiedad de Hewlett Packard Enterprise , SmartFrog se relicenciaron bajo la licencia Apache 2.0 . [ 4 ]

Tecnologías

Lenguaje SmartFrog

SmartFrog Language es un lenguaje de descripción de configuración que se utiliza para describir colecciones de componentes y configuraciones del sistema, como por ejemplo qué componentes de software pertenecen al sistema, cuáles son los parámetros de configuración, cómo están vinculados los componentes a otros componentes del sistema y en qué secuencia funcionan los componentes.

Modelo de componentes

En SmartFrog, el componente es la parte más importante y fundamental. Un sistema se considera un conjunto de aplicaciones, cada una compuesta por un conjunto de componentes. Cada componente se escribe en un archivo SmartFrog en Java, que representa su existencia y atributos predeterminados.

Sistema de tiempo de ejecución

El sistema de ejecución interpreta las descripciones escritas en el lenguaje SmartFrog y gestiona los componentes en función de los resultados de dicha interpretación. Además, proporciona a los usuarios herramientas para interactuar con los componentes.

Características

Como marco

En lugar de un paquete o biblioteca, SmartFrog es un marco de trabajo, un componente básico para ayudar a construir sistemas de software. SmartFrog se puede extender añadiendo nuevos componentes al marco de trabajo, lo que significa que tiene una aplicabilidad mucho más amplia y podría adquirir nuevas funcionalidades. [ 5 ]

Mecanismo de plantilla

En SmartFrog, cada componente se define como una plantilla . Normalmente, para cada nuevo servicio, se crean y activan nuevos componentes. Sin embargo, algunos componentes de propósito general pueden reutilizarse en diferentes servicios. Gracias al mecanismo de plantillas, la configuración del sistema se adapta fácilmente a diferentes requisitos y se puede mantener la configuración predeterminada. El prototipado también permite conservar todas las transformaciones e historial de configuraciones del sistema. Al usar SmartFrog para construir un sistema distribuido a gran escala, se pueden reutilizar algunos componentes y no es necesario reescribir completamente toda la aplicación. Los usuarios pueden escribir o crear fácilmente componentes SmartFrog sencillos para instalar, desinstalar, configurar, iniciar y detener el sistema utilizando la notación de descripción de configuración. [ 5 ]

Modelo de cliente cruzado

Existen muchos sistemas de software similares a SmartFrog, pero pocos utilizan el mismo modelo. La mayoría se basa en el modelo cliente-servidor , donde los datos de configuración de todos los clientes se almacenan en un servidor y cada cliente se diseña para coincidir con dichos datos. Sin embargo, SmartFrog utiliza un modelo entre clientes, donde cada cliente se trata como una entidad independiente. Esto le permite coordinarse entre una amplia gama de nodos, realizar acciones autónomas y lograr una mayor escalabilidad. [ 6 ]

Seguridad

SmartFrog tiene dos modos de funcionamiento: seguro e inseguro. [ 7 ] En el modo inseguro, no hay restricciones en la conexión del cliente a SmartFrog, y la comunicación en texto plano puede ser interceptada. En este modo, el sistema es vulnerable a ataques maliciosos.

SmartFrog necesita protegerse contra implementaciones maliciosas u otras acciones de gestión. En modo seguro, SmartFrog utiliza un sistema de infraestructura de clave pública (PKI). Solo los clientes certificados por una autoridad de certificación (CA) específica pueden conectarse al demonio de SmartFrog . Además, SmartFrog firma todos los componentes y descripciones con un certificado, y solo los firmados pueden implementarse. Las comunicaciones se cifran mediante protocolos de seguridad de la capa de transporte (TLS). [ 8 ]

El proyecto GridWeaver

El proyecto GridWeaver comenzó en 2002 y duró un año. Los colaboradores del proyecto fueron la Escuela de Informática de la Universidad de Edimburgo , HP Laboratories y el Centro de Computación Paralela de Edimburgo (EPCC) . Este proyecto tenía como objetivo encontrar soluciones a los problemas de automatización de la configuración y gestión de la próxima generación de redes de computación en malla . [ 9 ]

El proyecto comparó SmartFrog y el sistema de configuración local (LCFG) en términos de fortalezas y debilidades, además de investigar cómo se utilizan estas herramientas para resolver problemas.

SFJS

SFJS es un lenguaje de configuración, un entorno de ejecución y una biblioteca de componentes desarrollados por Configured Things , una empresa cofundada por Patrick Goldsack, uno de los autores principales del proyecto SmartFrog. SFJS es el sucesor espiritual de SmartFrog, construido sobre Node.js. [ 5 ] [ 10 ]

Véase también

Referencias

  1. Goldsack, Patrick; Guijarro, Julio; Lain, Antonio; Mecheneau, Guillaume; Murray, Paul; Toft, Peter (2003). "SmartFrog: Configuración e inicio automático de aplicaciones distribuidas": 1– 9. CiteSeerX 10.1.1.187.8478 . {{cite journal}}: Para citar una revista se requiere |journal=( ayuda )
  2. "Página del proyecto en SourceForge" .
  3. "Página del proyecto HP Labs SmartFrog" . Archivado del original el 20 de febrero de 2019.
  4. «SmartFrog/SVN/Commit [ r8898 ] » . Fuenteforja . 2017-05-16.
  5. 1 2 3 "Sitio web oficial de SmartFrog" . smartfrog.org .
  6. Goldsack, Patrick; Guijarro, Julio; Loughran, Steve; Coles, Alistair; Farrell, Andrew; Lain, Antonio; Murray, Paul; Toft, Peter (2009). "El marco de gestión de configuración Smart Frog ". ACM SIGOPS Operating Systems Review . 43 : 16–25 . doi : 10.1145/1496909.1496915 . S2CID 11693395 . 
  7. "Seguridad de SmartFrog" . Archivado del original el 28 de marzo de 2015.
  8. "Manual de usuario de SmartFrog" . Archivado del original el 20 de febrero de 2019.
  9. "Proyecto GridWeaver" . Archivado del original el 23 de septiembre de 2016.
  10. "El proyecto SmartFrog" . Cosas configuradas . Consultado el 25 de abril de 2022 .
  • Sitio web oficial
  • Sitio web del proyecto SmartFrog de HP Labs en Wayback Machine (archivado el 20 de febrero de 2019)
  • Páginas del proyecto en SourceForge
  • Referenciado en un documento de Google Usenix.