O tempo de execução do mecanismo de serviço BPEL usa um mecanismo chamado correlação para controlar as várias trocas de mensagens de longa duração que geralmente acontecem entre um processo BPEL e os serviços de parceiros. Uma mensagem em uma conversação desse tipo é mapeada para um valor composto que consiste em uma ou mais propriedades definidas em um arquivo WSDL. Para ativar uma conversação para continuar, o tempo de execução do mecanismo de serviço BPEL examina o conteúdo das mensagens de entrada e as informações de propriedade, reconstrói o contexto da mensagem e seleciona a instância do processo correta da mensagem.
Os termos seguintes se aplicam à correlação:
Os conjuntos de correlações podem ser definidos para o elemento Processo. Os conjuntos de correlações definidos são usados por atividades de mensagens (Chamar, Responder e Receber), que descrevem uma conversação entre um processo e um serviço de parceiro.
Os conjuntos de correlações nas atividades de chamada são usados para verificar se as mensagens de saída contêm dados consistentes com aqueles encontrados nas instâncias do conjunto de correlações especificado.
Os nomes do conjunto de correlações também são usados nas ramificações onMessage dos elementos Selecionar.
Siga estas quatro etapas básicas para ativar a correlação em um processo:
Quando um conjunto de correlações é definido, ele possui os atributos name e property. Um conjunto de correlações em uma atividade Chamar síncrona possui um atributo adicional: pattern. Esse atributo especifica se o conjunto de correlações se aplica à mensagem de solicitação, à mensagem de resposta, ou a ambas.
O atributo inicial indica se o conjunto de correlações deve ser iniciado com os valores de propriedade da mensagem. Quando o atributo inicial possui o valor Yes, o conjunto de correlações é iniciado com os valores das propriedades encontradas na mensagem. Se um atributo inicial estiver faltando, ele terá o valor padrão No. A falha bpws:correlationViolation será lançada se uma atividade com initiate=No tentar usar um conjunto de correlações que não tiver sido iniciado antes. Quando o atributo inicial possui o valor Join, a atividade deve tentar iniciar o conjunto de correlações, se ele ainda não tiver sido iniciado.