especificação de sistemas distribuídos modelo cspm - estacionamento equipe: rafael araújo...

21
Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo ([email protected] ) Ingridd Brito ([email protected] )

Upload: benicio-prudente

Post on 07-Apr-2016

240 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Especificação de Sistemas Distribuídos

Modelo CSPm - EstacionamentoEquipe:

Rafael Araújo ([email protected])Ingridd Brito ([email protected])

Page 2: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Sistema

• Sistema de estacionamento de um local genérico;• Possui possibilidade de pagamento tanto em um Caixa

quanto na Cancela de Saída (caso o pagamento seja necessário);• O pagamento pode ser realizado utilizando cartão de crédito

ou dinheiro se realizado no Caixa;• Se realizado na Cancela de Saída, o único meio aceito é via

cartão de crédito.

Page 3: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Sistema

• Os veículos poderão entrar por uma das Cancelas de Entrada disponíveis;• Os mesmos poderão realizar o pagamento no caixa, dadas as

devidas sincronizações;• Ou podem realizar o mesmo na Cancela de Saída;• O Servidor é responsável por armazenar e gerenciar a

sequência de tuplas (placa, hora) dos carros que entram no estacionamento através da Cancela de Entrada.

Page 4: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Componentes

• O sistema é composto por:

• Datatypes, conjuntos e sequências;• Funções.• Canais e eventos;• Processos;

Page 5: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Datatypes, Conjuntos e Sequências

• Datatypes:

• datatype PLACAS = KGC3920 | KHJ2103 | KLA9123 | KFL1984

• Representam as placas dos veículos;

Page 6: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Datatypes, Conjuntos e Sequências

• Datatypes:

• datatype MENSAGEM= RetireTicket | PlacaExistente| BemVindo| TempoEsgotado| Obrigado

• Representam as mensagens que são exibidas para o usuário/veículo durante algumas das operações;

Page 7: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Datatypes, Conjuntos e Sequências

• Alguns dos conjuntos presentes no sistema:

• RANGE = {1..3} //Capacidade de determinados processos.

• HORA = {1200, 1300, 1400, 1500} -- Simulam um horário de entrada de um veículo.

• VEICULOS = {1..2} // Quantidade de veículos.

• Representam as mensagens que são exibidas para o usuário/veículo durante algumas das operações;

Page 8: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Datatypes, Conjuntos e Sequências

• Sequência utilizada no Sistema:

• TICKETS = <>

• Esta sequência armazena pares de placas e horas (i.e. (KGC3920, 1200)) de modo a representar os horários os quais as placas (veículos) entraram no estabelecimento.

Page 9: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Funções

• Funções utilizadas no sistema (assinaturas):

• placaJaCadastrada(p, <>)• placaJaCadastrada(p, <(placa, hora)> ^ ticketsRestantes)

• Utilizada para determinar se uma placa já existe na sequência para que não haja veículos com a mesma placa em horários diferentes.

Page 10: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Funções

• Funções utilizadas no sistema (assinaturas):

• GetHora(p, t) = { h | h <- HORA, elem((p, h), t) }

• Utilizada para retornar um horário de entrada (h) relacionado a uma determinada placa (representada por p).

Page 11: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Funções

• Funções utilizadas no sistema (assinaturas):

• RemovePlaca(placa, <>) = <>

• RemovePlaca(p, <(placa, hora)> ^ placasRestantes)

• Utilizada para remover a placa de uma sequência, onde a entrada é dada por uma própria sequência que é dividida em head e tail através da concatenação de elementos e é analisada separadamente até que a placa desejada seja encontrada, então, a concatenação dos elementos previamente analisados e os restantes serão retornados como uma única sequência.

Page 12: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Canais e Eventos

• Alguns dos Canais de Dados e Eventos presentes no sistema:

• channel levantaCancela, baixaCancela

• Representam ações de um processo que não recebem dados, normalmente utilizadas como alfabeto de sincronização ou operações únicas;

Page 13: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Canais e Eventos

• Alguns dos Canais de Dados e Eventos presentes no sistema:

• channel enviaDados: RANGE.PLACAS.HORA

• Representam ações de um processo que recebem dados, onde há a comunicação (output) de um processo X para a entrada (input) de um processo Y. Estas representam operações que operam sobre dados ou que irão gerar eventos baseados em valores transientes (calculados) sobre tais dados;

Page 14: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Processos

• Exemplo de Processo encontrado no sistema:

• CancelaEntrada(n) = recebeDados!n?p -> leHora!n?hora -> enviaDados!n!p!hora -> entregaTicket.n -> abrirCancela.n -> display!BemVindo-> fecharCancela.n -> CancelaEntrada(n)

• Representam um conjunto de ações (eventos) com trasmissão de dados ou não, estes denotam o comportamento do processo de maneira contínua;

Page 15: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Processos

• Exemplo de Processo encontrado no sistema:

• Servidor(T) = (enviaDados?n?placa?hora -> if (not placaJaCadastrada(placa, T)) then Servidor(T ^ <(placa, hora)>) else display!PlacaExistente -> Servidor(T))

• Neste caso, faz-se o uso da sequência presente no sistema, estruturas de controle if-then-else e avaliação de expressões provenientes de funções.

Page 16: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Avaliações

• Para determinar algumas propriedades do sistema são utilizadas algumas asserções, tais como:

• assert CancelaEntrada(1) :[deterministic]

• assert CancelaEntrada(1) :[deadlock free]

• assert CancelaEntrada(1) :[livelock free]

• Estas representam, respectivamente, a presença de determinismo em um processo (ou composições, escolhas, etc. entre eles), a presença de deadlock e livelock, dada a análise unitária ou em conjunto com outros processos.

Page 17: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Avaliações

• Exemplo de asserções relativas a interação entre processos:

• CancelaEntradaANDVeiculo = CancelaEntrada(1) [|{|recebeDados|}|] Veiculo(1)

• assert CancelaEntradaANDVeiculo :[deterministic]

• assert CancelaEntradaANDVeiculo :[deadlock free]

• assert CancelaEntradaANDVeiculo :[livelock free]

• Mesmos conceitos presentes na análise de um único processo, a diferença é a avaliação como um todo para quaisquer processos envolvidos e suas operações, havendo sincronização ou não.

Page 18: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Refinamento

• Para availiar se um processo "melhora" o outro em determinado modelo (Traces, Falhas, Falhas-Divergências) foram utilizadas as seguintes asserções:

assert TotalVeiculos_UNREF [T= TotalVeiculos_REF

assert TotalVeiculos_UNREF [F= TotalVeiculos_REF

assert TotalVeiculos_UNREF [FD= TotalVeiculos_REF

Page 19: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Refinamento

• Para esta avaliação, foram utilizados os seguintes processos:

• TotalVeiculos_UNREF = |~| x: VEICULOS @ Veiculo(x) --Processo com não-determinismo proposital, proveniente da escolha interna

• TotalVeiculos_REF = [] x: VEICULOS @ Veiculo(x) -- Processo que refinará o anterior, utilizando escolha externa

Page 20: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Melhorias no Modelo

• Interação entre Processos da Cancela de Saída e Veículo;

• Utilização do servidor ao sincronizar dados com o Caixa, ao invés de utilizar uma função como filtro de valores.

Page 21: Especificação de Sistemas Distribuídos Modelo CSPm - Estacionamento Equipe: Rafael Araújo (rpa4@cin.ufpe.br)rpa4@cin.ufpe.br Ingridd Brito (imlb@cin.ufpe.br)imlb@cin.ufpe.br

Considerações Finais

• Todos os processos foram avaliados nas 3 proposições de asserção;

• Deadlocks esperados estão marcados no modelo (.csp);

• Operações de dados foram realizadas utiizando índices para indicar qual o evento e qual o processo que originou este evento, durante a sincronização / paralelismo.