2009-10-08 6 views
1

Je suis actuellement impliqué dans un projet où nous développons un site web important qui dépend fortement d'un service externe (pour certaines fonctionnalités) développé par une autre société. Le service externe rompt occasionnellement et ne nous fournit pas les données dont nous avons besoin. Ceci est un problème majeur pour nous car les exigences sur "notre" site web sont très élevées.Dépendances vis-à-vis de services externes (web)

Comment devrions-nous gérer cela? Nous sommes réticents à mettre en cache les données du site externe pour les utiliser comme "sauvegarde", car nous pourrions alors afficher des données obsolètes ou erronées. Nous pensons également que nous ne devrions pas essayer de "patcher" les problèmes dans un système externe en stockant des copies locales des données externes car cela pourrait conduire à un problème de synchronisation lorsque les données locales sont obsolètes ou erronées.

Est-ce que quelqu'un a des expériences similaires? Des idées comment nous résolvons cela (ou au moins atténuer le problème)?

+0

Il est essentiel de ne montrer que des données qui ne sont pas trop anciennes (où "trop ​​vieux" est défini par le propriétaire du produit). Nous allons probablement implémenter un mécanisme de mise en cache selon les suggestions ci-dessous pour essayer d'atténuer le problème. Il me semble qu'une meilleure solution serait de réparer les systèmes dont nous dépendons, mais cette décision ne dépend pas de mon équipe. Nous ferons ce que nous pouvons pour fournir des données plutôt récentes. Merci! – Karl

Répondre

1

La mise en cache serait mon premier choix. Cela dépend du site que vous développez, mais vous ne pouvez pas mettre en cache tous les résultats et informer les utilisateurs que c'est ce que vous avez fait - par exemple "c'était exact le 2009-10-08 - cliquez ici pour actualiser"

MISE À JOUR: Sans en savoir plus sur le type de données que vous recevez du service Web et sur l'audience de votre site Web, il est difficile de savoir quoi suggérer car la solution dépendra beaucoup de ces facteurs. Vous devez penser à vos clients pour décider si vous pouvez ou non leur montrer des données potentiellement obsolètes. Si les demandes adressées au service Web ont tendance à être similaires, il est important de prendre en compte la possibilité que la mise en cache vous aide également à améliorer les performances et la mise à l'échelle tout en améliorant la résilience.

1

Vous pouvez utiliser la mise en cache comme mécanisme de sauvegarde lorsque la ressource externe n'est pas disponible. De cette façon, vous utilisez des données en direct aussi longtemps que le service est disponible et quand il tombe en panne, c'est lorsque vous creusez dans votre cache. Il serait important de marquer en quelque sorte les données de telle manière que le consommateur de ces données sache à quel point il est frais.

Vous savez quels sont vos besoins et vos exigences et sur la base de ce que je peux lire, la fraîcheur des données est critique, mais c'est la disponibilité de votre service. Sur la base de cette compréhension si vous pouvez mettre en cache des données, je ferais certainement cela, mais seulement l'utiliser comme une sauvegarde en cas de besoin.