Regras chave de merge

As regras chave de merge são usadas para mesclar eventos de merge em uma instância de processo. Dessa forma, os fragmentos de instância de processo associados usando chaves de processo são vinculados para formar uma instância de processo.

As chaves de merge são calculadas a partir de atributos de objeto específicos do fragmento de instância do processo. Eles são usados para reconstruir a lógica do processo da instância de processo e os fragmentos não vinculados são vinculados devidamente.

O PPM diferencia entre dois procedimentos de merge:

O procedimento de merge relevante é especificado no arquivo de configuração XML *_merger.xml. A estrutura desse arquivo é especificada na DTD mergerconfig.dtd.

Arquivo mergerconfig.dtd (Parte 1)

<!ELEMENT mergerconfig ( mergehandling, connectorhandling? )>

<!ELEMENT mergehandling ( sharedfragmentmerge?, processmerge?, eventmerge+ )>

<!ATTLIST mergehandling eventmode (startevent | endevent | importtime) "importtime">

<!ELEMENT sharedfragmentmerge ( algorithm )>

<!ELEMENT processmerge ( algorithm?, mergeattributes?)>

<!ATTLIST processmerge

mode (replace|update) 'replace'>

<!ELEMENT eventmerge ( mode, condition?, algorithm? )>

<!ATTLIST eventmerge

key ID #IMPLIED

priority CDATA #IMPLIED>

<!ELEMENT condition EMPTY>

<!ATTLIST condition

classname NMTOKEN #REQUIRED

value (TRUE|FALSE) 'TRUE'

comment CDATA #IMPLIED>

<!ELEMENT algorithm EMPTY>

<!ATTLIST algorithm

classname NMTOKEN #REQUIRED

comment CDATA #IMPLIED>

<!ELEMENT mergeattributes (attribute+)>

<!ELEMENT attribute EMPTY>

<!ATTLIST attribute

key CDATA #REQUIRED>

<!ELEMENT mode ( keymerge | sortmerge )>

<!ELEMENT keymerge EMPTY >

<!ELEMENT sortmerge ( criterion*, algorithm? )>

<!ELEMENT criterion EMPTY>

<!ATTLIST criterion

name NMTOKEN #REQUIRED>

Marca XML

Descrição

mergerconfig

Agrupamento da configuração de merge

mergehandling

Tipo de merge a ser configurado. Tem de ser especificado pelo menos um elemento eventmerge.

sharedfragmentmerge
(opcional)

Algoritmo diferente do algoritmo padrão para mesclar os fragmentos compartilhados com fragmentos de instância de processo

processmerge
(opcional)

Algoritmo diferente do algoritmo padrão para mesclar os fragmentos de instância de processo. Os modos Substituir ou Atualizar estão disponíveis para seleção. O valor padrão é Substituir.

eventmerge

Algoritmo diferente do algoritmo padrão para mesclar os eventos de merge

chave
(opcional)

ID que pode ser usado para to referenciar o elemento eventmerge.

prioridade
(opcional)

Prioridade do elemento eventmerge – quanto mais baixo o valor inteiro, maior a prioridade.

condição
(opcional)

Condição para mesclagem de eventos de merge

classname

Nome da classe JAVA, que verifica a condição especificada

valor
(opcional)

A condição é atendida se a verificação da classe JAVA retornar o valor especificado (TRUE ou FALSE). O valor padrão é TRUE.

algoritmo
(opcional)

Regra de cálculo (classe JAVA)

classname

Classe JAVA que implementa uma regra de cálculo específica

modo

Procedimento de merge para mesclagem de eventos

keymerge

Merge de eventos baseada em chave, com base em chaves de merge definidas

sortmerge

Merge de eventos baseada na ordem de classificação de funções

critério

Critério (atributo de função) a ser usado como base para ordenar os fragmentos. Podem ser especificados diversos critérios.

name

Nome do atributo de função

Arquivo mergerconfig.dtd (Parte 2)

<!ELEMENT connectorhandling ( multiindegreehandling?, multioutdegreehandling?, andhandling?, orhandling?, xorhandling?)>

<!ELEMENT multiindegreehandling (algorithm) >

<!ELEMENT multioutdegreehandling (algorithm) >

<!ELEMENT andhandling (algorithm) >

<!ELEMENT orhandling (algorithm) >

<!ELEMENT xorhandling (algorithm) >

Marca XML

Descrição

connectorhandling
(opcional)

Tratamento de conectores em gráficos de processo especificando uma classe JAVA (algorithm)

multiindegreehandling
(opcional)

Algoritmo que controla a inserção de conectores com várias conexões de entrada para a merge de objetos

multioutdegreehandling
(opcional)

Algoritmo que controla a inserção de conectores com várias conexões de saída para a merge de objetos

andhandling
(opcional)

Algoritmo para tratamento de conectores AND

orhandling
(opcional)

Algoritmo para tratamento de conectores OR

xorhandling
(opcional)

Algoritmo para tratamento de conectores XOR

Exemplo

A merge de eventos baseada em chave é usada para vincular fragmentos de instância de processo.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE mergerconfig SYSTEM "mergerconfig.dtd">

<mergerconfig>

...

<mergehandling>

<eventmerge>

<mode>

<keymerge/>

</mode>

</eventmerge>

</mergehandling>

...

</mergerconfig>

Durante a merge de evento, o conjunto combinado de atributos de ambos os eventos de merge é copiado para o evento restante. Os atributos de objeto existentes não são substituídos. O primeiro evento de merge importado é excluído.