Acerca del ejemplo de adaptador de facturación
Se aplica a: Windows Azure Pack
El ejemplo de adaptador de facturación es una solución de Microsoft Visual Studio 2012 disponible en https://www.microsoft.com/en-us/download/details.aspx?id=41146. La arquitectura de ejemplo consta de dos partes: un motor principal del adaptador de facturación y un componente de adaptador de facturación específico del sistema. El motor principal interactúa con la API de facturación de Paquetes de Windows Azure y proporciona interfaces fáciles de consumir. El componente específico del sistema se compone de un cliente que se comunica con el sistema de facturación real junto con implementaciones de interfaces selectas del motor principal. Se proporcionan dos adaptadores de facturación y clientes específicos del sistema para - WHMCS y HostBill. Para cualquier otro sistema de facturación, se debe crear una nueva implementación.
El motor principal tiene su propia base de datos para mantener el estado y admitir la recuperación de errores. Los dos ejemplos específicos del sistema proporcionados por el ejemplo incluyen bases de datos para proporcionar compatibilidad con la asignación de identidades. Estas bases de datos son específicas de la implementación y es posible que no sean necesarias al crear su propia implementación del adaptador de facturación.
Importante
La implementación específica del sistema proporcionada usa una base de datos para realizar la asignación de identidades. Asigna identificadores de Windows Azure Pack a los identificadores específicos del sistema de facturación. Si el sistema de facturación es capaz de usar (o almacenar) los identificadores de Windows Azure Pack, las bases de datos de asignación de identidades no son necesarias como parte de la implementación.
De
Observaciones generales de ejemplo
El adaptador de facturación se puede ejecutar como un servicio de Windows o como una aplicación de consola. Para obtener más información, vea Cómo compilar y ejecutar el ejemplo de adaptador de facturación.
El adaptador de facturación se puede hospedar en cualquier lugar, siempre que pueda conectarse a las API de facturación de Windows Azure Pack y al sistema de facturación. Si se usa alguno de los respondedor (API de bloqueo o API de precios), el paquete de Windows Azure también debería poder acceder al adaptador de facturación.
El motor principal del adaptador de facturación proporciona una interfaz fuertemente tipada para controlar el uso medido. Sin embargo, ninguno de los sistemas de facturación implementados en este ejemplo proporciona un uso medido de fábrica sin adquirir complementos adicionales.
Aspectos del motor principal
A continuación se describen los aspectos del motor principal. Para obtener información sobre el proyecto de ejemplo, vea Acerca de los archivos de ejemplo del motor principal del adaptador de facturación.
Simplificación & abstracción
El motor principal abstrae la complejidad de la API rest de facturación en una interfaz fácil de usar escribiendo fuertemente la información recopilada a través de la API rest de uso. Para obtener más información sobre la API rest de uso, consulte Referencia de la API DE REST de uso del paquete de Windows Azure Pack.
Tratamiento de errores
El motor principal abstrae los errores de la implementación específica del sistema realizando los reintentos internamente. En el caso de los errores que se originan en Windows Azure Pack (que se consideran errores temporales, como un error de red), el motor principal seguirá reintentando hasta que se devuelva una respuesta correcta. En el caso de los errores que se originan en el adaptador de facturación (que puede ser temporal o permanente), el motor principal reintentará hasta cinco veces. Después de cinco veces, el error se considerará permanente y el motor principal detendrá el motor de procesamiento, esperando al administrador del sistema a analizar el error y corregirlo manualmente. El motor principal escribe los mensajes de error en el registro de eventos de Microsoft Windows. El motor se suspende durante un tiempo predefinido entre los reintentos. Para obtener información sobre app.config, vea Acerca de los archivos de ejemplo del motor principal del adaptador de facturación.
Nota
El motor puede llamar a la implementación específica del sistema hasta cinco veces por evento, por lo que la implementación debe ser idempotente.
Alta disponibilidad & selección maestra/esclava
Con fines de alta disponibilidad y escalabilidad, es posible implementar el adaptador de facturación en varias máquinas. Todos los respondedores (API de bloqueo y API de precios), si están habilitados, se ejecutarán en todas las instancias. El maestro & selección de esclavos garantizará que solo una instancia de cada procesador (eventos de notificación y registros de uso), si está habilitada, se ejecutará a la vez, entre procesos y máquinas.
Registro
Los registros se pueden ver en Microsoft Visor de eventos. Están disponibles en el canal Microsoft-WindowsAzurePack.BillingAdapter en la sección Registros de aplicaciones y servicios .
Administración de estado
El motor del adaptador de facturación mantiene el estado necesario en su propia base de datos, para que pueda recuperarse de errores. Esto garantiza que los eventos ya "confirmados" (procesados correctamente por la implementación específica del sistema) no serán procesos más de una vez.
Aspectos de los componentes específicos del sistema
El ejemplo incluye dos implementaciones específicas del sistema de facturación (para sistemas de facturación WHMCS y HostBill). Si tiene un sistema de facturación diferente, debe proporcionar su propia implementación de las interfaces del adaptador de facturación. Al escribir su propia implementación, es necesario seguir algunas directrices (consulte a continuación). Estas directrices se muestran en las implementaciones específicas del sistema proporcionadas, por lo que se recomienda usar una de las implementaciones existentes como plantilla y modificarlas según sus necesidades.
Control de reintentos
El código debe ser idempotente/re-entrant. Si se produce un error al procesar una solicitud, el motor del adaptador de facturación intentará entregar la solicitud de nuevo. La implementación debe poder controlar los reintentos y limpiar o corregir los eventos controlados por la mitad. Las implementaciones de ejemplo incluidas comprueban el estado actual del sistema de facturación antes de intentar realizar una modificación en el sistema de facturación. También aprovechan una base de datos de asignación para detectar si un evento ya se procesó correctamente.
Aspectos del ejemplo HostBill y WHMCS
Ambas implementaciones de ejemplo interactúan directamente con la base de datos del sistema de facturación (debido a la falta de llamadas API necesarias). La estructura interna de la base de datos del sistema de facturación podría cambiar entre versiones, lo que significa que las implementaciones de ejemplo podrían interrumpirse. La implementación de ejemplo de WHMCS se probó en la versión 5.2.7 de WHMCS y la implementación de HostBill se probó en la versión 4.9.8 de HostBill. Si la versión del sistema de facturación es diferente, debe volver a probar las implementaciones actuales por motivos de compatibilidad. Las implementaciones proporcionadas leen la versión esperada de la app.config (para obtener más información sobre app.config, vea Acerca de los archivos de ejemplo del motor principal del adaptador de facturación) y no se ejecutarán si la versión del sistema de facturación no coincide con la versión esperada.
Ambas implementaciones implementan el procesamiento de notificaciones de eventos y los respondedores de API de bloqueo. HostBill también implementa el respondedor de precios.
Consulte también
Acerca de los archivos de ejemplo del motor principal del adaptador de facturación
Acerca de los archivos de ejemplo específicos del sistema del adaptador de facturación