1

Voici mon problème. J'ai construit une application web, et naturellement gardé les données dans une base de données qui décrit le domaine de cette application. Afterwords, j'ai construit une autre application web pour la même organisation, et utilisé une base de données séparée pour décrire le domaine de l'application et stocker les données ... et naturellement quelques autres projets sont apparus et pour chaque application j'ai isolé ses données à une base de données unique . Deveolpment sage, je pense que c'est ok, car je peux maintenir des changements à la structure de données et de données à la base de données de l'application. Considérant que ces applications appartiennent à la même organisation, il y a beaucoup de données répliquées entre elles, comme les noms de département, d'emploi, de magasin, etc. La plupart de ces tables contiennent les mêmes données, mais ne sont pas exactement les mêmes. même dans chaque base de données, et ne sont pas toujours utilisés par toutes les applications. Cependant, les changements apportés à ces données doivent être modifiés dans toutes les applications (parfois d'une manière différente), ce qui engendre une «gestion des problèmes» grandissante.Des recommandations pour une façon efective de synchroniser les données d'une base de données vers les bases de données d'autres applications?

J'ai donc pensé à un moyen d'obtenir une certaine syncronisation entre les données. Je veux une gestion plus facile - mettre à jour une application (ou une application centrale) et mettre à jour toutes les bases de données nécessaires pour chaque application - et aussi mieux partager les données entre applications (comme peut-être fusionner les données de différentes applications dans une nouvelle application pour permettre une analyse spécifique). La plupart des données auxquelles je fais référence sont utilisées comme des contraintes plutôt que comme un concept de domaine principal, décrivant l'organisation plutôt que de décrire un domaine particulier.

Je cherche des opinions sur certains moyens d'y parvenir. Ma première idée était de saisir des structures de données comun, comme la table des noms de département que j'ai mentionnée, et de les coller dans une base de données centrale. Toutes les mises à jour des données seraient effectuées à cette base de données, via une application web dédiée, et j'appliquerais une sorte de modèle Observer ou Editeur/Suscriber pour ces changements - sur les changements que l'application notifierait aux applications observantes (via le webservice dédié) que les changements se sont produits et permettent à l'application de saisir les nouvelles données et de les utiliser comme il le faut. GUID pourrait être l'utilisateur comme référence pour identifier les mêmes données dans les applications. De plus, je pourrais créer des services Web pour les opérations de lecture et de recherche qui n'ont pas besoin d'être dans la base de données d'une application spécifique, mais qui pourraient lui être utiles.

Une deuxième idée serait que chaque application gère ses propres données, et les applications pourraient s'observer les uns les autres. Un changement dans l'un pourrait informer d'autres personnes partageant la même structure de données que le changement s'est produit. Je pourrais toujours utiliser certains GUID et même créer des services sur l'une des applications. Je pense que cela serait aussi moins excessif en termes de duplication des données, mais pourrait être plus difficile à gérer car chaque application serait éventuellement couplée à d'autres applications, et je voudrais savoir comment répartir les responsabilités quant à l'application qui contrôle quelles informations. Je suis vraiment curieux de savoir que quelque chose de ce genre de distribution de données et de synchronisation fonctionnerait et serait même recommandé. Les opions et autres idées sont plus que bienvenues!

Répondre

3

Ce que vous décrivez ici est un cas typique pour un système "Master Data Management". Les fournisseurs EAI (Oracle, TIBCO, IBM) proposent de tels produits. Ils ressemblent à votre première solution, étant des bases de données centralisées avec des processus de synchronisation, détectant les changements dans les sources de données externes, saisissant les changements et synchronisant les données vers d'autres bases de données externes. Ils fournissent également une interface utilisateur pour modifier directement les données de base.
Les logiciels MDM sont chers, mais vous pouvez implémenter une solution personnalisée qui sera - au moins au début - moins chère que l'achat d'une solution. Vos deux solutions ont un sens technique, mais il y a une différence dans leur maniabilité.
Le premier est meilleur, si vous pouvez dédier une personne responsable/organisation pour prendre soin d'elle et les propriétaires d'entreprise de vos services peuvent convenir de faire des changements via ce nouveau système centralisé.
La deuxième solution partage la responsabilité entre les propriétaires du service.La tâche difficile consiste ici à identifier le propriétaire de chaque type d'information (objet métier).
Je ne peux pas conseiller une solution sans une connaissance plus approfondie de vos systèmes et organisations, mais j'espère pouvoir donner quelques idées.

+0

Merci Miklos. C'est une grande organisation basée sur SAP. Comme le département avec lequel je travaille a de la difficulté à obtenir de l'aide auprès de leur groupe informatique et que SAP a tendance à les ralentir, ils ont décidé d'externaliser des fonctionnalités/outils spécifiques, dont certains ont été construits. Ces applications que j'ai construites ne sont pas gérées par des informaticiens, mais par un petit nombre d'opérateurs du département, qui sont parfaitement capables d'assumer cette fonction. Il y a quelques IT internes qui pourraient faire cela aussi. Je suis juste pour comprendre comment rendre leur vie plus facile et ouvrir des portes pour partager des données entre les applications .. Merci! – MytyMyky

+0

Master Data Management "était la clé dont j'avais besoin pour trouver une bonne quantité d'informations qui m'aidera à construire ce dont j'ai besoin.Merci! – MytyMyky

+0

@MytyMyky vous êtes les bienvenus.Je suis heureux, je pourrais vous aider un peu. –

Questions connexes