2010-06-23 16 views
3

J'ai cette application de taille moyenne qui commence à devenir trop complexe. J'envisage de le diviser en deux. Mais je ne suis pas sûr de savoir comment partager l'information entre eux.rails: partager des informations entre 2 applications

J'ai été capable de faire deux grands groupes de modèles; Un groupe traite des "images" et l'autre des "données de vente".

Certains modèles d'utilité, tels que ceux liés à l'authentification/l'autorisation, devront être copiés, je suppose. Mais concentrons-nous sur les deux grands groupes.

Les deux ensembles de données sont maintenus par des personnes différentes, de sorte qu'ils se séparent tout naturellement. Le seul endroit où les deux groupes "se chevauchent" est un couple de rapports, qui tirent des données à la fois des "images" et des "données de vente". L'information dans les deux cas ressemble à un tableau de hachages, avec des profondeurs différentes, pointant vers le calcul (environ 60 numéros par système).

C'est à peu près la seule chose qui maintient la division; Je ne suis pas sûr de ce qui serait le meilleur moyen de partager des informations entre les deux applications.

J'apprécierais n'importe quel pointeur vers ce qui serait la meilleure manière d'accomplir ceci. Dois-je essayer d'utiliser la même base de données pour les deux applications? Devrais-je utiliser une sorte de service Web à la place?

Répondre

4

La solution simple serait de faire en sorte que les deux applications utilisent la même base de données. Le problème est que vous obtiendrez une duplication de code sur les modèles sur le chevauchement. Vous pourriez bien sûr le réparer avec un sous-module git ou une gemme personnalisée ... Un intéressant à considérer en ce qui concerne ce serait les moteurs de rails.

Une solution différente serait qu'une application possède les données et expose une API RESTful et l'autre en tire. Mais alors vous devez décider lequel «obtient» pour «gérer» les rapports.

Il est une décision assez complexe et je ne peux pas vous aider à faire sans toutes les données, mais j'espère que cela a été utile ^^

+0

un peu de ce que je pensais. J'espérais un plugin pour les rails ou quelque chose de similaire, mais je pense que vous avez plutôt bien décrit les deux options. À moins que quelqu'un d'autre ne suggère une meilleure solution, la réponse est la vôtre. – kikito

+0

Puisque personne d'autre n'a répondu, la vôtre est la plus correcte! Merci! – kikito

0

En outre, dupliquer le code va créer des problèmes de mise en cache, les problèmes de concurrence.

Questions connexes