7 Глава Uno интерфейс Flashcards
(32 cards)
Что такое компонент в ПО?
Единица композиции с контрактными интерфейсами и явными зависимостями, может быть развёрнута независимо.
Чем отличается объект от компонента?
Объекты — абстракция логики, компоненты — сборка готовых частей, ориентированы на переиспользование.
Что такое компонентная модель?
Спецификация того, как должен выглядеть компонент: интерфейсы, метаданные, упаковка, совместимость и др.
Что такое компонентный фреймворк?
Реализация компонентной модели в виде инструментов и кода поддержки (например, UNO, JBoss).
Примеры элементов компонентного фреймворка
Naming Service, Meta Data, Lifecycle Management, Event Service, Object Trader, Persistence, Concurrency.
Что делает Naming Service?
Поиск компонентов по имени, регистрация компонентов в системе (аналог телефонного справочника).
Что такое Meta Data в UNO?
XML-файлы с описанием компонентов, сервисов и типов, используемые при сборке.
Что делает Service Manager?
Единый компонент, создающий сервисы по запросу и управляющий их жизненным циклом.
Что такое WeakObject?
Объект, создаваемый не ServiceManager, а другими компонентами (например, слушатели).
Как устроена удалённая связь в UNO?
Через URL вида uno:socket,host=…,port=… используется IPC и прокси.
Как работает прокси в UNO?
Клиентский объект обращается не к реальному удалённому объекту, а к его представителю.
Что такое интерфейс XInterface?
Базовый интерфейс всех компонентов в UNO, содержит методы acquire(), release(), queryInterface().
Как управляется время жизни объектов?
Через подсчёт ссылок: когда ссылок нет, объект удаляется (аналог COM).
Что такое XComponent?
Интерфейс для обработки событий уничтожения компонента, содержит метод dispose().
Как решаются циклические ссылки?
Через XComponent, XEventListener и WeakReferences.
Какая производительность вызовов?
Вызов в процессе ~6.4 нс, между процессами ~98 мкс.
Что делает XMain?
Интерфейс для компонентов, нуждающихся в точке входа (аналог main).
Что делает XTypeProvider?
Предоставляет информацию о реализуемых интерфейсах компонента.
Что делает XServiceInfo?
Сообщает, какие сервисы реализует данный компонент.
Для чего нужен URLResolver?
Для получения удалённого сервиса по URL.
Какие типы поддерживает UNO?
Простые, структуры, перечисления, any, исключения, интерфейсы.
Что такое Struct в UNO?
Тип с полями и наследованием, не имеет ссылочного счётчика.
Что такое Sequence в UNO?
Последовательность элементов с управлением ссылками и стратегией copy-on-modify.
Что такое Any в UNO?
Универсальный контейнер для хранения значения любого UNO-типа.