Sobre o exemplo do adaptador de cobrança
Aplica-se a: Pacote do Windows Azure
O Exemplo do Adaptador de Cobrança é uma solução do Microsoft Visual Studio 2012 disponível em https://www.microsoft.com/en-us/download/details.aspx?id=41146. A arquitetura de exemplo é composta por duas partes: um mecanismo de núcleo do adaptador de cobrança e um componente de adaptador de cobrança específico do sistema. O mecanismo principal interage com a API de Cobrança do Pacote do Azure do Windows e fornece interfaces facilmente consumíveis. O componente específico do sistema é composto por um cliente que se comunica com o sistema de cobrança real, juntamente com implementações de interfaces selecionadas do mecanismo principal. Dois adaptadores de cobrança e clientes específicos do sistema são fornecidos para : WHMCS e HostBill. Para qualquer outro sistema de cobrança, uma nova implementação deve ser criada.
O mecanismo principal tem seu próprio banco de dados para manter o estado e dar suporte à recuperação de falhas. Os dois exemplos específicos do sistema fornecidos pelo exemplo incluem bancos de dados para fornecer suporte ao mapeamento de identidade. Esses bancos de dados são específicos da implementação e podem não ser necessários ao criar sua própria implementação de adaptador de cobrança.
Importante
A implementação específica do sistema fornecida usa um banco de dados para executar o mapeamento de identidade. Ele mapeia identificadores do Pacote do Windows Azure para os identificadores específicos do sistema de cobrança. Se o sistema de cobrança for capaz de usar (ou armazenar) os identificadores do Pacote do Windows Azure, os bancos de dados de mapeamento de identidade não serão necessários como parte da implementação.
Exemplo de cobrança do
Observações gerais de exemplo
O adaptador de cobrança pode ser executado como um serviço Windows ou como um aplicativo de console. Para obter mais informações, consulte Como criar e executar o exemplo do adaptador de cobrança.
O adaptador de cobrança pode ser hospedado em qualquer lugar, desde que possa se conectar às APIs de cobrança do Windows Azure Pack e ao sistema de cobrança. Se algum dos respondentes for usado (API de bloqueio ou API de Preços), o Pacote do Windows Azure também poderá acessar o adaptador de cobrança.
O mecanismo principal do adaptador de cobrança fornece uma interface fortemente tipada para lidar com o uso limitado. No entanto, nenhum dos sistemas de cobrança implementados neste exemplo fornece o uso limitado pronto para uso sem adquirir complementos adicionais.
Aspectos do mecanismo principal
A seguir, descreve aspectos do mecanismo principal. Para obter informações sobre o projeto de exemplo, consulte Sobre os arquivos de exemplo do mecanismo principal do adaptador de cobrança
Simplificação & Abstração
O mecanismo principal abstrai a complexidade da API Rest de Cobrança em uma interface fácil de usar digitando fortemente as informações coletadas por meio da API Rest de Uso. Para obter mais informações sobre a API rest de uso, consulte Referência da API REST de uso do Serviço de Uso do Azure Pack do Windows.
Tratamento de erros
O mecanismo principal abstrai erros da implementação específica do sistema executando novas tentativas internamente. Para erros provenientes do Pacote do Windows Azure (que são considerados erros temporários, como uma falha de rede), o mecanismo principal continuará tentando novamente até que uma resposta bem-sucedida seja retornada. Para erros provenientes do adaptador de cobrança (que podem ser temporários ou permanentes), o mecanismo principal tentará novamente até cinco vezes. Após cinco vezes, o erro será considerado permanente e o mecanismo principal interromperá o mecanismo de processamento, aguardando o administrador do sistema analisar o erro e corrigi-lo manualmente. O mecanismo principal grava as mensagens de erro no Log de Eventos do Microsoft Windows. O mecanismo dorme por um tempo predefinido entre tentativas de repetição. Para obter informações sobre app.config, consulte Sobre os arquivos de exemplo do mecanismo principal do adaptador de cobrança.
Observação
O mecanismo pode chamar a implementação específica do sistema até cinco vezes por evento, portanto, a implementação deve ser idempotente.
Seleção mestre/escrava de & de alta disponibilidade
Para fins de alta disponibilidade e escalabilidade, é possível implantar o adaptador de cobrança em vários computadores. Todos os respondentes (bloqueando a API e a API de preços), se habilitados, serão executados em todas as instâncias. A seleção do mestre & escravo garantirá que apenas uma instância de cada processador (eventos de notificação e registros de uso), se habilitados, seja executada por vez, entre processos e computadores.
Registro em log
Os logs podem ser exibidos no Microsoft Visualizador de Eventos. Eles estão disponíveis no canal Microsoft-WindowsAzurePack.BillingAdapter na seção Logs de Aplicativos e Serviços .
Gerenciamento do estado
O mecanismo do adaptador de cobrança mantém o estado necessário em seu próprio banco de dados, para que ele possa se recuperar de falhas. Isso garante que os eventos já "confirmados" (que foram processados com êxito pela implementação específica do sistema) não serão processos mais de uma vez.
Aspectos dos componentes específicos do sistema
O exemplo inclui duas implementações específicas do sistema de cobrança (para sistemas de cobrança WHMCS e HostBill). Se você tiver um sistema de cobrança diferente, será necessário fornecer sua própria implementação das interfaces do adaptador de cobrança. Ao escrever sua própria implementação, algumas diretrizes precisam ser seguidas (veja abaixo). Essas diretrizes são demonstradas nas implementações específicas do sistema fornecidas, portanto, é recomendável usar uma das implementações existentes como modelo e modificá-las de acordo com suas necessidades.
Tratamento de repetições
O código deve ser idempotente/re-participante. Se ocorrer um erro durante o processamento de uma solicitação, o mecanismo do adaptador de cobrança tentará entregar a solicitação novamente. A implementação deve ser capaz de lidar com tentativas de repetição e limpo\corrigir eventos tratados pela metade. As implementações de exemplo incluídas marcar o estado atual do sistema de cobrança antes de tentar fazer uma modificação no sistema de cobrança. Eles também aproveitam um banco de dados de mapeamento para descobrir se um evento já foi processado com êxito.
Aspectos do exemplo HostBill e WHMCS
Ambas as implementações de exemplo interagem diretamente com o banco de dados do sistema de cobrança (devido à falta de chamadas à API necessárias). A estrutura interna do banco de dados do sistema de cobrança pode mudar entre as versões, o que significa que as implementações de exemplo podem ser interrompidas. A implementação de exemplo do WHMCS foi testada no WHMCS versão 5.2.7 e a implementação do HostBill foi testada no HostBill versão 4.9.8. Se a versão do sistema de cobrança for diferente, você deverá testar novamente as implementações atuais para compatibilidade. As implementações fornecidas leem a versão esperada do app.config (para obter mais informações sobre app.config, consulte Sobre os Arquivos de Exemplo do Mecanismo Principal do Adaptador de Cobrança) e não serão executadas se a versão do sistema de cobrança não corresponder à versão esperada.
Ambas as implementações implementam o processamento de notificação de eventos e o bloqueio de respondentes da API. HostBill também implementa o respondente de preços.
Consulte Também
Sobre os arquivos de exemplo do mecanismo principal do adaptador de cobrança
Sobre os arquivos de exemplo específicos do sistema de adaptador de cobrança