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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

granularida<strong>de</strong> maior. Tal granularida<strong>de</strong> po<strong>de</strong>rá ser <strong>de</strong>finida no momento da mo<strong>de</strong>lagem (através <strong>de</strong> um<<strong>br</strong> />

atributo extra na tarefa), ou no momento da transformação do mo<strong>de</strong>lo (através <strong>de</strong> um parâmetro passados<<strong>br</strong> />

ao mecanismo <strong>de</strong> transformação). No caso da <strong>de</strong>finição do <strong>pro</strong>cesso estar representada em XPDL, po<strong>de</strong>-se<<strong>br</strong> />

adotar um script XSLT prece<strong>de</strong>ndo a máquina <strong>de</strong> workflow que ficaria responsável por gerar o uma nova<<strong>br</strong> />

<strong>de</strong>finição em XPDL. Esta nova <strong>de</strong>finição conteria todas as tarefas antecipáveis já na nova granularida<strong>de</strong><<strong>br</strong> />

especificada.<<strong>br</strong> />

Pré-<strong>pro</strong>cessador<<strong>br</strong> />

Figura 3. Antecipação gerenciada a priori: abordagem manual (a) e abordagem automática (b).<<strong>br</strong> />

Quando tarefas antecipáveis são <strong>de</strong>finidas manualmente não é necessário nenhum tipo <strong>de</strong> alteração no mo<strong>de</strong>lo<<strong>br</strong> />

tradicional <strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos. Apesar <strong>de</strong> possuir esta gran<strong>de</strong> vantagem, é exigido muito esforço quando da<<strong>br</strong> />

mo<strong>de</strong>lagem dos <strong>pro</strong>cessos.<<strong>br</strong> />

Quando se utiliza a abordagem a priori automática, o esforço necessário é menor que usando a abordagem<<strong>br</strong> />

manual. Porém, é necessário que se modifique o mo<strong>de</strong>lo <strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos através da inserção <strong>de</strong> um<<strong>br</strong> />

i<strong>de</strong>ntificador <strong>de</strong> tarefas antecipáveis. Uma vantagem <strong>de</strong> usar o mecanismo automático é a possibilida<strong>de</strong> <strong>de</strong> utilizar a<<strong>br</strong> />

<strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos sem a mudança da granularida<strong>de</strong>. Porém, esta abordagem exige esforço <strong>de</strong> implementação <strong>de</strong><<strong>br</strong> />

um pré-<strong>pro</strong>cessador que faça a transformação do <strong>pro</strong>cesso.<<strong>br</strong> />

A Figura 3 ilustra a maneira como a antecipação a priori funciona em ambos os casos: gerenciamento manual<<strong>br</strong> />

(Figura 3(a)) e gerenciamento automático (Figura 3(b)).<<strong>br</strong> />

4.2 Antecipação Gerenciada a posteriori<<strong>br</strong> />

Tendo em vista a dificulda<strong>de</strong> <strong>de</strong> prever com precisão a antecipação em tempo <strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos, são<<strong>br</strong> />

apresentadas alterações na máquina <strong>de</strong> workflow que a permitam gerenciar a antecipação em tempo <strong>de</strong> execução. Neste<<strong>br</strong> />

trabalho este tipo <strong>de</strong> abordagem é chamada a posteriori.<<strong>br</strong> />

Esta abordagem foi construída com base na <strong>pro</strong>posta por Grigori (2001), que prevê alteração nos estados das<<strong>br</strong> />

tarefas para permitir a antecipação. Porém, aqui são explicitados meios para i<strong>de</strong>ntificar as tarefas antecipáveis e como<<strong>br</strong> />

isto é mapeado para a máquina <strong>de</strong> workflow. Outra contribuição ao mo<strong>de</strong>lo é a maneira com que são tratados as<<strong>br</strong> />

<strong>de</strong>pendências <strong>de</strong> dados e controle e o mapeamento <strong>de</strong>stas para o diagrama <strong>de</strong> estados das instâncias <strong>de</strong> tarefas.<<strong>br</strong> />

4.2.1 I<strong>de</strong>ntificando as tarefas<<strong>br</strong> />

A antecipação não é aplicável a todos os <strong>pro</strong>cessos nem a todas as tarefas <strong>de</strong> um <strong>de</strong>terminado <strong>pro</strong>cesso.<<strong>br</strong> />

Existem <strong>pro</strong>cessos e tarefas que <strong>de</strong>vem ser executadas o<strong>br</strong>igatoriamente <strong>de</strong> maneira atômica e isolada. Algumas tarefas<<strong>br</strong> />

não executadas por recursos humanos (executadas automaticamente), possivelmente não saberiam como lidar com um<<strong>br</strong> />

resultado intermediário. Outro grupo <strong>de</strong> tarefas que não po<strong>de</strong>m ser antecipadas são aquelas tarefas que necessitam <strong>de</strong><<strong>br</strong> />

um resultado o<strong>br</strong>igatoriamente final para serem executadas. É o caso da tarefa <strong>de</strong> envio <strong>de</strong> um artigo, que não po<strong>de</strong> ser<<strong>br</strong> />

realizada em partes, através do envio <strong>de</strong> resultados parciais.<<strong>br</strong> />

Visto isto, se torna necessário adicionar uma informação às tarefas indicando se uma tarefa po<strong>de</strong> ou não ser<<strong>br</strong> />

antecipada. Contudo, dizer que uma tarefa será antecipada já na fase <strong>de</strong> mo<strong>de</strong>lagem é um tanto quanto complexo.<<strong>br</strong> />

Porém, dizer quais tarefas po<strong>de</strong>m ou não po<strong>de</strong>m ser antecipadas é possível (e <strong>de</strong>sejável). Com isto, ficariam<<strong>br</strong> />

i<strong>de</strong>ntificadas para o sistema aquelas tarefas que possuem permissão para executar <strong>de</strong> maneira antecipada e aquelas que<<strong>br</strong> />

6<<strong>br</strong> />

Máquina <strong>de</strong><<strong>br</strong> />

Workflow<<strong>br</strong> />

(a)<<strong>br</strong> />

(b)<<strong>br</strong> />

Máquina <strong>de</strong><<strong>br</strong> />

Workflow

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

Saved successfully!

Ooh no, something went wrong!