Partager via


À propos de l’exemple d’adaptateur de facturation

 

S’applique à : Windows Azure Pack

L’exemple d’adaptateur de facturation est une solution Microsoft Visual Studio 2012 disponible à partir de https://www.microsoft.com/en-us/download/details.aspx?id=41146. L’exemple d’architecture comprend deux parties : un moteur principal de l’adaptateur de facturation et un composant d’adaptateur de facturation spécifique au système. Le moteur principal interagit avec l’API de facturation Windows Azure Pack et fournit des interfaces facilement consommables. Le composant spécifique au système est composé d’un client qui communique avec le système de facturation réel associé à des implémentations d’interfaces sélectionnées à partir du moteur principal. Deux adaptateurs de facturation et clients spécifiques au système sont fournis : WHMCS et HostBill. Pour tout autre système de facturation, une nouvelle implémentation doit être créée.

Le moteur principal a sa propre base de données pour maintenir l’état et prendre en charge la récupération d’échec. Les deux exemples spécifiques au système fournis par l’exemple incluent des bases de données pour fournir la prise en charge du mappage d’identité. Ces bases de données sont spécifiques à l’implémentation et peuvent ne pas être nécessaires lors de la création de votre propre implémentation d’adaptateur de facturation.

Important

L’implémentation spécifique au système fournie utilise une base de données pour effectuer le mappage des identités. Il mappe les identificateurs Windows Azure Pack aux identificateurs de système de facturation spécifiques. Si votre système de facturation est capable d’utiliser (ou de stocker) les identificateurs Windows Azure Pack, les bases de données de mappage d’identité ne sont pas nécessaires dans le cadre de l’implémentation.

Exemple de facturation Windows Azure Pack Sample

Exemples d’observations générales

  • L’adaptateur de facturation peut être exécuté en tant que service Windows ou en tant qu’application console. Pour plus d’informations, consultez Comment générer et exécuter l’exemple d’adaptateur de facturation.

  • L’adaptateur de facturation peut être hébergé n’importe où, tant qu’il peut se connecter aux API de facturation Windows Azure Pack et au système de facturation. Si l’un des répondeurs est utilisé (API bloquante ou API de tarification), windows Azure Pack doit également être en mesure d’accéder à l’adaptateur de facturation.

  • Le moteur principal de l’adaptateur de facturation fournit une interface fortement typée pour gérer l’utilisation limitée. Toutefois, aucun des systèmes de facturation implémentés dans cet exemple ne fournit une utilisation mesurée prête à l’emploi sans acquérir de modules complémentaires supplémentaires.

Aspects du moteur principal

Les éléments suivants décrivent les aspects du moteur principal. Pour plus d’informations sur l’exemple de projet, consultez About the Billing Adapter Core Engine Sample Files

Simplification & Abstraction

Le moteur principal extrait la complexité de l’API REST de facturation dans une interface facile à utiliser en tapant fortement les informations collectées via l’API REST d’utilisation. Pour plus d’informations sur l’API REST d’utilisation, consultez Informations de référence sur l’API REST d’utilisation de Windows Azure Pack Service.

Gestion des erreurs

Le moteur principal extrait les erreurs de l’implémentation propre au système en effectuant toutes les nouvelles tentatives en interne. Pour les erreurs provenant de Windows Azure Pack (qui sont considérées comme des erreurs temporaires, telles qu’une défaillance réseau), le moteur principal continue de réessayer jusqu’à ce qu’une réponse réussie soit retournée. Pour les erreurs provenant de l’adaptateur de facturation (qui peuvent être temporaires ou permanentes), le moteur principal effectue une nouvelle tentative jusqu’à cinq fois. Au bout de cinq fois, l’erreur est considérée comme permanente et le moteur principal arrête le moteur de traitement, en attendant que l’administrateur système analyse l’erreur et la corrige manuellement. Le moteur principal écrit les messages d’erreur dans le journal des événements Microsoft Windows. Le moteur se met en veille pendant une période prédéfinie entre les tentatives de nouvelle tentative. Pour plus d’informations sur app.config, consultez À propos des exemples de fichiers du moteur core de l’adaptateur de facturation.

Notes

Le moteur peut appeler l’implémentation spécifique au système jusqu’à cinq fois par événement. Par conséquent, l’implémentation doit être idempotente.

Haute disponibilité & sélection maître/esclave

Pour des raisons de haute disponibilité et d’extensibilité, il est possible de déployer l’adaptateur de facturation sur plusieurs ordinateurs. Tous les répondeurs (API bloquante et API de tarification), s’ils sont activés, s’exécutent sur toutes les instances. Master & sélection d’esclaves garantit qu’un seul instance de chaque processeur (événements de notification et enregistrements d’utilisation), s’il est activé, s’exécute à la fois, sur les processus et les machines.

Journalisation

Les journaux peuvent être consultés dans Microsoft observateur d'événements. Ils sont disponibles dans le canal Microsoft-WindowsAzurePack.BillingAdapter sous la section Journaux des applications et des services .

Gestion des états

Le moteur de l’adaptateur de facturation conserve l’état requis dans sa propre base de données, afin qu’il puisse récupérer en cas de défaillance. Cela garantit que les événements déjà « commités » (qui ont été correctement traités par l’implémentation propre au système) ne seront pas traités plusieurs fois.

Aspects des composants spécifiques du système

L’exemple inclut deux implémentations spécifiques au système de facturation (pour les systèmes de facturation WHMCS et HostBill). Si vous avez un autre système de facturation, vous devez fournir votre propre implémentation des interfaces de l’adaptateur de facturation. Lors de l’écriture de votre propre implémentation, certaines instructions doivent être suivies (voir ci-dessous). Ces instructions sont illustrées dans les implémentations spécifiques au système fournies. Par conséquent, il est recommandé d’utiliser l’une des implémentations existantes comme modèle et de les modifier en fonction de vos besoins.

Gestion des nouvelles tentatives

Le code doit être idempotent/réentrée. Si une erreur se produit lors du traitement d’une demande, le moteur de l’adaptateur de facturation tente de remettre à nouveau la demande. L’implémentation doit être en mesure de gérer les tentatives et propre\corriger les événements gérés par la moitié. Les exemples d’implémentations inclus case activée l’état actuel du système de facturation avant d’essayer d’apporter une modification au système de facturation. Ils tirent également parti d’une base de données de mappage pour découvrir si un événement a déjà été traité avec succès.

Aspects de l’exemple HostBill et WHMCS

Les deux exemples d’implémentations interagissent directement avec la base de données du système de facturation (en raison d’un manque d’appels d’API requis). La structure interne de la base de données du système de facturation peut changer d’une version à l’autre, ce qui signifie que les exemples d’implémentations peuvent s’interrompre. L’exemple d’implémentation WHMCS a été testé sur WHMCS version 5.2.7 et l’implémentation HostBill a été testée sur HostBill version 4.9.8. Si la version de votre système de facturation est différente, vous devez retester la compatibilité des implémentations actuelles. Les implémentations fournies lisent la version attendue à partir du app.config (pour plus d’informations sur app.config, voir À propos des exemples de fichiers du moteur core de l’adaptateur de facturation) et ne s’exécutent pas si la version du système de facturation ne correspond pas à la version attendue.

Les deux implémentations implémentent le traitement des notifications d’événements et le blocage des répondeurs d’API. HostBill implémente également le répondeur de tarification.

Voir aussi

À propos des exemples de fichiers du moteur core de l’adaptateur de facturation
À propos des exemples de fichiers système spécifiques de l’adaptateur de facturation