Uma análise quantitativa utilizando simulações de processos
Autor: Igor Steinmacher (*)
Sistemas Gerenciadores de Workflow (SGWf) têm atraído muita atenção nos últimos anos, por serem baseados em um modelo simples que permite definir, executar e monitorar a execução de processos. Mas este esquema é um tanto quanto rígido e inflexível, apresentando alguns problemas quando da necessidade de sua utilização no controle de processos com características cooperativas, em que o comportamento humano deve ser levado em conta. Este tipo de processo deve apresentar uma certa flexibilidade de forma a possibilitar a troca de resultados entre tarefas, acabando com a dependência fim-início existente entre tarefas seqüenciais nos SGWfs tradicionais.
A fim de possibilitar tal flexibilidade, surge a antecipação de tarefas, que tem por objetivo oferecer meios de flexibilizar o fluxo de controle e o fluxo de dados para permitir que tarefas possam ser disparadas antes mesmo da conclusão de suas antecessoras. A antecipação implica no aumento da cooperação entre tarefas e em melhor desempenho com relação ao tempo de execução dos processos. O aumento na cooperação está relacionado diretamente à troca de resultados, permitindo que duas ou mais tarefas trabalhem sobre instâncias de um determinado dado que ainda está sendo produzido. O melhor desempenho deve-se ao paralelismo (parcial) criado entre tarefas que deveriam executar de maneira estritamente seqüencial, devido ao disparo das tarefas antes do previsto. Este trabalho então, visou um estudo das abordagens de flexibilização de SGWfs, visando encontrar maneiras de prover antecipação de tarefas.
Com a finalidade de verificar o desempenho da utilização da antecipação de tarefas foram realizadas algumas simulações. O resultado de tais simulações trouxe, em termos numéricos, um comparativo entre a utilização e a não utilização da antecipação de tarefas. A métrica utilizada tem como base o tempo de execução dos processos. Para tal, foi desenvolvido um simulador que suporta a antecipação de tarefas e foram conduzidas simulações, que mostraram os ganhos (chegando a 33% com relação ao tempo de execução) e alguns padrões de comportamento da utilização da antecipação de tarefas.
Ficou demonstrado que, para a antecipação ser mais eficiente, é necessário que esta seja iniciada antes da metade da execução das tarefas antecessoras. Mesmo se houver esforço adicional a antecipação mostra-se vantajosa para alguns casos. Antecipando-se tarefas próximo ao final de suas antecessoras pode trazer perdas, se o esforço necessário para tal antecipação existir.
As simulações realizadas variando o esforço e o início da antecipação podem ser utilizadas para limitar o período em que é permitida a antecipação das tarefas. Estes resultados podem ser utilizados junto de uma análise histórica de esforço devido à antecipação, gerando um intervalo real em que a antecipação é vantajosa.
Os resultados aqui apresentados dizem respeito apenas a um dos pontos em que a antecipação pode trazer vantagens: o tempo de execução. As vantagens de utilizar a antecipação extrapolam esta aqui apresentada. Pode ser que, apesar de resultados em termos de tempo não favoráveis, a antecipação seja utilizada para aumentar a cooperação dentro do grupo e a qualidade do produto final.
Para possibilitar o uso da antecipação em processos reais foram realizadas alterações na ferramenta de definição de processos Amaya Workflow e no protótipo da máquina de workflow do projeto CEMT (Cooperative Environment for Editing Multimedia Documents with Workflow Technology), um projeto de pesquisa do Instituto de Informática da Universidade Federal do Rio Grande do Sul.
(*) Este artigo é um resumo do trabalho “Task Anticipation: A Quantitative Analisys Using Workflow Process Simulation", de autoria do analista da Celepar, Igor Fabio Steinmacher, e do pesquisador da Universidade Federal do Rio Grande do Sul, José Valdeni de Lima, que será apresentado na 18ª Conferência Internacional de Engenharia de Software e Engenharia de Conhecimento (SEKE), que se realizará em San Francisco (Califórnia-EUA) entre 5 e 7 de julho.