Контейнер для модуляризации
От: Дмитрий Писаренко Россия http://dmitripisarenko.me
Дата: 09.07.09 09:30
Оценка:
Здравствуйте!

Я хочу сделать одну программу, и изначально разбить её на несколько модулей так, чтобы можно было

а) включать/отключать некоторые модули во время выполнения (run-time) для того, чтобы сэкономить ресурсы,

б) заменять модуль версии X на модуль версии Y во время выполнения, не трогая (не компилируя,
не останавливая) другие модули, если они не связаны с заменяемым модулем,

в) добавлять функционал во время выполнения, добавляя новые модули (опять-таки, не трогая уже установленные).

Контейнер, который будет обеспечивать эти 3 функции, должен соответствовать следующим критериям:

1) Легковесность — контейнер не должен требовать слишком много ресурсов (пустой контейнер без
дополнительных функций должен весить не более 10 МБ).

2) Универсальность — важно, чтобы можно было устанавливать любые модули, от окошка на базе Swing,
модуля для связи с базой данных до веб-сервера.

3) Желательно, но не обязательно: В конфигурации модуля можно прописать, что он (модуль) будет работать
только, если установлен другой модуль. Если при инсталляции во время выполнения требуемый модуль отстутствует в
контейнере, то контейнер сообщает об этом пользователю и не запускает инсталлируемый модуль.

4) Обязательно: Контейнер должен быть с открытым исходником, разрешающим применение в коммерческих приложениях.

Я нашёл 2 принципиальные возможности сделать такой контейнер:

1) Каркас на базе OSGi, например, Apache Felix, Equinox или Knopflerfish

2) Микро-ядро JBoss — взять JBoss и выдрать из него всё, кроме механизмов работы с модулями.

Вопрос: Какие ещё варианты есть и какие из них кажутся Вам оптимальными?

Заранее благодарен

Дмитрий Писаренко
Дмитрий Писаренко

http://dmitripisarenko.me
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.