2012-06-23 4 views
1

Мы разрабатываем Java-приложение, которое предоставляет веб-службы через SSL. Это приложение работает на сервере Tomcat.
Целью веб-служб является вставка, обновление и выбор данных. Таким образом, в рамках уровня веб-сервиса реализован бэкэнд-уровень, который обеспечивает доступ к базе данных.Архитектура приложения - как подключить приложение Swing к бэкэнд?

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

Я вижу следующие возможности:

  1. использование веб-приложение вместо качели приложение, которое будет являться частью одного и того же проекта, как приложения веб-службы, а затем он будет иметь возможность подключиться BACKEND
  2. Обеспечить некоторые дополнительные веб-сервисы только для качания.
  3. Используйте JMX. Можно запустить JMX на Tomcat. Бэкэнд мог бы обеспечить функциональность через JMX, и приложение Swing могло бы подключить его.

Каждая из этих возможностей имеет свои преимущества и недостатки. Мы следовали решению 3, и я думаю, что это был не умный выбор. У JMX есть проблемы с дженериками, вы можете запускать только один JMX на tomcat и т. Д.

Java-мир богат и должно быть какое-то оптимальное решение для этой ситуации. Не могли бы вы помочь?

ответ

2

Добавьте клиента веб-сервиса в приложение Swing и позвольте ему совершать те же вызовы веб-сервисов, что и пользовательский интерфейс на основе браузера.

Вы можете бесплатно добавить дополнительные веб-сервисы Swing-only, если вы выберете.

Я не думал, что JMX был чем-то другим, кроме как позволить вам контролировать MBeans с помощью JConsole. Что это имеет отношение к Swing?

+0

Приложение Swing должно иметь расширенную функциональность, которая не предоставляется в веб-службах приложений. Таким образом, должны быть дополнительные веб-службы только для Swing-приложения. И это возможность №2, которую я написал. – squirrelInTheBarel

+0

Это можно сделать так, но я надеюсь, что может быть лучшее решение. – squirrelInTheBarel

+0

Нет другого ответа? – squirrelInTheBarel