2009-09-14 9 views
0

Lors de la conception d'une nouvelle infrastructure d'entreprise basée sur J2EE, dois-je préparer la situation dans laquelle des modules métier distincts doivent utiliser des bases de données différentes et doivent s'exécuter sur des instances de serveur d'applications différentes?Dois-je concevoir une base de données et un serveur distincts pour chaque module?

D'un autre point de vue: quelqu'un a-t-il déjà connu une exigence en vraie vie pour différentes bases de données & serveurs par module? Si oui, quelle était la taille de cette entreprise? Parce que (d'après ce que je peux voir) cela complique beaucoup les choses, et avec la version précédente de ce framework (et dans les banques plus petites), le cas ci-dessus n'est jamais arrivé.

Merci pour les réponses!

Répondre

0

Je ne suis pas sûr que je l'ai compris ce phrasé correctement

où des modules d'affaires distincts doivent utiliser différentes bases de données

tout le temps.

Peut-être que nous parlons de choses différentes ici. Je n'ai jamais rencontré d'organisation sans au moins deux bases de données. Cela inclut moi et mon catalogue de CD et les bases de données de musique de guitare sur mon ordinateur portable.

Voulez-vous dire différents fournisseurs de bases de données? Versions de base de données, comme Oracle vX et Oracle vY? Même en vertu de cette définition, je ne peux penser à aucun client que j'ai rencontré qui ait universellement standardisé un fournisseur ou une version. Donc, est-ce que je m'attendrais à ce qu'un système non trivial ait des modules regardant une base de données et d'autres regardant une autre. Oui abolument.

Est-ce que je m'attends à ce que certains modules regardent deux bases de données, oui. Les données de référence dans un vivent dans un autre. L'histoire dans un autre.

Différents modules sur différents serveurs - oui. Pour des raisons d'isolement et d'évolutivité. C'est une chose que les serveurs d'applications font très bien.

Dans l'ensemble, pourquoi voyez-vous cela comme un problème? Vos modules recherchent leurs connexions JDBC dans JNDI, ils n'ont pas besoin de savoir qu'ils utilisent des bases de données différentes. C'est un problème d'administration de câbler les modules correctement.

Un problème majeur pourrait être l'utilisation de transactions XA, mais il est souvent possible d'éviter de mettre à jour les deux bases de données dans le même module, ou si du même module dans la même transaction.