/ Modelo de dados canônico - mula, canonização, integração empresarial

Modelo de dados canônico - mula, canonização, integração empresarial

Eu estou construindo uma aplicação que expõe um restoAPI e no back-end se comunica e orquestra vários serviços SOAP para criar as respostas à API REST. Tenho lido sobre os modelos de dados canônicos e como eles podem me ajudar a acoplar vagamente esses serviços SOAP de back-end.

Devo estar usando um modelo de dados canônico entre minha API de descanso e os serviços de back-end?

No momento, as respostas SOAP backend sãodesmarcado para objetos Java usando JAXB. Em seguida, uso scripts para mapear os objetos jaxb para o mapa que representa a estrutura que desejo retornar como JSON e simplesmente converter o Map para Json por meio da API Rest.

Então SOAP -> Objeto Java jaxb -> Mapa Java (representando JSON) -> Json

Devo adicionar outro passo aqui para um modelo canônico?

Então SOAP -> Objeto Java jaxb -> MODELO CANÔNICO não representa estrutura SOAP ou JSON -> Mapa Java (representando JSON) -> Json

Isso é uma boa opção para um MDL? Ou adicionar esse nível extra redundante?

Respostas:

0 para resposta № 1

Eu acho que você está falando de ter uma fachadaentre você e os serviços, em vez de um MDL. Você poderia mapear os objetos gerados por jaxb em objetos internos, executar a lógica do aplicativo neles e mapeá-los para os objetos que representam sua interface JSON. O mapeamento interno do jaxb dissociará seu aplicativo das interfaces que você está consumindo. O mapeamento interno para json dissociará a interface exposta a seus consumidores de seus objetos internos.

Se isso vale a pena ou não depende docomplexidade do seu ambiente, qual é o custo e a probabilidade de mudança. Por exemplo, pode ser aceitável ser fortemente acoplado a serviços que compartilham e expõem um modelo canônico maduro e com versão. É um perfil de risco muito diferente se você estiver consumindo um conjunto de interfaces ad-hoc ou de terceiros.


0 para resposta № 2

Tanto quanto eu sei modelo de dados canônicos significa um modelo de dados comum que representa todos os formatos de mensagens possíveis e / ou protocolos. Por exemplo, em Mule MuelMessage é um modelo de dados canônico porque todas as mensagens que enviamos, Mule cria o MuleMessage que representa sua mensagem, independentemente do protocolo que usamos. Então criar um modelo de dados canônico é um pouco difícil, em geral

Chegando ao seu caso, eu não sei o quão complexoseus objetos SOAP são. Se eles são muito complexos, ou seja, com vários níveis, então seria um trabalho difícil. Minha sugestão é, em vez de ter um modelo de dados canônicos, por que você não pode escrever seu próprio transformador personalizado (veja se você pode usar um transformador embutido) que analisa e transforma sua mensagem SOAP na resposta JSON correspondente. interface de transformador comum, mas com várias implementações que realizam a análise e transformação, depende da sua mensagem SOAP.

Espero que isso tenha ajudado.