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.
<strong>Mecanismos</strong> <strong>de</strong> <strong>Flexibilização</strong> <strong>de</strong> <strong>Sistemas</strong> Gerenciadores<<strong>br</strong> />
<strong>de</strong> Workflow para Antecipação <strong>de</strong> Tarefas<<strong>br</strong> />
<strong>Igor</strong> Steinmacher, Edson A. O. Júnior, Elisa H. M. Huzita<<strong>br</strong> />
Universida<strong>de</strong> Estadual <strong>de</strong> Maringá, Departamento <strong>de</strong> Informática,<<strong>br</strong> />
Maringá, Paraná, Brasil<<strong>br</strong> />
igor@din.uem.<strong>br</strong>, eaojunio@pop.com.<strong>br</strong>, emhuzita@din.uem.<strong>br</strong><<strong>br</strong> />
Fa<strong>br</strong>ício R. Lazilha<<strong>br</strong> />
Centro <strong>de</strong> Ensino Superior <strong>de</strong> Maringá<<strong>br</strong> />
Maringá, Paraná, Brasil<<strong>br</strong> />
fa<strong>br</strong>icio@cesumar.<strong>br</strong><<strong>br</strong> />
José Val<strong>de</strong>ni <strong>de</strong> Lima<<strong>br</strong> />
Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio Gran<strong>de</strong> do Sul, Instituto <strong>de</strong> Informática,<<strong>br</strong> />
Porto Alegre, Rio Gran<strong>de</strong> do Sul, Brasil<<strong>br</strong> />
val<strong>de</strong>ni@inf.ufrgs.<strong>br</strong><<strong>br</strong> />
Abstract<<strong>br</strong> />
Traditional Workflow Management Systems (WfMS) are too rigid, posing <strong>pro</strong>blems when cooperation and human<<strong>br</strong> />
behavior are important factors. Un<strong>de</strong>r these circumstances, there is a need for a relaxation of the end-begin <strong>de</strong>pen<strong>de</strong>ncy.<<strong>br</strong> />
Task anticipation can <strong>pro</strong>vi<strong>de</strong> this relaxation. Task anticipation consists in relaxing the flow of control and data<<strong>br</strong> />
information among tasks, allowing the exchange of results among sequential tasks even before the conclusion of the<<strong>br</strong> />
former task. This anticipation <strong>pro</strong>motes a better cooperation and augments the performance in terms of <strong>pro</strong>cess<<strong>br</strong> />
execution time. The goal of this work was to study mechanisms of task anticipation in Workflow Management<<strong>br</strong> />
Systems. The study resulted in the i<strong>de</strong>ntification and classification of flexibilization and anticipation management<<strong>br</strong> />
strategies according to the phase of the life cycle where the flexibility is applied (<strong>de</strong>finition time/execution time). In<<strong>br</strong> />
this sense, two strategies are specified: a priori and a posteriori. Through a priori management, changes are ma<strong>de</strong> on<<strong>br</strong> />
<strong>pro</strong>cess mo<strong>de</strong>l during <strong>pro</strong>cess <strong>de</strong>finition time. A posteriori ap<strong>pro</strong>ach changes the way that the workflow <strong>pro</strong>cess is<<strong>br</strong> />
executed, triggering some tasks before their actual start time, without the real necessity of changing the <strong>pro</strong>cess<<strong>br</strong> />
<strong>de</strong>finition.<<strong>br</strong> />
Keywords: Workflow, Anticipation, Flexibilization, Cooperation.<<strong>br</strong> />
Resumo<<strong>br</strong> />
<strong>Sistemas</strong> Gerenciadores <strong>de</strong> Workflow (SGWf) tradicionais são rígidos e inflexíveis, apresentando alguns <strong>pro</strong>blemas<<strong>br</strong> />
quando da necessida<strong>de</strong> <strong>de</strong> sua utilização no controle <strong>de</strong> <strong>pro</strong>cessos com características cooperativas, em que o<<strong>br</strong> />
comportamento humano <strong>de</strong>ve ser levado em conta. Este tipo <strong>de</strong> <strong>pro</strong>cesso <strong>de</strong>ve apresentar uma certa flexibilida<strong>de</strong> <strong>de</strong><<strong>br</strong> />
forma a possibilitar a troca <strong>de</strong> resultados entre tarefas seqüenciais. A fim <strong>de</strong> possibilitar este tipo <strong>de</strong> comportamento,<<strong>br</strong> />
surge a antecipação <strong>de</strong> tarefas. A antecipação implica no aumento da cooperação entre tarefas e em melhor <strong>de</strong>sempenho<<strong>br</strong> />
com relação ao tempo <strong>de</strong> execução dos <strong>pro</strong>cessos. Este trabalho apresenta um estudo das abordagens <strong>de</strong> flexibilização<<strong>br</strong> />
<strong>de</strong> SGWfs, visando encontrar maneiras <strong>de</strong> <strong>pro</strong>ver antecipação <strong>de</strong> tarefas. O estudo resultou na i<strong>de</strong>ntificação e<<strong>br</strong> />
classificação das estratégias <strong>de</strong> gerenciamento <strong>de</strong> antecipação <strong>de</strong> tarefas <strong>de</strong> acordo com a fase do ciclo <strong>de</strong> vida em que a<<strong>br</strong> />
flexibilização é aplicada (tempo <strong>de</strong> <strong>de</strong>finição/tempo <strong>de</strong> execução). Neste sentido duas estratégias são especificadas: a<<strong>br</strong> />
priori e a posteriori. A primeira <strong>de</strong>las é totalmente vinculada à <strong>de</strong>finição dos <strong>pro</strong>cessos, sendo prevista no mo<strong>de</strong>lo <strong>de</strong><<strong>br</strong> />
<strong>pro</strong>cesso e a segunda está relacionada à execução dos <strong>pro</strong>cessos, <strong>de</strong>ixando a <strong>de</strong>cisão por antecipar ou não antecipar para<<strong>br</strong> />
a fase <strong>de</strong> execução dos <strong>pro</strong>cessos.<<strong>br</strong> />
Palavras chave: Workflow, Antecipação, <strong>Flexibilização</strong>, Cooperação
1. INTRODUÇÃO<<strong>br</strong> />
<strong>Sistemas</strong> Gerenciadores <strong>de</strong> Workflow (SGWf) têm atraído muita atenção nos últimos anos, por serem baseados em<<strong>br</strong> />
um mo<strong>de</strong>lo simples que permite <strong>de</strong>finir, executar e monitorar a execução <strong>de</strong> <strong>pro</strong>cessos. Mas este esquema é um tanto<<strong>br</strong> />
quanto rígido e inflexível, apresentando alguns <strong>pro</strong>blemas quando da necessida<strong>de</strong> <strong>de</strong> sua utilização no controle <strong>de</strong><<strong>br</strong> />
<strong>pro</strong>cessos com características cooperativas, em que o comportamento humano <strong>de</strong>ve ser levado em conta.<<strong>br</strong> />
Segundo Aalst e Hee (2002) esta inflexibilida<strong>de</strong> e rigi<strong>de</strong>z dos <strong>pro</strong>dutos atuais acabam por espantar muitos<<strong>br</strong> />
usuários potenciais. Hagen e Alonso (1999) apresentam o mesmo ponto <strong>de</strong> vista, dizendo que inflexibilida<strong>de</strong> e rigi<strong>de</strong>z<<strong>br</strong> />
acabam por tornar as tecnologias <strong>de</strong> workflow atuais restritas à apenas alguns domínios <strong>de</strong> aplicação. Várias outras<<strong>br</strong> />
pesquisas apontam estes pontos como uma das gran<strong>de</strong>s razões da resistência à utilização <strong>de</strong> SGWfs em alguns<<strong>br</strong> />
domínios <strong>de</strong> aplicação (ELLIS; KEDDARA; ROZENBERG, 1995; REICHERT; DADAM, 1998; JOERIS; HERZOG,<<strong>br</strong> />
1999; MANGAN; SADIQ, 2002; REICHERT; DADAM; BAUER, 2003).<<strong>br</strong> />
Visto isto, fica evi<strong>de</strong>nte a necessida<strong>de</strong> <strong>de</strong> fornecer meios para relaxar algumas das restrições impostas pelos<<strong>br</strong> />
SGWfs tradicionais. Uma <strong>de</strong>stas restrições é a impossibilida<strong>de</strong> das tarefas <strong>pro</strong>duzirem, disponibilizarem ou utilizarem<<strong>br</strong> />
resultados intermediários, sendo as tarefas em vistas como caixas pretas. Relaxando esta restrição, as tarefas po<strong>de</strong>riam<<strong>br</strong> />
ser disparadas antes mesmo da conclusão <strong>de</strong> suas antecessoras, ocorrendo a chamada antecipação <strong>de</strong> tarefas<<strong>br</strong> />
(GRIGORI, 2001). Este é um dos objetivos <strong>de</strong>ste trabalho, encontrar maneiras <strong>de</strong> flexibilizar o mo<strong>de</strong>lo <strong>de</strong> workflow<<strong>br</strong> />
tradicional, <strong>de</strong> forma a possibilitar que tarefas seqüenciais possam trocar resultados intermediários, iniciando sua<<strong>br</strong> />
execução <strong>de</strong> maneira antecipada.<<strong>br</strong> />
Com base nisto, este trabalho tem como objetivo apresentar um estudo so<strong>br</strong>e os meios <strong>de</strong> flexibilizar-se os<<strong>br</strong> />
SGWfs <strong>de</strong> modo a <strong>pro</strong>ver a antecipação <strong>de</strong> tarefas. O estudo resultou na i<strong>de</strong>ntificação e classificação das estratégias <strong>de</strong><<strong>br</strong> />
flexibilização e <strong>de</strong> gerenciamento <strong>de</strong> antecipação <strong>de</strong> tarefas. Esta classificação foi feita <strong>de</strong> acordo com a fase do ciclo<<strong>br</strong> />
<strong>de</strong> vida em que a flexibilização é aplicada (tempo <strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cesso / tempo <strong>de</strong> execução do <strong>pro</strong>cesso). Duas<<strong>br</strong> />
estratégias são especificadas: a priori e a posteriori. A primeira <strong>de</strong>las é totalmente vinculada à <strong>de</strong>finição dos <strong>pro</strong>cessos<<strong>br</strong> />
e <strong>de</strong>ve ser prevista no mo<strong>de</strong>lo. Esta forma <strong>de</strong> antecipação po<strong>de</strong> ser utilizada em qualquer SGWf existente, porém, não<<strong>br</strong> />
oferece flexibilida<strong>de</strong> pré-<strong>de</strong>terminada, continuando este estático e exigindo gran<strong>de</strong> esforço <strong>de</strong> mo<strong>de</strong>lagem. A outra<<strong>br</strong> />
maneira <strong>de</strong> <strong>pro</strong>ver antecipação está relacionada à execução dos <strong>pro</strong>cessos, <strong>de</strong>ixando a <strong>de</strong>cisão por antecipar ou não<<strong>br</strong> />
antecipar para a fase <strong>de</strong> execução dos <strong>pro</strong>cessos. Esta abordagem é mais complexa e exige alterações na máquina <strong>de</strong><<strong>br</strong> />
execução do SGWf, porém, oferece gran<strong>de</strong> flexibilida<strong>de</strong> ao <strong>pro</strong>cesso e não exige esforço extra durante a mo<strong>de</strong>lagem.<<strong>br</strong> />
O restante do artigo está organizado da seguinte forma: a seção 2 traz uma revisão bibliográfica dos trabalhos<<strong>br</strong> />
relacionados à flexibilização <strong>de</strong> SGWfs e uma classificação segundo a fase em que se dá tal flexibilização. A seção 3<<strong>br</strong> />
apresenta a antecipação <strong>de</strong> tarefas. A seção 4 traz as possíveis maneiras <strong>de</strong> aplicá-la no contexto <strong>de</strong> SGWfs. E,<<strong>br</strong> />
finalmente, na seção 5 são apresentados as conclusões e trabalhos futuros.<<strong>br</strong> />
2. FLEXIBILIDADE EM SISTEMAS GERENCIADORES DE WORKFLOW<<strong>br</strong> />
A busca por aumento na flexibilida<strong>de</strong> em sistemas <strong>de</strong> workflow é um tema muito explorado em pesquisa na<<strong>br</strong> />
atualida<strong>de</strong>. Tais pesquisas têm por objetivo, basicamente, tornar sistemas gerenciadores <strong>de</strong> workflow úteis a todas as<<strong>br</strong> />
áreas em que estes po<strong>de</strong>m ser aplicados. A flexibilida<strong>de</strong> buscada vem <strong>de</strong> maneira a acabar com a estrutura<<strong>br</strong> />
extremamente rígida encontrada nos sistemas <strong>de</strong> workflow tradicionais.<<strong>br</strong> />
Esta seção vem apresentar as pesquisas e abordagens relacionadas à flexibilida<strong>de</strong> encontradas na literatura. A partir<<strong>br</strong> />
da análise das <strong>pro</strong>postas encontradas, foi possível criar uma classificação básica do tipo <strong>de</strong> flexibilida<strong>de</strong> que as<<strong>br</strong> />
abordagens po<strong>de</strong>m oferecer: flexibilida<strong>de</strong> a priori e flexibilida<strong>de</strong> a posteriori.<<strong>br</strong> />
Flexibilida<strong>de</strong> a priori é aquele tipo <strong>de</strong> flexibilida<strong>de</strong> oferecida durante a mo<strong>de</strong>lagem dos <strong>pro</strong>cessos. Este tipo <strong>de</strong><<strong>br</strong> />
flexibilida<strong>de</strong> está relacionada ao tempo <strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos, criando meios <strong>de</strong> tornar a execução <strong>de</strong> um <strong>pro</strong>cesso<<strong>br</strong> />
menos restritiva através <strong>de</strong> novas maneiras <strong>de</strong> mo<strong>de</strong>lar <strong>pro</strong>cessos.<<strong>br</strong> />
Já nas abordagens on<strong>de</strong> é <strong>pro</strong>posta a flexibilida<strong>de</strong> a posteriori são apresentadas maneiras <strong>de</strong> tornar os SGWfs<<strong>br</strong> />
menos rígidos através <strong>de</strong> mudanças em tempo <strong>de</strong> execução dos <strong>pro</strong>cessos. Estas mudanças dizem respeito a alterações<<strong>br</strong> />
dinâmicas na <strong>de</strong>finição dos <strong>pro</strong>cessos e alterações no modo <strong>de</strong> execução dos <strong>pro</strong>cessos.<<strong>br</strong> />
2.1 Flexibilida<strong>de</strong> a priori<<strong>br</strong> />
A primeira abordagem a ser apresentada é a <strong>pro</strong>posta do operador Coo (GODART; PERRIN; SKAF, 1999),<<strong>br</strong> />
que foi <strong>de</strong>senvolvido a fim <strong>de</strong> tornar os mo<strong>de</strong>los <strong>de</strong> workflow capazes <strong>de</strong> representar as interações entre tarefas<<strong>br</strong> />
cooperativas. Tal operador não co<strong>br</strong>e todos os aspectos da cooperação, sendo, principalmente, <strong>de</strong>dicado ao<<strong>br</strong> />
gerenciamento <strong>de</strong> cooperação entre tarefas. Um exemplo da utilização <strong>de</strong>ste operador é a resolução <strong>de</strong> exercícios por<<strong>br</strong> />
um estudante e a correção dos mesmos por um <strong>pro</strong>fessor em um ambiente <strong>de</strong> ensino a distância. Os resultados dos<<strong>br</strong> />
exercícios po<strong>de</strong>m ser enviados ao <strong>pro</strong>fessor a qualquer momento, a fim <strong>de</strong> obter-se correções e sugestões por parte do<<strong>br</strong> />
2
<strong>pro</strong>fessor. Esta interação po<strong>de</strong> ocorrer quantas vezes for necessário. O <strong>pro</strong>fessor não é o<strong>br</strong>igado a corrigir todos os<<strong>br</strong> />
resultados intermediários que lhe são enviados, sendo o<strong>br</strong>igado apenas a corrigir a versão final dos exercícios. A<<strong>br</strong> />
criação <strong>de</strong> um operador para mo<strong>de</strong>lagem <strong>de</strong> tarefas que <strong>de</strong>vem cooperar entre si é uma idéia muito interessante. Através<<strong>br</strong> />
<strong>de</strong>ste operador po<strong>de</strong>-se mapear a interação entre tarefas, permitindo a troca <strong>de</strong> resultados e a antecipação <strong>de</strong> tarefas.<<strong>br</strong> />
Porém, a necessida<strong>de</strong> <strong>de</strong> criação <strong>de</strong> novos elementos <strong>de</strong> mo<strong>de</strong>lagem não é muito interessante. Porém, a complexida<strong>de</strong><<strong>br</strong> />
inserida à mo<strong>de</strong>lagem dos <strong>pro</strong>cessos com as alterações <strong>pro</strong>postas no Coo é gran<strong>de</strong>, exigindo do responsável pela<<strong>br</strong> />
<strong>de</strong>finição dos <strong>pro</strong>cessos a configuração prévia dos meios com que se <strong>de</strong>ve dar a troca <strong>de</strong> informações entre as tarefas.<<strong>br</strong> />
Outra <strong>pro</strong>posta <strong>de</strong> flexibilida<strong>de</strong> a priori é encontrada no Freeflow (DOURISH et al., 1996). Esta abordagem<<strong>br</strong> />
também possibilita relacionamentos diferenciados entre tarefas. Porém os relacionamentos <strong>pro</strong>postos no Freeflow são<<strong>br</strong> />
<strong>de</strong>clarativos, capazes <strong>de</strong> separar as <strong>de</strong>pendências entre tarefas (informações do sistema) e as informações do usuário.<<strong>br</strong> />
Isto é feito através <strong>de</strong> um mo<strong>de</strong>lo <strong>de</strong> estados para as tarefas que distingue entre estados do usuário e estados do sistema.<<strong>br</strong> />
Nesta abordagem existe apenas a preocupação em criar novas <strong>de</strong>pendências entre tarefas baseadas no fluxo <strong>de</strong> controle.<<strong>br</strong> />
Não existem meios para tratar o fluxo <strong>de</strong> dados nesta abordagem, não sendo possível <strong>pro</strong>ver troca <strong>de</strong> resultados<<strong>br</strong> />
intermediários. Além do que, criar relacionamentos <strong>de</strong>clarativos insere muita complexida<strong>de</strong> à mo<strong>de</strong>lagem do <strong>pro</strong>cesso,<<strong>br</strong> />
pois exige que os relacionamentos sejam criados antes <strong>de</strong> seu uso.<<strong>br</strong> />
Na área <strong>de</strong> mo<strong>de</strong>lagem <strong>de</strong> <strong>pro</strong>cessos <strong>de</strong> software a linguagem PROMENADE (RIBÓ; FRANC, 2002) oferece<<strong>br</strong> />
um meio <strong>de</strong> formalizar os mo<strong>de</strong>los <strong>de</strong> <strong>pro</strong>cessos <strong>de</strong> software, visando aumentar a expressivida<strong>de</strong>, padronização,<<strong>br</strong> />
flexibilida<strong>de</strong> e reuso dos mesmos. A linguagem <strong>de</strong>fine quatro tipos <strong>de</strong> relacionamento <strong>de</strong> precedência básicos como um<<strong>br</strong> />
conjunto completo para a mo<strong>de</strong>lagem <strong>de</strong> <strong>pro</strong>cessos <strong>de</strong> software básicos. Estes tipos <strong>de</strong> relacionamento são <strong>de</strong>finidos <strong>de</strong><<strong>br</strong> />
maneira <strong>de</strong>clarativa, e po<strong>de</strong>m ser combinadas a fim <strong>de</strong> criar-se relações <strong>de</strong> precedência <strong>de</strong>rivadas. Mais uma vez os<<strong>br</strong> />
<strong>pro</strong>blemas são a inexistência <strong>de</strong> meios para tratar o fluxo <strong>de</strong> dados e o acréscimo <strong>de</strong> complexida<strong>de</strong> na mo<strong>de</strong>lagem com<<strong>br</strong> />
o uso <strong>de</strong>stes novos relacionamentos.<<strong>br</strong> />
Joeris e Herzog (1998, 1999) <strong>de</strong>fen<strong>de</strong>m que a <strong>de</strong>finição correta do comportamento das tarefas é a base para<<strong>br</strong> />
mo<strong>de</strong>lagem <strong>de</strong> workflow menos restritivos e para suporte a alterações dinâmicas. Neste sentido é apresentada uma<<strong>br</strong> />
maneira <strong>de</strong> especificar diferentes tipos <strong>de</strong> <strong>de</strong>pendência no fluxo <strong>de</strong> controle, <strong>de</strong>finidos basicamente por regras do tipo<<strong>br</strong> />
E-C-A (Evento-Condição-Ação). O mecanismo <strong>de</strong> disparo trata as tarefas como se estas fossem componentes reativos,<<strong>br</strong> />
que encapsulam seu comportamento interno e interagem com outras tarefas através <strong>de</strong> passagem <strong>de</strong> mensagens/eventos.<<strong>br</strong> />
As <strong>de</strong>pendências <strong>de</strong> fluxo <strong>de</strong> controle são refinadas <strong>de</strong> maneira a apoiar <strong>pro</strong>cessos heterogêneos e flexíveis. Processos<<strong>br</strong> />
cooperativos são suportados neste sistema através da possibilida<strong>de</strong> <strong>de</strong> integrar versões à semântica do mo<strong>de</strong>lo <strong>de</strong><<strong>br</strong> />
workflow no nível conceitual.Assim como nas <strong>pro</strong>postas anteriores, o gran<strong>de</strong> <strong>pro</strong>blema relacionado a esta abordagem<<strong>br</strong> />
está na necessida<strong>de</strong> <strong>de</strong> criação e utilização <strong>de</strong> novos relacionamentos quando da mo<strong>de</strong>lagem dos <strong>pro</strong>cessos. Isso insere<<strong>br</strong> />
muita complexida<strong>de</strong> extra ao mo<strong>de</strong>lo.<<strong>br</strong> />
2.2 Flexibilida<strong>de</strong> a posteriori<<strong>br</strong> />
Uma das <strong>pro</strong>postas <strong>de</strong> flexibilida<strong>de</strong> a posteriori é a abordagem <strong>de</strong> Nickerson (2003), que apresenta o <strong>pro</strong>blema<<strong>br</strong> />
que as transações longas po<strong>de</strong>m causar. Para tal é <strong>pro</strong>posto um mo<strong>de</strong>lo <strong>de</strong> workflow baseado em eventos, através do<<strong>br</strong> />
qual é possível alterar o andamento <strong>de</strong> uma tarefa longa. A solução apresentada por Nickerson (2003) flexibiliza a<<strong>br</strong> />
restrição <strong>de</strong> isolamento das tarefas, através <strong>de</strong> eventos externos capazes <strong>de</strong> interromper uma tarefa.<<strong>br</strong> />
No sistema ADEPT (REICHERT; RINDERLE; DADAM, 2003) é <strong>pro</strong>posto um suporte a mudanças no<<strong>br</strong> />
mo<strong>de</strong>lo quando da instanciação dos <strong>pro</strong>cessos. O ADEPT é um mo<strong>de</strong>lo conceitual <strong>de</strong> workflow baseado em grafos que<<strong>br</strong> />
possui uma base formal para sua sintaxe e semântica. Baseado neste mo<strong>de</strong>lo foi criado um conjunto completo e mínimo<<strong>br</strong> />
<strong>de</strong> operações <strong>de</strong> modificação que apóia os usuários na modificação da estrutura <strong>de</strong> instâncias <strong>de</strong> <strong>pro</strong>cessos <strong>de</strong> workflow<<strong>br</strong> />
em execução, preservando sua corretu<strong>de</strong> e consistência – ADEPTflex (REICHERT; DADAM, 1998). Tais verificações<<strong>br</strong> />
dizem respeito tanto ao fluxo <strong>de</strong> dados quando ao fluxo <strong>de</strong> controle. O ADEPTflex compreen<strong>de</strong> operações para<<strong>br</strong> />
inserção, remoção e alteração na or<strong>de</strong>m das tarefas. Alterações dinâmicas no mo<strong>de</strong>lo em tempo <strong>de</strong> execução po<strong>de</strong>m ser<<strong>br</strong> />
<strong>de</strong> gran<strong>de</strong> utilida<strong>de</strong> em <strong>pro</strong>cessos com características intelectuais e cooperativas. Porém, tal abordagem esbarra na<<strong>br</strong> />
mesma rigi<strong>de</strong>z encontrada nos sistemas tradicionais, pois as tarefas continuarão sendo caixas pretas para os usuários,<<strong>br</strong> />
durante a execução.<<strong>br</strong> />
O <strong>pro</strong>jeto Co-flow (KRAMLER; RETSCHITZEGGER, 2000) traz uma abordagem <strong>de</strong> suporte a workflow<<strong>br</strong> />
inteligentes, construído so<strong>br</strong>e o TriGSflow. Nesta abordagem, agentes inteligentes são habilitados a adaptar e esten<strong>de</strong>r<<strong>br</strong> />
os mo<strong>de</strong>los <strong>de</strong> <strong>pro</strong>cessos pré planejados para suas situações específicas, sem influenciar os outros casos baseados no<<strong>br</strong> />
mesmo mo<strong>de</strong>lo. A adaptação dos mo<strong>de</strong>los <strong>de</strong> <strong>pro</strong>cesso po<strong>de</strong>m ser iniciadas pelos agentes e as possibilida<strong>de</strong>s <strong>de</strong><<strong>br</strong> />
adaptação po<strong>de</strong>m ser apoiadas por um sistema <strong>de</strong> recomendação, mostrando aos agentes as operações possíveis no<<strong>br</strong> />
contexto corrente. Mais um trabalho que apresenta solução para o <strong>pro</strong>blema da alteração dinâmica <strong>de</strong> <strong>pro</strong>cessos. É<<strong>br</strong> />
possível utilizar este tipo <strong>de</strong> abordagem como suporte à antecipação, porém, como dito anteriormente, isto <strong>de</strong>mandaria<<strong>br</strong> />
muito custo e as tarefas continuariam como caixas pretas, executando em isolado.<<strong>br</strong> />
Coo-Flow (GRIGORI; CHAROY; GODART, 2004), é outra abordagem que apresenta flexibilida<strong>de</strong> a<<strong>br</strong> />
posteriori, mais especificamente é neste trabalho que é <strong>pro</strong>posta a antecipação <strong>de</strong> tarefas. Para permitir que as tarefas<<strong>br</strong> />
3
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
4. MECANISMOS DE ANTECIPAÇÃO DE TAREFAS<<strong>br</strong> />
A presente seção apresenta os dois mecanismos <strong>de</strong> gerenciamento <strong>de</strong> antecipação possíveis: antecipação gerenciada<<strong>br</strong> />
a priori e antecipação gerenciada a posteriori.<<strong>br</strong> />
A antecipação gerenciada a priori prevê alterações no <strong>pro</strong>cesso em tempo <strong>de</strong> <strong>de</strong>finição, sem a necessida<strong>de</strong> <strong>de</strong><<strong>br</strong> />
qualquer alteração na máquina <strong>de</strong> workflow. Esta abordagem exige esforço extra durante a mo<strong>de</strong>lagem, mas po<strong>de</strong> ser<<strong>br</strong> />
utilizada em qualquer SGWf existente atualmente.<<strong>br</strong> />
A antecipação gerenciada a posteriori prevê alterações na máquina <strong>de</strong> execução do SGWf, <strong>de</strong> maneira a acabar com<<strong>br</strong> />
as restrições <strong>de</strong> isolamento e atomicida<strong>de</strong> das tarefas. Para tal, será seguida a <strong>pro</strong>posta <strong>de</strong> Grigori (2001) que <strong>de</strong>fine<<strong>br</strong> />
alterações no diagrama <strong>de</strong> estados das tarefas como a maneira <strong>de</strong> acabar com estas restrições. Para enriquecer o<<strong>br</strong> />
mo<strong>de</strong>lo, nesta dissertação é i<strong>de</strong>ntificada a necessida<strong>de</strong> e é estabelecido um meio <strong>de</strong> i<strong>de</strong>ntificar, em tempo <strong>de</strong> <strong>de</strong>finição<<strong>br</strong> />
dos <strong>pro</strong>cessos, as tarefas antecipáveis e o mapeamento <strong>de</strong>sta i<strong>de</strong>ntificação para a máquina <strong>de</strong> workflow. Também são<<strong>br</strong> />
apresentadas diferentes maneiras <strong>de</strong> lidar com <strong>de</strong>pendências <strong>de</strong> controle e com o fluxo <strong>de</strong> dados e o mapeamento <strong>de</strong>stas<<strong>br</strong> />
<strong>de</strong>pendências para o diagrama <strong>de</strong> estados das instâncias <strong>de</strong> tarefas.<<strong>br</strong> />
4.1 Antecipação Gerenciada a priori<<strong>br</strong> />
Como dito anteriormente a antecipação é um conceito intuitivo, assim como a possibilida<strong>de</strong> <strong>de</strong> prevê-la<<strong>br</strong> />
durante a mo<strong>de</strong>lagem do <strong>pro</strong>cesso. No exemplo ilustrado na Figura 4.1 fica claro que é possível utilizar os SGWfs<<strong>br</strong> />
tradicionais para conseguir o ganho <strong>de</strong> paralelismo oferecido pela antecipação <strong>de</strong> tarefas, apenas modificando o mo<strong>de</strong>lo<<strong>br</strong> />
<strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos. Este tipo <strong>de</strong> antecipação será chamado aqui <strong>de</strong> antecipação gerenciada a priori, pois ocorre<<strong>br</strong> />
em tempo <strong>de</strong> <strong>de</strong>finição do <strong>pro</strong>cesso <strong>de</strong> workflow, antes da execução.<<strong>br</strong> />
A maneira <strong>de</strong> possibilitar a antecipação gerenciada a priori permitindo que haja troca <strong>de</strong> resultados<<strong>br</strong> />
intermediários é mo<strong>de</strong>lar as tarefas que po<strong>de</strong>m ser antecipadas numa granularida<strong>de</strong> menor. Não se trata <strong>de</strong> uma nova<<strong>br</strong> />
abordagem, mas sim <strong>de</strong> uma nova prática <strong>de</strong> mo<strong>de</strong>lagem utilizando o mo<strong>de</strong>lo tradicional, sem a necessida<strong>de</strong> <strong>de</strong> novos<<strong>br</strong> />
elementos <strong>de</strong> mo<strong>de</strong>lagem ou novos conceitos.<<strong>br</strong> />
Nesta nova prática <strong>de</strong> mo<strong>de</strong>lagem as tarefas antecipáveis e suas antecessoras <strong>de</strong>vem ser “que<strong>br</strong>adas” em<<strong>br</strong> />
tarefas menores, ficando estas em parte seqüenciais e, em parte paralelas entre si. A Figura 4.2 ilustra como ficaria o<<strong>br</strong> />
mo<strong>de</strong>lo para o <strong>pro</strong>cesso <strong>de</strong> concepção do artigo científico prevendo a antecipação <strong>de</strong> uma tarefa já durante a<<strong>br</strong> />
mo<strong>de</strong>lagem.<<strong>br</strong> />
Discussion<<strong>br</strong> />
Partial<<strong>br</strong> />
Writing<<strong>br</strong> />
Final<<strong>br</strong> />
Writing<<strong>br</strong> />
Partial<<strong>br</strong> />
Revision<<strong>br</strong> />
Figura 4.2. Antecipação utilizando mo<strong>de</strong>lo tradicional <strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos utilizando menor granularida<strong>de</strong> na<<strong>br</strong> />
mo<strong>de</strong>lagem das tarefas<<strong>br</strong> />
Como po<strong>de</strong> ser visto, através da mo<strong>de</strong>lagem das tarefas em outro nível <strong>de</strong> granularida<strong>de</strong> é possível pré<strong>de</strong>terminar<<strong>br</strong> />
que tarefas sejam antecipadas. Neste caso o comportamento é o mesmo apresentado na Figura 4.1, <strong>de</strong>ixando<<strong>br</strong> />
que as tarefas <strong>de</strong> escrita e revisão sejam executadas parcialmente em paralelo. Não é necessário utilizar nenhum tipo <strong>de</strong><<strong>br</strong> />
elemento ou conceito adicional para este tipo <strong>de</strong> mo<strong>de</strong>lagem. Também não se faz necessário qualquer alteração na<<strong>br</strong> />
máquina <strong>de</strong> workflow. Qualquer ferramenta <strong>de</strong> <strong>de</strong>finição <strong>de</strong> <strong>pro</strong>cessos é capaz <strong>de</strong> mo<strong>de</strong>lar tal situação, e qualquer<<strong>br</strong> />
máquina <strong>de</strong> workflow po<strong>de</strong> interpretar, executar e gerenciar o referido <strong>pro</strong>cesso.<<strong>br</strong> />
O gerenciamento da antecipação a priori po<strong>de</strong> ser <strong>pro</strong>vido <strong>de</strong> duas maneiras distintas:<<strong>br</strong> />
• Manual: Os workflow <strong>de</strong>signers são responsáveis por i<strong>de</strong>ntificar e mo<strong>de</strong>lar as tarefas já na granularida<strong>de</strong><<strong>br</strong> />
com que estas <strong>de</strong>vem ser instanciadas e executadas. Uma tarefa que po<strong>de</strong> ser antecipada <strong>de</strong>ve ter suas<<strong>br</strong> />
antecessoras divididas em “sub-tarefas”, prevendo a maneira que <strong>de</strong>ve se dar a antecipação e quantos<<strong>br</strong> />
resultados intermediários (se houverem) serão enviados para as tarefas antecipáveis.<<strong>br</strong> />
• Automática: Ao mo<strong>de</strong>lar um <strong>pro</strong>cesso que possui tarefas que possam ser antecipadas, estas <strong>de</strong>vem ser<<strong>br</strong> />
apenas i<strong>de</strong>ntificadas pelo workflow <strong>de</strong>signer responsável. Quando da instanciação <strong>de</strong>ste <strong>pro</strong>cesso, ele<<strong>br</strong> />
passará por um mecanismo <strong>de</strong> transformação que irá “que<strong>br</strong>ar” as tarefas i<strong>de</strong>ntificadas, gerando-as numa<<strong>br</strong> />
5<<strong>br</strong> />
Final<<strong>br</strong> />
Revision<<strong>br</strong> />
Dataflow<<strong>br</strong> />
Control Flow<<strong>br</strong> />
Submitting
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
<strong>de</strong>vem seguir sua execução <strong>de</strong> modo tradicional, necessitando aguardar todas suas condições <strong>de</strong> disparo serem<<strong>br</strong> />
satisfeitas.<<strong>br</strong> />
A necessida<strong>de</strong> <strong>de</strong> tal i<strong>de</strong>ntificação porém, esbarra em alguns <strong>pro</strong>blemas apontados em outras abordagens, que<<strong>br</strong> />
são o aumento da complexida<strong>de</strong> na <strong>de</strong>finição das tarefas e a alteração do mo<strong>de</strong>lo <strong>de</strong> <strong>pro</strong>cessos tradicional. A alternativa<<strong>br</strong> />
encontrada foi a adição <strong>de</strong> um atributo às tarefas. Tal atributo é <strong>de</strong> caráter não o<strong>br</strong>igatório, e <strong>de</strong>ixaria a critério do<<strong>br</strong> />
gerente responsável pela criação do <strong>pro</strong>cesso a <strong>de</strong>cisão <strong>de</strong> utilizar a antecipação ou não.<<strong>br</strong> />
4.2.2 Modificando a máquina <strong>de</strong> execução<<strong>br</strong> />
Para permitir que tarefas possam ser disparadas sem que suas condições sejam satisfeitas foi necessário alterar<<strong>br</strong> />
a máquina <strong>de</strong> workflow. É necessário que a máquina <strong>de</strong> execução possa i<strong>de</strong>ntificar o novo atributo <strong>de</strong> i<strong>de</strong>ntificação das<<strong>br</strong> />
tarefas e possa lidar com tipos diferentes <strong>de</strong> <strong>de</strong>pendências <strong>de</strong> fluxo <strong>de</strong> controle e <strong>de</strong> fluxo <strong>de</strong> dados.<<strong>br</strong> />
A fim <strong>de</strong> <strong>pro</strong>ver a flexibilida<strong>de</strong> quando da execução do <strong>pro</strong>cesso, foi necessário, então, alterar o diagrama <strong>de</strong><<strong>br</strong> />
estados das tarefas da máquina <strong>de</strong> execução do SGWf. Tal alteração é <strong>pro</strong>posta a fim <strong>de</strong> tornar a antecipação clara e<<strong>br</strong> />
simples. Para a concepção <strong>de</strong> tal diagrama, foram tomados como base o diagrama <strong>de</strong> transição <strong>de</strong> estados <strong>pro</strong>posto pela<<strong>br</strong> />
WfMC [WfMC, 2004] e os estados e comportamento previstos no Coo-Flow [Grigori et al, 2004], que leva em conta a<<strong>br</strong> />
antecipação <strong>de</strong> tarefas. O diagrama <strong>de</strong> transição e seus respectivos estados <strong>pro</strong>postos são apresentados na Figura 2.<<strong>br</strong> />
Neste novo diagrama foram criados os novos estados <strong>pro</strong>nta e nãoPronta (sub-estados <strong>de</strong><<strong>br</strong> />
nãoRodando) e os estados antecipando e executando (sub-estados <strong>de</strong> rodando). O estado suspensa foi<<strong>br</strong> />
re-alocado como um sub-estado <strong>de</strong> nãoRodando, uma vez que, quando uma instância <strong>de</strong> tarefa está suspensa,<<strong>br</strong> />
obviamente, não está rodando. Em níveis <strong>de</strong> granulosida<strong>de</strong> mais baixa, foram <strong>de</strong>finidos alguns outros estados. O estado<<strong>br</strong> />
<strong>pro</strong>nta é dividido ainda em dois sub-estados: o estado paraAntecipar e paraExecutar. O estado<<strong>br</strong> />
nãoPronta faz distinção entre os sub-estados antecipável e nãoAntecipável.<<strong>br</strong> />
aberta<<strong>br</strong> />
antecipando<<strong>br</strong> />
rodando<<strong>br</strong> />
nãoRodando<<strong>br</strong> />
executando<<strong>br</strong> />
paraAntecipar paraExecutar<<strong>br</strong> />
<strong>pro</strong>nta<<strong>br</strong> />
Figura 2. Diagrama <strong>de</strong> Transição <strong>de</strong> Estados para as tarefas<<strong>br</strong> />
7<<strong>br</strong> />
suspensa<<strong>br</strong> />
antecipável nãoAntecipável<<strong>br</strong> />
nãoPronta<<strong>br</strong> />
concluída<<strong>br</strong> />
terminada<<strong>br</strong> />
fechada<<strong>br</strong> />
abortada
A seguir são apresentados os estados <strong>pro</strong>postos e a <strong>de</strong>scrição <strong>de</strong> cada um:<<strong>br</strong> />
• suspensa: continua com o mesmo significado, indicando que uma instância <strong>de</strong> tarefa foi parada, porém<<strong>br</strong> />
po<strong>de</strong> ser retomada a qualquer instante;<<strong>br</strong> />
• nãoPronta: é o estado inicial das instâncias. Indica que a tarefa foi instanciada, porém ainda não tem<<strong>br</strong> />
suas condições satisfeitas para ser disponibilizada para execução;<<strong>br</strong> />
o antecipável: indica que a instância da tarefa po<strong>de</strong>rá ser antecipada se tiver suas condições <strong>de</strong><<strong>br</strong> />
antecipação satisfeitas;<<strong>br</strong> />
o nãoAntecipável: indica que a instância da tarefa não po<strong>de</strong>rá ser executada antecipadamente;<<strong>br</strong> />
• <strong>pro</strong>nta: a instância teve suas pré-condições (<strong>de</strong> execução ou antecipação) satisfeitas e está <strong>pro</strong>nta para ser<<strong>br</strong> />
iniciada;<<strong>br</strong> />
• paraAntecipar: indica que a instância da tarefa teve as pré-condições <strong>de</strong> antecipação satisfeitas e<<strong>br</strong> />
aguarda ser iniciada;<<strong>br</strong> />
o paraExecutar: a instância po<strong>de</strong> ter sua execução iniciada, pois suas pré-condições <strong>de</strong><<strong>br</strong> />
execução foram satisfeitas por completo;<<strong>br</strong> />
o antecipando: tarefa está sendo rodada <strong>de</strong> maneira antecipada;<<strong>br</strong> />
o executando: tarefa está executando e po<strong>de</strong> ser concluída normalmente.<<strong>br</strong> />
Quando se instancia um <strong>pro</strong>cesso, todas suas tarefas são instanciadas. Quando instanciadas as tarefas são<<strong>br</strong> />
levadas para seu estado inicial. Neste caso o estado inicial das instâncias <strong>de</strong> tarefa é o estado nãoPronta. A instância<<strong>br</strong> />
é então mapeada para um dos dois sub-estados: antecipável ou nãoAntecipável. Tal classificação é realizada<<strong>br</strong> />
durante a fase <strong>de</strong> mo<strong>de</strong>lagem do <strong>pro</strong>cesso (como <strong>de</strong>scrito na seção anterior). A transição bidirecional existente entre<<strong>br</strong> />
estes dois estados se <strong>de</strong>ve à possibilida<strong>de</strong> <strong>de</strong> alteração <strong>de</strong>sta classificação mesmo durante a execução do <strong>pro</strong>cesso.<<strong>br</strong> />
Enquanto a instância da tarefa não passou ao estado <strong>pro</strong>nta é possível que o gerente modifique sua condição passando-a<<strong>br</strong> />
<strong>de</strong> antecipável a nãoAntecipável e vice-versa. Possibilitando a mudança <strong>de</strong> estado durante a execução<<strong>br</strong> />
aumenta-se a flexibilida<strong>de</strong> do sistema, <strong>de</strong>ixando inclusive que agentes solicitem a antecipação <strong>de</strong> tarefas mo<strong>de</strong>ladas<<strong>br</strong> />
como não antecipáveis. Além disso é possível a<strong>de</strong>quar cada instância <strong>de</strong> um <strong>pro</strong>cesso para suas necessida<strong>de</strong>s e<<strong>br</strong> />
características próprias apenas alterando o estado <strong>de</strong> uma tarefa, sem que seja preciso modificar o mo<strong>de</strong>lo do <strong>pro</strong>cesso,<<strong>br</strong> />
ou evoluir o esquema do workflow. A complexida<strong>de</strong> inserida por tal transição é mínima se comparada à complexida<strong>de</strong><<strong>br</strong> />
necessária para evoluir o esquema do <strong>pro</strong>cesso para cada instância em tempo <strong>de</strong> execução.<<strong>br</strong> />
A seguir os comportamentos das tarefas antecipáveis e não antecipáveis serão explicados, através do<<strong>br</strong> />
<strong>de</strong>talhamento das transições entre os estados.<<strong>br</strong> />
Primeiramente serão atacadas as tarefas que não po<strong>de</strong>m utilizar a antecipação em seu andamento, isto é, as<<strong>br</strong> />
tarefas naoAntecipaveis. Uma tarefa naoAntecipavel terá seu funcionamento similar ao funcionamento das<<strong>br</strong> />
tarefas em sistemas <strong>de</strong> workflow tradicionais.<<strong>br</strong> />
Sendo assim, uma tarefa naoAntecipavel se torna <strong>pro</strong>nta.paraExecutar assim que todas suas<<strong>br</strong> />
condições <strong>de</strong> disparo forem satisfeitas (suas antecessoras forem concluídas e os dados <strong>de</strong> entrada forem resultados<<strong>br</strong> />
finais). A exceção são as tarefas iniciais do <strong>pro</strong>cesso, que passam ao estado <strong>pro</strong>nta.paraExecutar quando o<<strong>br</strong> />
<strong>pro</strong>cesso é instanciado. Neste estado a tarefa fica disponível na lista <strong>de</strong> trabalho (worklist) dos agentes capazes <strong>de</strong><<strong>br</strong> />
executá-las.<<strong>br</strong> />
Para que a tarefa passe então do estado <strong>pro</strong>nta.paraExecutar para o estado executando é necessário<<strong>br</strong> />
que esta seja escolhida por algum dos agentes para a qual esta foi oferecida e este comece a executá-la. Ao passar para<<strong>br</strong> />
tal estado a tarefa po<strong>de</strong> fornecer resultados (intermediários e/ou finais) e po<strong>de</strong> ser concluída, quando suas pós<<strong>br</strong> />
condições forem satisfeitas.<<strong>br</strong> />
Além <strong>de</strong>sta transição, uma tarefa executando po<strong>de</strong> passar ao estado suspensa a qualquer instante. Este<<strong>br</strong> />
estado se refere às tarefas que foram paralisadas por escolha do agente responsável (ou do gerente), po<strong>de</strong>ndo esta tarefa<<strong>br</strong> />
ser retomada a qualquer instante. Quando retomada, a tarefa volta ao estado executando, po<strong>de</strong>ndo ser concluída<<strong>br</strong> />
ou suspensa novamente.<<strong>br</strong> />
Já uma tarefa classificada como antecipável po<strong>de</strong> ter seu comportamento modificado justamente pela<<strong>br</strong> />
flexibilida<strong>de</strong> oferecida pela antecipação. O fato <strong>de</strong> uma tarefa ser dita antecipável não garante que esta será<<strong>br</strong> />
antecipada, apenas permite que esta possa ser antecipada. É apenas uma alternativa para possibilitar a cooperação entre<<strong>br</strong> />
os agentes (através da troca <strong>de</strong> resultados intermediários) e ajudar na redução do tempo <strong>de</strong> execução dos <strong>pro</strong>cessos.<<strong>br</strong> />
8
Uma tarefa antecipável po<strong>de</strong> seguir a trajetória <strong>de</strong> uma tarefa naoAntecipavel. Isto é, quando suas<<strong>br</strong> />
pré-condições forem satisfeitas passa ao estado <strong>pro</strong>nta.paraExecutar, ficando disponível na lista <strong>de</strong> tarefas dos<<strong>br</strong> />
agentes capazes <strong>de</strong> executá-la. Ao ser escolhida por um agente, passa a estar executando, po<strong>de</strong>ndo então ser<<strong>br</strong> />
suspensa ou concluída.<<strong>br</strong> />
O comportamento <strong>de</strong> uma tarefa antecipável, porém, po<strong>de</strong> ser totalmente distinto daquele <strong>de</strong> uma tarefa<<strong>br</strong> />
nãoAntecipável. Quando uma tarefa antecipável tem suas pré condições <strong>de</strong> antecipação (<strong>de</strong>finidas quando<<strong>br</strong> />
da mo<strong>de</strong>lagem) satisfeitas, esta passa ao estado <strong>pro</strong>nta.paraAntecipar. Este estado funciona <strong>de</strong> maneira similar<<strong>br</strong> />
ao estado <strong>pro</strong>nta.paraExecutar. Quando <strong>pro</strong>nta.paraAntecipar, a tarefa aparece na lista <strong>de</strong> tarefa dos<<strong>br</strong> />
agentes capazes <strong>de</strong> executá-la. A partir <strong>de</strong>ste estado é possível que a tarefa se torne executável ou passe a estar<<strong>br</strong> />
antecipando.<<strong>br</strong> />
A transição entre o estado <strong>pro</strong>nta.paraAntecipar e executável é ativada quando as pré condições<<strong>br</strong> />
<strong>de</strong> disparo da tarefa são satisfeitas antes <strong>de</strong>sta iniciar sua antecipação. Neste caso, a tarefa volta a seguir o fluxo normal,<<strong>br</strong> />
aparecendo como <strong>pro</strong>nta.paraExecutar na lista <strong>de</strong> tarefas dos usuários.<<strong>br</strong> />
Já a transição entre <strong>pro</strong>nta.paraAntecipar e antecipando é ativada quando algum dos agentes<<strong>br</strong> />
capazes <strong>de</strong> executar a tarefa selecionam-na para antecipação. A partir <strong>de</strong>ste momento a tarefa está antecipando.<<strong>br</strong> />
Neste estado o comportamento é muito parecido com uma tarefa executando, estando a diferença no fato das tarefas<<strong>br</strong> />
não po<strong>de</strong>rem ser concluídas enquanto estão antecipando. Para po<strong>de</strong>rem ser concluída uma tarefa necessita<<strong>br</strong> />
primeiramente passar pelo estado executando. Esta restrição se <strong>de</strong>ve à necessida<strong>de</strong> <strong>de</strong> garantir que a tarefa está<<strong>br</strong> />
obe<strong>de</strong>cendo às suas pré-condições <strong>de</strong> execução (e não <strong>de</strong> antecipação).<<strong>br</strong> />
5. CONCLUSÕES<<strong>br</strong> />
Este trabalho apresenta duas abordagens <strong>de</strong> antecipação <strong>de</strong> tarefas que permitem maior flexibilida<strong>de</strong> nos<<strong>br</strong> />
SGWfs tradicionais. Como vantagem direta do uso abordagens está o aumento no espectro <strong>de</strong> aplicações que po<strong>de</strong>m ter<<strong>br</strong> />
seus <strong>pro</strong>cessos gerenciados por SGWfs. Além disso, uma das abordagens apresenta como vantagem o aumento da<<strong>br</strong> />
cooperação entre tarefas, que po<strong>de</strong> conduzir a <strong>pro</strong>dutos finais <strong>de</strong> melhor qualida<strong>de</strong>.<<strong>br</strong> />
As duas abordagens i<strong>de</strong>ntificadas e apresentadas são classificadas <strong>de</strong> acordo com o momento em que a<<strong>br</strong> />
antecipação é gerenciada (tempo <strong>de</strong> <strong>de</strong>finição ou tempo <strong>de</strong> execução), sendo chamadas a priori e a posteriori.<<strong>br</strong> />
A abordagem a priori apresenta a antecipação gerenciada em tempo <strong>de</strong> <strong>de</strong>finição dos <strong>pro</strong>cessos. Ela é<<strong>br</strong> />
estabelecida a fim <strong>de</strong> tornar a antecipação uma prática possível em qualquer SGWf, apenas <strong>pro</strong>pondo uma maneira<<strong>br</strong> />
diferente <strong>de</strong> mo<strong>de</strong>lar as tarefas. É <strong>pro</strong>posta uma nova prática <strong>de</strong> mo<strong>de</strong>lagem em que, apenas alterando a granularida<strong>de</strong><<strong>br</strong> />
das tarefas envolvidas na antecipação torna-se possível antecipar as tarefas. Apesar <strong>de</strong> contar com a vantagem <strong>de</strong> po<strong>de</strong>r<<strong>br</strong> />
utilizar qualquer SGWf existente, a flexibilida<strong>de</strong> <strong>pro</strong>vida por esta abordagem é pequena. Esta flexibilida<strong>de</strong> se limita ao<<strong>br</strong> />
ponto em que são realizados os envios <strong>de</strong> resultados intermediários, sendo o número <strong>de</strong> troca <strong>de</strong> resultados pré<strong>de</strong>finido.<<strong>br</strong> />
Então, po<strong>de</strong>-se dizer que, neste caso, a flexibilida<strong>de</strong> oferecida é pré-<strong>de</strong>terminada, uma vez que as tarefas<<strong>br</strong> />
continuam sendo atômicas.<<strong>br</strong> />
A abordagem a posteriori aumenta a flexibilida<strong>de</strong> oferecida, fazendo o gerenciamento a posteriori da<<strong>br</strong> />
antecipação, isto é, em tempo <strong>de</strong> execução dos <strong>pro</strong>cessos. A abordagem <strong>de</strong>ste tipo apresentada neste capítulo tem base<<strong>br</strong> />
no diagrama <strong>de</strong> estados <strong>pro</strong>posto por Grigori (2001) e <strong>de</strong>fine meios <strong>de</strong> antecipar tarefas através da flexibilização dos<<strong>br</strong> />
fluxos <strong>de</strong> controle e dados.<<strong>br</strong> />
A flexibilida<strong>de</strong> oferecida por este tipo <strong>de</strong> antecipação é muito maior se comparada à abordagem a priori, não<<strong>br</strong> />
o<strong>br</strong>igando a antecipação e não <strong>de</strong>finindo o número <strong>de</strong> interações que <strong>de</strong>ve haver durante a execução do <strong>pro</strong>cesso. Além<<strong>br</strong> />
disso, nesta abordagem o esforço necessário durante a mo<strong>de</strong>lagem é menor que na abordagem a priori. A <strong>de</strong>svantagem<<strong>br</strong> />
da utilização da antecipação gerenciada a posteriori fica por conta do esforço necessário para alterar da máquina <strong>de</strong><<strong>br</strong> />
workflow.<<strong>br</strong> />
Tabela1. Comparativo entre os mecanismos <strong>de</strong> gerenciamento apresentados<<strong>br</strong> />
Novos elementos <strong>de</strong><<strong>br</strong> />
mo<strong>de</strong>lagem<<strong>br</strong> />
Manual<<strong>br</strong> />
Gerenciamento a priori<<strong>br</strong> />
Automático<<strong>br</strong> />
Nenhum<<strong>br</strong> />
Necessita atributo <strong>de</strong><<strong>br</strong> />
in<strong>de</strong>tificação <strong>de</strong> tarefas<<strong>br</strong> />
Máquina <strong>de</strong> Workflow Qualquer<<strong>br</strong> />
9<<strong>br</strong> />
Gerenciamento a posteriori<<strong>br</strong> />
Atributo <strong>de</strong> i<strong>de</strong>ntificação<<strong>br</strong> />
Específica para suportar<<strong>br</strong> />
antecipação<<strong>br</strong> />
Implementação extra Nenhuma Pré-<strong>pro</strong>cessador Sim<<strong>br</strong> />
Reuso <strong>de</strong> <strong>de</strong>finição <strong>de</strong><<strong>br</strong> />
<strong>pro</strong>cesso<<strong>br</strong> />
Uma <strong>de</strong>finição para cada caso<<strong>br</strong> />
Uma <strong>de</strong>finição para vários<<strong>br</strong> />
casos: alterando parâmetros<<strong>br</strong> />
Sim. Antecipação é <strong>de</strong> total<<strong>br</strong> />
responsabilida<strong>de</strong> da máquina.<<strong>br</strong> />
Gasto com mo<strong>de</strong>lagem Alto. Necessita prever a antecipação<<strong>br</strong> />
Pequeno. Definições po<strong>de</strong>m<<strong>br</strong> />
ser realizadas na execução<<strong>br</strong> />
Flexibilida<strong>de</strong> Pré-<strong>de</strong>finida. Execução continua rígida Alta
Como resultado da pesquisa obteve-se a tabela 1, que traz um comparativo levando em conta as duas possíveis<<strong>br</strong> />
maneiras <strong>de</strong> <strong>pro</strong>ver antecipação a priori e a antecipação a posteriori. Na tabela as células som<strong>br</strong>eadas representam a<<strong>br</strong> />
melhor alternativa com relação ao item especificado na linha correspon<strong>de</strong>nte.<<strong>br</strong> />
Alguns experimentos estão sendo realizados levando-se em conta a antecipação <strong>de</strong> tarefas, tentando prever o<<strong>br</strong> />
comportamento humano durante tal <strong>pro</strong>cesso. Com certeza o uso <strong>de</strong>sta abordagem trará perdas com relação ao esforço<<strong>br</strong> />
<strong>de</strong> comunicação relativo à troca dos resultados intermediários. O que se preten<strong>de</strong> ter como resultado <strong>de</strong> tais<<strong>br</strong> />
experimentos, é a relação existente entre antecipação e perda com comunicação, po<strong>de</strong>ndo-se prever os casos em que a<<strong>br</strong> />
antecipação traria ganhos com relação ao tempo <strong>de</strong> execução dos <strong>pro</strong>cessos.<<strong>br</strong> />
Agra<strong>de</strong>cimentos<<strong>br</strong> />
Agra<strong>de</strong>cimentos especiais ao Programa <strong>de</strong> Pós Graduação em Computação da Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio Gran<strong>de</strong> do<<strong>br</strong> />
Sul, ao grupo CEMT/SIGHA e ao CNPq, que financiou esta pesquisa.<<strong>br</strong> />
Referências<<strong>br</strong> />
AALST, W.; HEE, K. Workflow Management: Mo<strong>de</strong>ls, Methods and Systems. The MIT Press – Massachussets<<strong>br</strong> />
Institute of Technology, Massachussets, 2002.<<strong>br</strong> />
AIELLO, R. Workflow Performance Evaluation, Tese (Doutorado em Informática) – Università di Salerno, Salerno,<<strong>br</strong> />
2004.<<strong>br</strong> />
CANALS, G.; GODART, C.; MOLLI, P.; MUNIER, M. A criterion to enforce correctness of indirectly coopera-tion<<strong>br</strong> />
applications. Information Sciences: an International Journal, Nova York – EUA, v. 110, n. 3-4, p. 279-302, outu<strong>br</strong>o<<strong>br</strong> />
1998.<<strong>br</strong> />
DOURISH, P.; HOLMES, J.; MACLEAN, A.; MARQVARDSEN, P.; ZBYSLAW, A. Freeflow: Mediating Be-tween<<strong>br</strong> />
Representation and Action in Workflow Systems. In: ACM conference on computer supported cooperative work,<<strong>br</strong> />
1996, Boston, EUA. Proceedings… Nova York: ACM Press, 1996. p. 190-198.<<strong>br</strong> />
FRANÇA, M. Proposta e implementação <strong>de</strong> uma máquina <strong>de</strong> workflow para o <strong>pro</strong>jeto CEMT. 2004. Dissertação<<strong>br</strong> />
(Mestrado em Computação) – Instituto <strong>de</strong> Informática, Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio Gran<strong>de</strong> do Sul, Porto Alegre.<<strong>br</strong> />
2004.<<strong>br</strong> />
GODART, C.; PERRIN, O.; SKAF, H. Coo: a Workflow Operator to Im<strong>pro</strong>ve the Cooperation Mo<strong>de</strong>ling in Vir-tual<<strong>br</strong> />
Processes. In: International Workshop on Research Issues on Data Engineering: Information Technology for Virtual<<strong>br</strong> />
Enterprises, 9., 1999, Sidney, Austrália. Proceedings… Washington: IEEE Computer Society, 1999. p. 126-131.<<strong>br</strong> />
GRIGORI, D. Eléments <strong>de</strong> flexibilité <strong>de</strong>s systèmes <strong>de</strong> workflow pour la définition et l’exécution <strong>de</strong> <strong>pro</strong>cédés<<strong>br</strong> />
coopératifs. 2001. 135f. Tese (Doutorado em Informática) – Université Henri Poincaré, Nancy 1. 2001.<<strong>br</strong> />
GRIGORI, D.; CHAROY, F.; GODART, C. Coo-Flow: A Process Technology to Support Cooperative Processes.<<strong>br</strong> />
International Journal of Software Engineering and Knowledge Engineering, v. 14, n.1, p. 1-19, Janeiro 2004.<<strong>br</strong> />
HAGEN, C.; ALONSO, G.. Beyond the black box: Event-based inter-<strong>pro</strong>cess communication in <strong>pro</strong>cess support<<strong>br</strong> />
systems. In: International Conference on Distributed Computing Systems,19. , Austin, EUA, 1999. Proceedings…IEEE<<strong>br</strong> />
Computer Society, 1999. p. 450–457.<<strong>br</strong> />
JOERIS, G.; HERZOG, O. Towards Object-Oriented Mo<strong>de</strong>ling and Enacting of Processes. TZI-Report 07/98, Center<<strong>br</strong> />
for Computing Technologies, Universida<strong>de</strong> <strong>de</strong> Bremen, Bremen. 1998.<<strong>br</strong> />
JOERIS, G. Defining Flexible Workflow Execution Behaviors. In: Enterprise-Wi<strong>de</strong> and Crossenterprise Work-flow<<strong>br</strong> />
Management: Concepts, Systems, Applications, 1999, Ulm, Alemanha. Proceedings… 1999.<<strong>br</strong> />
JOERIS, G.; HERZOG, O. Towards Flexible and High-Level Mo<strong>de</strong>ling and Enacting of Processes. In: interna-tional<<strong>br</strong> />
conference on advanced information systems engineering (Caise), 11., 1999, Hei<strong>de</strong>lberg, Alemanha. Proceedings…<<strong>br</strong> />
Londres: Springer Verlag, 1999. p. 88-102. (Lecture Notes In Computer Sciences).<<strong>br</strong> />
KRAMLER, G.; RETSCHITZEGGER, W. Towards Intelligent Support of Workflow. In: Americas Conference on<<strong>br</strong> />
Information Systems (AMCIS), 2000, Long Beach, EUA. Proceedings… 2000. p.581-585.<<strong>br</strong> />
LAGUNA, M.; MARKLUND, J. Business Process Mo<strong>de</strong>ling, Simulation, and Design. Prentice Hall, 2004.<<strong>br</strong> />
LIMA, J. V.; QUINT, V.; LAYAIDA, N.; EDELWEISS, N.; ZEVE, C. M. D.; PINHEIRO, M. K.; TELECKEN, T. L.<<strong>br</strong> />
10
The Conception of Cooperative Environment for Editing Multimedia Documents with Workflow Technol-ogy<<strong>br</strong> />
(CEMT). In: PROTEM-CC, 4., 2001, Rio <strong>de</strong> Janeiro. Projects Evaluation Workshop: international coopera-tion:<<strong>br</strong> />
<strong>pro</strong>ceedings. Brasília: CNPQ, 2001. p. 542-560.<<strong>br</strong> />
NICKERSON, J.V. Event-based Workflow and the Management Interface. In: Hawaii International Conference on<<strong>br</strong> />
System Sciences (HICSS), 36., 2003, Big Island, Havaí. Proceedings… Washington: IEEE Computer Society,<<strong>br</strong> />
2003.<<strong>br</strong> />
MYSQL. Reference Manual for Version 4.0.14. Disponível em:<<strong>br</strong> />
.<<strong>br</strong> />
Acesso em: 2004.<<strong>br</strong> />
RAPOSO, A.B.; MAGALHÃES, L.P, RICARTE, I.L.; FUKS, H. Coordination of Collaborative Activities: A<<strong>br</strong> />
Framework for Definition of Tasks Inter<strong>de</strong>pen<strong>de</strong>ncies. In: International Workshop on Groupware (CRIWG), 7.,<<strong>br</strong> />
2001, Darmstadt, Alemanha. Proceedings… 2001.<<strong>br</strong> />
REICHERT, M.; DADAM, P. A<strong>de</strong>ptflex – Supporting Dynamic Changes of Workflow Without Loosing Control.<<strong>br</strong> />
Journal of Intelligent Information System: Special Issue on Workflow Management Systems, v.10, n.2, p. 93-129,<<strong>br</strong> />
março/a<strong>br</strong>il 1998.<<strong>br</strong> />
REICHERT, M.; RINDERLE, S.; DADAM, P. ADEPT Workflow Management System: Flexible Support for<<strong>br</strong> />
Enterprise-Wi<strong>de</strong> Business Processes. In: Business <strong>pro</strong>cess management international conference (BPM), 2003,<<strong>br</strong> />
Eindhoven, Holanda. Proceedings… Berlin: Springer-Verlag, 2003a. p. 370-379.<<strong>br</strong> />
RIBÓ, J.M.; FRANCH, X. A Prece<strong>de</strong>nce-based Ap<strong>pro</strong>ach for Proactive Control in Software Process Mo<strong>de</strong>ling. In:<<strong>br</strong> />
international conference on software engineering and knowledge engineering (SEKE), 14., 2002, Ischia, Itália.<<strong>br</strong> />
Proceedings… Nova York: ACM Press, 2002. p. 457-464.<<strong>br</strong> />
STEINMACHER, I.; LIMA, J.V.; FREITAS, A.V.P. Uma Maneira <strong>de</strong> Antecipar Tarefas em um Sistema Gerenciador<<strong>br</strong> />
<strong>de</strong> Workflow In: Congreso Argentino <strong>de</strong> Ciencias <strong>de</strong> la Computación (CACIC), 2004, Buenos Aires, Argentina.<<strong>br</strong> />
Proceedings... 2004a.<<strong>br</strong> />
STEINMACHER, I.; LIMA, J.V. Melhorando a Cooperação Através da Antecipação <strong>de</strong> Tarefas em Workflow. In:<<strong>br</strong> />
Webmedia and la-web 2004 joint conference – webmedia phd and msc <strong>pro</strong>posals workshop, 2004, Ribeirão Preto.<<strong>br</strong> />
Proceedings… 2004b. p. 209-212.<<strong>br</strong> />
STEINMACHER, I. Estudo e Análise <strong>de</strong> Desempenho da Antecipação <strong>de</strong> Tarefas em <strong>Sistemas</strong> Gerenciadores <strong>de</strong><<strong>br</strong> />
Workflow. 2005, 108 f. Dissertação (Mestrado em Computação) – Instituto <strong>de</strong> Informática, Universida<strong>de</strong> Fe<strong>de</strong>ral<<strong>br</strong> />
do Rio Gran<strong>de</strong> do Sul, Porto Alegre. 2005.<<strong>br</strong> />
TELECKEN, T. Um Estudo so<strong>br</strong>e Mo<strong>de</strong>los Conceituais para Ferramentas <strong>de</strong> Definição <strong>de</strong> Processos <strong>de</strong> Workflow.<<strong>br</strong> />
2004, 118 f. Dissertação (Mestrado em Computação) – Instituto <strong>de</strong> Informática, Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio<<strong>br</strong> />
Gran<strong>de</strong> do Sul, Porto Alegre. 2004.<<strong>br</strong> />
TRAMONTINA, G. B. Análise <strong>de</strong> Problemas <strong>de</strong> Escalonamento <strong>de</strong> Processos em Workflow. 2004. 64 f. Disserta-ção<<strong>br</strong> />
(Mestrado em Computação) – Instituto <strong>de</strong> Computação, Universida<strong>de</strong> Estadual <strong>de</strong> Campinas, Campinas. 2004.<<strong>br</strong> />
W3C. Amaya Home Page. Disponível em: . Acesso em: 2004a.<<strong>br</strong> />
W3C. eXtensible Stylesheet Language (XSL) 1.0 Specification. W3C recommendation. 2001. Disponível em:<<strong>br</strong> />
. Acesso em: 2004c.<<strong>br</strong> />
WFMC. Workflow Management Coalition Interface 1: <strong>pro</strong>cess <strong>de</strong>finition interchange <strong>pro</strong>cess mo<strong>de</strong>l. [S.l.], 1999.(<<strong>br</strong> />
Technical Report WFMC-TC-1016).<<strong>br</strong> />
WFMC. Workflow Management Coalition Home Page. Disponível em: . Acesso em: 2004.<<strong>br</strong> />
11