Skip to content

Application

Gennady Lebedev edited this page Dec 10, 2020 · 6 revisions

General Module

Application состоит из Componentов, служит их общей границей со внешним миром, управляет разделяемыми ресурсами (портами, коннекшнами). При старте Application инициирует и группирует компоненты:

  • объединяет порты одного типа в запуск низкоуровневой библиотеки-сервера
  • объединяет адаптеры к одной системе (например, СУБД), инициирует подключения
  • инициирует остальные компоненты, при необходимости проверяя целостность всех частей и корректность маршрутизации

В планах проекта реализовать поддержку всего ЖЦ приложения:

  • design-time + compile-time + run-time как основа
  • реакция на изменения - импакт-анализ, осмысленная история изменений
  • сборка во внешний артефакт (условный .jar)
  • управление единицами развертывания, их учет в управляемой среде
  • мониторинг, реакция на изменение потребляемых ресурсов

Manageable Application

В целом, приложение предполагается статичным, это позволяет формулировать бизнес-правила с привязкой к типам.

Но есть альтернатива - управляемое приложение. В нем предполагается, что конфигурация всего приложения содержится в управляемых (изменяемых извне) конфигурациях, включая:

  • систему типов
  • адаптеры и порты
  • коммутацию сообщений в приложении

Приложение так же должно уметь перестраивать свою структуру и маршрутизацию на ходу, поддерживая сложный ЖЦ разныз компонентов.

Первый шаг к Manageable Application - это Manageable Module T.

Clone this wiki locally