• Nenhum resultado encontrado

Passo 1: Modelagem dos objetos

No documento Pedro Fernandes Neto_Tese (páginas 101-104)

7.5 Modelo de Processos

7.5.3 Passo 1: Modelagem dos objetos

Os objetos identificados e modelados são: sensor e o servidor de banco de dados. Para o estudo de caso, três objetos sensor são modelados, resultando nos módulos HCPN

smartsensor1, smartsensor2 e smartsensor3. O objeto servidor possui somente uma instância

e é representado pelo módulo HCPN BDWarehousing. Os módulos HCPN são descritos a

seguir.

Objeto Servidor de Banco de Dados (BDWarehousing )

O módulo HCPN para o servidor de banco de dados warehousing é ilustrado na Figura 7.3. O módulo está de acordo com o SGBD-TR mostrado na arquitetura do sistema, ilustrada na Figura 7.1.

As propriedades funcionais e dinâmicas deste módulo são descritas a seguir: no lugar BDWarehousing são armazenados todos os registros com todas as operações executadas, formando um histórico das operações executadas. A inserção de um novo registro no histórico ocorre sempre que a transiçãoAtualizando dispara e é implementada pela função

adicServer((dboup, oi), listdbocell), onde o registro dboup é armazenado na lista de ope- rações (listdbocell) e o parâmetro oi identifica o sensor. Uma leitura do histórico acontece quando a transiçãoLendoOBD dispara.

O lugar ServidorBD possui o registro com os valores mais atualizados dos parâmetros. Quando uma operação de escrita está executando, então a função atudbo(dbo,dboup) é executada. Os argumentos de entrada referem-se ao registro com os valores correntes no servidor (dbo) e ao registro com os valores novos para serem atualizados (dboup). Esta função, como as demais descritas, estão detalhadas na Seção 7.5.2. O tempo computa- cional para uma operação de escrita é definido pela variável tcT1. Para uma operação de leitura, o tempo computacional é definido pela variável tcT4.

Capítulo 7. Modelo Formal 91 ServidorBD DBOCELL 1‘({nr=x, vrr=0,vrn=0,avir=0,rtm=0,impr=0,milr=0}) FG LeBDWare PRODSIMPMIL_ LendoOBD BDWareLido DBOCELL_ AtualizaWBD DBOCELL_ BDWAtualizado DBOCELL_ Ativacoes ACTIVATIONS_ FG Negociacao1 [obj=bdcelle] HS Negociacao2 [obj=bdcelat] HS Interface do Objeto Efetiva1 Efetiva2 Retorno RETURNS_ FG BDWarehousing LISTDBOCELL [] Atualizando dbo (dboup,oi) (psimpmil,oi) atudbo(dbo,dboup) dbo dbo (leitdbo(dbo,psimpmil),oi)@+tcT4 (obj, psimpmilA(psimpmil),oi) (psimpmil,oi) (dbo,oi) (dbocell,oi) (dbocell,oi) (dboR(dbocell),oi) (dboP(dbocell),oi) adicServer((dboup,oi),listdbocell) listdbocell (obj,dboS(dbo),oi) (respdbo(dbo,dboup),oi)@+tcT1 adicServer((leitdbo(dbo,psimpmil),oi),listdbocell) listdbocell

Figura 7.3: Modelo HCPN para o Servidor de Banco de Dados Warehousing

Os atributos definidos para os lugares BDWarehousing e ServidorBD formam o registro com os seguintes campos: nr é o item de dado, vrr é o valor do item, vrn é o valor antigo do item, caso a transação seja abortada este valor é atribuído ao parâmetro vrr, avi é o intervalo de validade absoluta do item de dado, rtm é o rótulo de tempo da operação, impr é a imprecisão no item de dado e, milr é a imprecisão acumulada para o time de dado.

Antes de acessar o banco de dados, modelado pelos lugares BDWarehousing e Servi- dorBD, as transações são postas em uma fila de pronto, modelada pelo lugar Ativacoes. Se o item de dado estiver sendo usado por uma transação conflitante, então uma função de negociação é avaliada. As funções de negociação são representadas pelas transições de substituição Negociacao1 e Negociacao2. O acesso ao repositório de dados é con- cluído quando as transições Efetiva1, para uma transação de leitura, e Efetiva2, para uma transação de escrita, são disparadas. Contudo, as transações só são completadas quando suas respectivas funções de monitoração forem avaliadas. As funções de QoS

Capítulo 7. Modelo Formal 92

serão detalhadas no Passo 4.

Classe Sensores (Instância smartsensor1 )

Os módulos HCPN para a classe sensores são concebidos a partir da arquitetura de um sensor inteligente, ilustrada no Capítulo 6. De agora em diante, as descrições são rela- cionadas à instância smartsensor1 da classe sensores. Todas as definições são válidas para as demais instâncias.

O elemento de sensoriamento é modelado pelo lugar Sensor1, considerando valores aleatórios entre cinco e trinta e cinco ([5,35]). Este intervalo pode ser facilmente alterado no nó de declarações. O conversor analógico-digital é implementado pela transição con- versor. Ao disparar, esta transição converte o valor adquirido no registro com os campos valor, avi, rotulodetempo e sensor. O tempo de conversão do sensor, isto é, o tempo que a medida obtida pelo sensor é convertida em uma medida válida para o sistema, é modelado pelo retardo na transição conversor de uma unidade de tempo (@ + 1). O lugar

habilita11é o relógio interno do sensore o lugarfluxo1define os argumentos de entrada para

a função OK. Esta função implementa a propriedade de esporadicidade para aquisição de um dado pelosensor.

Capítulo 7. Modelo Formal 93 conversor 1 C input (listdadotempoS1); action (if listdadotempoS1=[] then outfile:=TextIO.openOut("/root/pedro/coletor.sensor") else (); output_col’ListDadoTempoS(!outfile,listdadotempoS1); (*output_col’DadoTempo(!outfile,((item1),agora()));*) TextIO.output(!outfile,"\n");

if agora()=200 then TextIO.closeOut(!outfile) else());

@+1 Sensor1 ItemData 5 fluxo1 Int1 1 Sensor1 inteligente habilita11 Relogio P In Memoria1 ListDadoTempoS [] ConsultaSS1 DBOCELL FG IniciaCS1 1 ConsultaTS1 DBOCELL_ FG Comunicacao (Radio) Elemento Processamento Elemento Sensor

O retardo associado a transicao "conversor*" equivale ao tempo de conversao, ou seja, o tempo que a medida analogica eh convertida em uma medida digital.

item if listdadotempoS1=[] then 1‘(adic1((item1,agora(),S1),listdadotempoS1)) else if (retira1(listdadotempoS1)+pe1)<agora() then 1‘(adic1((item1,agora(),S1),listdadotempoS1)) else if Ok(d1,d2) then 1‘(adic1((item1,agora(),S1),listdadotempoS1)) else 1‘memoria(listdadotempoS1) 1‘e item1 d1 listdadotempoS1 dbo (sensordb1(listdadotempoS1,dbo),S1) listdadotempoS1 listdadotempoS1

Figura 7.4: Modelo HCPN para os Sensores (Instância smartsensor1)

Um registro é inserido na memória (lugar Memoria1 ) de acordo com a inscrição do arco de entrada do lugar Memoria1 e de saída da transição conversor. A inscrição do arco é obtida do algoritmo descrito a seguir.

A transição iniciaCS1, juntamente com os lugares ConsultaSS1 e ConsultaTS1, mo- delam a operação de leitura do repositório de dados dos sensores. Quando esta transição dispara, a função sensordb1 é executada retornando o registro mais atualizado. Em seguida, estes valores são enviados através do elemento de comunicação do sensor. As linhas de código localizadas na parte de baixo da Figura 7.4, ao lado do elemento de comunicação, geram um arquivo texto com os dados armazenados no sensor. O nome do arquivo texto é coletor.sensor e pode ser consultado por outras aplicações. Este arquivo texto contém todos os registros armazenados no lugar Memoria1.

No documento Pedro Fernandes Neto_Tese (páginas 101-104)