2010-06-03 33 views
1

J'ai un système avec deux bases de données, une que le site Web client utilise, la seconde qui est utilisée par le système «backroom» de traitement des commandes. J'ai été invité à exécuter des requêtes depuis le site Web vers le système backroom. Je préfère ne pas, il semble risqué de permettre à la demande basée sur le Web de fonctionner sans tenir compte sur le système interne. En outre, cela signifie l'ouverture du routage dans le pare-feu pour autoriser les connexions externes au serveur interne.Combien de bases de données pour soutenir eCommerce?

Quelle est la meilleure pratique pour le commerce électronique? Exécuter l'entreprise entière hors d'une base de données? Ou des bases de données individuelles pour chaque système, et un middleware pour les connecter?

Parfois, il peut être nécessaire que l'application Web extrait la date du système interne, mais pas sur la base d'une requête HTTP provenant d'Internet.

Je suis sûr que la meilleure réponse est "ça dépend!" Donc, si les gens ont une règle de base pour quand utiliser middleware et quand ne pas, je voudrais le faire ici.

Répondre

0

Il y a beaucoup d'options ici.

1) Expédition de données. Vous pouvez envoyer des données à la base de données Web afin qu'elle dispose de son propre cache local d'informations à utiliser lorsque cela est nécessaire.

2) Services. Vous pouvez protéger votre base de données interne à l'aide d'un service qui accepte les demandes et renvoie les données. Cela évite tout accès direct à votre base de données interne mais vous donne l'avantage de données qui ne sont pas hors de données, comme ce serait dans l'option 1.

3) Bus de service. Vous pourriez coller un intergiciel entre les deux systèmes qui traitent des choses telles que la livraison garantie et ETL si vous avez besoin de ces choses.

Essentiellement, il y a beaucoup de bonnes réponses - et quelques mauvaises réponses ...

Les mauvaises réponses comprennent tout ce dont coller dans une seule base de données, ce qui permet un accès direct depuis Internet à votre base de données interne et la mise en place d'un Linked -serveur entre les deux bases de données!

0

Je préfère ne pas, il semble risqué de permettre demande basée sur le Web pour exécuter sans effet sur le système interne.

Encore moins sécurisé serait d'utiliser une base de données unique à laquelle les clients se connectent via un serveur HTTP. Il est assez courant d'avoir plusieurs bases de données dans différentes zones de sécurité.

0

Eh bien, vous pouvez répliquer les données de vos bases de données transactionnelles vers des copies en lecture seule pour exécuter des requêtes de création de rapports en tant que solution de solution relativement rapide. Avec eCommerce cependant, vous devez être conscient de PCI et assurez-vous que vous respectez leurs exigences pour protéger les données sensibles des clients/cartes de crédit. L'étape suivante consiste à créer un entrepôt de données spécialement conçu à des fins de création de rapports. Il est donc plus facile d'écrire des requêtes et de les exécuter beaucoup plus efficacement pour découper et découper vos données. (dimensions). Ralph Kimball Data warehouse Guru