Колония Рамочная
![]() | |
Разработчик | Жоао Магальяйнс, разработчики колоний и Hive Solutions |
---|---|
Стабильная версия | 1.0.0
/ май 2011 г. |
ТЫ | Кросс-платформенный |
Лицензия | лицензия GPLv3 |
Веб-сайт | getcolony.com |
Основные реализации | |
Питон , JavaScript , Руби | |
Под влиянием | |
OSGi , платформа управляемой расширяемости |
Colony Framework — это с открытым исходным кодом плагинов спецификация платформы . [1] Реализации спецификации предлагают модель компонентов времени выполнения, которая позволяет устанавливать, запускать, останавливать, обновлять и удалять плагины без необходимости остановки контейнера приложения. Спецификация в значительной степени опирается на принцип инверсии управления , чтобы облегчить компонентам приложения обнаружение и взаимодействие друг с другом.
Colony стремится устранить сложность, обычно связанную с созданием модульных приложений, за счет упрощенной унифицированной модели разработки компонентов. Практические приложения могут варьироваться от модульного корпоративного программного обеспечения до комплексных приложений. [2]
Мотивация
[ редактировать ]Colony черпает вдохновение из других решений модульности, таких как OSGi для языка программирования Java и Managed Extensibility Framework (MEF) для .NET Framework .
Colony стремится стать независимой от платформы и языка спецификацией и обслуживать широкий спектр вариантов использования. [3] Сюда входят варианты использования, обычно связанные с OSGi , такие как модульное приложение с узким ядром и большими возможностями расширения. Сюда также входят варианты использования, подходящие для MEF, например добавление модульности к существующему приложению без необходимости создания разработчиком собственной инфраструктуры плагинов с нуля.
Необходимость сокращения количества шагов настройки для сборки вычислительной сетки, а также поддержки максимально быстрого добавления узлов и распределения вычислений по ним также движет инициативой Colony Distributed.
Ключевые понятия
[ редактировать ]Концептуальная модель «Колония» построена на основе шести ключевых концепций. [1]
- Менеджер плагинов : основное средство, которое управляет жизненным циклом плагина и внедрением зависимостей .
- Плагин : изолированный фрагмент кода и связанные с ним ресурсы, который имеет смысл сам по себе или при совместной работе с другими плагинами.
- Возможности : определяет, на что способен плагин, чтобы его можно было сопоставить с другими плагинами, которым нужны его возможности.
- Зависимость : определяет, что плагину для работы требуется другой плагин, и без него он бесполезен.
- Событие : сообщение, которое может транслироваться плагином и прослушиваться любым плагином, который захочет его получить.
- Bundle : набор связанных плагинов, предназначенных для совместной работы.
Жизненный цикл плагина включает в себя загрузку и выгрузку его ресурсов, внедрение их в другие в качестве возможности или зависимости , а также внедрение в него возможностей и/или зависимостей. [4]
Распределение
[ редактировать ]Фреймворк предлагает концепцию вирусного распространения , при которой вычисления могут быть прозрачно распределены по любому количеству узлов, если на каждом узле запускается экземпляр колонии. Эта концепция использует преимущества модульного подхода, используя плагин в качестве единицы, передаваемой между узлами. Эта концепция также требует наличия инструментов для быстрого обнаружения новых узлов (например, с использованием методов Zeroconf, таких как Bonjour через плагин Colony Bonjour).
Вирусное распространение, согласно интерпретации Колонии, будет означать, что настроенный экземпляр Колонии может предоставить свою вычислительную мощность управляемой вычислительной сетке Колонии, объявив ее спецификации, после чего он будет получать рабочие единицы в виде плагинов, т. е. мобильных код для выполнения на экземпляре.
Для настройки нового экземпляра Colony и включения поддержки вирусного распространения потребуются операционная система , базовые зависимости Colony (например, виртуальная машина для выбранного языка реализации Colony) и сам менеджер инфраструктуры (например, с помощью установщика). [5] Добавление в экземпляр базовых пакетов, необходимых для доступа и загрузки из удаленного репозитория плагинов, завершит загрузку. Затем узел сообщит плагину сервера распространения о своей доступности и сможет начать прием и обработку данных.
Известные компоненты
[ редактировать ]Платформа Colony включает в себя набор прикладных компонентов для различных функций: от предметно-ориентированных подфреймворков до поставщиков общих протоколов и сервисов.
Известные компоненты включают полноценную среду веб-приложений , основанную на шаблоне архитектуры MVC , аналогичную Ruby on Rails и Django . Веб-стек поддерживается модульной реализацией HTTP- сервера, разработанной с нуля в соответствии с философией дизайна Colony. На практике это означает, что даже основные компоненты HTTP-сервера, такие как доступ к файловой системе и интерфейсы сокетов , предоставляются в виде модулей и могут быть заменены в горячем режиме . Веб-плагин MVC также использует модульный плагин менеджера сущностей ORM . Для управления распространением компонент менеджера распространения действует как центр для различных плагинов распространения, которые реализуют концепцию вирусного распространения Colony.
Среди других доступных компонентов — компонент автоматизации сборки (функционально сравнимый с Maven ); расширяемый фасад контроля версий с расширениями, доступными для Subversion , Bazaar и Mercurial ; автономное приложение Wiki , использующее плагины контроля версий . Для интеграции с другими технологиями Colony предоставляет серверы и клиенты для распространенных протоколов, таких как SMTP , BitTorrent , DNS , IRC , POP , Telnet , XMPP , LDAP , а также поддержку Bonjour ( от Apple Inc. реализация Zeroconf ). Также включены некоторые нишевые компоненты, такие как клиенты для API Twitter и службы push-уведомлений Apple .
Статус
[ редактировать ]По состоянию на 2011 год Colony находится в стадии альфа-версии , хотя производственные развертывания существуют. [6]
См. также
[ редактировать ]- Плагин
- Модульное программирование
- Компонентная разработка программного обеспечения
- ОСГи
- Платформа управляемой расширяемости
Ссылки
[ редактировать ]- ^ Jump up to: а б Спецификация колонии. Архивировано 17 августа 2011 г. на Wayback Machine — Руководство по спецификации колонии.
- ^ Что я могу построить с помощью Colony? Архивировано 17 августа 2011 г. на Wayback Machine — Руководство по приложениям, которые могут извлечь выгоду из этой технологии.
- ^ Почему колония? Архивировано 17 августа 2011 г. на Wayback Machine — Руководство, объясняющее необходимость использования фреймворка.
- ^ Жизненный цикл плагина. Архивировано 17 августа 2011 г. на Wayback Machine — раздел спецификации, описывающий жизненный цикл плагина.
- ^ Как основать свою колонию за 3 простых шага. Архивировано 17 августа 2011 г. в Wayback Machine — Руководство, описывающее настройку технологии.
- ^ Официальный сайт — Ссылка на текущий статус Колонии на ранней стадии альфа-тестирования по состоянию на 2011 год.
Внешние ссылки
[ редактировать ]- Веб-сайт Colony Framework , getcolony.com