e-siene 2007 e-siene Workshop Padrões para Controle de Fluxo e sua Exeução em Grade Alexandre R. Nardi 1, João E. Ferreira 2 1 Mirosoft Brasil 12901, Nações Unidas 04578-000 São Paulo SP Brasil 2 Instituto de Matemátia e Estatístia Universidade de São Paulo (USP - SP) 1010, Rua do Matão 05508-900 São Paulo SP Brasil alexandre.nardi@mirosoft.om, jef@ime.usp.br Abstrat. Submission of e-siene problems to be solved by omputational grids has been foused by reent researh. Solutions studied to integrate to grid software, however, allow representing a limited number of ontrol-flow possibilities, foring the user to write ode to lead with several ases. Wil van der Aalst has identified a set of forty-three workflow ontrol-flow patterns, inluding twenty-seven related to branhing, synhronization or multiple instanes. This paper proposes integration between workflow and grid management systems, whih allow running sientifi workflows from a graphial modeling of workflow patterns by the sientist. Resumo. A submissão de problemas de e-siene para exeução em grades tem sido alvo de estudos reentes. As soluções estudadas para integração om gereniadores de grade, ontudo, permitem apenas a representação de um número restrito de possibilidades de ontrole de fluxo, obrigando o usuário a desenvolver ódigo para tratamento de diversos asos. Wil van der Aalst identifiou um onjunto de quarenta e três padrões para ontrole de fluxo, dos quais vinte e sete são referentes a ramifiação, sinronização ou múltiplas instânias. Este trabalho propõe uma integração entre os gereniadores de workflow e grade, que permita a exeução de workflows ientífios a partir da modelagem gráfia dos padrões de workflow pelo ientista. 1. Introdução Problemas de e-siene tipiamente podem ser representados omo workflows ientífios, omo oorre em áreas omo astronomia, químia e genétia. O ientista estabelee hipóteses utilizando algoritmos que resolvam problemas omplexos em um fluxo. A exeuçã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 aeitável. Nesse ontexto, existem duas neessidades fundamentais no dia-a-dia de ientistas, que não são totalmente obertas pelas soluções analisadas até o momento [1]: a representação de padrões de workflows de modo ompleto e preiso; e a abstração da utilização de software de grade. A representação de workflows pode ser realizada de diversas formas, omo: redes de Petri oloridas [2]; expressões de álgebra de proessos omo NPDL [3]; linguagens baseadas em omandos em texto omo XPDL; ou workflow graphs [4]. Várias abordagens são analisadas em [5], que desreve vantagens e desvantagens de ada uma. 19
e-siene 2007 e-siene Workshop Aalst emprega redes de Petri oloridas (CPN Colour Petri Networks) para desrever os padrões, o que se mostra adequado para seus propósitos, ou seja, visualização e entendimento. Contudo, por sua araterístia intuitiva, de simples ompreensão, foi esolhida a representação por meio de workflow graphs, baseado na arquitetura WASA (Workflow-based arhiteture to support Sientifi Appliations), desrita por Medeiros [6] omo uma solução para apliações ientífias baseadas em workflows e utilizada em produtos omeriais omo IBM MQSeries Workflow e InConert. Quanto à implementação, foi seleionado o Windows Workflow Foundation (WF) [7], um gereniador 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 ontrole de fluxo previstos por Wil van der Aalst et al [1], onforme desrito neste texto. Para o ientista, a utilização da grade é um reurso para aumentar o desempenho do proessamento, reduzindo o tempo total. Assim, tal tarefa, embora omplexa, é meramente ténia: o ientista deveria ser espeialista em sua área e forneer o algoritmo espeífio de sua pesquisa, ao invés de utilizar parte de seu tempo pensando em exeução em grade. Contudo, aqui surge a questão de integração do gereniador de workflow om o gereniador de grade. Os gereniadores de workflow estudados possuem estratégia própria para esalonamento de tarefas a serem exeutadas paralelamente. Desse modo, deve ser possível estender o esalonador para utilizar estratégias distintas a fim de atender aos enários de presença ou ausênia de grade. Esta pesquisa pretende ofereer reursos para obrir essas duas neessidades, ou seja, transparênia da presença de grade para o ientista e a integração dos gereniadores de workflow e de grade. Desse modo, a representação de workflows deve ser realizada sem que o ientista preise onheer álgebra de proessos ou linguagens de workflow. A apresentação dos padrões de workflow deve ser feita tal que possam ser utilizados pelo ientista para representar o problema de sua área de pesquisa de forma mais intuitiva, e pretende-se abstrair a interação om software de grade, fazendo om que sua presença seja informada omo uma onfiguração do sistema. Embora tenha sido esolhido o Alhemi [8], um gereniador de grade de ódigo aberto, para os testes, a arquitetura proposta é apliável a outros gereniadores por meio de uma interfae de integração baseada em serviços, de sorte a não haver perda de generalidade. 2. Trabalhos Relaionados Desde a publiação dos padrões de workflow por Aalst [9], itados em diversos trabalhos aadêmios, a análise de ferramentas de workflow passou a onsiderar omo ritério de seleção a implementação ou não dos padrões. No entanto, pouas publiações, omo Pautasso [10], desrevem o uso de padrões em grades. Pautasso propõe um onjunto de padrões para paralelização e fluxo de dados sem detalhar ombinações de possibilidades omo bloqueio e anelamento. Não é, ainda, abordada a omuniação entre os gereniadores de workflow e de grade. Prodan [11] propõe uma abordagem para esalonamento dinâmio de workflows por meio de um arquivo om ódigo em Java sobre o Globus Toolkit [12]. Contudo, não trata os padrões de ontrole de fluxo. 20
e-siene 2007 e-siene Workshop Condor DAGMan [13] permite a exeução de workflows em grades, podendo ser omplementado por soluções omo o Globus para aumento do poder omputaional. No entanto, esta abordagem não trata de modo transparente ao usuário onstruções omplexas omo diversos padrões de ontrole de fluxo, fiando essa tarefa por onta do usuário, que esreve um arquivo de desrição a ser submetido ao Condor. O mesmo oorre om Martlet [14], que abstrai a exeução de workflows em grades sem onsiderar os padrões de workflow. 3. Padrões para Controle de Fluxo Apliáveis a Grades Dos quarenta e três padrões desritos por Aalst [1], vinte e sete se relaionam a ramifiação, sinronização ou múltiplas instânias, podendo se aproveitar da exeução em grades. Por suas similaridades, este trabalho se propõe a tratar os seguintes: (WCP-9) Disriminador Estruturado (WCP-28) Disriminador om Bloqueio (WCP-29) Disriminador om Canelamento (WCP-30) Junção Parial Estruturada (WCP-31) Junção Parial om Bloqueio (WCP-32) Junção Parial om Canelamento (WCP-34) Junção Parial Estátia para Múltiplas Instânias (WCP-35) Canelamento de Junção Parial de Múltiplas Instânias (WCP-36) Junção Parial Dinâmia para Múltiplas Instânias O proesso de modelagem por parte do ientista deve abstrair quaisquer aspetos intrínseos da representação formal dos padrões. Aalst proura representar ada padrão em Redes de Petri Coloridas (CPN), de modo a simplifiar sua ompreensão. Por exemplo, a Figura 1 apresenta uma representação do padrão (WCP-9) Disriminador Estruturado, apropriada para ompreensão do padrão e seu funionamento. Figura 1: representação do padrão "Disriminador Estruturado" usando CPN (Fonte: [1]) 21
e-siene 2007 e-siene Workshop Para a modelagem de seu fluxo, o ientista neessita apenas uma onstrução em que o omportamento esteja identifiado pelo nome ou ódigo do padrão, omo na Figura 2. O gereniador de workflows que será utilizado nos testes permite a onstrução de elementos visuais que são funionalmente equivalentes. CID i1 WCP-9 o1 im CID CID Figura 2: onstrução a ser utilizada pelo ientista 3.1. Uma Variação em Padrões de Paralelização No toante à implementação, a presença de número elevado de padrões pode ser onfusa e deixar de atender ao requisito de simpliidade de utilização por parte do usuário. Segundo Aalst [2], diversos padrões são espeializações de outros. Dessa forma, no modelo físio podem ser ombinados e ofereerem seu omportamento assoiado a pré-ondições que dependam de parâmetros de entrada. A fim de failitar a implementação, os padrões referentes a paralelização, destaados na listagem da seção 3. podem ser ombinados no modelo apresentado na Figura 3. Desse modo, pode-se propor um únio algoritmo que implemente os asos previstos por Aalst e outros não previstos, em deorrênia da ombinação. Denominamos esse modelo de padrão Junção Combinada. Para auxiliar na omparação om os padrões desritos por Aalst, foi deidido representar aqui também utilizando CPN. Contudo, workflow graphs permitem que ientistas de outras áreas representem seus fluxos de modo mais flexível [5], sendo mais apropriados para a implementação. 22
e-siene 2007 e-siene Workshop ativo i1 m,a,n,b,din,an [A1,,Am],n,b,din,an iníio pi1 not(b) or [not(elt((,1),s))] (,1)::s t1 (,m)::s not(b) or [not(elt((,m),s))] tm pim s s p1 entradas utilizadas pm S1 A1 Am Sm [an] p [an] p 1 (x=m or x=n) and [not(elt(,p))] x join o1 pi Ai [an] p [an] (,x) ::p p [an] p [din] (,m) delid(,s) s Si [an] (,m) (m-x) p 2 [] (,x) ::p del(,p) iniia instânia (,m+1) (,m) ontador (,m) ompleto Permite novas instânias pronto Initases() desabilita riação de instânia Figura 3: junção ombinada O omportamento da junção ombinada é determinado pelos parâmetros de entrada: Quando a entrada for a tupla (m,a,n,b,din,an), serão exeutadas m instânias da atividade A; n india o número de atividades que deve ser ompletado para a produção da saída em o1; b india se o padrão deve se omportar de modo bloqueante; din determina se é possível aresentar novas instânias dinamiamente durante a exeução; e an india se as demais atividades, após n terem sido ompletadas, devem ou não ser aneladas; Quando a entrada for a tupla ([A1,...,Am],n,b,din,an), a exeução das atividades A1,...,Am será realizada em paralelo, om n, b, din e an omo aima. As tabelas a seguir ilustram possíveis valores de entrada e o padrão ao qual a ombinação orresponde. Tabela 1: padrões de junção para múltiplas instânias. Entrada om a tupla (m,a,n,b,din,an), om m>1 Padrão A n b din an 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 23
e-siene 2007 e-siene Workshop Padrão A n b din an 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 om a tupla ([A1,...Am],n,b,din,an), om m>1 Padrão n b din an 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 24
e-siene 2007 e-siene Workshop Padrão n b din an P23 1<n<=m sim sim sim Vale notar que, dos trinta e dois possíveis asos, vinte e três não foram a priori mapeados por Aalst [1]. Contudo, ada um possui espeifiidades que podem ser empregadas, omo nos exemplos a seguir: P1: disriminador para múltiplas instânias; P2: disriminador om anelamento para múltiplas instânias; P3: disriminador dinâmio para múltiplas instânias; P4: disriminador dinâmio om anelamento para múltiplas instânias; P5: disriminador om bloqueio para múltiplas instânias; P6: disriminador om bloqueio e anelamento para múltiplas instânias; P7: disriminador dinâmio om bloqueio para múltiplas instânias; P8: disriminador dinâmio om bloqueio e anelamento para múltiplas instânias; P9: junção parial dinâmia om anelamento para múltiplas instânias; P10: junção parial estátia om bloqueio para múltiplas instânias; P11: junção parial estátia om bloqueio e anelamento para múltiplas instânias; P12: junção parial dinâmia om bloqueio para múltiplas instânias; P13: junção parial dinâmia om bloqueio e anelamento para múltiplas instânias; P14: disriminador om bloqueio e anelamento; P15: disriminador dinâmio; P16: disriminador dinâmio om bloqueio; P17: disriminador dinâmio om anelamento; P18: disriminador dinâmio om bloqueio e anelamento; P19: junção parial estátia om bloqueio e anelamento; P20: junção parial dinâmia; P21: junção parial dinâmia om bloqueio; P22: junção parial dinâmia om anelamento; P23: junção parial dinâmia om bloqueio e anelamento. 4. Comuniação entre os Gereniadores do Workflow e da Grade No aso de grade, Aalst não aborda o assunto, uma vez que não perorre elementos de exeução. Na implementação aqui sugerida, é preiso desrever em que momento e de que forma pode haver interação entre o gereniador de exeução de workflow e o gereniador de exeução da grade, e omo se dá a omuniação entre eles. Em uma solução orientada a serviços, o gereniador do workflow deve se omuniar om o gereniador da grade de modo fraamente aoplado. Para isso, a arquitetura proposta inlui uma amada intermediária, um middleware denominado Integrador Workflow-Grade, ou IWG, para realizar tal omuniação. O papel do IWG é ofereer uma interfae a ser utilizada pelo gereniador do workflow omo alternativa ao modelo de exeução paralela deste quando a grade estiver presente. 25
e-siene 2007 e-siene Workshop Ao mesmo tempo, o IWG utiliza agente espeífio para o gereniador de grade que estiver sendo utilizado. A Figura 4 ilustra os elementos que ompõem a solução. Agente de Grade Gereniador de Workflow Apliação de esiene IWG Gereniador de Workflow Gereniador da Grade IWG Agente de Grade Gereniador de Workflow IWG Figura 4: visão geral dos elementos da solução O proesso de exeução, desde a representação de workflows e dos padrões em si até sua submissão à grade e oleta de resultados, é: A partir de uma representação gráfia utilizando-se workflow graphs, o ientista pode definir a apliação de e-siene utilizando os padrões, implementados e expostos omo extensão ao gereniador de workflows; O gereniador de workflows então utiliza o IWG para deidir se deve utilizar seu esalonador padrão ou se deve aionar o gereniador da grade; O gereniador da grade, uma vez aionado, distribui a apliação a ser exeutada nos nós, através dos agentes de grade; Em ada nó, pode haver um sub-workflow a ser exeutado, e então o proesso se repete loalmente, sendo que o IWG novamente utiliza o gereniador da grade, que pode estar em outra máquina, para redistribuir o proessamento; Quando o proessamento em um nó estiver onluído, o gereniador da grade informa o IWG do nó hamador; O IWG então repassa a onlusão da tarefa ao gereniador de workflow, e a exeução ontinua desse modo até que o workflow iniial seja onluído. 4.1. Um Exemplo Simulações Climátias om o Projeto GENIE Existem diversos enários para ilustrar a utilização de workflows e grades, seja em e- Siene ou na indústria. Os asos que envolvem onjuntos de simulações em múltiplas 26
e-siene 2007 e-siene Workshop etapas são apropriados para este fim, pois eles apresentam araterístias de workflow e de grade. O Projeto GENIE (Grid-ENabled Integrated Earth) [15] utiliza grades para realização de simulações limátias a partir da entrada de variações em fatores omo, por exemplo, emissão de dióxido de arbono e redução na amada de ozônio. Tais simulações utilizam algoritmos de álulo omplexos que podem se aproveitar da presença de grade. Por exemplo, determinação de qual a influênia das emissões de dióxido de arbono nas orrentes marítimas do Oeano Atlântio. É sabido que a onentração de dióxido de arbono na atmosfera afeta a temperatura do planeta, om impato no derretimento de gelo nos pólos. Esses fatores podem ausar variação de densidade na água dos oeanos, que depende diretamente da temperatura e da salinidade. Outros elementos, omo extensão de terra, obertura de gelo, atmosfera, também são influeniados por mudanças limátias, e a realização das simulações pode ser dividida em regiões para avaliar impatos loalizados, omo o aso da orrente marítima ou a evolução das regiões de florestas. Diversos workflows podem ser definidos, dados os vários enários de simulação, omo o exemplo aima, e permitem a utilização de padrões e dos reursos da grade. Com isso, é possível validar a implementação dos padrões para ontrole de fluxo e a integração entre os gereniadores de workflow e da grade. 5. Conlusão Existem vários trabalhos ientífios voltados a soluções de workflows em grades e sobre a implementação ou não de padrões de ontrole de fluxo por produtos omeriais ou de ódigo aberto. Todavia, a relação entre os gereniadores de workflow e de grade não foi explorada de modo a permitir que o ientista defina seus fluxos om a utilização de padrões para paralelização de modo a tornar transparente a existênia ou não da grade. Foi realizada a implantação do Alhemi, solução para gereniamento de grade, em quatroentas e vinte máquinas nas instalações do SENAC/SP. Sobre esta base será onstruída e testada a solução desrita neste texto. O resultado esperado inlui a redução da omplexidade da definição de workflows pelo ientista e a integração dos gereniadores de workflow e grade de modo transparente ao ientista. Referênias 1. Russell, Nik, 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.om/doumentation/index.php. 3. Braghetto, Kelly Rosa, Ferreira, João Eduardo e Pu, Calton. Using Control-Flow Patterns for Speifying Business Proesses in Cooperative Environments. Seoul : ACM, 2007. SAC. 1-59593- 480-4. 27
e-siene 2007 e-siene Workshop 4. Weske, Mathias. Workflow Management Systems: Formal Foundation, Coneptual Design, Implementation Aspets. Habilitation Thesis, Universität Münster. 2000. 5. Aalst, Wil M. P. van der, Weske, Mathias e Wirtz, Guido. Advaned Topis in Workflow Management: Issues, Requirements, and Solutions. 3, Austin : s.n., 2003, Journal of Integrated Design and Proess Siene, Vol. 7. 6. Medeiros, Claudia Bauzer, et al. Workflow Management in Geoproessing Appliations. Washington : ACM, 1998. Proeedings of the 6th ACM international symposium on Advanes in geographi information systems GIS '98. 1-58113-115-119. 7. Mirosoft Corporation. Windows Workflow Foundation. MSDN Library. [Online] 2007. http://msdn2.mirosoft.om/en-us/library/ms735967.aspx. 8. Buyya, Rajkumar e al., et. Alhemi -.NET Grid Computing Framework. Alhemi. [Online] The University of Melbourne, 2006. [Citado em: 19 de 06 de 2007.] http://www.alhemi.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. Dynami Sheduling of Sientifi Workflow Appliations on the Grid: A Case Study. Santa Fe, New Mexio - USA : ACM, 2005. ACM Symposium on Applied Computing. p. 8. 12. University of Chiago. 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 Wisonsin Madison. Condor Projet Homepage. The University of Wisonsin Madison. [Online] 2007. [Citado em: 04 de 07 de 2007.] http://www.s.wis.edu/ondor/. 14. Goodman, Daniel. Introdution and Evaluation of Martlet, a Sientifi Workflow Language for Abstrated Parallelisation. Banff, Alberta - Canada : ACM, 2007. International World Wide Web Conferene. p. 10. 15. Prize, Andrew R., et al. Collaborative study of GENIEfy Earth System Models using sripted database workflows in a Grid-enabled PSE. s.l. : National e-siene Centre, 2006. Proeedings of the UK e-siene All Hands Conferene 2006. pp. 574-582. 0-9553988-0-0. 16. Eder, Johann, Gruber, Wolfgang e Pihler, Horst. Transforming Workflow Graphs. 28