51
Introdução Conceitos Contribuições Conclusão Uma abordagem transacional para o tratamento de exceções em processos de negócio Pedro Paulo de Souza Bento da Silva Orientador: Prof. Dr. João Eduardo Ferreira Co-orientadora: Prof a . Dr a . Kelly Rosa Braghetto Instituto de Matemática e Estatística da Universidade de São Paulo São Paulo, 12 de Junho de 2013 1 / 51

Uma abordagem transacional para o tratamento de exceções ...pedro/slides_defesa_pedro.pdf · Pedro Paulo de Souza Bento da Silva ... 1 Introdução Processos de Negócio Exceções

  • Upload
    vancong

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Introdução Conceitos Contribuições Conclusão

Uma abordagem transacional para o tratamento deexceções em processos de negócio

Pedro Paulo de Souza Bento da SilvaOrientador: Prof. Dr. João Eduardo Ferreira

Co-orientadora: Profa. Dra. Kelly Rosa Braghetto

Instituto de Matemática e Estatística da Universidade de São Paulo

São Paulo, 12 de Junho de 2013

1 / 51

Introdução Conceitos Contribuições Conclusão

Sumário

1 IntroduçãoProcessos de NegócioExceçõesMotivação

2 ConceitosTransaçõesTransações LongasProcessos de negócio transacionaisWED-flow

3 ContribuiçõesTratamento de exceçõesWED-tool

4 Conclusão

2 / 51

Introdução Conceitos Contribuições Conclusão

Objetivos

Aprimorar os mecanismos de tratamento de exceções daabordagem de gestão de processos de negócio WED-flow;

Desenvolver o gerenciador de recuperação da ferramentaWED-tool, uma implementação da abordagem WED-flow.

3 / 51

Introdução Conceitos Contribuições Conclusão

Contribuições

Aprimoramento dos mecanismos de tratamento de exceções daabordagem WED-flow;

Expansão da ferramenta WED-tool através do desenvolvimentode seu gerenciador de recuperação;

Artigo resumido “Uma abordagem ad hoc para o tratamento deexceções em processos transacionais” (SBBD 2012);

Artigo “WED-tool: uma ferramenta para o controle de execuçãode processos de negócio transacionais” (Seção de Demos SBBD2012).

4 / 51

Introdução Conceitos Contribuições Conclusão

Sumário

1 IntroduçãoProcessos de NegócioExceçõesMotivação

2 ConceitosTransaçõesTransações LongasProcessos de negócio transacionaisWED-flow

3 ContribuiçõesTratamento de exceçõesWED-tool

4 Conclusão

5 / 51

Introdução Conceitos Contribuições Conclusão

IntroduçãoProcessos de negócio

Processo de negócio: conjunto de atividades interligadas quecoletivamente realizam um objetivo em particular.

São usualmente de longa duração;Não se resumem à área de administração, economia, etc.

6 / 51

Introdução Conceitos Contribuições Conclusão

IntroduçãoProcessos de negócio

Inicializar reserva

Escolher carro

Enviar documentos

Solicitar verificaçãodo gerente

Registrar retiradado carro

Registrar devoluçãoe vistoriar

Computar multas

Registrar pagamento

Tem avarias

Cancelar reserva

Reserva aprovada

7 / 51

Introdução Conceitos Contribuições Conclusão

IntroduçãoProcessos de negócio

Sistemas de gestão de processos de negócio (SGPNs) sãoreponsáveis pela modelagem, instanciação, controle de execução,tratamento de exceções e análise de processos de negócio.

8 / 51

Introdução Conceitos Contribuições Conclusão

IntroduçãoExceções

Exceção: Situação não modelada ou um desvio entre o que foimodelado e o que ocorre de fato;

Exceções esperadas: definidas no modelo do processo denegócio (Ex: detectar divisão por zero);Exceções não esperadas: não são definidas no modelo doprocesso de negócio.

Tratamento de exceções: Processo de identificação de umasituação de exceção e a escolha e posterior execução de umaação pertinente a ela.

9 / 51

Introdução Conceitos Contribuições Conclusão

IntroduçãoMotivação: Efeitos colaterais de exceções não tratadas

Aborto da execução de uma instância (possível propagação asistemas subjacentes);

Custo do reinício de uma execução que poderia estar sendoexecutada por dias;

Apesar disso, muitos SGPNs não implementam nenhuma formade tratamento de exceções ou o fazem de maneira deficiente.

10 / 51

Introdução Conceitos Contribuições Conclusão

IntroduçãoMotivação: Deficiências comuns em mecanismos de tratamento de exceções

Não tratam exceções não esperadas;

Não permitem tratamento específico a uma determinadainstância;

Não permitem alteração de modelos de processos de negócio.

11 / 51

Introdução Conceitos Contribuições Conclusão

Sumário

1 IntroduçãoProcessos de NegócioExceçõesMotivação

2 ConceitosTransaçõesTransações LongasProcessos de negócio transacionaisWED-flow

3 ContribuiçõesTratamento de exceçõesWED-tool

4 Conclusão

12 / 51

Introdução Conceitos Contribuições Conclusão

Transações

Transação, no modelo transacional de banco de dados, é umafunção que leva o banco de dados de um estado consistentepara outro estado consistente.

Para garantir essa consistência, existem as propriedades ACID(Atomicidade, Consistência, Isolamento e Durabilidade).

13 / 51

Introdução Conceitos Contribuições Conclusão

Transações Longas

Transações longas são transações que demoram minutos,horas, dias, etc., para serem executadas;

Na prática sua utilização tem alguns efeitos colaterais:

Bloqueio de recursos;Bloqueio de transações (por causa dos recursos bloqueados);Alto custo do aborto/reexecução de uma transação longa.

As propriedades ACID acabam por inviabilizar a utilização detransações longas.

14 / 51

Introdução Conceitos Contribuições Conclusão

Transações longasModelos Transacionais Avançados

Uma alternativa para viabilizar a utilização de transações longassem abrir mão da consistência transacional é a flexibilizaçãodas propriedades ACID;

Existe uma série de trabalhos chamados de ModelosTransacionais Avançados (MTA) que tem esse fim;

Um dos mais importantes MTAs é o modelo SAGA, que tem porobjetivo flexibilizar as propriedades de atomicidade e deisolamento.

15 / 51

Introdução Conceitos Contribuições Conclusão

Transações longasModelo SAGA

SAGAS flexibilizam as propriedades de atomicidade e isolamento.

s1 s2 s3 s4

T1 T2 T3

T−11 T−1

2 T−13

T1,T2,T3: passos SAGAT−1

1 ,T−12 ,T−1

3 : compensações

16 / 51

Introdução Conceitos Contribuições Conclusão

Processos de negócio transacionais

Processos de negócio transacionais: processos de negócioque, embasados pelo Modelo Transacional de Banco de Dados epor Modelos Transacionais Avançados, visam garantir correção econsistência transacional às suas execuções.

17 / 51

Introdução Conceitos Contribuições Conclusão

WED-flow

A WED-flow (Work, Event processing, Data-flow) é umaabordagem transacional de modelagem, instanciação e controlede execução de processos de negócio;

Ela utiliza uma linguagem de modelagem baseada em regras,bastante semelhante ao ECA.

Modelos que utilizam linguagens de modelagem baseadas emregras tendem a ser mais flexíveis do que os modelos definidosatravés de linguagens de modelagem baseadas em grafos.

18 / 51

Introdução Conceitos Contribuições Conclusão

WED-flowLinhas gerais

WED-state: Estado de dados de uma instância de WED-flow;

WED-attributes: Atributos de interesse da aplicação;

WED-condition: Condição avaliada sobre WED-state;

WED-transition: Atividade responsável por alterar umWED-state;

WED-trigger: Par (WED-condition,WED-transition) / detectaalterações no WED-state;

WED-flow: Conjunto de WED-triggers + condições de início efim;

Histórico de execuções: Histórico detalhado referente aexecução de WED-transitions e geração de WED-states nocontexto de uma instância.

19 / 51

Introdução Conceitos Contribuições Conclusão

WED-flowLinhas gerais

Reservarequisitada

Inicializar reserva

Reservainiciada

Escolhercarro

Enviar documentos

Carro escolhido

Documentosrecebidos

ANDSolicitar

verificaçãodo gerente

Reservarejeitada

Reservaconfirmada

Registrarretirada

Carroretirado

Registrardevoluçãoe vistoriar

Carrovistoriado

Carro comavarias

Computarmultas

Registrarpagamento

Reservapaga

Disparo de WED-transition

Geração de novo WED-state

Diferentes possibilidades de geração de WED-state

Conjunção de atributos do WED-state que dispara uma WED-transition

Legenda:

WED-state (apenas WED-attributes responsáveis pelo disparo de WED-transition)

WED-transition

20 / 51

Introdução Conceitos Contribuições Conclusão

WED-flowLinhas gerais

id. dousuário

Statusreserva

Statuscarro

Placacarro

WED-state 0 xyz confirmada null null

WED-state 1 xyz confirmada retirado ABC-1234

WED-state 2 xyz confirmada vistoriado ABC-1234

t1: Registrar retirada

t2: Registrardevoluçãoe vistoriar

ti : WED-transition i

21 / 51

Introdução Conceitos Contribuições Conclusão

WED-flowLinhas gerais

s0 s1 s2

t1 t2

ti : WED-transition isi : WED-state i

22 / 51

Introdução Conceitos Contribuições Conclusão

WED-flowTratamento de exceções

Exceções esperadas:Tratamento automatizado.

Exceções não esperadas:Interrupção da instância problemática;Mecanismos de recuperação acionados por um especialista;Reinício da instância paralisada.

23 / 51

Introdução Conceitos Contribuições Conclusão

WED-flowTratamento de exceções

Application-Wide Integrity Constraints (AWIC) são condições queexpressam regras da aplicação. Um WED-state éAWIC-consistent se ele satisfaz todas as AWICs de umaaplicação.

Um WED-state é Transaction-consistent se ele satisfaz aWED-condition de ao menos um WED-trigger ou se ele nãosatisfaz nenhuma WED-condition, mas não é o último WED-stateda instância.

Um WED-state é inconsistente se ele não é nemAWIC-consistent e nem Transaction-consistent.

24 / 51

Introdução Conceitos Contribuições Conclusão

WED-flowTratamento de exceções

Chamamos de WED-state atual da interrupção o últimoWED-state gerado na instância.

WED-states atuais da interrupção podem ser consistentes ouinconsistentes. Dependendo do caso, diferentes mecanismos detratamento de exceções são disponibilizados ao especialista.

25 / 51

Introdução Conceitos Contribuições Conclusão

Sumário

1 IntroduçãoProcessos de NegócioExceçõesMotivação

2 ConceitosTransaçõesTransações LongasProcessos de negócio transacionaisWED-flow

3 ContribuiçõesTratamento de exceçõesWED-tool

4 Conclusão

26 / 51

Introdução Conceitos Contribuições Conclusão

Objetivos

Aprimorar os mecanismos de tratamento de exceções daabordagem WED-flow de forma a sanar ou contornar asdeficiências de tratamento de exceções discutidas anteriormente;

Implementar o gerenciador de recuperação da ferramentaWED-tool.

27 / 51

Introdução Conceitos Contribuições Conclusão

Equivalência de WED-states

Definição

Dois WED-states pertencentes a uma instância de um WED-flow wfsão ditos equivalentes quando eles satisfazem as mesmasWED-conditions associadas a wf, disparando, assim, as mesmasWED-transitions.

28 / 51

Introdução Conceitos Contribuições Conclusão

WED-compensation

Definição

Uma WED-compensation desfaz semanticamente os resultados desua WED-transition associada. Um WED-state gerado por umaWED-compensation wc deve ser equivalente ao WED-state sobre oqual a WED-transition associada a wc fez alterações.

Seja t uma WED-transition, c sua WED-compensation associada e s1,s2 e sc WED-states. Se t(s1) = s2 e c(s2) = sc então,obrigatoriamente s1 ≡ sc

29 / 51

Introdução Conceitos Contribuições Conclusão

WED-compensation

Doc OKe carro

escolhido

Reservaconfirmada

Carroretirado

Exceção

t4 t5

t6

ti : WED-transition i

30 / 51

Introdução Conceitos Contribuições Conclusão

WED-compensation

Doc OKe carro

escolhido

Reservaconfirmada

|||

Reservaconfirmada

Carroretirado

t4 t5

c5

ti : WED-transition ici : WED-compensation i associada a WED-transition i

31 / 51

Introdução Conceitos Contribuições Conclusão

Encadeamento de compensações

Doc OKe carro

escolhido

|||

Doc OKe carro

escolhido

Reservaconfirmada

|||

Reservaconfirmada

Carroretirado

t4 t5

c5

c4

ti : WED-transition ici : WED-compensation i associada a WED-transition i

32 / 51

Introdução Conceitos Contribuições Conclusão

Execução paralela

Reservarequisitada

Reservainiciada

Carroescolhido

Documentosrecebidos

Reservaconfirmada

...

t1

t2

t3t4

t5

ti : WED-transition i

33 / 51

Introdução Conceitos Contribuições Conclusão

Execução paralelaOferecimento adaptativo

Reservarequisitada

Reservainiciada

Carroescolhido

Documentosrecebidos

Reservaconfirmada

Exceção!

t1

t2

t3t4

t5

ti : WED-transition i

34 / 51

Introdução Conceitos Contribuições Conclusão

Execução paralelaOferecimento adaptativo

Reservarequisitada

Reservainiciada

Carroescolhido

|||

Carroescolhido

Documentosrecebidos

|||

Documentosrecebidos

Reservaconfirmada

t1

t2

t3t4

t5c4

c3

ti : WED-transition i

35 / 51

Introdução Conceitos Contribuições Conclusão

Oferecimento adaptativo

Reservarequisitada

Reservainiciada

|||

Reservainiciada

Carroescolhido

|||

Carroescolhido

Documentosrecebidos

|||

Documentosrecebidos

Reservaconfirmada

...

t1

t2

t3t4

c4

c3c2

t3t2

ti : WED-transition i 36 / 51

Introdução Conceitos Contribuições Conclusão

Oferecimento adaptativoTentativa de reinício (retry )

Reservarequisitada

Reservainiciada

Carroescolhido

Documentosrecebidos

Reservaconfirmada

Registrarretirada

...

t1

t2

t3t4

t5

t6

ti : WED-transition i

37 / 51

Introdução Conceitos Contribuições Conclusão

Pulos

Pulo: Modelo Transacional Avançado que tem por objetivo fazeralterações a uma instância específica de processo de negócio.

Pulo Forward - “Avança” a execução;Pulo Backward - “Volta” a algum ponto da execução.

No contexto da abordagem WED-flow, eles são importantes poissão utilizados principalmente em situações em que o WED-stateatual da interrupção é inconsistente.

38 / 51

Introdução Conceitos Contribuições Conclusão

WED-S−1

Pulo Backward

Reservarequisitada

Reservainiciada

Carroescolhido

Documentorecebido

Reservaconfirmada

Carroretirado

t1

t2

t3

t4

t5

39 / 51

Introdução Conceitos Contribuições Conclusão

WED-S−1

Pulo Backward

Reservarequisitada

Reservainiciada

|||

Reservainiciada

Carroescolhido

Documentorecebido

Reservaconfirmada

Carroretirado

Documentorecebido

Carroescolhido

t1

t2

t3

t4

t5WED-S−1

40 / 51

Introdução Conceitos Contribuições Conclusão

WED-S+a

Pulo Forward

Reservarequisitada

Reservainiciada

Carroescolhido

Documentorecebido

Reservaconfirmada

Carroretirado

Avariaindefinida

t1

t2

t3

t4

t5

t6

41 / 51

Introdução Conceitos Contribuições Conclusão

WED-S+a

Pulo Forward

Reservarequisitada

Reservainiciada

Carroescolhido

Documentorecebido

Reservaconfirmada

Carroretirado

Avariaindefinida

Carro comavarias

Carrovistoriado

Reservapaga

t1

t2

t3

t4

t5

t6WED-S+a

t9

42 / 51

Introdução Conceitos Contribuições Conclusão

Alteração da definição de um WED-flow

É sempre possível alterar a definição de um WED-flow em qualquermomento de seu ciclo de vida.

43 / 51

Introdução Conceitos Contribuições Conclusão

WED-tool

A WED-tool é um protótipo de sistema de gestão de processo denegócio que implementa a abordagem WED-flow. A atual versão játem as seguintes funcionalidades:

A ferramenta é capaz de ler e interpretar modelos de processosde negócio;

Uma vez que os modelos de processos de negócio foram lidos einterpretados, a WED-tool é capaz de instânciá-los e controlar aexecução de suas instâncias;

A ferramenta possui um gerenciador de recuperação com afunção de realizar o tratamento de exceções.

44 / 51

Introdução Conceitos Contribuições Conclusão

Informações técnicas

Ferramenta open source;

Desenvolvida em Ruby;

Entre outras gems, utiliza o Active Record;

Utiliza o SGBD PostgreSQL.

45 / 51

Introdução Conceitos Contribuições Conclusão

WED-tool

Projetista

Controle deExecução

Tratamento de

ExceçõesInstanciação

Ruby XML

Modelagem

Banco deDados

Configuração

Usuário

Ruby

Administradordo sistema

46 / 51

Introdução Conceitos Contribuições Conclusão

WED-toolDemo

Demo.

47 / 51

Introdução Conceitos Contribuições Conclusão

Sumário

1 IntroduçãoProcessos de NegócioExceçõesMotivação

2 ConceitosTransaçõesTransações LongasProcessos de negócio transacionaisWED-flow

3 ContribuiçõesTratamento de exceçõesWED-tool

4 Conclusão

48 / 51

Introdução Conceitos Contribuições Conclusão

Sumário

Características da abordagem WED-flow facilitaram a concepçãode mecanismos flexíveis de tratamento de exceções.

Linguagem de modelagem baseada em regras;Detecção de exceções não esperadas;Possibilidade de intervenção de especialista.

Indicação de viabilidade prática pelo desenvolvimento dogerenciador de recuperação da abordagem WED-flow.

49 / 51

Introdução Conceitos Contribuições Conclusão

Trabalhos Futuros

Desenvolvimento de mecanismos de verificação do modelo;

Integração com serviços Web;

Aprimoramento da ferramenta WED-tool;

Comparação qualitativa entre WED-tool e outras ferramentas;

Desenvolvimento e metodologia de modelagem.

50 / 51

Introdução Conceitos Contribuições Conclusão

Obrigado!

[email protected]://www.ime.usp.br/~pedro

Mais detalhes sobre o WED-flow estão disponíveis emhttp://data.ime.usp.br/wedflow

51 / 51