Новые функции и возможности в OSGi 4.2?

Это должно зависеть от того, чего Вы на самом деле пытаетесь достигнуть, как Sebastian уже сказал, т.е. ясно дает понять Ваши намерения! Если Вы , просто подсчет строк тогда идет для КОЛИЧЕСТВА (*), или подсчет отдельного столбца идет для КОЛИЧЕСТВА (столбец).

могло бы стоить проверить Вашего поставщика DB также. Назад, когда я раньше использовал Informix, он имел оптимизацию для КОЛИЧЕСТВА (*), который имел стоимость осуществления плана запросов 1 по сравнению с подсчетом единственного или несколько столбцов, которые приведут к более высокому рисунку

11
задан AlBlue 16 September 2009 в 18:37
поделиться

4 ответа

В большинстве случаев точечный выпуск OSGi (например, 4.1-> 4.2) на самом деле не сильно меняет существующее поведение, поэтому можно с уверенностью сказать, что если у вас есть приложение, которое зависит от 4.1, он будет работать на 4.2 без проблем. Новым является то, что некоторые элементы были стандартизированы, что должно обеспечить лучшую совместимость между различными движками OSGi (например, Equinox , Felix и Knopflerfish ).

На самом деле, хотя OSGi 4.2 была официально выпущена только 16 сентября 2009 года, ранние версии были доступны для других, поэтому в предыдущих выпусках продуктов (например, Equinox 3.5, Felix 1.8) уже есть разумная поддержка стандарт. Как и продукты 802.11n, они соответствовали более ранним проектам, но ожидается, что они ' будет сертифицирован как полностью совместимый с выпуском 4.2 в не столь отдаленном будущем.

Итак, что нового в 4.2?

  • Service Hooks
  • Framework Launching

И в сборнике

  • Remote Services
  • Bundle Tracker
  • Blueprint Service

Service Hooks

Service Hook API позволяет вам улавливать события, которые происходят на уровне сервиса. Например, вы можете подключиться, когда запрашивается служба, когда для службы доставлено событие и т. Д. Вы также можете заставить события не доставляться (например, скрывать события, которые вы не имеете права видеть), но не можете изменить какие-либо события (так как это усложнит доставку классов). Служебные перехватчики являются частью базовой спецификации, поэтому для соответствия всем выпускам OSGi это потребуется.

Запуск платформы

Хотя это ' Возможно программно запустить экземпляр OSGi из существующего приложения Java, способ, которым вы это делаете, зависит от того, какую среду выполнения OSGi вы используете. В частности, элементы конфигурации (например, где хранить временные данные, какая должна быть политика делегирования загрузки пакета и т. Д.) Были определены в зависимости от механизма. Это объединяет свойства, которые устанавливаются в структуре любой запускающей утилитой.

Удаленные службы

API удаленных служб позволяет службам OGSi обмениваться данными между виртуальными машинами (возможно, на разных машинах). Точный механизм их взаимодействия (RMI, WebServices и т. Д.) Открыт для провайдеров, поэтому он не похож на другие распределенные технологии (например, Corba), которые специально диктуют формат передачи данных. Ясно, Распределенные сервисы имеют семантику, отличную от локальных (ошибки связи, проблемы сериализации), и при необходимости их можно распространять на отдельные сервисы.

Bundle Tracker

Подобно ServiceTracker до его версии 4.1, BundleTracker может использоваться чтобы следить за тем, какие пакеты приходят и уходят в системе. Это может использоваться динамическими графическими интерфейсами, чтобы показать развивающееся состояние механизма OSGi без каких-либо знаний о конкретной платформе.

Служба Blueprint

Служба Blueprint похожа на Spring, поскольку она обеспечивает механизм внедрения зависимостей для настройки пакетов. В чем-то это похоже на декларативные услуги; но служба чертежей работает по-другому. Кроме того, в отличие от декларативных сервисов (которые могут иметь дело только с имеющимися сервисами), служба blueprint может заранее создать прокси-заполнитель для службы, которая будет подключена позже. Затем вызовы прокси-сервера службы будут блокироваться до тех пор, пока служба не будет заполнена (вместо того, чтобы возвращать «ноль», как это делают декларативные службы). Если вы знакомы с Spring IOC и подобным внедрением зависимостей или знакомы с ними, то служба Blueprint будет сразу понятна.

12
ответ дан 3 December 2019 в 09:20
поделиться

В этой статье подробно описаны интересующие RFC. Цитируя:

Прежде всего, нужно заметить, что это не второстепенный выпуск, так как номер версии может подсказать. Релиз 4.2 на самом деле намного важнее, чем выпуск R4.1 в прошлом году. В некоторые моменты я бы даже сказал, что это важнее, чем выпуск R4, потому что с этим одно использование становится намного проще, особенно никому OSGi experts.

0
ответ дан 3 December 2019 в 09:20
поделиться

Ранние изменения были выделены здесь .

В частности, интересна функция RFC 119 - Distributed OSGi:

Это решение определяет минимальный уровень функций / для распределенной обработки OSGi, включая обнаружение сервисов и доступ к внешним средам и из них.

Это в сочетании с EventAdmin (введено в 41), позволит упростить реализацию распределенных сервисов на основе OSGi (в настоящее время реализовано с ECF )

0
ответ дан 3 December 2019 в 09:20
поделиться

Действительно ли декларативные службы возвращают значение null, если привязка ссылок недоступна? В Equinox, даже если я устанавливаю режим на динамический, мой компонент никогда не создается, если он не может быть «подключен». Я бы предпочел, чтобы он был установлен в "null", как вы говорите, чтобы я мог иметь дополнительные привязки ссылок и использовать динамическое обнаружение ...

Кроме того, я упускаю возможность легко найти свойства компонента, когда служба связанный (мне нужно перейти в контекст Bundle, получить ссылки на службы, выполнить итерацию и сравнить - не практично). Может, я что-то упускаю.

0
ответ дан 3 December 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: