Построение модуля платформы воспроизведения для совместного использования уровня данных между несколькими службами

#model-view-controller #model #module #playframework

#model-view-controller #Модель #модуль #playframework

Вопрос:

Помня о понятии SOA, я намереваюсь предоставить несколько разных сервисов, которые используют одну и ту же модель данных. Представьте себе покерное приложение — у нас могут быть следующие сервисы:

  • Интерфейс игры
  • Административный интерфейс
  • Сервис рейтинга игрока / таблицы лидеров
  • Служба финансирования игроков
  • Служба интеграции банка

Все эти службы могут использовать одну и ту же модель (возможно, предоставляя дополнительную информацию о модели, где это необходимо).

В игре! фреймворк, возможно ли мне реализовать эту модель данных, но сохранить преимущества, которые мы получаем от использования Play. Например, повторная компиляция во время выполнения.

Кажется, что модули могут выполнять эту работу, но документации о них мало, а приведенные примеры указывают на противоположную парадигму — где сервисы являются модулями, а основное приложение play использует функции.

Любые рекомендации будут оценены.

Ответ №1:

Трудно получить настоящий стиль SOA, используя Play. Потому что Play — это не просто фреймворк — это веб-платформа, предоставляющая сервисы от HttpRequest до сохранения базы данных, а не изолированно.

В вашем случае, если вам нужно по-настоящему экстернализировать уровень данных, я бы посоветовал вам попробовать Spring module. Spring должен позаботиться о постоянстве, бизнес-логике и инкапсулировать это в интерфейсы служб.

В вашем приложении Play контроллер зависит от этих открытых интерфейсов службы. Службы Spring должны зависеть от любых функций воспроизведения (будь то для проверки или сохранения JPA и т. Д., т. Е. Без импорта)

Цель состоит в том, чтобы при необходимости вы могли использовать любой фреймворк MVC (Spring MVC, Struts и т. Д.) И Использовать одни и те же сервисы.

Ответ №2:

Я пытаюсь сделать что-то подобное.

То, что я собираюсь попробовать, это

  • напишите DAL в модуле
  • запишите каждый отдельный компонент как отдельный модуль.
  • в будущем каждый компонент может быть размещен в отдельном приложении. Просто переместите приложение, установите модуль DAL, и все готово. Мы надеемся, что это охватит любые вопросы масштабируемости.

Теоретически я должен иметь возможность вызывать команды воспроизведения, настраивая команды сборки в Eclipse, поэтому это должно позволить мне автоматически создавать модули для использования основным приложением.

Надеюсь, это сработает для меня…