![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.14.95] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всем привет, кто внедрял сабж, плюсы имеются или не имеётся?
|
![]() |
|
|
Плюсы OSGi:
OSGi обеспечивает модульную архитектуру, позволяющую разделять приложение на независимые компоненты. Каждый модуль представляет собой отдельный пакет, который может быть установлен, обновлен или удален без необходимости перезагрузки всей системы. Это позволяет легко создавать гибкие и расширяемые приложения. Динамическое развертывание: OSGi позволяет динамически устанавливать, обновлять и удалять модули во время работы приложения. Это позволяет внедрять новые функциональные возможности или исправлять ошибки без остановки приложения. Такой подход обеспечивает высокую доступность и минимизирует время простоя системы. Управление зависимостями: OSGi предоставляет механизмы для управления зависимостями между модулями. Компоненты могут явно объявлять свои зависимости от других модулей, что обеспечивает более четкую структуру приложения и упрощает его сопровождение. Сервисная модель: OSGi предлагает сервисную модель, которая позволяет модулям предоставлять и использовать сервисы. Сервисы могут быть динамически обнаружены и связаны во время выполнения. Это способствует созданию гибких и расширяемых приложений, в которых компоненты могут взаимодействовать через интерфейсы сервисов. Экосистема инструментов: OSGi имеет развитую экосистему инструментов, включая среды разработки, сборщики модулей, системы управления конфигурациями и т. д. Это упрощает разработку, развертывание и сопровождение приложений, основанных на OSGi. Минусы OSGi: Сложность: Использование OSGi может быть сложным, особенно для разработчиков, не знакомых с модульными системами. OSGi вводит дополнительный уровень сложности в разработку и требует понимания его концепций и особенностей. Накладные расходы: В некоторых случаях использование OSGi может привести к некоторым накладным расходам. Разделение приложения на модули и управление зависимостями требует дополнительной работы и проектирования. Это может увеличить сложность разработки и затраты на обучение разработчиков. Ограничения: OSGi имеет некоторые ограничения, которые могут оказаться проблематичными для некоторых типов приложений. Например, сложность взаимодействия с некоторыми традиционными Java-фреймворками или библиотеками, которые не были разработаны с учетом модульной архитектуры. Совместимость: Использование OSGi может быть вызовом при интеграции с существующими системами или фреймворками, особенно если они не поддерживают модульность или используют статический класспас. Требуется тщательное тестирование и анализ совместимости, чтобы убедиться, что все компоненты и зависимости работают должным образом. Распределение и развертывание: Распределение приложений, основанных на OSGi, может быть сложным процессом, особенно при интеграции с другими инструментами и средами разработки. Возможно, потребуется дополнительная настройка и конфигурация для правильного функционирования приложения. В целом, OSGi предлагает мощный инструмент для создания модульных и гибких приложений, но его использование требует определенных усилий и может быть нецелесообразным для всех типов проектов. При оценке использования OSGi следует внимательно взвесить его плюсы и минусы в контексте конкретных требований и ограничений проекта. |
Сообщ.
#3
,
|
|
|
Конечно +100500, а есть примеры отзывов?
|
![]() |
Сообщ.
#4
,
|
|
Не по результатам внедрения, а по результатам использования (разработки на eclipse, wls): токсичное дерьмо, в которое не стоит наступать. Ну и в рамках одной jvm качественно реализовать невозможно в принципе, джава к этому не приспособлена (и те увечья, которые были нанесены платформе 9-й версией, никак не помогают).
|
Сообщ.
#5
,
|
|
|
Цитата wind wind Учтем СПС)) А где провалы там? |
![]() |
Сообщ.
#6
,
|
|
При добавлении/доработке новых модулей для OSGI-контейнера (который сам сборная солянка) слишком часто разбитое корыто получается. Или контейнер раком встанет, или все кроме пациента, или сам пациент, что-то постоянно ломается при совершенно загадочных обстоятельствах или вообще работает только на отдельных компьютерах. На выяснение и устранение проблем уходит океан времени. Связано с тем, что в java нет никаких готовых средств для изоляции компонентов, в существующих реализациях для этого только ухищряются с загрузчиками классов, используя их не по назначению.
|
Сообщ.
#7
,
|
|
|
+100500
|