Apache Excalibur

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:12, 21 января 2019.
Apache Excalibur
Excalibur logo.gif
Разработчики: The Apache Software Foundation
Постоянный выпуск: 2.2.3 / 5 July 2007 года; 12 years ago (2007-07-05)[Источник 1]
Состояние разработки: не активное
Написана на: Java
Операционная система: Кросс-платформенное
Локализация: Английский язык
Тип ПО: IoC Framework
Веб-сайт excalibur.apache.org

Apache Excalibur – проект Apache, предоставляющий набор библиотек для компонентного программирования на Java. Является продолжением проекта Apache Avalon, закрывшегося в 2004. Проект Apache Excalibur был закрыт в 2010. Его код был унаследован проектом Apache Attic.

О продукте

Excalibur – это платформа для создания компонентных и контейнерных приложений, построенных на ключевых шаблонах проектирования, таких как Инверсия контроля и Разделение соглашений, доступных для платформы Java. Вы можете использовать Excalibur для создания огромного количества различных приложений, начиная со Swing приложений, заканчивая сложными серверными программами. Фреймворк Avalon (ядро Excalibur) часто используется в качестве основы для крупного проекта или платформы. К таким приложениям и платформам относятся: Apache Cocoon, Apache James, and the Keel Framework.

Обзор

Чего не стоит ждать от Excalibur?

Excalibur не является частью J2EE стека. Excalibur не может использоваться для разработки J2EE приложений и даже использоваться для создания J2EE сервера. Excalibur является очень простым и не содержит многих спецификаций J2EE по умолчанию. Однако, возможно написать J2EE приложение, которое использует Excalibur (такое как сервлет) или использовать J2EE сервер в контейнере, основанном на Excalibur.

Что такое Excalibur?

  • Платформа Excalibur включает в себя:
  • Фреймворк ядра для компонентного программирования (Avalon фреймворк)
  • IoC контейнер (Fortress)
  • Набор контейнерных утилит (ContainerKit)
  • Библиотека компонентов (Cornerstone)

При работе с Excalibur можно использовать один или несколько вышеуказанных компонентов.

Кому может быть полезен Excalibur?

Пользователей Excalibur можно разделить на следующие категории:

  • Обычные пользователи: используют сторонние приложения, которые задействуют Excalibur или Avalon неявно для них. Пользователи имеют возможность расширять эти приложения.
  • Разработчики компонентов: разрабатывают компоненты для дальнейшего запуска их внутри контейнера Excalibur или Avalon. Разработчики имеют возможность сборки компонентов в большие блоки приложений, а также размещения этих блоков и контейнеров в качестве законченных приложений.
  • Разработчики контейнеров: расширяют существующие контейнеры Excalibur и Avalon, разрабатывают новые Avalon контейнеры.

Существуют определенные технологии и концепции, которые способствуют повсеместному использованию и развитию Excalibur. Если вы не знакомы со следующими понятиями, пожалуйста, ознакомьтесь с ними:

  • Java Platform
  • InversionOfControl
  • SeparationOfConcerns
  • ComponentOrientedProgramming

Почему стоит использовать Excalibur?

Для начала необходимо ответить на более общий вопрос: нужно ли мне использовать контейнеры? Насколько хорошо контейнеры подойдут для моего приложения? Чтобы понять для кого Excalibur является наиболее полезным, рассмотрим ряд задач, решаемых при помощи Excalibur:

  • Объединение компонентов
  • Управление зависимостями
  • Сокрытие реализации
  • Управление жизненным циклом

Как использовать Excalibur?

Необходимые дополнительные пакеты:

Excalibur Fortress

Excalibur включает в себя контейнер на базе Avalon - Fortress.[Источник 2] Fortress содержит фреймворк, способный помочь создавать пользовательские Avalon-контейнеры. Он поддерживает асинхронное управление экземплярами компоненов, высокую масштабируемость, облегчает обслуживание кода и легко внедряется в различные среды. Fortress заменяет более старый контейнер Excalibur Component Manager (ECM).

Особенности

  • Асинхронное управление компонентами

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

  • Увеличенный жизненный цикл

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

  • Инструменты

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

  • Доступная мета-информация

Вместо использования "ролевых" файлов для наблюдения за конфигурацией компонента, и какой тип имеет компонент, Fortress обеспечивает пользователя некоторыми инструментами, позволяющими наблюдать за данной информацией, используя java исходный код.

Источники

  1. Excalibur - Apache Excalibur - Downloads: Страница загрузки Apache Excalibur. // The Apache Software Foundation. [1997-2009]. Дата обновления: 31.07.2009. URL: http://excalibur.apache.org/download.cgi (дата обращения: 01.01.2019).
  2. Excalibur - Fortress - Overview: Обзор Excalibur Fortress. // The Apache Software Foundation. [1997-2009]. Дата обновления: 31.07.2009. URL: http://excalibur.apache.org/fortress/index.html (дата обращения: 01.01.2019).