• Nenhum resultado encontrado

Análise de um exemplo

No documento Redes de Petri Reactivas e Hierárquicas (páginas 89-97)

2. As Redes de Petri Reactivas

2.3 Análise de um exemplo

Dado que a simples enumeração das características das RdP-R (mesmo quando apresentada de forma justificada), não é suficiente para produzir uma visão completamente esclarecida sobre as suas capacidades, optou-se por apresentar nesta secção um exemplo simplificado que permita clarificar o posicionamento das RdP-R face a outros formalismos, em particular em relação aos três formalismos de referência (RdP Coloridas [Jensen, 92], RdP Interpretadas [Silva, 85] e statecharts [Harel, 87]). Pretende-se, também, ilustrar a flexibilidade de modelação de que o projectista dispõe, necessitando de seleccionar, de entre as características disponíveis, as que resultam num modelo mais expressivo.

Escolheu-se um exemplo simples que se possa comportar como um exemplo didáctico, extraído dos trabalhos realizados na área dos edifícios inteligentes, tema a apresentar detalhadamente em capítulo posterior. Por razões de pedagogia, inicia-se pela caracterização do caso elementar, ao qual serão progressivamente adicionados novos requisitos.

Prepara Mensagem &

Processa Resposta Prepara Resposta

Mensagem em trânsito

Resposta em trânsito

enviaMensagem recebeMensagem

enviaResposta recebeResposta

CLIENTE MEIO DE COMUNICAÇÃO SERVIDOR

PM PR MT RT eM rM eR rR

Figura 2-15 - Diagrama de estados modelando a comunicação de um cliente com um servidor.

Considere-se, pois, um sistema constituído por dois processos computacionais, interligados de acordo com o modelo cliente-servidor. O cliente (tipicamente um processo responsável pelo interface com o utilizador) tem como função principal apresentar o estado de um sensor, que é monitorado por um processo servidor. O servidor fornece o estado do sensor como resposta à recepção de uma mensagem com esse pedido, o fluxo de mensagens entre cliente e servidor pode ser modelado através da máquina de estados da Figura 2-15.

Como requisito seguinte, considere-se que o cliente é responsável pela actualização periódica de um sinóptico em que se encontram representados os estados de vários sensores. Para isso, necessita de contactar um conjunto de servidores no sentido de recolher essa informação (através da emissão

simultânea de mensagens para todos eles); quando receber a informação de todos os servidores procede à actualização do sinóptico. Para simplificar, consideram-se apenas dois servidores, A e B.

A tentativa de modelar o sistema descrito através de diagramas de estados revela uma das suas grandes limitações (identificada no início do presente capítulo), isto é, inabilidade para modelação de processos paralelos: o número de estados resultante da actividade independente de dois processos é igual ao produto do número de estados de cada uma das máquinas de estado.

PMA PRA MAT RAT eMs{in[PMB]} rMA eRA rRA PMB PRB MBT RBT eMs{in[PMA]} rMB eRB rRB Sist MA MB

Figura 2-16 - Statechart modelando a comunicação de um cliente com dois servidores.

O statechart da Figura 2-16 permite modelar de forma compacta e expressiva o sistema descrito, garantindo que o crescimento do número de estados é linear. As referências utilizadas no statechart, quer no tocante a identificadores de estados, quer de eventos, mantêm-se coerentes com os utilizados no diagrama de estados prévio, tendo em conta o facto de se utilizarem duas máquinas de estado MA e

MB para contactar com os dois servidores A e B.

A sincronização do envio das mensagens para os servidores é garantida através do condicionamento mútuo da evolução das duas máquinas de estado MA e MB, traduzido nas anotações presentes nos arcos de saída dos estados PMA e PMB. No caso da máquina de estados MA, só é permitido transitar do estado PMA, caso na máquina de estados ortogonal MB o estado actual seja PMB (garantido através da anotação in[PMB]). Idêntica restrição está presente na máquina de estados MB.

PMA PRA MAT RAT eMs rMA eRA rRA PMB PRB MBT RBT rMB eRB rRB Sist MA MB

Figura 2-17 - Statechart equivalente ao apresentado na Figura 2-16.

Importa referir que os condicionamentos entre máquinas ortogonais realizados através de anotações podem, nalguns casos, ser explicitamente modeladas pela estrutura do statechart. É esse o caso do exemplo em análise, dando origem ao statechart da Figura 2-17, em que as restrições à evolução do statechart são tornadas explícitas através do arco composto dependente do evento eMs.

Qualquer dos modelos apresentados até aqui nesta secção podem, facilmente, ser traduzidos em RdP-R. Para isso, bastará substituir todos os arcos entre estados, por arcos contendo transições com dependências associadas nos mesmos eventos.

Em particular, na Figura 2-18 apresenta-se um modelo RdP-R (utilizando características das RdP Coloridas e RdP Interpretadas), resultado de uma tradução do statechart da Figura 2-17. As marcas coloridas utilizadas (<1> e <2>) representam a comunicação com os dois servidores, A e B, respectivamente.

Finalmente, considerando as características coloridas do modelo, por um lado, associadas a características específicas das RdP-R, por outro, é possível encontrar o modelo RdP-R da Figura 2-19, elegante e expressivo. De notar a sua semelhança estrutural com o diagrama de estados da Figura 2-15 de onde partimos para modelar o sistema elementar. Os eventos utilizados associados às transições são vectores, permitindo que a determinação dos vínculos em cada transição se faça considerando em simultâneo a marcação actual e a ocorrência de eventos, ou seja, utilizando simultaneamente características autónomas e não-autónomas do modelo RdP-R.

PM PRA MAT RAT eMs rMA eRA rRA PRB MBT RBT rMB eRB rRB <1> <2> <1>+<2> <1> <2>

Figura 2-18 - RdP modelando a comunicação de um cliente e dois servidores.

De notar que a modelação de um sistema com N servidores, produziria pequenas alterações no modelo da Figura 2-19, nomeadamente na marcação inicial do lugar PM, que conteria N marcas, e das inscrições associadas aos arcos da transição de saída do mesmo lugar, que passariam a conter a

expressão < > =

¦

i i N 1 . PM PR MT RT eMs rM[m] eR[m] rR[m] <1> <2> <1>+<2> <1>+<2> <m> <m> <m> <m> <m> <m>

Figura 2-19 - RdP-R equivalente à RdP da Figura 2-18.

De modo semelhante ao afirmado para os statecharts apresentados, também será possível encontrar RdP-R comportamentalmente equivalentes deslocando anotações para estrutura e vice-versa. No particular das RdP Coloridas é uma opção há muito tempo conhecida e que, fundamentalmente, é determinada pela formação e prática de quem produz o modelo RdP. Como situações paradigmáticas refiram-se dois casos extremos:

• na primeira situação, em que, com o objectivo de se obter um modelo muito compacto, se desloca todo o esforço de modelação para as anotações, resultando um modelo “pequeno”, mas de difícil apreensão, devido à densidade das anotações coloridas da rede;

• na segunda situação, em que, com o objectivo de explicitar graficamente todas as dependências e aspectos do sistema, se é conduzido a uma rede de tal forma extensa, inviabilizadora de uma apreensão do seu comportamento.

No caso das RdP-R, para além da busca dos equilíbrios referidos no último parágrafo entre anotações coloridas e estrutura da rede, é necessário considerar uma procura de um equilíbrio de novo tipo, que tem a ver com as características não-autónomas do modelo, isto é, entre as dependências modeladas através de eventos e sinais e as modeladas através da estrutura da rede. Em suma, mais uma área em que a criatividade e as capacidades do projectista serão evidenciadas…

Tendo em conta o objectivo da apresentação do exemplo, não se considera necessário ilustrar outras vantagens resultantes da utilização das RdP-R, algumas das quais são vantagens bem conhecidas das RdP. De entre elas, refiram-se, a título de exemplo:

• as capacidades de modelação de dados (que permitiriam modelar os conteúdos das mensagens propriamente ditos),

• as capacidades de memorização (que permitiriam modelar os protocolos para recuperação de erros de comunicação e modelar memórias de comunicação, vulgo “buffers”),

• as características de modelação local (por oposição aos diagramas de estado, em que se necessita de conhecer o estado global do sistema) permitindo atitudes de modelação incremental e de refinamentos específicos a submodelos,

67

Sumário do capítulo

No presente capítulo serão abordados alguns temas relevantes ligados à análise e execução de modelos RdP-Reactivas.

Assim, o capítulo é composto pelas seguintes secções:

3.1 Sobre as técnicas de verificação e execução de RdP-R 3.2 Sobre ambientes de desenvolvimento

3.3 Sobre a construção e utilização do grafo de estados 3.4 Resolução de conflitos

Na primeira parte, as questões associadas a diferentes tipos de soluções para a execução das RdP-R serão apresentadas. Para além dos tradicionais jogadores-de-marcas, responsáveis pelo que é referido na literatura como o jogo das marcas (isto é, o resultado do disparo das transições da RdP), procurar-se-á dar ênfase à potencial utilização do espaço de estados associado ao modelo RdP-R, como base para a execução do modelo em plataformas de recursos computacionais limitados. Um segundo aspecto importante a abordar nesta secção é o das técnicas de análise aplicáveis às RdP-R, permitindo proceder à verificação do modelo.

A segunda secção apresenta, brevemente, os protótipos desenvolvidos para edição e simulação de RdP.

A construção do espaço de estados associado a um modelo RdP-R será debatida na terceira secção. Será, nomeadamente, apresentado o algoritmo para a sua construção e ilustrada a sua execução em controladores lógicos programáveis e dispositivos de lógica programável.

Na última parte abordar-se-ão questões associadas à resolução automática de conflitos, tema imprescindível para a geração automática de código para execução. Analisar-se-ão as várias atitudes possíveis na resolução automática de conflitos em RdP-R, considerando uma taxonomia baseada em três dicotomias “tradicionais”:

• sistemas determinísticos versus não-determinísticos,

• resolução de conflito equitativa versus não-equitativa, e

No documento Redes de Petri Reactivas e Hierárquicas (páginas 89-97)

Documentos relacionados