Структура колонии - Colony Framework

Структура колонии
Colony Logo.png
РазработчикЖоао Магальяйнс, разработчики колоний и Hive Solutions
Стабильный выпуск
1.0.0 / май 2011 г.
Операционные системыКроссплатформенность
ЛицензияGPLv3
Интернет сайтgetcolony.com
Основной реализации
Python, JavaScript, Рубин
Под влиянием
OSGi, Фреймворк управляемой расширяемости

В Структура колонии является Открытый исходный код плагин рамки Технические характеристики.[1] Реализации спецификации предлагают модель компонентов среды выполнения, которая позволяет устанавливать, запускать, останавливать, обновлять и удалять подключаемые модули, не требуя остановки контейнера приложения. Спецификация во многом зависит от Инверсия контроля принцип, чтобы упростить для компонентов приложения обнаружение и взаимодействие друг с другом.

Colony стремится устранить сложность, обычно связанную с созданием модульных приложений, с помощью упрощенной унифицированной модели для разработки компонентов. Практические приложения могут варьироваться от модульного корпоративного программного обеспечения до смешивания приложений.[2]

Мотивация

Colony черпает вдохновение в других решениях модульности, таких как OSGi для Ява язык программирования и Платформа управляемой расширяемости (MEF) для .NET Framework.

Colony стремится быть независимой от платформы и языка спецификацией и обслуживать широкий спектр сценариев использования.[3] Сюда входят варианты использования, обычно связанные с OSGi, например, модульное приложение с узким ядром и большими возможностями расширения. Это также включает варианты использования, в которых MEF обслуживает, например, добавляя модульность к существующему приложению, при этом разработчику не нужно создавать собственную инфраструктуру плагинов с нуля.

Необходимость уменьшения количества шагов конфигурации для сборки вычислительной сети, а также поддержки добавления узлов и максимально быстрого распределения вычислений между ними также является движущей силой инициативы Colony Distributed.

Ключевые идеи

Концептуальная модель Colony основана на 6 ключевых концепциях.[1]

  • Менеджер плагинов: основное средство, которое управляет жизненным циклом плагина и внедрение зависимости.
  • Плагин: изолированный фрагмент кода и связанные ресурсы, который имеет смысл сам по себе или при совместной работе с другими плагинами.
  • Возможность: определяет, что может делать плагин, чтобы его можно было сопоставить с другими плагинами, которым нужны его возможности.
  • Зависимость: определяет, что для работы плагина требуется другой плагин, и он бесполезен без него.
  • Мероприятие: сообщение, которое может транслироваться плагином и прослушиваться любым плагином, который хочет его получить.
  • Пучок: набор связанных плагинов, предназначенных для совместной работы.

Жизненный цикл плагина включает в себя загрузку и выгрузку его ресурсов, встраивание в другие в качестве способность или же зависимость, а также в него встроены возможности и / или зависимости.[4]

Распределение

Фреймворк предлагает концепцию Вирусное распространение где вычисления могут быть прозрачно распределены между любым количеством узлов, если каждый узел запускает экземпляр Colony. Эта концепция использует преимущества модульного подхода, используя плагин в качестве единицы, передаваемой между узлами. Концепция также требует наличия инструментов для быстрого обнаружения новых узлов (например, использования Зероконф такие методы, как Bonjour через плагин Colony Bonjour).

Вирусное распространение, согласно интерпретации Colony, будет означать, что сконфигурированный экземпляр Colony может сделать свою вычислительную мощность доступной для управляемой вычислительной сети Colony, объявив свои спецификации, после чего он получит рабочие единицы в виде плагинов, т. Е. Мобильных код для выполнения на экземпляре.

Чтобы настроить новый экземпляр Colony и включить поддержку вирусного распространения, потребуется Операционная система, основные зависимости Colony (например, виртуальная машина для выбранного языка реализации Colony) и сам менеджер фреймворка (например, с помощью установщика).[5] Добавление базовых пакетов, необходимых для доступа и загрузки из удаленного репозитория плагинов в экземпляр, завершит загрузку. Затем узел объявляет о своей доступности подключаемому модулю сервера распространения и может начать прием и обработку работы.

Известные компоненты

Фреймворк Colony включает в себя набор компонентов приложения для различных функций, от доменных подфреймворков до поставщиков общих протоколов и услуг.

Известные компоненты включают полный каркас веб-приложений, на основе MVC архитектурный образец, похожий на Рубин на рельсах и Джанго.Веб-стек поддерживается модульным HTTP Реализация сервера разрабатывалась с нуля в соответствии с философией дизайна Colony. На практике это означает, что даже основные компоненты HTTP-сервера, такие как файловая система доступ и разъем интерфейсы, предоставляются в виде модулей и могут быть горячая замена Плагин web MVC также использует модульный ORM Плагин entity manager. для управления распределение компонент диспетчера распространения действует как концентратор для различных подключаемых модулей распространения, реализующих концепцию вирусного распространения Colony.

Среди других доступных компонентов есть автоматизация сборки компонент (функционально сопоставим с Maven ); расширяемый фасад системы контроля версий с расширениями, доступными для Subversion, Базар и Mercurial; автономный Вики приложение, используя Контроль версий плагины. Для интеграции с другими технологиями Colony предоставляет серверы и клиенты для общих протоколов, таких как SMTP, BitTorrent, DNS, IRC, Поп, Telnet, XMPP, LDAP а также поддержка Bonjour (Apple Inc. реализация Зероконф Также включены некоторые нишевые компоненты, например клиенты для Twitter API и Служба push-уведомлений Apple.

Положение дел

По состоянию на 2011 год Колония считается находящейся в альфа хотя производственные развертывания существуют.[6]

Смотрите также

Рекомендации

  1. ^ а б Спецификация колонии В архиве 2011-08-17 на Wayback Machine - Руководство по спецификации колонии
  2. ^ Что я могу построить с помощью Colony? В архиве 2011-08-17 на Wayback Machine - Руководство с приложениями, которые могут извлечь выгоду из технологии
  3. ^ Почему колония? В архиве 2011-08-17 на Wayback Machine - Руководство, мотивирующее потребность в фреймворке
  4. ^ Жизненный цикл плагина В архиве 2011-08-17 на Wayback Machine - Раздел спецификации, описывающий жизненный цикл плагина
  5. ^ Как создать свою колонию за 3 простых шага В архиве 2011-08-17 на Wayback Machine - Руководство с описанием настройки технологии
  6. ^ Официальный веб-сайт - Ссылка на текущий статус Колонии как ранняя альфа по состоянию на 2011 год

внешняя ссылка