2012-04-07 4 views
3

Я хочу создать веб-приложение, которое в основном представляет собой спокойный веб-сервис, обслуживающий сообщения json. Я бы хотел, чтобы это было как можно проще. Я думал об использовании сервлетов (с аннотациями). JPA как уровень базы данных является обязательным - Toplink или Hibernate. Желательно работать с Tomcat. Я хочу, чтобы приложение делилось на модули, обслуживающие разную функциональность (auth service, обслуживание клиентов и т. Д.). И я хотел бы иметь возможность обновлять эти модули, не переустанавливая все приложение на сервере - например, плагины eclipse, пользователь уведомляется (когда он вводит домашний url веб-клиента), что обновление доступно, нажимает на него, а приложение загружает и устанавливает обновленный модуль ,OSGI, Servlets и JPA hello world/tutorial/example

Я думаю, что эта функциональность может быть выполнена с OSGI, но я не могу найти какой-либо пример кода или учебник с простым приветственным обновляемым сервлетом, предоставляющим некоторые данные из базы данных через jpa.

Я ищу совет: - Является ли OSGI правильным инструментом для этого или может быть сделано с чем-то более простым? - Где я могу найти несколько примеров, охватывающих тему (или темы), которые мне нужны для этого проекта. - Какая реализация OSGI была бы наиболее простой для этой задачи.

* Мои знания OSGI являются базовыми. Я знаю, как описываются пучки, я понимаю концепцию контейнера OSGI и то, что она делает. Я еще никогда не создавал приложение OSGI.

ответ

4

Я думаю, OSGi подходит для того, что вы описываете, да. Когда вы добавляете сервлеты и JPA в микс, вы смотрите на использование так называемого корпоративного OSGi, который является слоем функциональности поверх основного OSGi. Существуют две основные реализации: Apache Aries и Eclipse Gemini. Они поставляются предварительно интегрированными на различные серверы, включая Apache Geronimo, или вы можете перевернуть свой собственный стек. (Я коммиттер Овна.)

Для обучения по веб-разработке с использованием Овна просмотрите http://www.javabeat.net/articles/378-writing-an-osgi-web-application-1.html. У самого Овна есть образец, который вы можете скачать и играть, apache.org/downloads/blogsample-0.3.html. Однако это немного сложнее, чем Hello World, и вам может понадобиться немного больше знаний OSGi, чем ваш текущий уровень, чтобы максимально использовать его. В качестве отправной точки я бы рекомендовал ознакомиться с консолью OSGi (образец блога использует равноденствие), чтобы узнать, что происходит в вашей системе. Для равноденствия команда ss наиболее полезна, и команда bundle является той, которую я использую чаще всего.

Если вы ищете предприятие OSGi, сервлет и JPA, вы должны найти полезные ресурсы. В developerWorks есть несколько статей.

+0

Я думаю, что я собираюсь купить книгу :) Есть ли пример для «автоматического обновления из Интернета " слишком? – Kamil

+0

Ура. :) Надеюсь, это вам полезно. Мы показываем, как обновлять модули, устанавливая новый модуль в среду OSGi. Это на самом деле тривиально легко, что является одной из причин таких людей, как OSGi! У нас нет примера для более сложного случая, который вы описываете, где обновление управляется сетью. Вероятно, вы захотите воспользоваться какой-то дополнительной инфраструктурой для этого.Apache Ace - это хорошее место с открытым исходным кодом для начала, хотя это может быть не совсем то, что вы имели в виду с точки зрения того, кто контролирует, когда обновления переносятся в удаленные системы. –

1

Если вы хотите сделать это как можно проще, вы можете использовать OSGi framework с Jetty как веб-движок, EclipseLink как механизм JPA и Apache ACE в качестве платформы распределения OSGi без каких-либо других функциональных возможностей OSGi.

Некоторые полезные ссылки:

+0

Какой-нибудь пример приветствия, интегрирующий все эти три технологии, было бы приятно увидеть;) – Kamil