• Nenhum resultado encontrado

2.4 Programação e Computação baseada em Padrões

2.4.1 Padrões de Workflows

O conceito de padrões de workflow, definido por Van der Aalst et al [dAea], surgiu no seguimento da premissa referida de se observar recorrências na modelação de workflows. Tal levou a uma identificação de padrões de workflow seguindo uma estratégia que simpli- fica a manutenção e reduz o trabalho de modulação de um workflow. Os padrões propos- tos foram analisados e divididos por várias dimensões existentes num sistema orientado a processo[VDATHKB03]:

Perspectiva de controlo de fluxo descreve as tarefas e a sua ordem de execução entre diferentes componentes de um workflow, isto é, captura os aspectos relacionados com as dependências entre as várias tarefas (e.g. sequência, paralelismo, escolha, sincronismo, etc). Os padrões focam-se nesse aspecto e estão divididos em várias categorias (apresentadas na tabela2.2e com exemplos na tabela2.3).

Perspectiva de recursos Representa os recursos que vão ser reservados (allocate) ou dele- gados a uma tarefa ou a um caminho de execução,. Os recursos podem ser humanos (e.g. um trabalhador) ou não humano (e.g., equipamento) [RHE04]. Os padrões de recursos de um workflow têm o objectivo de capturar as várias maneiras de como esses recursos são representados e como utilizam os workflows. Algumas das cate- gorias existentes são: Padrões de criação (como o nome indica, padrões que existem na fase de design do workflow); Padrões de repartição (allocation) (retira ou fornece

Categoria Descrição Exemplos

Padrões básicos de controlo de fluxo

Categoria que captura os aspectos elementares do processo de con- trolo e são similares as definições dos conceitos inicialmente propos- tos pela Workflow Management Coa- lition[Hol95]

Sequência, Divisão paralela, Sincro- nismo, Escolha exclusiva (tabela2.2, número: 1,2,3,4) e Junção simples

Padrões de iteração

Padrões capturados pelos compor- tamentos repetitivos de um work- flow

Ciclos arbitrários, Loop Estruturado (tabela 2.2, número: 7), Recursivi- dade

Padrões de sincronização e ramifi- cação avançada

Padrões que caracterizam conceitos para complexas ramificações e jun- ções que surjam nos processos de negócio.

Junção sincronizada geral (tabela

2.2, número: 5), Multi-junção, Dis- criminador bloqueante etc.

Padrões de múltiplas instâncias

Os padrões de múltiplas instâncias descrevem situações onde existem múltiplos fio de execução activos num modelo de processo relacio- nado com a mesma tarefa

Múltiplas instâncias sem sincroni- zação, Junção dinâmica de múlti- plas instancias, etc

Padrões baseados no estado

Padrões baseados no estado, reflec- tem situações em que a solução mais eficaz de se realizar, na lin- guagem dos processos, é suportado pela noção de estado (estado neste contexto representa os dados ine- rentes a uma tarefa)

Secção crítica, Milestone (tabela2.2, número: 6), Escolha diferida, etc

Padrões de cancelamento e de for- çar a conclusão

Padrões comuns no processo de cancelamento de uma tare- fa/workflow e no processo de forçar a conclusão de uma tarefa/workflow

Cancelar tarefa, Cancelar múltiplas instâncias activas, etc

Padrões de terminação

Representa os padrões existente no momento em que o workflow é con- siderado completo

Terminação implícita e explicita.

Padrões trigger

Representam os padrões criados por acções externas que possam ser necessárias para iniciar certas tare- fas

Trigger transitório e persistente (ta- bela2.2, número: 8)

Tabela 2.2: Categorias padrões de controlo de fluxo

recursos); Padrões de desvio (quando falha um recurso existem vários padrões de comportamento possíveis de serem executados); Padrões de auto-arranque (devido a alguma falha certos recursos são automaticamente alocados); etc3.

Perspectiva de dados Representa a gestão da informação, escopo das variáveis, etc. Exis- tem uma série de características que ocorrem repetidamente nas diferentes formas de modelação e que podem ser divididas em 4 categorias distintas: Visibilidade de dados, relacionado como os elementos dos dados conseguem ser visíveis nos vários componentes de um workflow; Interacção de dados, foca a maneira como os dados comunicam entre os vários elementos activos no workflow; Transferência de dados, descreve os mecanismos necessários para a interacção entre elementos numa inter- face de um workflow; Encaminhamentos (Routing) baseados em dados, caracteriza a 3Workflow Patterns Home page: http://www.workflowpatterns.com/patterns/resource/

maneira de como cada elemento de dados pode influenciar outras operações, par- ticularmente a perspectiva de controlo de fluxo.

Perspectiva de manipulação de excepções lida com as várias causas das excepções e com as várias acções necessárias de correcção.

Os padrões, nestas diferentes perspectivas, ajudam a construir e modular um workflow em qualquer domínio, mostrando as fraquezas e forças das várias aproximações de es- pecificação de processos, e podem servir como base para uma linguagem ou ferramenta de desenvolvimento. Um dos exemplos é a linguagem YAWL (Yet Another Workflow Language)4, que é baseada numa rigorosa análise dos sistemas de gestão de workflows e das linguagens workflow. A linguagem baseia-se nas petri nets [vdAH03] e consegue capturar e identificar alguns padrões de controlo de fluxo, excepto padrões de múltiplas instâncias, padrões de cancelamento e de junções-Ou generalizadas.

Existem vários estudos sobre as diferentes dimensões de padrões existentes, como por exemplo no artigo [MGRtH11] onde é realizada uma análise desses padrões sobre ferramentas como Kepler, Taverna e Triana.

A dimensão padrões de fluxo de controlo foi analisada com a notação BPMN 2.0, sendo o responsável da ferramenta YAWL o responsável por essa análise [WvdAD+05]. Outro exemplo é o artigo [WC99] que mostra a versatilidade desta notação.

Os padrões de workflow são considerados um caso paralelo dos padrões de desenho que são descritos na secção seguinte.

Documentos relacionados