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.

<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

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

Saved successfully!

Ooh no, something went wrong!