El Marco de la colonia es un código abierto plugin de marco especificación. [1] Las implementaciones de la especificación ofrecen un modelo de componente en tiempo de ejecución, que permite instalar, iniciar, detener, actualizar y desinstalar complementos sin necesidad de detener el contenedor de la aplicación. La especificación se basa en gran medida en el principio de inversión de control , para facilitar que los componentes de la aplicación se descubran e interactúen entre sí.
Desarrollador | João Magalhães, Colony Developers y Hive Solutions |
---|---|
Lanzamiento estable | 1.0.0 / mayo de 2011 |
SO | Multiplataforma |
Licencia | GPLv3 |
Sitio web | getcolony.com |
Implementaciones importantes | |
Python , JavaScript , Ruby | |
Influenciado por | |
OSGi , marco de extensibilidad administrado |
Colony tiene como objetivo eliminar la complejidad típicamente asociada con la creación de aplicaciones modulares, a través de un modelo unificado simplificado para el desarrollo de componentes. Las aplicaciones prácticas pueden abarcar desde software empresarial modular hasta combinación de aplicaciones. [2]
Motivación
Colony se inspira en otras soluciones de modularidad como OSGi para el lenguaje de programación Java y Managed Extensibility Framework (MEF) para .NET Framework .
Colony tiene como objetivo ser una plataforma y una especificación independiente del lenguaje, y servir a una amplia gama de casos de uso. [3] Esto incluye casos de uso típicamente asociados con OSGi , como aplicaciones modularizadas con un núcleo estrecho y grandes posibilidades de extensibilidad. Esto también incluye casos de uso a los que MEF atiende, como agregar modularidad a una aplicación existente, sin que el desarrollador tenga que crear su propia infraestructura de complementos desde cero.
La necesidad de reducir el número de pasos de configuración para ensamblar una cuadrícula de computación, así como también de admitir la adición de nodos y distribuirles la computación lo más rápido posible, también impulsa la iniciativa Colony Distributed.
Conceptos clave
El modelo conceptual de Colony se basa en 6 conceptos clave. [1]
- Administrador de complementos : instalación central que administra el ciclo de vida del complemento y la inyección de dependencias .
- Complemento : un fragmento de código aislado y recursos asociados que tiene sentido por sí mismo o cuando se trabaja junto con otros complementos.
- Capacidad : define lo que un complemento puede hacer, de modo que pueda combinarse con otros complementos que deseen sus capacidades.
- Dependencia : define que un complemento requiere otro complemento para funcionar y no tiene valor sin él.
- Evento : un mensaje que puede ser transmitido por un complemento y escuchado por cualquier complemento que desee recibirlo.
- Paquete : un conjunto de complementos relacionados, destinados a funcionar juntos.
El ciclo de vida del complemento incluye cargar y descargar sus recursos, inyectarlo en otros como una capacidad o dependencia , así como tener capacidades y / o dependencias inyectadas en él. [4]
Distribución
El marco propone el concepto de Distribución Viral donde la computación se puede distribuir de manera transparente a cualquier número de nodos, haciendo que cada nodo ejecute una instancia de Colony. El concepto aprovecha el enfoque de modularidad, utilizando el complemento como la unidad que se transferirá entre los nodos. El concepto también requiere la disponibilidad de herramientas para el descubrimiento rápido de nuevos nodos (por ejemplo, utilizando técnicas de Zeroconf como Bonjour a través de Colony Bonjour Plugin).
La distribución viral, según la interpretación de Colony, significaría que una instancia de Colony configurada podría poner su poder de cómputo a disposición de una red informática administrada por Colony, al anunciar sus especificaciones, después de lo cual recibiría unidades de trabajo en forma de complementos, es decir, dispositivos móviles. código para su ejecución en la instancia.
Para configurar una nueva instancia de Colony y habilitar el soporte de distribución viral, se requeriría un sistema operativo , dependencias básicas de Colony (por ejemplo, una máquina virtual para el lenguaje de implementación de Colony de elección) y el administrador del marco en sí (por ejemplo, usando el instalador). [5] Agregar los paquetes básicos necesarios para acceder y descargar desde un repositorio de complementos remoto a la instancia completaría el programa de arranque. Luego, el nodo anunciaría su disponibilidad para el complemento del servidor de distribución y podría comenzar a recibir y procesar el trabajo.
Componentes notables
El marco de Colony incluye un conjunto de componentes de aplicación para varias funciones, desde sub-marcos específicos de dominio hasta proveedores de protocolos y servicios comunes.
Los componentes notables incluyen un marco de aplicación web completo , basado en el patrón de arquitectura MVC , similar a Ruby on Rails y Django . La pila web está respaldada por una implementación de servidor HTTP modular desarrollada desde cero bajo la filosofía de diseño de Colony. En la práctica, esto implica que incluso los componentes centrales del servidor HTTP, como el acceso al sistema de archivos y las interfaces de socket , se proporcionan como módulos y pueden intercambiarse en caliente . El complemento web MVC también utiliza el complemento de administrador de entidades ORM modular . Para administrar la distribución , el componente del administrador de distribución actúa como un centro para los diversos complementos de distribución que implementan el concepto de distribución viral de Colony.
Entre otros componentes disponibles se encuentran un componente de automatización de compilación (funcionalmente comparable a Maven ); una fachada de control de revisión extensible con extensiones disponibles para Subversion , Bazaar y Mercurial ; una aplicación Wiki autónoma , que aprovecha los complementos de control de revisión . Para la integración con otras tecnologías, Colony proporciona servidores y clientes para protocolos comunes como SMTP , BitTorrent , DNS , IRC , POP , Telnet , XMPP , LDAP , así como soporte para Bonjour ( la implementación de Zeroconf de Apple Inc. ). También se incluyen algunos componentes de nicho, como los clientes de la API de Twitter y el Servicio de notificaciones push de Apple .
Estado
A partir de 2011, se considera que Colony está en alfa, aunque existen implementaciones de producción. [6]
Ver también
- Enchufar
- Programación modular
- Ingeniería de software basada en componentes
- OSGi
- Marco de extensibilidad administrado
Referencias
- ^ a b Especificación de colonia Archivado el 17 de agosto de 2011 en la Wayback Machine - Guía sobre la especificación de colonia
- ^ ¿Qué puedo construir con Colony? Archivado el 17 de agosto de 2011 en la Wayback Machine - Guía con aplicaciones que podrían beneficiarse de la tecnología
- ^ ¿Por qué Colonia? Archivado el 17 de agosto de 2011 en la Wayback Machine - Guía que motiva la necesidad del marco
- ^ Ciclo de vida del complemento Archivado el 17 de agosto de 2011 en Wayback Machine - Sección de la especificación que describe el ciclo de vida del complemento
- ^ Cómo establecer su colonia en 3 sencillos pasos Archivado el 17 de agosto de 2011 en Wayback Machine - Guía que describe la configuración de la tecnología
- ^ Sitio web oficial : referencia al estado actual de Colony en el alfa inicial de 2011
enlaces externos
- Sitio web de Colony Framework , getcolony.com