5 votes

Construction d'un module du cadre Play pour le partage d'une couche de données entre plusieurs services

En gardant à l'esprit la notion de SOA, mon intention est de fournir plusieurs services différents, qui exploitent le même modèle de données. Imaginez une application de poker - nous pouvons avoir les services suivants :

  • Frontal de jeu
  • Frontal administratif
  • Service de classement des joueurs / leaderboard
  • Service de financement des joueurs
  • Service d'intégration bancaire
  • ...

Tous ces services peuvent exploiter le même modèle (en fournissant éventuellement des informations supplémentaires sur le modèle si nécessaire).

Dans le cadre de Play !, est-il possible d'externaliser ce modèle de données tout en conservant les avantages que nous retirons de l'utilisation de Play. Par exemple, la recompilation au moment de l'exécution.

Les modules semblent pouvoir faire l'affaire, mais ils sont peu documentés, et les exemples donnés suggèrent le paradigme opposé - où les services sont les modules, et où l'application principale tire les fonctionnalités.

Tout conseil serait apprécié.

3voto

basav Points 1120

Il est difficile d'obtenir un véritable style SOA en utilisant Play. Parce que Play n'est pas seulement un cadre - c'est une plateforme web fournissant des services allant de HTTPRequest à la persistance de la base de données, et non pas de manière isolée.

Dans votre cas, si vous devez vraiment externaliser la couche de données, alors je vous suggère d'essayer Module de printemps . Spring doit s'occuper de la persistance et de la logique métier et les encapsuler dans des interfaces de service.

Dans votre application Play, le contrôleur dépend de ces interfaces de service exposées. Les services Spring ne doivent dépendre d'aucune fonctionnalité de Play (que ce soit pour la validation ou la persistance JPA, etc., c'est-à-dire pas d'importations).

L'objectif est - tommo si nécessaire, vous devriez pouvoir utiliser n'importe quel cadre MVC (Spring MVC, Struts etc) et utiliser les mêmes services.

0voto

Daryl Teo Points 3670

Je tente quelque chose de similaire.

Ce que je suis sur le point de tenter est

  • écrire le DAL dans un module
  • écrire chaque composant séparé comme un module distinct.
  • à l'avenir, chaque composant pourra être hébergé dans une application distincte. Il suffit de déplacer l'application, d'installer le module DAL et le tour est joué. Nous espérons que cela couvrira tous les problèmes d'évolutivité.

En théorie, je devrais pouvoir appeler les commandes de lecture en configurant les commandes de construction dans Eclipse, ce qui devrait me permettre de construire automatiquement les modules à utiliser par l'application principale.

J'espère que ça va marcher pour moi...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X