Como j´a foi antecipado, os r´otulos dos v´ertices possuem um fator semˆantico que permite analisar pontos de ramifica¸c˜ao e sincroniza¸c˜ao do digrafo de express˜ao. Estruturas de ramifica¸c˜ao e sincro- niza¸c˜ao s˜ao muito comuns em modelos de neg´ocios, motivo pelo qual s˜ao implementadas pela maioria das ferramentas de modelagem e est˜ao previstos nos padr˜oes de controle de fluxo de workflow [40]. Muitos trabalhos, entretanto, exploram o uso de ramifica¸c˜oes e sincroniza¸c˜oes de forma independente,
5.4 Conflitos Estruturais em SP-Digrafos de Processos 69 . . . k + . . . (b) . . . + k . . . (a) a b c d a b c d
Figura 5.13: Conflitos estruturais em digrafos de express˜ao. Em (a), a ocorrˆencia de um deadlock e, em (b), uma falha de sincroniza¸c˜ao.
levando a crer que podemos combin´a-las livremente sem gerar problemas para a estrutura do processo de neg´ocio. Infelizmente, essa dedu¸c˜ao n˜ao ´e verdadeira, pois determinadas combina¸c˜oes podem incorporar incosistˆencias ou falhas no modelo do processo de neg´ocio.
A inclus˜ao de falhas ´e resultado da falta de coerˆencia semˆantica entre v´ertices de ramifica¸c˜ao e sin- croniza¸c˜ao. A coerˆencia semˆantica significa que v´ertices de ramifica¸c˜ao e sincroniza¸c˜ao correspondentes devem possuir o mesmo r´otulo. Sendo assim, ramifica¸c˜oes que tˆem origem em v´ertices com r´otulos de- finidos pela composi¸c˜ao alternativa (+) devem ser sincronizados por v´ertices que tamb´em s˜ao definidos pela composi¸c˜ao alternativa (+). O mesmo vale para v´ertices de ramifica¸c˜ao e sincroniza¸c˜ao defini- dos por regras de composi¸c˜ao paralela. Digrafos com v´ertices que n˜ao possuem coerˆencia semˆantica apresentam problemas em sua l´ogica de execu¸c˜ao, caracterizando a presen¸ca de conflitos estruturais.
Conflito estrutural ´e o termo adotado por alguns autores para representar rela¸c˜oes de ramifica¸c˜ao e
sincroniza¸c˜ao que apresentam algum problema de corre¸c˜ao ou consistˆencia [101]. A maioria dos modelos de representa¸c˜ao de processos de neg´ocio baseados em grafos permitem constru¸c˜oes com conflitos, que podem ser classificados em:
1. deadlock: caracterizado pela tentativa de sincroniza¸c˜ao de dois (ou mais) ramos de execu¸c˜ao que n˜ao s˜ao executados juntos na mesma instˆancia;
2. falha de sincroniza¸c˜ao: a execu¸c˜ao de dois (ou mais) ramos de execu¸c˜ao paralelas de execu¸c˜ao que
n˜ao s˜ao sincronizados, mesmo que passem por v´ertices de sincroniza¸c˜ao.
A Figura 5.13 (a) ilustra um processo de neg´ocio com deadlock e a Figura 5.13 (b), uma falha de sincroniza¸c˜ao. O deadlock se caracteriza pela espera de um recurso que nunca ficar´a dispon´ıvel. Na Figura 5.13(a), o termo θ(d) espera pela finaliza¸c˜ao dos termos θ(b) e θ(c), todavia somente um deles ser´a executado ap´os θ(a). Por esse motivo, o termo θ(d) ficar´a indefinidamente em estado de espera, interrompendo a execu¸c˜ao de todos os termos posteriores.
Uma falha de sincroniza¸c˜ao ocorre quando duas (ou mais) ramifica¸c˜oes paralelas conservam suas
. . . k 1 k 3 + 4 k 2 . . . a b d e f c g
Figura 5.14: Ausˆencia de sincroniza¸c˜ao em Processo de Neg´ocio
execu¸c˜ao isolada de θ(b) ou θ(c) ´e suficiente para habilitar θ(d). O v´ertice de sincroniza¸c˜ao com operador “+” possivelmente prevˆe que somente um deles foi habilitado para execu¸c˜ao, no entanto o v´ertice de ramifica¸c˜ao “k” habilita ambos os termos. O resultado ´e que θ(d) ´e habilitado e executado duas vezes. Falhas de sincroniza¸c˜ao e deadlocks tˆem uma rela¸c˜ao pr´oxima, como mostra a Figura 5.14. Nela, ´e poss´ıvel acompanhar um exemplo de digrafo de express˜ao com falha de sincroniza¸c˜ao. Note que, ap´os a execu¸c˜ao do termo θ(a), ocorre uma ramifica¸c˜ao de duas linhas de execu¸c˜ao, que s˜ao posteriormente sincronizadas antes de θ(g). Um dos ramos de execu¸c˜ao possui falha de sincroniza¸c˜ao. O v´ertice 2 sincroniza os termos θ(c) e θ(f ), vindo do v´ertice 4. Sendo assim, θ(f ) ser´a habilitado duas vezes, sendo uma pela execu¸c˜ao de θ(d) e outra pela execu¸c˜ao de θ(e).
O problema ocorre na sincroniza¸c˜ao do v´ertice 2. A interpreta¸c˜ao mais simples e imediata sugere que o v´ertice 2 sincronize as execu¸c˜oes de θ(c) e da execu¸c˜ao de θ(f ) habilitada por θ(d) ou θ(e). O termo que n˜ao foi aproveitado nessa sincroniza¸c˜ao fica em modo de espera, aguardando uma nova execu¸c˜ao de θ(c) para seguir em frente, fato que n˜ao acontecer´a mais na mesma instˆancia.
Pelo exemplo da Figura 5.14, podemos construir uma id´eia do qu˜ao complexo pode ser avaliar um processo de neg´ocio. A propaga¸c˜ao de uma falha de sincroniza¸c˜ao pode gerar novos conflitos em pontos posteriores do modelo de neg´ocio. Al´em disso, `a medida que aumentam as combina¸c˜oes de estruturas de ramifica¸c˜ao e sincroniza¸c˜ao, tamb´em aumenta a complexidade e a dificuldade em controlar a execu¸c˜ao de cada instˆancia do processo de neg´ocio.
Apesar dos problemas que podem causar no modelo do processo de neg´ocio, n˜ao ´e raro encontrar conflitos estruturais em aplica¸c˜oes reais. Falhas de sincroniza¸c˜ao podem ser resultado de problemas na modelagem ou efeitos colaterais de modifica¸c˜oes hist´oricas. Normalmente, sua presen¸ca n˜ao ´e delibera- damente planejada, uma vez que h´a formas alternativas de representar ramos de execu¸c˜ao ass´ıncronos, evitando, por exemplo, ambig¨uidades de interpreta¸c˜ao e dificuldades no acompanhamento da execu¸c˜ao. Para facilitar este estudo, este trabalho define uma classe de sp-digrafos de express˜ao que chamaremos bem-formados, na qual agruparemos os sp-digrafos de express˜ao com ausˆencia de conflitos estruturais. Defini¸c˜ao 5.4.29: (SP-Digrafos Bem-Formados) Um sp-digrafo de processos bem formado ´e um sp-digrafo de processos sem conflitos estruturais.
5.5 Conclus˜oes 71
Os sp-digrafos bem-formados representam a classe de grafos para os quais a gera¸c˜ao de uma express˜ao alg´ebrica equivalente ´e poss´ıvel e eficiente. Eles servir˜ao como ponto de partida para a elabora¸c˜ao do algoritmo de gera¸c˜ao de express˜oes. Posteriormente, o algoritmo ser´a estendido para classes mais amplas, com conflitos e at´e digrafos que n˜ao s˜ao s´erie-paralelo.
5.5
Conclus˜oes
Este cap´ıtulo introduziu o conceito de digrafos de express˜ao. Digrafos de express˜ao s˜ao digrafos ac´ıclicos usados para representar processos de neg´ocio por meio de r´otulos alg´ebricos em seus v´ertices e arcos. Essa rotula¸c˜ao serve para incorporar propriedades alg´ebricas na estrutura do digrafo, de modo que seja poss´ıvel comparar a especifica¸c˜ao do processo de neg´ocio com as propriedades da ´algebra de processos.
Este cap´ıtulo tamb´em apresentou um sistema de redu¸c˜ao que conserva a bissimilaridade em rela¸c˜ao `
a interpreta¸c˜ao alg´ebrica de v´ertices e arcos. O grande objetivo do sistema de redu¸c˜ao ´e reduzir topo- logicamente o digrafo de express˜ao conservando as rela¸c˜oes alg´ebricas de seus arcos e v´ertices. Outras propriedades importantes provadas foram a confluˆencia e a termina¸c˜ao. A termina¸c˜ao garante que qualquer digrafo pode ser reduzido a uma estrutura minimal com um n´umero finito de redu¸c˜oes e a confluˆencia garante que todas as redu¸c˜oes levam `a mesma estrutura minimal.
Uma caracter´ıstica importante que deve ser considerada na an´alise de um digrafo de express˜ao ´e a presen¸ca de conflitos estruturais. Os conflitos indicam problemas na consistˆencia do processo de neg´ocio, o que pode acarretar conseq¨uˆencias indesej´aveis, como a paralisa¸c˜ao da execu¸c˜ao (estado de deadlock) ou a execu¸c˜ao n˜ao planejada de atividades (falhas de sincroniza¸c˜ao).
Todos esses conceitos fundamentam a base formal para elabora¸c˜ao de um algoritmo de gera¸c˜ao de express˜oes alg´ebricas a partir de digrafos de express˜ao. O pr´oximo cap´ıtulo apresenta a aplica¸c˜ao do sistema de redu¸c˜ao para a obten¸c˜ao desse objetivo.
Cap´ıtulo 6
Gera¸c˜ao de Express˜oes Alg´ebricas
6.1
Introdu¸c˜ao
O cap´ıtulo anterior introduziu o conceito de digrafos de express˜ao, juntamente com um sistema de redu¸c˜ao. Este cap´ıtulo explora a aplica¸c˜ao desse sistema de redu¸c˜ao em digrafos de express˜ao, a fim de gerar express˜oes alg´ebricas por meio de sucessivas redu¸c˜oes sobre digrafos de processos que representam processos de neg´ocio. Aproveitando as propriedades de redu¸c˜oes topol´ogicas de sp-digrafos e adaptando- as a produ¸c˜oes apropriadas de transforma¸c˜ao de grafos, ´e poss´ıvel construir um algoritmo eficiente de gera¸c˜ao de express˜oes alg´ebricas. Al´em disso, essa abordagem fornece ferramentas formais capazes de mostrar que as express˜oes geradas s˜ao ´unicas, corretas e bissimilares ao sp-digrafo de express˜ao original. Outro assunto abordado neste cap´ıtulo tamb´em ´e a extens˜ao do algoritmo de gera¸c˜ao de express˜oes alg´ebricas a digrafos que n˜ao s˜ao s´erie-paralelo. Essa extens˜ao aumenta tamb´em a abrangˆencia de aplica¸c˜ao do sistema de redu¸c˜ao, permitindo cobrir parte dos casos em que o processo de neg´ocio n˜ao ´e representado por um sp-digrafo.
A Se¸c˜ao 6.2 apresenta o algoritmo para gera¸c˜ao de express˜oes alg´ebricas a partir de sp-digrafos de express˜ao bem-formados. A Se¸c˜ao 6.3 apresenta uma s´erie de modifica¸c˜oes topol´ogicas que podem ser aplicadas a pontes de Wheatstone isol´aveis, afim de transform´a-las em sp-digrafos. Infelizmente, algumas transforma¸c˜oes topol´ogicas provocam perda de n´ıveis de equivalˆencia em rela¸c˜ao aos digrafos originais, como discutido na Se¸c˜ao 6.4. Finalmente, as conclus˜oes s˜ao mostradas na Se¸c˜ao 6.5.