Acerca do Exemplo do Adaptador de Faturação
Aplica-se a: Windows Azure Pack
O Exemplo do Adaptador de Faturação é 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 motor de núcleo do adaptador de faturação e um componente de adaptador de faturação específico do sistema. O motor principal interage com a API de Faturação do Windows Azure Pack e fornece interfaces facilmente consumíveis. O componente específico do sistema é composto por um cliente que comunica com o sistema de faturação real, juntamente com implementações de interfaces selecionadas do motor principal. São fornecidos dois adaptadores de faturação e clientes específicos do sistema : WHMCS e HostBill. Para qualquer outro sistema de faturação, deve ser criada uma nova implementação.
O motor principal tem a sua própria base de dados para manter o estado e suportar a recuperação de falhas. Os dois exemplos específicos do sistema fornecidos pelo exemplo incluem bases de dados para fornecer suporte de mapeamento de identidades. Estas bases de dados são específicas da implementação e podem não ser necessárias ao criar a sua própria implementação do adaptador de faturação.
Importante
A implementação específica do sistema fornecida utiliza uma base de dados para efetuar o mapeamento de identidades. Mapeia os identificadores do Windows Azure Pack para os identificadores específicos do sistema de faturação. Se o seu sistema de faturação conseguir utilizar (ou armazenar) os identificadores do Windows Azure Pack, as bases de dados de mapeamento de identidades não são necessárias como parte da implementação.
Exemplo de Do
Observações Gerais de Exemplo
O adaptador de faturação pode ser executado como um serviço Windows ou como uma aplicação de consola. Para obter mais informações, veja How to Build and Run the Billing Adapter Sample (Como Criar e Executar o Exemplo do Adaptador de Faturação).
O adaptador de faturação pode ser alojado em qualquer lugar, desde que se possa ligar às APIs de faturação do Windows Azure Pack e ao sistema de faturação. Se algum dos participantes for utilizado (API de Bloqueio ou API de Preços), o Windows Azure Pack também deverá conseguir aceder ao adaptador de faturação.
O motor de núcleo do adaptador de faturação fornece uma interface fortemente digitada para processar a utilização com tráfego limitado. No entanto, nenhum dos sistemas de faturação implementados neste exemplo fornece uma utilização limitada fora da caixa sem adquirir suplementos adicionais.
Aspetos do Motor Principal
O seguinte descreve os aspetos do motor principal. Para obter informações sobre o projeto de exemplo, veja About the Billing Adapter Core Engine Sample Files (Acerca dos Ficheiros de Exemplo do Motor Principal do Adaptador de Faturação)
Simplificação & Abstração
O motor principal abstrai a complexidade da API Rest de Faturação numa interface fácil de utilizar ao escrever fortemente as informações recolhidas através da API Rest de Utilização. Para obter mais informações sobre a API REST de Utilização, veja Referência da API REST de Utilização do Serviço de Utilização do Windows Azure Pack.
Processamento de Erros
O motor principal abstrai erros da implementação específica do sistema ao efetuar quaisquer repetições internamente. Para erros provenientes do Windows Azure Pack (que são considerados erros temporários, como uma falha de rede), o motor principal continuará a tentar até ser devolvida uma resposta com êxito. Para erros provenientes do adaptador de faturação (que podem ser temporários ou permanentes), o motor principal tentará novamente até cinco vezes. Após cinco vezes, o erro será considerado permanente e o motor principal irá parar o motor de processamento, aguardando que o administrador do sistema analise o erro e o corrija manualmente. O motor principal escreve as mensagens de erro no Registo de Eventos do Microsoft Windows. O motor permanece suspenso durante um período predefinido entre tentativas de repetição. Para obter informações sobre app.config, veja About the Billing Adapter Core Engine Sample Files (Acerca dos Ficheiros de Exemplo do Motor de Núcleo do Adaptador de Faturação).
Nota
O motor pode chamar a implementação específica do sistema até cinco vezes por evento, pelo que a implementação deve ser idempotente.
Seleção mestre/escravo de elevada disponibilidade &
Para fins de elevada disponibilidade e escalabilidade, é possível implementar o adaptador de faturação em várias máquinas. Todos os participantes (API de bloqueio e API de preços), se ativados, serão executados em todas as instâncias. A seleção principal & subordinado garantirá que apenas uma instância de cada processador (eventos de notificação e registos de utilização), se ativada, será executada de cada vez, em processos e computadores.
Registo
Os registos podem ser visualizados no Microsoft Visualizador de Eventos. Estão disponíveis no canal Microsoft-WindowsAzurePack.BillingAdapter na secção Registos de Aplicações e Serviços .
Gestão de Estado
O motor do adaptador de faturação mantém o estado necessário na sua própria base de dados, para que possa recuperar de falhas. Isto garante que os eventos já "consolidados" (que foram processados com êxito pela implementação específica do sistema) não serão processados mais do que uma vez.
Aspetos dos Componentes Específicos do Sistema
O exemplo inclui duas implementações específicas do sistema de faturação (para sistemas de faturação WHMCS e HostBill). Se tiver um sistema de faturação diferente, terá de fornecer a sua própria implementação das interfaces do adaptador de faturação. Ao escrever a sua própria implementação, algumas diretrizes têm de ser seguidas (veja abaixo). Estas diretrizes são demonstradas nas implementações específicas do sistema fornecidas, pelo que é recomendado utilizar uma das implementações existentes como modelo e modificá-las de acordo com as suas necessidades.
Processar Repetições
O código deve ser idempotente/re-participante. Se ocorrer um erro ao processar um pedido, o motor do adaptador de faturação tentará entregar o pedido novamente. A implementação deve ser capaz de processar tentativas de repetição e limpar\corrigir eventos semi-processados. As implementações de exemplo incluídas verificam o estado atual do sistema de faturação antes de tentar efetuar uma modificação no sistema de faturação. Também tiram partido de uma base de dados de mapeamento para descobrir se um evento já foi processado com êxito.
Aspetos do HostBill e whMCS Sample
Ambas as implementações de exemplo interagem diretamente com a base de dados do sistema de faturação (devido à falta de chamadas à API necessárias). A estrutura interna da base de dados do sistema de faturação pode mudar entre versões, o que significa que as implementações de exemplo podem quebrar. A implementação do exemplo WHMCS foi testada na versão 5.2.7 do WHMCS e a implementação hostBill foi testada na versão HostBill 4.9.8. Se a versão do sistema de faturação for diferente, deve voltar a testar 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 Acerca dos Ficheiros de Exemplo do Motor Core do Adaptador de Faturação) e não serão executadas se a versão do sistema de faturação não corresponder à versão esperada.
Ambas as implementações implementam o processamento de notificações de eventos e bloqueiam os participantes da API. HostBill também implementa o dispositivo de resposta de preços.
Consulte também
Acerca dos Ficheiros de Exemplo do Motor Principal do Adaptador de Faturação
Acerca dos Ficheiros de Exemplo Específicos do Sistema do Adaptador de Faturação