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: 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
Sumário
1 Introdução
Processos de Negócio Exceções
Motivação
2 Conceitos Transações
Transações Longas
Processos de negócio transacionais WED-flow
3 Contribuições
Tratamento de exceções WED-tool
4 Conclusão
Objetivos
Aprimorar os mecanismos de tratamento de exceções da abordagem de gestão de processos de negócio WED-flow;
Desenvolver o gerenciador de recuperação da ferramenta WED-tool, uma implementação da abordagem WED-flow.
Contribuições
Aprimoramento dos mecanismos de tratamento de exceções da abordagem WED-flow;
Expansão da ferramenta WED-tool através do desenvolvimento de seu gerenciador de recuperação;
Artigo resumido “Uma abordagem ad hoc para o tratamento de exceções em processos transacionais” (SBBD 2012);
Artigo “WED-tool: uma ferramenta para o controle de execução de processos de negócio transacionais” (Seção de Demos SBBD 2012).
Sumário
1 Introdução
Processos de Negócio Exceções
Motivação
2 Conceitos Transações
Transações Longas
Processos de negócio transacionais WED-flow
3 Contribuições
Tratamento de exceções WED-tool
Introdução
Processos de negócio
Processo de negócio:conjunto de atividades interligadas que coletivamente realizam um objetivo em particular.
São usualmente de longa duração;
Não se resumem à área de administração, economia, etc.
Introdução
Processos de negócio
Inicializar reserva
Escolher carro
Enviar documentos
Solicitar verificação do gerente
Registrar retirada do carro Registrar devolução
e vistoriar
Computar multas Registrar pagamento
Tem avarias
Cancelar reserva
Reserva aprovada
Introdução
Processos de negócio
Sistemas de gestão de processos de negócio(SGPNs) são reponsáveis pela modelagem, instanciação, controle de execução, tratamento de exceções e análise de processos de negócio.
Introdução
Exceções
Exceção:Situação não modelada ou um desvio entre o que foi modelado e o que ocorre de fato;
Exceções esperadas:definidas no modelo do processo de negócio (Ex: detectar divisão por zero);
Exceções não esperadas:não são definidas no modelo do processo de negócio.
Tratamento de exceções: Processo de identificação de uma situação de exceção e a escolha e posterior execução de uma ação pertinente a ela.
Introdução
Motivação: Efeitos colaterais de exceções não tratadas
Aborto da execução de uma instância (possível propagação a sistemas subjacentes);
Custo do reinício de uma execução que poderia estar sendo executada por dias;
Apesar disso, muitos SGPNs não implementam nenhuma forma de tratamento de exceções ou o fazem de maneira deficiente.
Introdução
Motivaçã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 determinada instância;
Não permitem alteração de modelos de processos de negócio.
Sumário
1 Introdução
Processos de Negócio Exceções
Motivação
2 Conceitos Transações
Transações Longas
Processos de negócio transacionais WED-flow
3 Contribuições
Tratamento de exceções WED-tool
4 Conclusão
Transações
Transação, no modelo transacional de banco de dados, é uma função que leva o banco de dados de um estado consistente para outro estado consistente.
Para garantir essa consistência, existem as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade).
Transações Longas
Transações longassã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 porinviabilizara utilização de transações longas.
Transações longas
Modelos Transacionais Avançados
Uma alternativa para viabilizar a utilização de transações longas sem abrir mão da consistência transacional é aflexibilização das propriedades ACID;
Existe uma série de trabalhos chamados deModelos Transacionais Avançados (MTA)que tem esse fim;
Um dos mais importantes MTAs é o modeloSAGA, que tem por objetivo flexibilizar as propriedades de atomicidade e de
isolamento.
Transações longas
Modelo SAGA
SAGAS flexibilizam as propriedades de atomicidade e isolamento.
s1 s2 s3 s4
T1 T2 T3
T1−1 T2−1 T3−1
T1,T2,T3:passos SAGA T1−1,T2−1,T3−1:compensações
Processos de negócio transacionais
Processos de negócio transacionais:processos de negócio que, embasados pelo Modelo Transacional de Banco de Dados e por Modelos Transacionais Avançados, visam garantir correção e consistência transacional às suas execuções.
WED-flow
AWED-flow(Work, Event processing, Data-flow) é uma
abordagem transacional de modelagem, instanciação e controle de execução de processos de negócio;
Ela utiliza uma linguagem de modelagembaseada em regras, bastante semelhante ao ECA.
Modelos que utilizam linguagens de modelagem baseadas em regras tendem a ser maisflexíveisdo que os modelos definidos através de linguagens de modelagem baseadas em grafos.
WED-flow
Linhas 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 um WED-state;
WED-trigger:Par (WED-condition,WED-transition) / detecta alterações no WED-state;
WED-flow: Conjunto de WED-triggers + condições de início e fim;
WED-flow
Linhas gerais
Reserva requisitada
Inicializar reserva
Reserva iniciada
Escolher carro
Enviar documentos
Carro escolhido
Documentos recebidos
AND
Solicitar verificação do gerente
Reserva rejeitada
Reserva confirmada
Registrar retirada Carro
retirado Registrar
devolução e vistoriar Carro
vistoriado
Carro com avarias Computar
multas Registrar pagamento Reserva
paga
Disparo de WED-transition Geração de novo WED-state
Diferentes possibilidades de geração de WED-state Legenda:
WED-state (apenas WED-attributes responsáveis pelo disparo de WED-transition) WED-transition
WED-flow
Linhas gerais
id. do usuário
Status reserva
Status carro
Placa carro 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: Registrar
devolução e vistoriar
WED-flow
Linhas gerais
s0 s1 s2
t1 t2
ti: WED-transitioni si: WED-statei
WED-flow
Tratamento 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.
WED-flow
Tratamento de exceções
Application-WideIntegrityConstraints (AWIC) são condições que expressam regras da aplicação. Um WED-state é
AWIC-consistentse ele satisfaz todas as AWICs de uma aplicação.
Um WED-state éTransaction-consistentse ele satisfaz a WED-condition de ao menos um WED-trigger ou se ele não satisfaz nenhuma WED-condition, mas não é o último WED-state da instância.
Um WED-state éinconsistentese ele não é nem AWIC-consistent e nem Transaction-consistent.
WED-flow
Tratamento de exceções
Chamamos deWED-state atual da interrupçãoo último WED-state gerado na instância.
WED-states atuais da interrupção podem ser consistentes ou inconsistentes. Dependendo do caso, diferentes mecanismos de tratamento de exceções são disponibilizados ao especialista.
Sumário
1 Introdução
Processos de Negócio Exceções
Motivação
2 Conceitos Transações
Transações Longas
Processos de negócio transacionais WED-flow
3 Contribuições
Tratamento de exceções WED-tool
4 Conclusão
Objetivos
Aprimorar os mecanismos de tratamento de exceções da abordagem WED-flow de forma a sanar ou contornar as
deficiências de tratamento de exceções discutidas anteriormente;
Implementar o gerenciador de recuperação da ferramenta WED-tool.
Equivalência de WED-states
Definição
Dois WED-states pertencentes a uma instância de um WED-flow wf são ditosequivalentesquando eles satisfazem as mesmas
WED-conditions associadas a wf, disparando, assim, as mesmas WED-transitions.
WED-compensation
Definição
UmaWED-compensationdesfaz semanticamente os resultados de sua WED-transition associada. Um WED-state gerado por uma WED-compensation wc deve serequivalenteao WED-state sobre o qual a WED-transition associada a wc fez alterações.
Sejat uma WED-transition,c sua WED-compensation associada es1, s2esc WED-states. Set(s1) =s2ec(s2) =sc então,
obrigatoriamentes1≡sc
WED-compensation
Doc OK e carro escolhido
Reserva confirmada
Carro retirado
Exceção
t4 t5
t6
ti: WED-transitioni
WED-compensation
Doc OK e carro escolhido
Reserva confirmada
|||
Reserva confirmada
Carro retirado
t4 t5
c5
t: WED-transitioni
Encadeamento de compensações
Doc OK e carro escolhido
|||
Doc OK e carro escolhido
Reserva confirmada
|||
Reserva confirmada
Carro retirado
t4 t5
c5
c4
ti: WED-transitioni
ci: WED-compensationi associada a WED-transitioni
Execução paralela
Reserva requisitada
Reserva iniciada
Carro escolhido
Documentos recebidos
Reserva confirmada
...
t1
t2
t3
t4
t5
Execução paralela
Oferecimento adaptativo
Reserva requisitada
Reserva iniciada
Carro escolhido
Documentos recebidos
Reserva confirmada
Exceção!
t1
t2
t3
t4
t5
ti: WED-transitioni
Execução paralela
Oferecimento adaptativo
Reserva requisitada
Reserva iniciada
Carro escolhido
|||
Carro escolhido
Documentos recebidos
|||
Documentos recebidos
Reserva confirmada
t1
t2
t3
t4
t5 c4
c3
Oferecimento adaptativo
Reserva requisitada
Reserva iniciada
|||
Reserva iniciada
Carro escolhido
|||
Carro escolhido
Documentos recebidos
|||
Documentos recebidos
Reserva confirmada
...
t1
t2
t3
t4
c4
c3 c2
t3
t2
Oferecimento adaptativo
Tentativa de reinício (retry)
Reserva requisitada
Reserva iniciada
Carro escolhido
Documentos recebidos
Reserva confirmada
Registrar retirada
...
t1
t2
t3
t4
t5
t6
Pulos
Pulo:Modelo Transacional Avançado que tem por objetivo fazer alterações a uma instância específica de processo de negócio.
PuloForward- “Avança” a execução;
PuloBackward- “Volta” a algum ponto da execução.
No contexto da abordagem WED-flow, eles são importantes pois são utilizados principalmente em situações em que o WED-state atual da interrupção é inconsistente.
WED-S
−1PuloBackward
Reserva requisitada
Reserva iniciada
Carro escolhido
Documento recebido
Reserva confirmada
Carro retirado t1
t2 t3
t4
t5
WED-S
−1PuloBackward
Reserva requisitada
Reserva iniciada
|||
Reserva iniciada
Carro escolhido
Documento recebido
Reserva confirmada
Carro retirado Documento
recebido Carro
escolhido t1
t2 t3
t4
t5 WED-S−1
WED-S
+aPuloForward
Reserva requisitada
Reserva iniciada
Carro escolhido
Documento recebido
Reserva confirmada
Carro retirado t1
t2 t3
t4
t5
t6
WED-S
+aPuloForward
Reserva requisitada
Reserva iniciada
Carro escolhido
Documento recebido
Reserva confirmada
Carro retirado
Avaria indefinida Carro com
avarias Carro
vistoriado Reserva
paga t1
t2 t3
t4
t5
t6 WED-S+a
t9
Alteração da definição de um WED-flow
É sempre possívelalterar a definiçãode um WED-flow emqualquer momentode seu ciclo de vida.
WED-tool
A WED-tool é um protótipo de sistema de gestão de processo de negó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 processos de negócio;
Uma vez que os modelos de processos de negócio foram lidos e interpretados, a WED-tool é capaz de instânciá-los e controlar a execução de suas instâncias;
A ferramenta possui um gerenciador de recuperação com a função de realizar o tratamento de exceções.
Informações técnicas
Ferramentaopen source;
Desenvolvida emRuby;
Entre outras gems, utiliza oActive Record;
Utiliza o SGBDPostgreSQL.
WED-tool
Projetista
Controle de Execução
Tratamento de Exceções Instanciação
Ruby XML
Modelagem
Banco de Dados
Configuração
Usuário
Ruby Administrador
do sistema
WED-tool
Demo
Demo.
Sumário
1 Introdução
Processos de Negócio Exceções
Motivação
2 Conceitos Transações
Transações Longas
Processos de negócio transacionais WED-flow
3 Contribuições
Tratamento de exceções WED-tool
4 Conclusão
Sumário
Características da abordagem WED-flow facilitaram a concepção de mecanismosflexíveisde 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 do gerenciador de recuperação da abordagem WED-flow.
Trabalhos Futuros
Desenvolvimento de mecanismos de verificação do modelo;
Integração com serviçosWeb;
Aprimoramento da ferramenta WED-tool;
Comparação qualitativa entre WED-tool e outras ferramentas;
Desenvolvimento e metodologia de modelagem.
Obrigado!
pedro@ime.usp.br http://www.ime.usp.br/~pedro
Mais detalhes sobre o WED-flow estão disponíveis em http://data.ime.usp.br/wedflow