Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus...

10
Padrões para Controle de Fluxo e sua Execução em Grade Alexandre R. Nardi 1 , João E. Ferreira 2 1 Microsoft Brasil 12901, Nações Unidas 04578-000 São Paulo SP Brasil 2 Instituto de Matemática e Estatística Universidade de São Paulo (USP - SP) 1010, Rua do Matão 05508-900 São Paulo SP Brasil [email protected], [email protected] Abstract. Submission of e-Science problems to be solved by computational grids has been focused by recent research. Solutions studied to integrate to grid software, however, allow representing a limited number of control-flow possibilities, forcing the user to write code to lead with several cases. Wil van der Aalst has identified a set of forty-three workflow control-flow patterns, including twenty-seven related to branching, synchronization or multiple instances. This paper proposes integration between workflow and grid management systems, which allow running scientific workflows from a graphical modeling of workflow patterns by the scientist. Resumo. A submissão de problemas de e-Science para execução em grades tem sido alvo de estudos recentes. As soluções estudadas para integração com gerenciadores de grade, contudo, permitem apenas a representação de um número restrito de possibilidades de controle de fluxo, obrigando o usuário a desenvolver código para tratamento de diversos casos. Wil van der Aalst identificou um conjunto de quarenta e três padrões para controle de fluxo, dos quais vinte e sete são referentes a ramificação, sincronização ou múltiplas instâncias. Este trabalho propõe uma integração entre os gerenciadores de workflow e grade, que permita a execução de workflows científicos a partir da modelagem gráfica dos padrões de workflow pelo cientista. 1. Introdução Problemas de e-Science tipicamente podem ser representados como workflows científicos, como ocorre em áreas como astronomia, química e genética. O cientista estabelece hipóteses utilizando algoritmos que resolvam problemas complexos em um fluxo. A execução dos algoritmos pode então ser realizada em uma grade para as unidades que forem paralelizáveis, a fim de obter o resultado em tempo que seja aceitável. Nesse contexto, existem duas necessidades fundamentais no dia-a-dia de cientistas, que não são totalmente cobertas pelas soluções analisadas até o momento [1]: a representação de padrões de workflows de modo completo e preciso; e a abstração da utilização de software de grade. A representação de workflows pode ser realizada de diversas formas, como: redes de Petri coloridas [2]; expressões de álgebra de processos como NPDL [3]; linguagens baseadas em comandos em texto como XPDL; ou workflow graphs [4]. Várias abordagens são analisadas em [5], que descreve vantagens e desvantagens de cada uma. 2007 e-Science Workshop e-Science 19

Transcript of Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus...

Page 1: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Padrões para Controle de Fluxo e sua Execução em Grade

Alexandre R. Nardi1, João E. Ferreira

2

1Microsoft Brasil

12901, Nações Unidas – 04578-000 – São Paulo – SP – Brasil

2Instituto de Matemática e Estatística – Universidade de São Paulo (USP - SP)

1010, Rua do Matão – 05508-900 – São Paulo – SP – Brasil

[email protected], [email protected]

Abstract. Submission of e-Science problems to be solved by computational

grids has been focused by recent research. Solutions studied to integrate to

grid software, however, allow representing a limited number of control-flow

possibilities, forcing the user to write code to lead with several cases. Wil van

der Aalst has identified a set of forty-three workflow control-flow patterns,

including twenty-seven related to branching, synchronization or multiple

instances. This paper proposes integration between workflow and grid

management systems, which allow running scientific workflows from a

graphical modeling of workflow patterns by the scientist.

Resumo. A submissão de problemas de e-Science para execução em grades

tem sido alvo de estudos recentes. As soluções estudadas para integração com

gerenciadores de grade, contudo, permitem apenas a representação de um

número restrito de possibilidades de controle de fluxo, obrigando o usuário a

desenvolver código para tratamento de diversos casos. Wil van der Aalst

identificou um conjunto de quarenta e três padrões para controle de fluxo, dos

quais vinte e sete são referentes a ramificação, sincronização ou múltiplas

instâncias. Este trabalho propõe uma integração entre os gerenciadores de

workflow e grade, que permita a execução de workflows científicos a partir da

modelagem gráfica dos padrões de workflow pelo cientista.

1. Introdução

Problemas de e-Science tipicamente podem ser representados como workflows

científicos, como ocorre em áreas como astronomia, química e genética. O cientista

estabelece hipóteses utilizando algoritmos que resolvam problemas complexos em um

fluxo. A execução dos algoritmos pode então ser realizada em uma grade para as

unidades que forem paralelizáveis, a fim de obter o resultado em tempo que seja

aceitável.

Nesse contexto, existem duas necessidades fundamentais no dia-a-dia de cientistas, que

não são totalmente cobertas pelas soluções analisadas até o momento [1]: a

representação de padrões de workflows de modo completo e preciso; e a abstração da

utilização de software de grade.

A representação de workflows pode ser realizada de diversas formas, como: redes de

Petri coloridas [2]; expressões de álgebra de processos – como NPDL [3]; linguagens

baseadas em comandos em texto – como XPDL; ou workflow graphs [4]. Várias

abordagens são analisadas em [5], que descreve vantagens e desvantagens de cada uma.

2007 e-Science Workshope-Science

19

Page 2: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Aalst emprega redes de Petri coloridas (CPN – Colour Petri Networks) para descrever

os padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e

entendimento. Contudo, por sua característica intuitiva, de simples compreensão, foi

escolhida a representação por meio de workflow graphs, baseado na arquitetura WASA

(Workflow-based architecture to support Scientific Applications), descrita por Medeiros

[6] como uma solução para aplicações científicas baseadas em workflows e utilizada em

produtos comerciais como IBM MQSeries Workflow e InConcert. Quanto à

implementação, foi selecionado o Windows Workflow Foundation (WF) [7], um

gerenciador de workflows gratuito e extensível que permite a representação de

workflows a partir de uma variação de workflow graphs, sobre o qual serão

implementados alguns padrões de controle de fluxo previstos por Wil van der Aalst et al

[1], conforme descrito neste texto.

Para o cientista, a utilização da grade é um recurso para aumentar o desempenho do

processamento, reduzindo o tempo total. Assim, tal tarefa, embora complexa, é

meramente técnica: o cientista deveria ser especialista em sua área e fornecer o

algoritmo específico de sua pesquisa, ao invés de utilizar parte de seu tempo pensando

em execução em grade. Contudo, aqui surge a questão de integração do gerenciador de

workflow com o gerenciador de grade. Os gerenciadores de workflow estudados

possuem estratégia própria para escalonamento de tarefas a serem executadas

paralelamente. Desse modo, deve ser possível estender o escalonador para utilizar

estratégias distintas a fim de atender aos cenários de presença ou ausência de grade.

Esta pesquisa pretende oferecer recursos para cobrir essas duas necessidades, ou seja,

transparência da presença de grade para o cientista e a integração dos gerenciadores de

workflow e de grade. Desse modo, a representação de workflows deve ser realizada sem

que o cientista precise conhecer álgebra de processos ou linguagens de workflow. A

apresentação dos padrões de workflow deve ser feita tal que possam ser utilizados pelo

cientista para representar o problema de sua área de pesquisa de forma mais intuitiva, e

pretende-se abstrair a interação com software de grade, fazendo com que sua presença

seja informada como uma configuração do sistema. Embora tenha sido escolhido o

Alchemi [8], um gerenciador de grade de código aberto, para os testes, a arquitetura

proposta é aplicável a outros gerenciadores por meio de uma interface de integração

baseada em serviços, de sorte a não haver perda de generalidade.

2. Trabalhos Relacionados

Desde a publicação dos padrões de workflow por Aalst [9], citados em diversos

trabalhos acadêmicos, a análise de ferramentas de workflow passou a considerar como

critério de seleção a implementação ou não dos padrões.

No entanto, poucas publicações, como Pautasso [10], descrevem o uso de padrões em

grades. Pautasso propõe um conjunto de padrões para paralelização e fluxo de dados

sem detalhar combinações de possibilidades como bloqueio e cancelamento. Não é,

ainda, abordada a comunicação entre os gerenciadores de workflow e de grade.

Prodan [11] propõe uma abordagem para escalonamento dinâmico de workflows por

meio de um arquivo com código em Java sobre o Globus Toolkit [12]. Contudo, não

trata os padrões de controle de fluxo.

2007 e-Science Workshope-Science

20

Page 3: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Condor DAGMan [13] permite a execução de workflows em grades, podendo ser

complementado por soluções como o Globus para aumento do poder computacional. No

entanto, esta abordagem não trata de modo transparente ao usuário construções

complexas como diversos padrões de controle de fluxo, ficando essa tarefa por conta do

usuário, que escreve um arquivo de descrição a ser submetido ao Condor. O mesmo

ocorre com Martlet [14], que abstrai a execução de workflows em grades sem

considerar os padrões de workflow.

3. Padrões para Controle de Fluxo Aplicáveis a Grades

Dos quarenta e três padrões descritos por Aalst [1], vinte e sete se relacionam a

ramificação, sincronização ou múltiplas instâncias, podendo se aproveitar da execução

em grades. Por suas similaridades, este trabalho se propõe a tratar os seguintes:

(WCP-9) Discriminador Estruturado

(WCP-28) Discriminador com Bloqueio

(WCP-29) Discriminador com Cancelamento

(WCP-30) Junção Parcial Estruturada

(WCP-31) Junção Parcial com Bloqueio

(WCP-32) Junção Parcial com Cancelamento

(WCP-34) Junção Parcial Estática para Múltiplas Instâncias

(WCP-35) Cancelamento de Junção Parcial de Múltiplas Instâncias

(WCP-36) Junção Parcial Dinâmica para Múltiplas Instâncias

O processo de modelagem por parte do cientista deve abstrair quaisquer aspectos

intrínsecos da representação formal dos padrões. Aalst procura representar cada padrão

em Redes de Petri Coloridas (CPN), de modo a simplificar sua compreensão. Por

exemplo, a Figura 1 apresenta uma representação do padrão “(WCP-9) Discriminador

Estruturado”, apropriada para compreensão do padrão e seu funcionamento.

Figura 1: representação do padrão "Discriminador Estruturado" usando CPN (Fonte: [1])

2007 e-Science Workshope-Science

21

Page 4: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Para a modelagem de seu fluxo, o cientista necessita apenas uma construção em que o

comportamento esteja identificado pelo nome ou código do padrão, como na Figura 2.

O gerenciador de workflows que será utilizado nos testes permite a construção de

elementos visuais que são funcionalmente equivalentes.

Figura 2: construção a ser utilizada pelo cientista

3.1. Uma Variação em Padrões de Paralelização

No tocante à implementação, a presença de número elevado de padrões pode ser

confusa e deixar de atender ao requisito de simplicidade de utilização por parte do

usuário. Segundo Aalst [2], diversos padrões são especializações de outros. Dessa

forma, no modelo físico podem ser combinados e oferecerem seu comportamento

associado a pré-condições que dependam de parâmetros de entrada.

A fim de facilitar a implementação, os padrões referentes a paralelização, destacados na

listagem da seção 3. podem ser combinados no modelo apresentado na Figura 3. Desse

modo, pode-se propor um único algoritmo que implemente os casos previstos por Aalst

e outros não previstos, em decorrência da combinação. Denominamos esse modelo de

“padrão Junção Combinada”.

Para auxiliar na comparação com os padrões descritos por Aalst, foi decidido

representar aqui também utilizando CPN. Contudo, workflow graphs permitem que

cientistas de outras áreas representem seus fluxos de modo mais flexível [5], sendo mais

apropriados para a implementação.

i1

im

WCP-9 o1

c

c

c

CID

CID

CID

2007 e-Science Workshope-Science

22

Page 5: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Figura 3: junção combinada

O comportamento da junção combinada é determinado pelos parâmetros de entrada:

Quando a entrada for a tupla (m,A,n,b,din,canc), serão executadas m instâncias

da atividade A; n indica o número de atividades que deve ser completado para a

produção da saída em o1; b indica se o padrão deve se comportar de modo

bloqueante; din determina se é possível acrescentar novas instâncias

dinamicamente durante a execução; e canc indica se as demais atividades, após n

terem sido completadas, devem ou não ser canceladas;

Quando a entrada for a tupla ([A1,...,Am],n,b,din,canc), a execução das

atividades A1,...,Am será realizada em paralelo, com n, b, din e canc como

acima.

As tabelas a seguir ilustram possíveis valores de entrada e o padrão ao qual a

combinação corresponde.

Tabela 1: padrões de junção para múltiplas instâncias. Entrada com a tupla (m,A,n,b,din,canc), com m>1

Padrão A n b din canc

WCP-34 + 1<n<=m não não não

WCP-35 + 1<n<=m não não sim

WCP-36 + 1<n<=m não sim não

i1

início

A1

p’1

join

p’2

[]

completo

o1

ativo

contador

pronto

inicia

instância

desabilita

criação de

instância

Permite

novas instâncias

c

m,A,n,b,din,canc

[A1,…,Am],n,b,din,canc x’c

(x=m or x=n)

and

[not(elt(c,pc))]

c

(m-x)’c

c

Initcases()

c

(c,m+1)

(c,m)

c

c

c

[din]

c

(c,m)

(c,m)

c

c

c

c

Amc

c

cc

c

pi

Aic

c

pi1

t1c

not(b) or

[not(elt((c,1),cs))]

pim

tmc

not(b) or

[not(elt((c,m),cs))]

p1

pm

c

c

entradas

utilizadas(c,1)::cs

(c,m)::cs

cs

cs

c

(c,m)

delcid(c,cs)

cs

pc(c,x)

c::pc

(c,x)

c::pc del(c,pc)

Si

Sm

S1

c[canc]

pc

[canc]

c[canc]

pc[canc]

c

[canc]

pc

[canc]

c

c

c

2007 e-Science Workshope-Science

23

Page 6: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Padrão A n b din canc

P1 + 1 não não não

P2 + 1 não não sim

P3 + 1 não sim não

P4 + 1 não sim sim

P5 + 1 sim não não

P6 + 1 sim não sim

P7 + 1 sim sim não

P8 + 1 sim sim sim

P9 + 1<n<=m não sim sim

P10 + 1<n<=m sim não não

P11 + 1<n<=m sim não sim

P12 + 1<n<=m sim sim não

P13 + 1<n<=m sim sim sim

o

Tabela 2: padrões de junção para atividades distintas. Entrada com a tupla ([A1,...Am],n,b,din,canc), com m>1

Padrão n b din canc

WCP-9 1 não não não

WCP-28 1 sim não não

WCP-29 1 não não sim

WCP-30 1<n<=m não não não

WCP-31 1<n<=m sim não não

WCP-32 1<n<=m não não sim

P14 1 sim não sim

P15 1 não sim não

P16 1 sim sim não

P17 1 não sim sim

P18 1 sim sim sim

P19 1<n<=m sim não sim

P20 1<n<=m não sim não

P21 1<n<=m sim sim não

P22 1<n<=m não sim sim

2007 e-Science Workshope-Science

24

Page 7: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Padrão n b din canc

P23 1<n<=m sim sim sim

Vale notar que, dos trinta e dois possíveis casos, vinte e três não foram a priori

mapeados por Aalst [1]. Contudo, cada um possui especificidades que podem ser

empregadas, como nos exemplos a seguir:

P1: discriminador para múltiplas instâncias;

P2: discriminador com cancelamento para múltiplas instâncias;

P3: discriminador dinâmico para múltiplas instâncias;

P4: discriminador dinâmico com cancelamento para múltiplas instâncias;

P5: discriminador com bloqueio para múltiplas instâncias;

P6: discriminador com bloqueio e cancelamento para múltiplas instâncias;

P7: discriminador dinâmico com bloqueio para múltiplas instâncias;

P8: discriminador dinâmico com bloqueio e cancelamento para múltiplas instâncias;

P9: junção parcial dinâmica com cancelamento para múltiplas instâncias;

P10: junção parcial estática com bloqueio para múltiplas instâncias;

P11: junção parcial estática com bloqueio e cancelamento para múltiplas instâncias;

P12: junção parcial dinâmica com bloqueio para múltiplas instâncias;

P13: junção parcial dinâmica com bloqueio e cancelamento para múltiplas instâncias;

P14: discriminador com bloqueio e cancelamento;

P15: discriminador dinâmico;

P16: discriminador dinâmico com bloqueio;

P17: discriminador dinâmico com cancelamento;

P18: discriminador dinâmico com bloqueio e cancelamento;

P19: junção parcial estática com bloqueio e cancelamento;

P20: junção parcial dinâmica;

P21: junção parcial dinâmica com bloqueio;

P22: junção parcial dinâmica com cancelamento;

P23: junção parcial dinâmica com bloqueio e cancelamento.

4. Comunicação entre os Gerenciadores do Workflow e da Grade

No caso de grade, Aalst não aborda o assunto, uma vez que não percorre elementos de

execução. Na implementação aqui sugerida, é preciso descrever em que momento e de

que forma pode haver interação entre o gerenciador de execução de workflow e o

gerenciador de execução da grade, e como se dá a comunicação entre eles.

Em uma solução orientada a serviços, o gerenciador do workflow deve se comunicar

com o gerenciador da grade de modo fracamente acoplado. Para isso, a arquitetura

proposta inclui uma camada intermediária, um middleware denominado Integrador

Workflow-Grade, ou IWG, para realizar tal comunicação.

O papel do IWG é oferecer uma interface a ser utilizada pelo gerenciador do workflow

como alternativa ao modelo de execução paralela deste quando a grade estiver presente.

2007 e-Science Workshope-Science

25

Page 8: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

Ao mesmo tempo, o IWG utiliza agente específico para o gerenciador de grade que

estiver sendo utilizado. A Figura 4 ilustra os elementos que compõem a solução.

Figura 4: visão geral dos elementos da solução

O processo de execução, desde a representação de workflows e dos padrões em si até

sua submissão à grade e coleta de resultados, é:

A partir de uma representação gráfica utilizando-se workflow graphs, o cientista

pode definir a aplicação de e-Science utilizando os padrões, implementados e

expostos como extensão ao gerenciador de workflows;

O gerenciador de workflows então utiliza o IWG para decidir se deve utilizar

seu escalonador padrão ou se deve acionar o gerenciador da grade;

O gerenciador da grade, uma vez acionado, distribui a aplicação a ser executada

nos nós, através dos agentes de grade;

Em cada nó, pode haver um sub-workflow a ser executado, e então o processo se

repete localmente, sendo que o IWG novamente utiliza o gerenciador da grade,

que pode estar em outra máquina, para redistribuir o processamento;

Quando o processamento em um nó estiver concluído, o gerenciador da grade

informa o IWG do nó chamador;

O IWG então repassa a conclusão da tarefa ao gerenciador de workflow, e a

execução continua desse modo até que o workflow inicial seja concluído.

4.1. Um Exemplo – Simulações Climáticas com o Projeto GENIE

Existem diversos cenários para ilustrar a utilização de workflows e grades, seja em e-

Science ou na indústria. Os casos que envolvem conjuntos de simulações em múltiplas

Gerenciador da

Grade

Aplicação de

eScience

Gerenciador de

Workflow

IWGAgente de Grade

Gerenciador de

Workflow

IWG

Agente de Grade

Gerenciador de

Workflow

IWG

2007 e-Science Workshope-Science

26

Page 9: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

etapas são apropriados para este fim, pois eles apresentam características de workflow e

de grade.

O Projeto GENIE (Grid-ENabled Integrated Earth) [15] utiliza grades para realização de

simulações climáticas a partir da entrada de variações em fatores como, por exemplo,

emissão de dióxido de carbono e redução na camada de ozônio. Tais simulações

utilizam algoritmos de cálculo complexos que podem se aproveitar da presença de

grade. Por exemplo, determinação de qual a influência das emissões de dióxido de

carbono nas correntes marítimas do Oceano Atlântico. É sabido que a concentração de

dióxido de carbono na atmosfera afeta a temperatura do planeta, com impacto no

derretimento de gelo nos pólos. Esses fatores podem causar variação de densidade na

água dos oceanos, que depende diretamente da temperatura e da salinidade.

Outros elementos, como extensão de terra, cobertura de gelo, atmosfera, também são

influenciados por mudanças climáticas, e a realização das simulações pode ser dividida

em regiões para avaliar impactos localizados, como o caso da corrente marítima ou a

evolução das regiões de florestas.

Diversos workflows podem ser definidos, dados os vários cenários de simulação, como

o exemplo acima, e permitem a utilização de padrões e dos recursos da grade. Com isso,

é possível validar a implementação dos padrões para controle de fluxo e a integração

entre os gerenciadores de workflow e da grade.

5. Conclusão

Existem vários trabalhos científicos voltados a soluções de workflows em grades e

sobre a implementação ou não de padrões de controle de fluxo por produtos comerciais

ou de código aberto. Todavia, a relação entre os gerenciadores de workflow e de grade

não foi explorada de modo a permitir que o cientista defina seus fluxos com a utilização

de padrões para paralelização de modo a tornar transparente a existência ou não da

grade.

Foi realizada a implantação do Alchemi, solução para gerenciamento de grade, em

quatrocentas e vinte máquinas nas instalações do SENAC/SP. Sobre esta base será

construída e testada a solução descrita neste texto. O resultado esperado inclui a redução

da complexidade da definição de workflows pelo cientista e a integração dos

gerenciadores de workflow e grade de modo transparente ao cientista.

Referências 1. Russell, Nick, et al. Workflow Control-Flow Patterns - A Revised View. s.l. : BPM Center

Report, 2006. BPM-06-22.

2. Aalst, Wil M. P. van der e Mulyar, Nataliya. Workflow Patterns. [Online] 2005. [Citado em:

19 de 06 de 2007.] http://www.workflowpatterns.com/documentation/index.php.

3. Braghetto, Kelly Rosa, Ferreira, João Eduardo e Pu, Calton. Using Control-Flow Patterns for

Specifying Business Processes in Cooperative Environments. Seoul : ACM, 2007. SAC. 1-59593-

480-4.

2007 e-Science Workshope-Science

27

Page 10: Padrões para Controle de Fluxo e sua Execução … padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua característica

4. Weske, Mathias. Workflow Management Systems: Formal Foundation, Conceptual Design,

Implementation Aspects. Habilitation Thesis, Universität Münster . 2000.

5. Aalst, Wil M. P. van der, Weske, Mathias e Wirtz, Guido. Advanced Topics in Workflow

Management: Issues, Requirements, and Solutions. 3, Austin : s.n., 2003, Journal of Integrated

Design and Process Science, Vol. 7.

6. Medeiros, Claudia Bauzer, et al. Workflow Management in Geoprocessing Applications.

Washington : ACM, 1998. Proceedings of the 6th ACM international symposium on Advances

in geographic information systems GIS '98 . 1-58113-115-119.

7. Microsoft Corporation. Windows Workflow Foundation. MSDN Library. [Online] 2007.

http://msdn2.microsoft.com/en-us/library/ms735967.aspx.

8. Buyya, Rajkumar e al., et. Alchemi - .NET Grid Computing Framework. Alchemi. [Online] The

University of Melbourne, 2006. [Citado em: 19 de 06 de 2007.] http://www.alchemi.net/.

9. Aalst, Wil M. P. van der, et al. Workflow Patterns. s.l. : Springer Neitherlands, 2003, Vol. 14,

pp. 5-51. ISSN 0926-8782 (Print) 1573-7578 (Online).

10. Pautasso, Cesare e Alonso, Gustavo. Parallel Computing Patterns for Grid Workflows.

Paris : IEEE, 2006. HPDC 2006.

11. Prodan, Radu e Fahringer, Thomas. Dynamic Scheduling of Scientific Workflow

Applications on the Grid: A Case Study. Santa Fe, New Mexico - USA : ACM, 2005. ACM

Symposium on Applied Computing. p. 8.

12. University of Chicago. The Globus Toolkit Homepage. The Globus Toolkit. [Online] 2007.

[Citado em: 06 de 08 de 2007.] http://www.globus.org/toolkit/.

13. The University of Wisconsin Madison. Condor Project Homepage. The University of

Wisconsin Madison. [Online] 2007. [Citado em: 04 de 07 de 2007.]

http://www.cs.wisc.edu/condor/.

14. Goodman, Daniel. Introduction and Evaluation of Martlet, a Scientific Workflow Language

for Abstracted Parallelisation. Banff, Alberta - Canada : ACM, 2007. International World Wide

Web Conference. p. 10.

15. Prize, Andrew R., et al. Collaborative study of GENIEfy Earth System Models using scripted

database workflows in a Grid-enabled PSE. s.l. : National e-Science Centre, 2006. Proceedings

of the UK e-Science All Hands Conference 2006. pp. 574-582. 0-9553988-0-0.

16. Eder, Johann, Gruber, Wolfgang e Pichler, Horst. Transforming Workflow Graphs.

2007 e-Science Workshope-Science

28