Especificação dos Padrões de Controle de Fluxo em NPDL MAC5861 - Modelagem de Dados kellyrb@ime.usp.br Departamento de Ciência da Computação Instituto de Matemática e Estatística (IME) Universidade de São Paulo (USP) São Paulo, 14 de Novembro de 2006
Conteúdo 1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Conteúdo 1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Conteúdo 1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Conteúdo 1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Contextualização Processos de Negócio Processos de negócio são modelados a partir de um conjunto pré-definido de controles de fluxo, sendo que alguns destes fluxos são considerados padrões [Aalst et al, 2002]. O uso de arcabouços formais para a representação de processos de negócio é importante por propiciar uma modelagem precisa e por apoiar a fase de análise. Formalismos mais utilizados: redes de Petri e álgebras de processos.
O uso de álgebra de processos como arcabouço formal para a especificação de processos de negócio: Possibilita a representação das principais estruturas de controle de fluxo em processos; Facilita a manutenção dos dados de processos em um modelo relacional; Auxilia a criação de mecanismos de apoio à execução de processos.
Nosso trabalho (NPDL) Uma linguagem para definição de processos de negócio baseada em álgebra de processos, desenvolvida como uma extensão da linguagem SQL. Ferramenta que apóia as fases de projeto, instanciação e execução de processos e interpreta a linguagem NPDL.
Plano de Navegação Padrões de Controle de Fluxo 1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Plano de Navegação Padrões de Controle de Fluxo Trata da especificação e manipulação de termos de processos por meio de uma coleção de operadores, constituindo um arcabouço para o raciocínio formal sobre processos. Pode ser usada para detectar propriedades indesejáveis e formalmente derivar propriedades desejáveis de uma especificação de sistema. Sua representação algébrica puramente textual é apropriada para a manipulação computacional.
Plano de Navegação Padrões de Controle de Fluxo Composição de uma álgebra de processos Um conjunto de símbolos de ações; Um conjunto de operações; Um conjunto de axiomas (ou leis equacionais) que especificam a equivalência de processos. Conceitos e Operadores empregados da ACP (Algebra of Communicating Processes) Composição seqüencial:. a.b Composição alternativa: + a + b Composição paralela (merge): a b Recursão P = a.p + b
Plano de Navegação Padrões de Controle de Fluxo Exemplo - Sistema de Processamento de Reclamações P 1 = I.J.(K.P 1 + L) P = A. ((B.(C + D) F.G).P 1 + (B.(C + D) F.H)). E
Plano de Navegação Padrões de Controle de Fluxo Redes de Petri X Redes de Petri (+) Baseadas em grafos (representação gráfica); (+) Diferenciam precisamente estados e atividades; (-) Dificuldade na análise de modelos extensos (complexidade exponencial árvore de alcançabilidade). (+) Baseadas em descrição textual; (+) São composicionais por definição; (+) Apropriadas para manipulação computacional; (-) Modelam somente fluxo de eventos (não há representação explícita de estados).
Plano de Navegação Padrões de Controle de Fluxo 1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Plano de Navegação (PN) Plano de Navegação Padrões de Controle de Fluxo O PN é um dos conceitos da arquitetura RiverFish [Ferreira et al, 2005], uma arquitetura para representação, controle e execução de processos de negócio. Esta arquitetura sugere uma estrutura em banco de dados para a manutenção dos passos de negócio, processos e suas instâncias.
Plano de Navegação Padrões de Controle de Fluxo 1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Padrões de Controle de Fluxo Plano de Navegação Padrões de Controle de Fluxo Aalst, Hofstede, Kiepuszewski, e Barros definiram 20 padrões de fluxos existentes em workflows. A partir dos padrões de controle de fluxo, é possível modelar os comportamentos mais freqüentes em sistemas de workflow. Os padrões servem como base para a avaliação do poder de representação das linguagens de workflow.
Padrões de Controle de Fluxo Plano de Navegação Padrões de Controle de Fluxo Os padrões estão divididos em 6 categorias: 1 Padrões Básicos de Controle de Fluxo 2 Padrões Avançados de Ramificação e Sincronização 3 Padrões Estruturais 4 Padrões de Múltiplas Instâncias 5 Padrões Baseados em Estados 6 Padrões de Cancelamento
1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
NPDL Apresentação A NPDL é uma linguagem que se baseia em operadores de álgebra de processos e no conceito de Plano de Navegação para viabilizar o controle de processos de negócio em um modelo relacional de dados. Características Está implementada na forma de extensão da linguagem SQL. A sintaxe atual da NPDL possibilita a definição de processos compostos a partir de todos os padrões de controle de fluxo definidos por Aalst et al.
NPDL Características Processos em NPDL são definidos por meio de expressões algébricas, envolvendo principalmente operadores e ações. A NPDL possui, além dos operadores mais comuns da álgebra de processos ( +,. e ), operadores adicionais ( %, %!, *, &, e? ) que facilitam a representação dos padrões de controle de fluxo e superam algumas limitações da álgebra de processos quando empregada a este fim. A sintaxe completa da NPDL está especificada no formato BNF (Backus-Naur Form) e disponível em www.ime.usp.br/~jef/kelly/bnf_npdl.pdf.
NPDL Exemplos de Comandos CREATE ACTION A1 LerPrimeiroValor ; CREATE ACTION A2 LerSegundoValor ; CREATE ACTION A3 CalcularAdicao ; CREATE ACTION A4 CalcularMultiplicacao ; CREATE ACTION A5 MostrarResultado ; CREATE PROCESS P1 AuxProcessoCalculo ; CREATE PROCESS P2 ProcessoCalculo ; SET P1 = (A1 A2).( A3 + A4 ).A5; SET P2 = P1.P2 + P1;
1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
Padrões Básicos de Controle de Fluxo 1. Seqüência SET P = A.B 2. Divisão Paralela 3. Sincronização SET P = A.(B C) SET P = (A B).C
Padrões Básicos de Controle de Fluxo 4. Escolha Exclusiva SET P = A.(%r 1 B + %!r 1 C) 16. Escolha Postergada SET P = A.(B + C)
Padrões Básicos de Controle de Fluxo 5. Junção Simples SET P = (%r 1 A + %!r 1 B).C
Padrões Avançados de Ramificação e Sincronização 6. Escolha Múltipla SET P = A.(%r 1 (B C) + %!r 1 (%r 2 B + %!r 2 C))
Padrões Avançados de Ramificação e Sincronização 7. Junção Sincronizada SET P = A.(%r 1 (B C) + %!r 1 (%r 2 B + %!r 2 C)).D
Padrões Avançados de Ramificação e Sincronização 8. Junção Múltipla SET P = A.(%r 1 (B C) + %!r 1 (%r 2 B + %!r 2 C))&D Em álgebra de processos É preciso distribuir a atividade D: P = A.((B.D) (C.D) + B.D + C.D)
Padrões Avançados de Ramificação e Sincronização 9. Discriminador SET P = A.(%r 1 (B C) + %!r 1 (%r 2 B + %!r 2 C)) D Em álgebra de processos É preciso distribuir a atividade D: P = A.((B.D) C + B (C.D) + (B C).D + B.D + C.D)
Padrões Estruturais 10. Ciclos Arbitrários SET P 3 = D.(%r 1 E + %!r 1 (F.(%r 2 G + %!r 2 P 2 ))) SET P 2 = C.P 3 SET P 1 = %r 3 (A.P 2 )%!r 3 (B.P 2 )
Padrões Estruturais 11. Terminação Implícita Definição: um dado subprocesso pode ser encerrado quando não há nada mais a ser feito, ou seja, quando não há mais atividades ativas no workflow. Na ACP, o estado final de um processo é representado implicitamente. A NPDL se comporta de forma semelhante: não existe um termo em NPDL que indique estado final de processo.
Padrões de Múltiplas Instâncias 12. Múltiplas Instâncias Sem Sincronização Em álgebra de processos utiliza-se processos recursivos. Exemplo: P = P A + A P = P B.C Em NPDL utiliza-se o operador?*. Exemplo: P = A? B.C
Padrões de Múltiplas Instâncias 13. Múltiplas Instâncias Com Conhecimento Prévio em Tempo de Projeto Em álgebra de processos (exemplo com 3 instâncias da atividades A): P = A A A P = P.B.C Em NPDL utiliza-se o operador?n. Exemplo: P = A?3.B.C
Padrões de Múltiplas Instâncias 14. Múltiplas Instâncias Com Conhecimento Prévio em Tempo de Execução Em álgebra de processos não é possível representar este padrão. Em NPDL utiliza-se o operador?f. Exemplo: P = A?f 1.B.C
Padrões de Múltiplas Instâncias 15. Múltiplas Instâncias Sem Conhecimento Prévio em Tempo de Execução Em álgebra de processos (de modo análogo ao padrão 12) utiliza-se processos recursivos. Exemplo: P = P A + A P = P.B Em NPDL utiliza-se o operador?*. Exemplo: P = A?.B
Padrões Baseados em Estados 17. Roteamento Paralelo Entrelaçado Em álgebra de processos SET P = A.(B C) P = A.(B.C + C.B)
Padrões Baseados em Estados 18. Marco (Milestone) - Exemplo SET P 1 = A.P 1 + C SET P = B.P 1
Padrões de Cancelamento 19. Atividade Cancelável Definição: ocorre quando uma atividade pode ser desabilitada durante a execução de uma instância do processo. 20. Caso Cancelável SET P = A.(B + #).(C + D) Definição: ocorre quando a instância do workflow pode ser removida completamente. Não está relacionado à modelagem do workflow é uma responsabilidade do serviço de execução.
1 2 Plano de Navegação Padrões de Controle de Fluxo 3 4
A Ferramenta O interpretador da NPDL é parte da ferramenta. Foi implementada como uma biblioteca de funções Java e é composta por três serviços: Interpretador NPDL Serviço de Instanciação de Processos Serviço de Monitor de Execução de Instâncias de Processos
O Interpretador NPDL Operações: 1 Criação das estruturas de dados relacionais (tabelas) para o armazenamento dos dados resultantes da definição, instanciação e execução dos processos 2 Análise léxica, sintática e semântica de comandos escritos em NPDL 3 Geração de comandos SQL a partir de comandos NPDL
O Interpretador NPDL Estrutura Relacional de Dados
Conclusões O uso da álgebra de processos como base formal auxiliou: A criação de um modelo relacional para a representação de dados de processos de negócio e uma linguagem de manipulação desses dados - a NPDL; O desenvolvimento de um mecanismo de controle de execução escalável, que se beneficia dos axiomas e regras de transição da álgebra de processos.
Conclusões Vantagens da Abordagem: Esta abordagem propicia o compartilhamento de especificações de processos (reuso) em um ambiente cooperativo. Essa característica se deve principalmente a dois motivos: O aspecto composicional da álgebra de processos; A flexibilidade de representação dos processos e suas instâncias proporcionada pelo modelo relacional de dados.
Conclusões NPDL Seus operadores adicionais superam algumas limitações da álgebra de processos e facilitam a representação dos padrões de controle de fluxo.
Limitações Representação do Fluxo de Dados A versão atual da NPDL não é capaz de representar de modo explícito o fluxo de dados. Essa limitação está associada à álgebra de processos. Conseqüência: impossibilidade de estabelecer uma regra geral para o mapeamento do padrão Marco (Milestone). Dificuldade de Integração Há uma dificuldade de integração da NPDL com outras soluções, ainda, devido à grande heterogeneidade de abordagens e ausência de padrões na área de GPN. Desejável: ambiente gráfico para a modelagem.