Mecanismos de Flexibilização de Sistemas ... - Igor.pro.br
Mecanismos de Flexibilização de Sistemas ... - Igor.pro.br
Mecanismos de Flexibilização de Sistemas ... - Igor.pro.br
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
fossem disparadas antes da conclusão <strong>de</strong> suas antecessoras, passando assim para os estados <strong>pro</strong>postos foi necessária a<<strong>br</strong> />
criação <strong>de</strong> novos estados para as tarefas e modificação do algoritmo <strong>de</strong> execução. Esta <strong>pro</strong>posta serviu como motivação<<strong>br</strong> />
inicial <strong>de</strong>ste trabalho, sendo a base <strong>de</strong> toda a pesquisa aqui realizada. Esta abordagem apresenta a possibilida<strong>de</strong> <strong>de</strong> levar<<strong>br</strong> />
à fase <strong>de</strong> execução dos <strong>pro</strong>cessos a antecipação das tarefas.<<strong>br</strong> />
3. ANTECIPAÇÃO DE TAREFAS<<strong>br</strong> />
Segundo Grigori, Charoy e Godart (2004) antecipação é um conceito que, intuitivamente, significa que uma tarefa<<strong>br</strong> />
po<strong>de</strong> iniciar sua execução mesmo que antes do previsto. Mesmo sabendo que é possível antecipar o início <strong>de</strong> uma tarefa<<strong>br</strong> />
em <strong>de</strong>corrência da conclusão <strong>de</strong> suas antecessoras, antes do prazo previsto, não é esta a antecipação tratada neste<<strong>br</strong> />
trabalho. O conceito <strong>de</strong> antecipação aqui utilizado é iniciar uma tarefa mesmo que suas antecessoras diretas não tenham<<strong>br</strong> />
sido concluídas. Evi<strong>de</strong>ntemente, este início acontece durante a execução das tarefas antecessoras. Também, a conclusão<<strong>br</strong> />
das tarefas antecipadas <strong>de</strong>pen<strong>de</strong> da conclusão <strong>de</strong>stas antecessoras.<<strong>br</strong> />
A antecipação implica no aumento da cooperação entre tarefas e em melhor <strong>de</strong>sempenho com relação ao tempo <strong>de</strong><<strong>br</strong> />
execução dos <strong>pro</strong>cessos. O aumento na cooperação está relacionado diretamente à troca <strong>de</strong> resultados, permitindo que<<strong>br</strong> />
duas ou mais tarefas trabalhem so<strong>br</strong>e instâncias <strong>de</strong> um <strong>de</strong>terminado dado que ainda está sendo <strong>pro</strong>duzido.<<strong>br</strong> />
Mas, a gran<strong>de</strong> vantagem <strong>de</strong> utilizar este tipo <strong>de</strong> antecipação é o aumento na cooperação entre duas tarefas e a<<strong>br</strong> />
diminuição do tempo total <strong>de</strong> execução do <strong>pro</strong>cesso. Isto se <strong>de</strong>ve ao paralelismo (parcial) criado entre tarefas que<<strong>br</strong> />
<strong>de</strong>veriam executar <strong>de</strong> maneira estritamente seqüencial. Tal acréscimo no paralelismo é ilustrado na Figura XXX. A<<strong>br</strong> />
Figura XXX(a) representa o fluxo tradicional que o <strong>pro</strong>cesso <strong>de</strong>veria seguir, condicionando o inicio <strong>de</strong> uma tarefa ao<<strong>br</strong> />
final <strong>de</strong> sua antecessora. A Figura XXX(b) apresenta o fluxo do mesmo <strong>pro</strong>cesso com a antecipação <strong>de</strong> uma tarefa<<strong>br</strong> />
(tarefa Revisão). Nesta última figura o gatilho da antecipação é o fornecimento <strong>de</strong> um resultado intermediário. A<<strong>br</strong> />
conclusão da tarefa Revisão tem como condição para conclusão o envio do resultado final da tarefa Escrita. No<<strong>br</strong> />
exemplo apresentado fica evi<strong>de</strong>nte o ganho com relação ao tempo <strong>de</strong> execução do <strong>pro</strong>cesso, ao aumentar o paralelismo.<<strong>br</strong> />
Linha <strong>de</strong> tempo<<strong>br</strong> />
Discussão<<strong>br</strong> />
Linha <strong>de</strong> tempo<<strong>br</strong> />
Discussão<<strong>br</strong> />
Resultado intermediário<<strong>br</strong> />
Escrita’<<strong>br</strong> />
t1 t2<<strong>br</strong> />
Escrita Revisão Envio<<strong>br</strong> />
t1 t2 t3 t4<<strong>br</strong> />
Revisão<<strong>br</strong> />
Escrita’’<<strong>br</strong> />
t3<<strong>br</strong> />
Figura 1. Aumentando o paralelismo através da utilização <strong>de</strong> antecipação<<strong>br</strong> />
Em SGWfs tradicionais os <strong>pro</strong>cessos <strong>de</strong> workflow são mo<strong>de</strong>lados <strong>de</strong> forma que as tarefas sejam caixas pretas e<<strong>br</strong> />
obe<strong>de</strong>çam a uma <strong>de</strong>pendência do tipo fim-início. De certa forma, isto quer dizer que, nos SGWfs tradicionais, uma<<strong>br</strong> />
tarefa:<<strong>br</strong> />
• é atômica;<<strong>br</strong> />
• <strong>de</strong>ve ser executada <strong>de</strong> maneira isolada;<<strong>br</strong> />
• po<strong>de</strong> ser somente iniciada quando suas antecessoras forem concluídas; e<<strong>br</strong> />
• precisa que seus dados <strong>de</strong> entrada (quando houverem) sejam resultados finais <strong>de</strong> suas tarefas antecessoras.<<strong>br</strong> />
A fim <strong>de</strong> permitir a flexibilização <strong>de</strong> alguns <strong>de</strong>stes pontos foi <strong>pro</strong>posta a antecipação <strong>de</strong> tarefas (GRIGORI, 2001).<<strong>br</strong> />
Com isto as tarefas não mais são vistas como caixas pretas, havendo a possibilida<strong>de</strong> <strong>de</strong> troca <strong>de</strong> resultados.<<strong>br</strong> />
Na próxima seção são apresentadas as duas possiíveis maneiras <strong>de</strong> gerenciar a antecipação <strong>de</strong> tarefas: a priori e a<<strong>br</strong> />
posteriori.<<strong>br</strong> />
4<<strong>br</strong> />
Envio<<strong>br</strong> />
t4