Доброго времени суток.
Я являюсь автором программы SMC (Shell for module constructions) – оболочки для модульных конструкций. Далее постараюсь вкратце рассказать о ней, зачем она нужна, а так же показать как её использовать.
Основная идея — комбинируя существующие куски кода (утилиты, классы или библиотеки) создавать полноценные программы. Наиболее ярко такой подход применялся в *nix системах, когда для решения той или иной задачи в скрипте комбинировались вызовы маленьких утилит. SMC продолжает эту идею, внося ряд улучшений, правил и интерфейсов.
Программа бесплатна.
Модули — обособленная подпрограмма, написанная на одном из поддерживаемых языков (java, python, js, cpp), соблюдающая ряд требований и упакованная в определенный формат (расширение smcm).
Приложение — самостоятельная программа, собранная из экземпляров модулей, имеющее свое описание, настройки и органы управления (можно запустить, остановить, установить, удалить). Особенность модульных приложений — возможность в любой момент изменить приложение на уровне модулей (добавить, удалить, изменить параметры), без ограничений.
Плагин или дочернее приложение — приложение, зависящие от другого приложения (которое так же может от кого то зависеть). Это особенность модульных приложений, легко можно добавить свой плагин к любому приложению, который расширяет (или изменяет) функциональность родительского приложения или использует его ресурсы.
Установка
скачайте файл с сайта: www.smcsystem.ru/download/smc_full.zip
и разархивируйте его:
для Windows — C:\Program Files
для Unix-like — /opt
для запуска сервера:
для Windows — C:\Program Files\smc\smc_server\server.bat
для Unix-like — /opt/smc/smc_server/server.sh
для запуска клиента:
для Windows — C:\Program Files\smc\smc_client\start.bat
для Unix-like — /opt/smc/smc_client/start.sh
более подробно это расписано в документе: www.smcsystem.ru/documents/install_ru.pdf
В статье опишу лишь один аспект использования системы — работу с уже созданными приложениями.
При запуске клиента (графического) открывается вкладка Приложения. При первом запуске установленных приложений у нас нет. Снизу нажмите кнопку Установить из репозитория.
Выделите TextEditorWindow и нажмите кнопку установить. У вас в списке появится редактор. Окно репозитория пока можно закрыть. При выделении приложения в основном окне появляется дополнительная панель с информацией о приложении и органами управления.
Для запуска приложения нажмите кнопку Запустить.
Стоит заметить что само приложение текстового редактора примитивно, но к нему есть ряд дочерних приложений — плагинов, увеличивающих функциональность. Поставите их из репозитория (для этого надо раскрыть текстовый редактор).
Как видно, работа с приложениями организована знакомым образом.
здесь я напишу то как сам это вижу. тем не менее считаю что сфер применения куда больше.
Сайт проекта
Документы
Если у вас возникнут вопросы, пожелания, замечания — пишите, пожалуйста, постараюсь ответить на всё.
Я являюсь автором программы SMC (Shell for module constructions) – оболочки для модульных конструкций. Далее постараюсь вкратце рассказать о ней, зачем она нужна, а так же показать как её использовать.
Основная идея — комбинируя существующие куски кода (утилиты, классы или библиотеки) создавать полноценные программы. Наиболее ярко такой подход применялся в *nix системах, когда для решения той или иной задачи в скрипте комбинировались вызовы маленьких утилит. SMC продолжает эту идею, внося ряд улучшений, правил и интерфейсов.
Программа бесплатна.
Немного терминов
Модули — обособленная подпрограмма, написанная на одном из поддерживаемых языков (java, python, js, cpp), соблюдающая ряд требований и упакованная в определенный формат (расширение smcm).
Приложение — самостоятельная программа, собранная из экземпляров модулей, имеющее свое описание, настройки и органы управления (можно запустить, остановить, установить, удалить). Особенность модульных приложений — возможность в любой момент изменить приложение на уровне модулей (добавить, удалить, изменить параметры), без ограничений.
Плагин или дочернее приложение — приложение, зависящие от другого приложения (которое так же может от кого то зависеть). Это особенность модульных приложений, легко можно добавить свой плагин к любому приложению, который расширяет (или изменяет) функциональность родительского приложения или использует его ресурсы.
Особенности системы
- Интерфейс для приложений, позволяющий использовать готовые модульные приложения знакомым образом.
- Встроенный репозиторий приложений и модулей позволяет установить проверенные приложения и модули из облачного хранилища.
- Динамическая загрузка/выгрузка модулей и приложений.
- Открытый код программ — можно в любой момент посмотреть и изменить любую программу.
- Динамическое изменение программ. Изменение, даже значительное, элементов программы, как правило, не требует перезагружать программу целиком.
- Встроенное хранилище данных позволяет просматривать данные, сгенерированные каждым модулем в процессе работы. Помимо прочего, её можно использовать, например, в качестве системы логирования.
- Клиент-серверная архитектура позволяет запускать серверную и клиентскую часть на разных машинах.
- Графический и консольный клиент.
- Унифицированный интерфейс модулей. Освоившись с особенностями работы в системе, изучение новых модулей и разработка программ с ними становится легким делом. Не зависимо от внутренней сложности модулей, их внешний интерфейс будет понятен.
- Самодокументированные модули. Все что необходимо знать о модуле предоставляет сам модуль посредством описания и помощи через стандартный интерфейс.
Как использовать
Установка
скачайте файл с сайта: www.smcsystem.ru/download/smc_full.zip
и разархивируйте его:
для Windows — C:\Program Files
для Unix-like — /opt
для запуска сервера:
для Windows — C:\Program Files\smc\smc_server\server.bat
для Unix-like — /opt/smc/smc_server/server.sh
для запуска клиента:
для Windows — C:\Program Files\smc\smc_client\start.bat
для Unix-like — /opt/smc/smc_client/start.sh
более подробно это расписано в документе: www.smcsystem.ru/documents/install_ru.pdf
Работа с приложениями
В статье опишу лишь один аспект использования системы — работу с уже созданными приложениями.
При запуске клиента (графического) открывается вкладка Приложения. При первом запуске установленных приложений у нас нет. Снизу нажмите кнопку Установить из репозитория.
Выделите TextEditorWindow и нажмите кнопку установить. У вас в списке появится редактор. Окно репозитория пока можно закрыть. При выделении приложения в основном окне появляется дополнительная панель с информацией о приложении и органами управления.
Для запуска приложения нажмите кнопку Запустить.
Стоит заметить что само приложение текстового редактора примитивно, но к нему есть ряд дочерних приложений — плагинов, увеличивающих функциональность. Поставите их из репозитория (для этого надо раскрыть текстовый редактор).
Как видно, работа с приложениями организована знакомым образом.
Для кого предназначена
здесь я напишу то как сам это вижу. тем не менее считаю что сфер применения куда больше.
- Пользователи приложений. Для них система — еще один лаунчер на рабочем столе.
- Программисты модулей на одном из поддерживаемых языков (сейчас это java, python, js, cpp). Думаю для многих будет интересен подход разбиения монолитной программы на обособленные куски и затем из них уже собрать готовую программу — именно так проектируют архитекторы сложные системы.
- Так же, возможно, эта система будет интересна для программистов на скриптовых языках в качестве платформы для распространения на клиентские компьютеры — пользователям не нужно ставить node.js и тп, они просто ставят нужную программу (необходимые модули установятся автоматически).
- Бизнес пользователи. Любое приложение можно посмотреть в дизайнере и там же отредактировать, зачастую без прекращения её работы. Плюс все коммуникации между экземплярами модулей можно сохранять, и в дальнейшем, проанализировать.
- В качестве сервера приложений. Систему можно представить в виде лайтового сервера
приложений. Любой модуль и приложение можно динамически загружать/удалять.
Сайт проекта
Документы
Если у вас возникнут вопросы, пожелания, замечания — пишите, пожалуйста, постараюсь ответить на всё.