Visão Geral: BOM e Modelo de Objeto de Execução (XOM)
Você pode construir o XOM a partir de fontes de dados diferentes.
O modelo de objeto de execução (XOM) é o modelo contra o qual você executa regras. Ele referencia os objetos e dados do aplicativo, e é a implementação base do modelo de objeto de negócio (BOM). Projetos de regra referencia o XOM.
Através do XOM, o mecanismo de regra pode acessar objetos e métodos do aplicativo, que podem ser objetos Java™ , dados XML ou dados de outras fontes. No tempo de execução, regras que foram escritas contra o BOM são executadas contra o XOM.

Todo elemento BOM (elemento de negócio) deve ter um elemento XOM correspondente (elemento de execução). A correspondência entre elementos de execução e elementos de negócio não precisa ser de um para um. Se um elemento de negócio origina-se de um elemento de execução, você não precisa especificar um mapeamento explícito. Se um elemento de negócio não se originar de um elemento de execução, você deve especificar um mapeamento BOM-to-XOM.
Algumas regras internas existem para o mapeamento implícito BOM-to-XOM quando você gera um BOM a partir de um XOM. Por exemplo, uma classe BOM é implicitamente mapeada para uma classe XOM de mesmo nome.
Projetando um BOM para um modelo Java
Quando seu modelo de dados estiver em Java, você pode gerar um BOM diretamente a partir deste Java Execution Object Model (XOM), veja Mapeamento de um BOM criado a partir de um Java XOM. Você pode usar anotações XOM para configurar a geração do BOM, veja Anotações XOM. Se você deseja estender o BOM com classes de negócios e métodos, você pode então mapear esses elementos de negócios para elementos XOM usando mapeamento BOM-to-XOM no Editor BOM. Você tem dois meios de especificar o mapeamento de lista técnica para lista técnica: mapeamento de extensor ou mapeamento ARL, consulte Linguagem de regras e mapeamento de extensor. Os usuários de negócios podem então autor de regras de negócio sem ter que se preocupar com os tipos de dados e plataforma subjacentes.
No momento da implementação, se o seu aplicativo é um aplicativo Java ou web, então o XOM Java é empacotado no aplicativo e não há etapas de implementação específicas que você precisa levar para o XOM. Você compacta as regras e a definição de mapeamento BOM-to-XOM em um arquivo de regras, que fica então disponível para o seu aplicativo de chamada por meio do tempo de execução de regras, Servidor De Execução De Regras.

Se você não tiver um aplicativo de chamada Java ou web, seja porque deseja implementar em um servidor de testes para teste e simulação, ou porque deseja expor suas regras como um Hosted Transparent Decision Service (HTDS), então você deve implementar o Java XOM para o banco de dados Servidor De Execução De Regras .
Quando você testa e simula a execução da regra, o Decision Runner acessa o Rule Execution Server para execução e o Rule Execution Server recupera o XOM do banco de dados.
Quando você gera um HTDS, Servidor De Execução De Regras recupera o XOM do banco de dados da mesma forma (veja Download de um arquivo WSDL do HTDS).

Considerações sobre o XOM em tempo de execução
Se você usar um ou mais XOMs Java com o seu serviço de decisão e planejar usar o aplicativo da Web HTDS (hosted transparent decision service), deverá projetar cuidadosamente os XOMs. Seus XOMs são usados em todo o HTDS e estão sujeitos a introspecção e serialização/desserialização:
- A serialização de Java para JSON ou XML ocorre quando você gera solicitações REST de amostra ou fornece respostas SOAP ou REST.
- A desserialização de JSON ou XML para Java ocorre quando você processa solicitações SOAP ou REST.
- A introspecção do modelo ocorre ao gerar um descritor de API ( OpenAPI, WADL ou WSDL).
Como consequência, você deve respeitar os requisitos de serialização padrão ao projetar seus XOMs:
- Certifique-se de que suas classes Java possam ser instanciadas pelos mecanismos de serialização. Defina construtores sem parâmetros para classes Java e getters e setters para todos os campos necessários, ou use anotações para orientar os mecanismos de serialização quando você criar objetos a partir de suas classes Java.
- Evite ciclos em seu modelo.
- (Recomendado) Use anotações para ignorar campos e propriedades que não sejam úteis para o seu serviço de decisão.
- (Opcional) Anote suas classes e/ou métodos Java com anotações Jackson para JSON ou anotações JAXB para XML para influenciar a serialização e a desserialização dos parâmetros do serviço de decisão e a geração de descritores de API.
Projetando um BOM para um modelo XML
Quando seu modelo de dados está em XML, você pode gerar uma lista técnica diretamente desse XOM dinâmico, consulte Visão geral: Modelo de objeto de execução dinâmica (XOM) e Tipos simples incorporados. Se você deseja estender o BOM com classes de negócios e métodos, você pode então mapear esses elementos de negócios para elementos XOM usando mapeamento BOM-to-XOM no Editor BOM. Você especifica esse mapeamento com o mapeamento ARL, consulte Linguagem de regras e mapeamento de extensões. Os usuários de negócios podem então autor de regras de negócio sem ter que se preocupar com os tipos de dados e plataforma subjacentes.
No momento da implementação, os arquivos de mapeamento Dynamic XOM e BOM-to-XOM são empacotados com as regras no arquivo ruleset, que fica então disponível para o seu aplicativo de chamada por meio do tempo de execução de regras, Servidor De Execução De Regras.
