14.04.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!