• Nenhum resultado encontrado

SãoPaulo,12deJunhode2013 .Dr .KellyRosaBraghetto PedroPaulodeSouzaBentodaSilvaOrientador:Prof.Dr.JoãoEduardoFerreiraCo-orientadora:Prof Umaabordagemtransacionalparaotratamentodeexceçõesemprocessosdenegócio

N/A
N/A
Protected

Academic year: 2022

Share "SãoPaulo,12deJunhode2013 .Dr .KellyRosaBraghetto PedroPaulodeSouzaBentodaSilvaOrientador:Prof.Dr.JoãoEduardoFerreiraCo-orientadora:Prof Umaabordagemtransacionalparaotratamentodeexceçõesemprocessosdenegócio"

Copied!
51
0
0

Texto

(1)

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

(2)

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

(3)

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.

(4)

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

(5)

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

(6)

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.

(7)

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

(8)

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.

(9)

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.

(10)

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.

(11)

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.

(12)

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

(13)

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

(14)

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.

(15)

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.

(16)

Transações longas

Modelo SAGA

SAGAS flexibilizam as propriedades de atomicidade e isolamento.

s1 s2 s3 s4

T1 T2 T3

T11 T21 T31

T1,T2,T3:passos SAGA T11,T21,T31:compensações

(17)

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.

(18)

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.

(19)

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;

(20)

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

(21)

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

(22)

WED-flow

Linhas gerais

s0 s1 s2

t1 t2

ti: WED-transitioni si: WED-statei

(23)

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.

(24)

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.

(25)

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.

(26)

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

(27)

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.

(28)

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.

(29)

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

(30)

WED-compensation

Doc OK e carro escolhido

Reserva confirmada

Carro retirado

Exceção

t4 t5

t6

ti: WED-transitioni

(31)

WED-compensation

Doc OK e carro escolhido

Reserva confirmada

|||

Reserva confirmada

Carro retirado

t4 t5

c5

t: WED-transitioni

(32)

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

(33)

Execução paralela

Reserva requisitada

Reserva iniciada

Carro escolhido

Documentos recebidos

Reserva confirmada

...

t1

t2

t3

t4

t5

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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.

(39)

WED-S

1

PuloBackward

Reserva requisitada

Reserva iniciada

Carro escolhido

Documento recebido

Reserva confirmada

Carro retirado t1

t2 t3

t4

t5

(40)

WED-S

1

PuloBackward

Reserva requisitada

Reserva iniciada

|||

Reserva iniciada

Carro escolhido

Documento recebido

Reserva confirmada

Carro retirado Documento

recebido Carro

escolhido t1

t2 t3

t4

t5 WED-S1

(41)

WED-S

+a

PuloForward

Reserva requisitada

Reserva iniciada

Carro escolhido

Documento recebido

Reserva confirmada

Carro retirado t1

t2 t3

t4

t5

t6

(42)

WED-S

+a

PuloForward

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

(43)

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

É sempre possívelalterar a definiçãode um WED-flow emqualquer momentode seu ciclo de vida.

(44)

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.

(45)

Informações técnicas

Ferramentaopen source;

Desenvolvida emRuby;

Entre outras gems, utiliza oActive Record;

Utiliza o SGBDPostgreSQL.

(46)

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

(47)

WED-tool

Demo

Demo.

(48)

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

(49)

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.

(50)

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.

(51)

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

Referências

Documentos relacionados

guarda resulta em absorção de água das células adjacentes que correspondem em aumento da célula guarda e a abertura estomatal... Funções

Essa configuração do porão foi pensada talvez como alternativa de transição entre a situação de hoje e a alternativa a, ou como opção que não prescinde de um aumento no número

Um líder arrojado de pulso firme(infundir respeito e temor aos insubmissos) (infundir respeito e temor aos insubmissos) e. Aos liderados vai a dica de estarem sempre ligados

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

– dificuldade em mensurar a dimensão do problema , em trabalhar a diversidade de manifestações no extenso território nacional e em pautar o assunto nos diferentes espaços públicos

É bastante conhecido, que a melhoria da eficiência na aplicação envolve a escolha adequada do equipamento de aplicação, com ponta de pulverização que produza

Microglanis lundbergi is distinguished from all congeners by the presence of a forked caudal fin with a deep notch between upper and lower lobes (vs. rounded, emarginated, or

Estima-se que a diversidade de espécies na Mata Atlântica e no Brasil seja muito maior e o baixo número de táxons conhecidos se dá por falta de identificação ao