Eclipse ECF против Apache CXF
Я пытаюсь придумать архитектуру, которая позволяет мне удаленно распространять пакеты OSGi, которые обнаруживаются динамически и т. Д.
После некоторого времени, потраченного на изучение того, что там, я ориентируюсь на использование следующего:
- Apache CXF (как реализация OSGi Remote Services)
- Spring Dynamic Modules
- Инструментальный компонент JAX-WS для Eclipse
Одна из вещей, которую я пытался понять, это то, где в этом отношении находятся такие проекты, как Eclipse ECF и Riena. Являются ли они альтернативой Apache CXF? (В этом случае, какой из них вы бы предложили? Каковы плюсы и минусы?) Оборачивают ли они CXF? (В этом случае, что они добавляют?)
Заранее спасибо, Маттео
1 ответ
ECF - полная реализация спецификации RemoteServiceAdmin из OSGi 4.2, CXF в настоящее время подвергается рефакторингу, чтобы соответствовать спецификации, но все еще является действующей распределенной OSGi (спецификация просто предписывает, как ими управлять, распределением ключей (каким параметром) добавить в ваш сервис свойства, чтобы сделать его удаленным и т. д.).
До недавнего времени ECF была реализацией ROSGi только для Equinox, но зависимости были исправлены, и она должна без проблем развертываться на Felix, Knopplerfish и т. Д.
В ECF есть подключаемый транспортный уровень, для получения дополнительной информации см. http://wiki.eclipse.org/ECF_Providers (некоторые поставщики явно не применимы для распределенных сервисов). CXF происходит из опыта веб-сервисов, но также поддерживает более эффективные средства распространения сервисов.
Ходили разговоры о том, чтобы заставить Риену использовать ECF, но я не был уверен, как все прошло.
Если у вас есть наличные, Paramus предлагает очень хорошее решение (http://www.paremus.com)
Мне не нравятся веб-сервисы, поэтому я немного склонен в сторону CXF, а также совместим с ECF (так что вы можете без проблем перейти к другой реализации позже) и с возможностью подключения (так что вы всегда можете написать свой собственный поставщик транспорта). Если бы это был мой звонок, и у меня были деньги, я бы пошел с Paramus, иначе ECF.
ОБНОВЛЕНИЕ РЕДАКТИРОВАТЬ: я только недавно начал играть с FuseSource Fabric, это очень приятно (мы уже используем Camel с Karaf, так что это хорошо согласуется там). RemoteServiceAdmin, работающий поверх HawtDispatch, по-видимому, очень и очень быстрый.