Qual é a melhor abordagem para criar um modelo de informação comum?
-
11-07-2019 - |
Pergunta
Eu gostaria de saber a melhor abordagem para criar um Modelo de informação comum. Apenas para ficar claro, também ouvi isso referido como modelo de informação canônica, modelo de informação semântica e modelo de dados mestre - até onde eu sei, todos estão se referindo ao mesmo conceito.
Ouvi no passado que uma abordagem combinada de "de cima para baixo" e "de baixo para cima" é melhor. Isso tem a vantagem de incorporar arquitetos e desenvolvedores da "Torre do Marfim" - o trabalho se reunirá em algum lugar no meio e geralmente será lógico e prático. No entanto, isso envolve trazer muitas pessoas com diferentes conjuntos de habilidades.
Eu também vi algumas referências ao Força -Tarefa de Gerenciamento Distribuído, mas não consigo entender muito as práticas recomendadas em termos de desenvolvimento do CIM.
Isso é algo que estou interessado em obter algum feedback, já que ter um CIM forte é um pré -requisito para SOA.
Atualizar
Ouvi dizer outra estratégia com a implementação geral da SOA: envolva os negócios e procure patrocínio executivo. Isso seria parte do esforço "de cima para baixo".
Solução
O modelo de dados canônico é um modelo de dados independente de qualquer aplicativo ou serviço. Cada aplicativo que você precisa integrar deve transformar as mensagens e para esse formato comum.
Você deve integrar apenas dados no modelo que precisam ser compartilhados entre os aplicativos. Dê uma olhada nas mensagens que os aplicativos/serviços enviam/recebem. Não tente criar um único modelo de dados corporativos, nunca vi esse trabalho. Sempre existem questões políticas em torno de aplicações e propriedade de aplicativos.
Uma abordagem prática para criar um modelo:
- Comece com a criação de tabelas de referência (definições de domínio padrão Valuta, países, estado civil, cidades etc.)
- Se houver mais do que 2 consumidores, padronize os conceitos comuns (cliente, endereço)
- Se disponível, use ou consulte os padrões públicos (ISO, ontologias, por exemplo, Dublin Core)
- Atribuir explicitamente a propriedade para o modelo.