O Conversor de Serviço é um padrão de implementação de serviço que permite que uma determinada implementação de serviço esteja disponível com uma interface diferente. Certas operações na interface podem ser reestruturadas ou ocultas para usuários específicos dessa interface.
É possível usar esse padrão para:
- Suportar uma interface particular para clientes internos, mas fornecer uma interface diferente (talvez com alguma restrição) para clientes externos.
- Expor um conjunto de serviços com base em uma interface/modelo de dados Padrão de mercado para consumidores de serviço externos.
- Oferecer diferentes qualidades de serviço para serem selecionadas em uma base por cliente.
- Suportar diferentes versões do mesmo serviço no qual novas versões introduziram mudanças de interface.
- Suportar o caso em que clientes em diferentes áreas geográficas necessitam que os dados sejam enviados/recebidos usando unidades de medida locais
- Suportar o caso em que clientes em diferentes áreas geográficas necessitam de tradução de idioma de dados enviados/retornados
O provedor de serviços é virtualizado por meio da implementação de uma mediação do ESB (Enterprise Service Bus) que implementa a interface proxy requerida pelo solicitante de serviço. A mediação transforma o pedido apropriadamente e depois roteia o pedido para o provedor de serviços real. A mediação também deve processar as respostas do serviço de destino, transformando-as de volta no formato esperado pelo cliente. Os clientes veem somente o serviço virtual fornecido pela mediação, o que para eles parece ser o provedor real do serviço.
A mediação de serviço pode implementar vários recursos adicionais, incluindo:
- Autenticação
- Autorização
- Auditoria e Criação de Log
- Conversão de protocolo
- Correlação de Resposta
O diagrama a seguir ilustra um exemplo de um cenário de Conversão de Serviço:
Solução
A solução é implementar um fluxo de mediação que contenha o seguinte:
- Um fluxo de pedido para cada operação unilateral na interface de serviço proxy que mapeia para uma operação unilateral no serviço do provedor.
- Um fluxo de pedido para cada operação de pedido-resposta na interface de serviço proxy que mapeia para uma operação unilateral no serviço do provedor.
- Um fluxo de pedido e um fluxo de resposta para cada operação de pedido-resposta na interface de serviço proxy que mapeia para uma operação de pedido-resposta na interface do provedor de serviços.
Os fluxos de pedido mapeiam cada pedido de entrada para um terminal do provedor de serviços pré-configurado.
Além disso, há a opção de registrar e rastrear as mensagens de pedido e de resposta.