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
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