2008-09-15 9 views
4

Je développe une solution qui sera déployée dans plusieurs centres de données dans plusieurs régions du monde, chaque centre de données disposant d'une copie répliquée des données mises à jour activement dans chaque région. Je vais avoir une combinaison de plusieurs bases de données et systèmes de fichiers dans chaque centre de données, dont l'état doit être maintenu cohérent (dans un centre de données). Ces référentiels multiples feront face à un niveau de service SOA.Technologies de réplication au niveau application

Je peux tolérer une certaine latence dans la réplication, et avoir besoin de permettre aux régions d'être hors ligne, puis de les rattraper plus tard. Étant donné les multiples référentiels de données dorsaux, je ne peux pas facilement compter sur des solutions de réplication indépendantes pour que chacun conserve un état cohérent. Je suis donc amené à implémenter la réplication sur la couche application - en répliquant les requêtes SOA d'une manière ou d'une autre. Je dois m'assurer que les boucles de réplication ne se produisent pas et que les dernières conditions d'écriture sont correctement triées. Selon votre expérience, quel est le meilleur modèle pour résoudre ce problème, et y a-t-il de bons produits (gratuits ou non) qui devraient être étudiés?

Répondre

0

Vous ne donnez pas assez de détails pour être certain de vos besoins, mais je pense que vous devriez vérifier la réplication SQL Server Merge. Il permet la réplication asynchrone de plusieurs bases de données avec une résolution complète des conflits. Vous devrez désigner un maître global et toutes les autres bases de données répliqueront à celui-là, mais toutes les instances de base de données sont entièrement fonctionnelles (lecture/écriture) et vous pouvez planifier la réplication à n'importe quel moment. Si une région se déconnecte, elle peut être rattrapée plus tard sans problème. Si le maître est déconnecté, tout le monde travaillera de façon indépendante jusqu'à ce que la réplication puisse reprendre.

Je serais intéressé de connaître d'autres solutions aussi flexibles (à part Lotus Notes/Domino bien sûr qui n'est pas très tendance ces jours-ci).

2

Lotus/Domino est votre réponse. Je travaille avec elle depuis dix ans et c'est exactement ce dont vous avez besoin. Ce n'est peut-être pas à la mode (une perception que je mettrais au défi) mais c'est puissant, adaptable et très sécurisé, La dernière version R8 est la meilleure encore.

0

Je pense que votre réponse va devoir être basée sur une architecture pub/sub. Je suppose que vous disposez d'un système de messagerie fiable entre vos centres de données pour pouvoir compter sur les mises à jour publiées éventuellement reçues. Si tout votre accès aux référentiels de données s'effectue via le service, vous pouvez ajouter une notification d'événement à l'orchestration de chacun de vos services de mise à jour qui informe tous les centres de données concernés de l'événement. Idéalement, la base de données master est la seule à envoyer ces mises à jour. Si la base de données master est la seule à envoyer les mises à jour, vous pouvez exclure le routage des notifications vers le noeud qui les a générées en premier lieu, évitant ainsi les boucles de mise à jour.

1

Vous devriez certainement considérer IBM Lotus Domino. Une base de données Lotus Notes peut être répliquée entre des sites selon un calendrier prédéfini. La réplication dans Notes/Domino est définitivement une fonctionnalité très puissante et permet une réplication complète des données entre les sites. Même si un serveur est indisponible la prochaine fois qu'il se connecte, il va simplement se répliquer et se synchroniser.

En ce qui concerne le niveau de service SOA, vous pouvez ensuite utiliser Domino Designer pour écrire un service Web. Depuis Notes/Domino 7.5.x (je crois) Domino a été capable de provisionner et de consommer des services web.

1

Comme tout autre conseillé, je recommanderai également Lotus Notes/Domino. 8.5 est vraiment très puissant de développement d'applications platfrom