• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Статья

Прототипы и типы составных объектов в компонентно-ориентированной архитектуре

В работе рассматривается компонентно-ориентированная программная архитектура,
реализованная для Java-платформы и поддерживающая ‘event-driven’ вычисления. Используемая
компонентная модель расширяет динамические возможности стандартной компонентной модели
JavaBeans и поддерживает композицию составных компонент во время исполнения без кодогенерации.
Показано, что в рамках стандартной компонентной модели JavaBeans динамическая композиция
компонент сопряжена с переходом от объектно-ориентированного программирования, используемого
при создании базовых компонент, к prototype-ориентированной идеологии программирования при
использовании составных компонент. Предложено обобщение понятия типа объектов, позволяющее
единобразно оперировать как базовыми компонентами, так и динамически скомпонованными
компонентами. Реализация предложенного обобщения типов объектов опирается на дополнительный
уровень виртуализации, который обеспечивает среду исполнения для программных компонент,
определенных в соответствии с предложенной компонентной моделью. Рассматриваются способы
реализации различных типов объектов, с которыми оперирует среда исполнения, и основные
предоставляемые ею операции. Предложен способ динамического создания составных компонент,
основанный на преобразовании составного прототипа в инстанциируемый тип составных объектов.
Инстанциирование составных компонент обеспечивает более эффективное функционирование
приложений (в смысле ресурсов памяти и времени), чем клонирование их составных прототипов.
Динамически определяемые составные компоненты могут использоваться объектно-
ориентированным образом наравне с базовыми компонентами – как для реализации функционально-
сти в приложениях, так и в качестве элементов композиции составных прототипов, преобразуемых
в новые составные компоненты. Предлагаемая компонентная архитектура может использоваться
при реализации определяемых пользователем типов в декларативных языках моделирования.