• Aucun résultat trouvé

VMWARE VSPHERE

Dans le document Citrix XenDesktop Implementation (Page 96-112)

Função de Especificação

Como definido no Capítulo 4, através da Função de Especificação são identificados os pa- râmetros de tempo e os parâmetros lógicos necessários para garantir o perfeito funciona- mento do sistema. Dentre os parâmetros temporais identificados tem-se a periodicidade, o prazo e o tempo de liberação de uma transação. Entre os parâmetros lógicos estão o valor, a imprecisão admitida e a imprecisão máxima permitida para o item de dado. Alguns destes parâmetros são obtidos pelas métricas de desempenho.

Capítulo 7. Modelo Formal 97

A função de especificação é dividida no sistema em três módulos HCPN. Um módulo refere-se ao relógio do sistema (EspecificacaoGlobal), o outro se refere à especificação das transações (EspecificacaoTransacao) e o último se refere à especificação dos sensores (EspecificacaoSensor). Nas Seções seguintes os dois últimos módulos serão descritos.

Módulo HCPN para Especificação das Transações

Os parâmetros temporais para as transações do sistema são modelados pelo módulo HCPN para especificação das transações, ilustrado na Figura 7.6. O tempo para as transações é obtido pelo lugar Relogio das Transacoes e pela transição RelogioT Local das Transacoes que

formam o relógio das transações. Este relógio é sincronizado ao relógio do sistema, mode- lado pelo módulo HCPN EspecificacaoGlobal. O tempo para as transações é alimentado em um sempre que a transição do relógio é disparada.

Os parâmetros de tempo das transações serão descritos a seguir considerando apenas o módulo AtualizaS1. Tais definições são idênticas para os módulos AtualizaS2, Atual- izaS3 e Leitura1. Os tempos para as transações são obtidos pelos lugares ConsultaS1 e ConsultaS1I e pela transiçãoAcessaS1. A periodicidade da transação é dada pela variável peT1 e o prazo para a transação ser concluída é igual ao período. O tempo de liberação

é a diferença entre o período e a marcação inicial do lugar ConsultaS1 mais um, ou seja,

(peT 1 − marcacaoinicial + 1). O um é o retardo atribuído à transição. Por exemplo, considerando que a marcação inicial é igual a nove e que o período é igual a doze, então o tempo de liberação da transação será (12 − 9) + 1 = 4.

Capítulo 7. Modelo Formal 98 Relogio das Transacoes Relogio FG RelogioT Local das Transacoes @+1 ConsultaS1 Relogio 9‘e AcessaS1 @+1 [agora()<=intervalo(agora(),varinter) andalso Pt(transperderamprazo, transconcluidas)<PtOk] ConsultaS1I Atomica 1‘efetiva FG ConsultaS2 Relogio 9‘e AcessaS2 @+1 [agora()<=intervalo(agora(),varinter) andalso Pt(transperderamprazo, transconcluidas)<PtOk] ConsultaS2I Atomica 1‘efetiva FG ConsultaS3 Relogio 9‘e AcessaS3 @+1 [agora()<=intervalo(agora(),varinter) andalso Pt(transperderamprazo, transconcluidas)<PtOk] ConsultaS3I Atomica 1‘efetiva FG ConsultaS4 Relogio 9‘e AcessaS4 @+1 [agora()<=intervalo(agora(),varinter) andalso Pt(transperderamprazo, transconcluidas)<PtOk] ConsultaS4I Atomica 1‘efetiva FG MetricaPt CORPT FG (0,0) 1‘e 1‘e peT1‘e 1‘comeca peT2‘e 1‘comeca 1‘e peT3‘e 1‘comeca 1‘e peT4‘e 1‘comeca 1‘e (transperderamprazo, transconcluidas) (transperderamprazo, transconcluidas) (transperderamprazo,

transconcluidas) (transperderamprazo,transconcluidas)

Figura 7.6: Módulo HCPN para Especificação das Transações

As guardas das transições AcessaS1, AcessaS2, AcessaS3 e AcessaS4 e o lugar MetricaPt

serão explicados quando as métricas de desempenho forem descritas.

Quando o tempo de liberação de uma transação é encontrado, então uma ficha é adi- cionada ao lugar ConsultaS1I que é um lugar de fusão com ConsultaS11, no módulo HCPN AtualizaS1, ilustrado na Figura 7.7. A marcação inicial para este lugar é a ficha 1‘ef etiva e quando a ficha 1‘comeca é adicionada, a transição IniciaConsS1 fica habili- tada para disparar. Esta dinâmica modela o início da execução de uma transação e de acordo com a sua operação, invocará um dos métodos definidos para os objetos. A função

iniciareg(dbo), na inscrição do arco de entrada do lugar ConsultaRS1, inicializa o registro

do banco de dados a ser lido no sensor e atualizado no servidor. Na inicialização, os parâmetros lógicos das transações são especificados.

Capítulo 7. Modelo Formal 99 ConsultaS11 Atomica FG 1‘efetiva IniciaConsS1 ConsultaRS1 DBOCELL FG BDRetT1 DBOCELL_ Atualizou1 Invocacao1 Ativacoes1 ACTIVATIONS_ FG RetornoS1 HS Retorno1 RETURNS_ FG ConsultaRS12 DBOCELL_ FG iniciareg(dbo) (dbocell,or) 1‘comeca++ 1‘efetiva (dbo,oi) (bdcelat,dboS(dbo),oi) (dbocell,or) (dboP(dbocell),or) 1‘efetiva

Figura 7.7: Modelo HCPN para as Transações

Como ilustrado na Figura 7.8, o lugar ConsultaRS1 é um lugar de fusão com o lugar ConsultaSS1 ilustrado no módulo HCPN smartsensor1. Quando uma ficha é adicionada a ConsultaSS1, a transição iniciaCS1 dispara atribuindo ao registro os valores armazena- dos no sensor. Isso é feito pela função sensordb1 que é a inscrição do arco de entrada do lugar ConsultaTS1, ver Figura 7.4. O lugar ConsultaTS1 é um lugar de fusão com ConsultaRS12. Uma vez o registro atualizado, a transição Invocacao1 pode disparar. Ao ocorrer, uma ficha é adicionada ao lugar Ativacoes1 que é um lugar de fusão com o lugar Ativacoes no módulo HCPN BDWarehousing, definido para o objeto servidor de banco de

Capítulo 7. Modelo Formal 100 AtualizaS1 ConsultaRS1 smartsensor1 ConsultaSS1 ConsultaTS1 ConsultaRS12 Ativacoes1 BDWarehousing Ativacoes

Figura 7.8: Lugares de Fusão entre os Módulos HCPN

Uma transação completa quando a transição Atualizou1 retornar a ficha 1‘efetiva ao lugar ConsultaS11. Contudo, antes disso, uma ficha deve ser colocada no lugar Retorno1, habilitando a transição de substituição RetornoS1. Esta modela a função de monitoração, onde é verificada se a especificação inicial para a transação foi satisfeita.

Módulo HCPN para Especificação dos Sensores

Os parâmetros temporais para os sensores são modelados no módulo HCPN para especifi- cação dos sensores, ilustrado na Figura 7.9. O tempo para os sensores é obtido pelo lugar

Relogio dos Sensorese pela transiçãoRelogio Local dos Sensores que constituem o relógio dos

sensores. Este relógio é sincronizado ao relógio do sistema, modelado pelo módulo HCPN EspecificacaoGlobal.

O lugarhabilitaS1e a transição de substituiçãosensor1são incluídos para cada sensor do

sistema, neste caso específico para o sensor um. Cada transição de substituição equivale a um módulo HCPN para os sensores.

Capítulo 7. Modelo Formal 101 sensor1 HS @+2 sensor 2 HS @+2 Relogio dos Sensores Relogio FG Relogio Local dos Sensores habilitaS1 Relogio sensor 3 HS @+2 habilitaS2 Relogio habilitaS3 Relogio 1‘e 1‘e 1‘e 1‘e 1‘e 1‘e 1‘e

Figura 7.9: Módulo HCPN para Especificação dos Sensores

O tempo associado a cada transição de substituição, representado por @ + 2, modela o tempo de resposta do sensor. O tempo de resposta do sensor é o tempo que o sensor necessita para se adequar às condições do ambiente.

Função de mapeamento

Para as transações do modelo, os parâmetros temporais e lógicos são mapeados através do tipo (ou cor)DBOCELL, onde o item de dado, o valor, a validade absoluta, o rótulo de

tempo, a imprecisão permitida e a imprecisão máxima acumulada são especificados.

Funções de Negociação

Como identificado no modelo de objetos, para o objeto servidor de banco de dados são identificadas três funções de negociação. A F N1é usada para negociar entre os parâmetros

lógicos e temporais quando uma transação de leitura do servidor (T LW ) está executando e uma transação sensor (T ES) é invocada para executar. A F N2 é usada para negociar

os parâmetros quando uma transação sensor (T ES) está executando e uma transação de leitura do servidor (T LW ) é invocada para executar. A F N3 quando executada, negocia

os parâmetros temporais e lógicos de uma transação de escrita do servidor (T EW ) que está executando e de uma transação sensor (T ES) que é invocada para executar. Para a classe sensores, as duas primeiras funções de negociação são utilizadas.

Capítulo 7. Modelo Formal 102 Módulo HCPN Negociação1 Módulo HCPN BDWarehousing InicioNegociacao EscritaxLeitura FimNegociacao EscritaxLeitura LeBDWare Ativacoes

Transição de

Substituição

Negociacao1

Figura 7.10: Transição de Substituição Negociação1

O módulo HCPN Negociacao1 é representado por uma transição de substituição no mó- dulo HCPN BDWarehousing, onde os lugares Ativacoes eLeBDWare são os sockets na super-

página e os lugaresInicioNegociacaoEscritaxLeituraeFimNegociacaoEscritaxLeiturasão as portas

de entrada e de saída na subpágina, respectivamente. Tal como ilustrado na Figura 7.10. Na Figura 7.11 é ilustrado o modelo para a transição de substituição Negociacao1. Existem dois fluxos possíveis de execução na subpágina, como definido a seguir:

Capítulo 7. Modelo Formal 103 ArgLeBDWareEsc PRODSIMPMIL_XEVALFC FG LeiLivreExec [(estado=livre) andalso ps=#nrl(psimpmil)] EstadoBDWare ESTADOITEMSENSOR1 1‘(livre,x,[]) FG EstadoBD InicioNegocia caoEscritaxL eitura ACTIVATIONS_ P In FimNegociac aoEscritaxLe itura PRODSIMPMIL_ P Out EscExec_LeiInv [(#stat(psimpmil)=critico) orelse (#nrl(psimpmil)=#nr(dboup)) andalso dlMenor1(psimpmil,listsensordl)>=tcSoma(listsensordl) andalso (#vrr(dboup)-#vrr(dbo)<= metimp2(dbo,psimpmil)- #impl(psimpmil))] ArgEscBDWareLe DBOCELL_XEVALFC FG LeBDW DBOCELL FG (psimpmil,or) (obj,psimpmilA(psimpmil),or) (estado,ps,listsensordl) (ImprecImport(dboup,dbo,psimpmil),or) (obj,psimpmilA(psimpmil),or) ((dboup,fcverd),oi) ((dboup,avalfc),oi) ((psimpmil,fcfalso),or) ((psimpmil,fcfalso),or) dbo (estado,ps,listsensordl) (estado,ps,adicDl1(or,psimpmil,listsensordl)) (executando,ps,adicDl1(or,psimpmil,listsensordl))

Figura 7.11: Função de Negociação - T LW é invocada e existe pelo menos uma T ES executando

• T LW é invocada e não existe nenhuma outra transação executando, conseqüente- mente não existe concorrência. Nesse caso, quando uma T LW é invocada, uma ficha é adicionada ao lugar InicioNegociacaoEscritaxLeitura. Se nenhuma outra transação

conflitante estiver executando para o mesmo item de dado, então a transiçãoLeiLivre- Exec fica habilitada. Ao disparar, a ficha do lugar EstadoBDWare, inicializada em

1‘(livre, x, []), é modificada para 1‘(executando, x, [sensor, (avi+rotulodetempo), tc]), onde o primeiro parâmetro especifica que tem transação executando, o segundo es- pecifica qual item de dado a transação está manipulando e o terceiro é uma lista que identifica qual sensor está executando, com seus respectivos prazo e tempo com-

Capítulo 7. Modelo Formal 104

putacional. Quando a transação for completada a ficha será reinicializada, a menos que exista uma outra transação executando. Em seguida, uma ficha é adicionada ao lugarFimNegociacaoEscritaxLeitura. Sempre que uma transação de leitura é executada

o estado do lugar ArgLeBDWareEsc é alterado.

• T LW é invocada e existe pelo menos uma T ES executando (F N2). Nesse caso,

quando uma T LW é invocada, uma ficha é adicionada ao lugar InicioNegociacaoE- scritaxLeitura. Se pelo menos uma T ES estiver executando, então à transiçãoLeiLivre- Execnão fica habilitada, devido à guarda[(estado = livre)]. A transiçãoEscExec_LeiInv,

cuja guarda representa a F N2, pode ser avaliada. Considerando os valores dos pa-

râmetros da T ES, da T LW , do objeto servidor de banco de dados e do sistema, a função pode ser avaliada em verdadeira ou falsa. Se for avaliada em verdadeira a transição poderá ocorrer, permitindo a execução concorrente. Caso contrário, o acesso concorrente não é permitido. F N2 possibilita avaliar o acesso concorrente

de mais de duas transações, isto é, quando uma T ES estiver executando, várias T LW podem executar concorrentemente. Para isso ser possível é necessário que o menor prazo para conclusão das transações seja maior ou igual à soma dos tem- pos computacionais das transações. Tal funcionalidade é implementada na F N2

pela expressão dlMenor1(psimpmil, listsensordl) >= tcSoma(listSensordl), onde a função dlMenor1(psimpmil, listsensordl) seleciona o menor prazo de uma lista e a função tcSoma(listSensordl) soma os tempos computacionais. Estes dados são obtidos do lugar EstadoBDWare. Os parâmetros do objeto servidor de banco de da-

dos são obtidos pelo o lugar LeBDW e os parâmetros da T ES são obtidos pelo lugar ArgEscBDWareLe.

Capítulo 7. Modelo Formal 105 Módulo HCPN Negociação2 Módulo HCPN BDWarehousing InicioNegociacao Escrita FimNegociacao Escrita AtualizaWBD Ativacoes

Transição de

Substituição

Negociacao2

Figura 7.12: Transição de Substituição Negociação2

O módulo HCPN Negociacao2 é representado por uma transição de substituição no mó- dulo HCPN BDWarehousing, onde os lugares Ativacoes e AtualizaWBD são os sockets na

superpágina e os lugares InicioNegociacaoEscrita eFimNegociacaoEscrita são as portas de en-

trada e de saída na subpágina, respectivamente. Tal como ilustrado na Figura 7.12. Na Figura 7.13 é ilustrado o modelo para a transição de substituição Negociacao2. Existem três fluxos possíveis de execução na subpágina, como definido a seguir:

• T ES é invocada e não existe nenhuma outra transação executando, conseqüente- mente não existirá concorrência. Nesse caso, a transição EscLivreExec fica habili-

tada quando a ficha é adicionada ao lugar InicioNegociacaoEscrita. Ao disparar, a

ficha do lugar EstadoBDWare, inicializada em1‘(livre,x,[]), é modificada para1‘(execu- tando,x,[sensor,(avi+rotulodetempo),tc]), onde o primeiro parâmetro especifica que tem

transação executando, o segundo especifica qual item de dado a transação está ma- nipulando e o terceiro é uma lista que identifica qual sensor está executando, com seus respectivos prazo e tempo computacional. Quando a transação for completada a ficha será reinicializada, a menos que exista uma outra transação executando. Em seguida, uma ficha é adicionada ao lugarFimNegociacaoEscrita. Sempre que uma

Capítulo 7. Modelo Formal 106

• T ES é invocada e existe pelo menos uma T LW executando (F N1). Nesse caso,

se pelo menos uma T LW está executando, então a transição EscLivreExec não fica

habilitada, devido à guarda [(estado = livre)]. A transição LeiExec_EscInv, cuja

guarda representa a F N1, pode ser avaliada. Considerando os valores dos parâmetros

da T ES, da T LW , do objeto servidor de banco de dados e do sistema, a função pode ser avaliada em verdadeira ou falsa. Se for avaliada em verdadeira a transição poderá ocorrer, permitindo a execução concorrente das transações. Caso contrário, o acesso concorrente não é permitido. F N1possibilita avaliar o acesso concorrente de mais de

duas transações, isto é, quando uma T LW estiver executando, várias T ES podem executar concorrentemente. Para isso ser possível é necessário que o menor prazo para conclusão das transações executando seja maior ou igual a soma dos tempos computacionais das transações. Tal funcionalidade é implementada na F N1 pela

expressão dlMenor(dboup, listsensordl) >= tcSoma(listSensordl) + tc(or), onde a função dlMenor(dboup, listsensordl) seleciona o menor prazo de uma lista e a função tcSoma(listSensordl) + tc(or) soma os tempos computacionais. Estes dados são obtidos do lugar Estado0BDWare. Os parâmetros do objeto servidor de banco de

dados são obtidos pelo o lugar LeBDW1 e os parâmetros da T LW são obtidos pelo

lugar Arg0LeBDWareEsc.

• T ES é invocada e existe pelo menos uma T EW executando, ou uma T EW é invo- cada e existe pelo menos uma T ES executando (F N3). Nesse caso, se pelo menos

uma transação de escrita está executando, então a transição EscLivreExec não fica

habilitada, devido à guarda [(estado=livre)]. A transiçãoEscExec_EscInv, cuja guarda

representa a F N3, pode ser avaliada. Considerando os valores dos parâmetros da

T ES, da T EW , do servidor de banco de dados e do sistema, a função pode ser avaliada em verdadeira ou falsa. As propriedades dinâmicas para F N3 são semel-

hantes as propriedades descritas no item anterior para a F N1. Os parâmetros do

objeto servidor de banco de dados são obtidos pelo o lugarLeBDW1 e os parâmetros

Capítulo 7. Modelo Formal 107 InicioNegociac aoEscrita ACTIVATIONS_ P In FimNegociaca oEscrita DBOCELL_ P Out Arg0LeBDWareEsc PRODSIMPMIL_XEVALFC FG Estado0BDWare Executando ESTADOITEMSENSOR1 1‘(livre,x,[]) FG EscLivreExec [(estado=livre) andalso (ps=#nr(dboup))] LeiExec_EscInv [(#nr(dboup)=#nrl(psimpmil)) andalso (agora()-#rtm(dboup)<=#avir(dboup)) andalso dlMenor(dboup,listsensordl)>= tcSoma(listsensordl)+tc(or) andalso (#vrr(dboup)-#vrr(dbo)<= metimp1(dbo,dboup)-(#impl(psimpmil) +#impr(dboup)))] LeBDW1 DBOCELL FG Arg0EscBDWareLe DBOCELL_XEVALFC FG EscExec_EscInv [(estado=executando) andalso (ps=#nr(dboup)) andalso (ps=#nr(dbocell)) andalso dlMenor(dboup,listsensordl) >= tcSoma(listsensordl)+tc(or)] (obj,dboS(dboup),or) (dboup,or) ((psimpmil,avalfc),oi) (ImprecExport(dboup,dbo,psimpmil),or) (obj,dboS(dboup),or) dbo ((dboup,fcfalso),or) ((dboup,fcfalso),or) (executando,ps,adicDl(or,dboup,listsensordl)) (obj,dboS(dboup),or) (dboup,or) ((dbocell,avalfc),oi) ((dbocell,fcverd),oi) ((dboup,fcfalso),or) dbo (executando,ps,adicDl(or,dboup,listsensordl)) (estado,ps,listsensordl) (executando,ps,adicDl(or,dboup,listsensordl)) (estado,ps,listsensordl) (estado,ps,listsensordl) ((psimpmil,fcverd),oi)

Figura 7.13: Função de Negociação - T ES é invocada e existe pelo menos uma T LW ou uma T EW executando.

Função de Monitoração

Os módulos HCPN MonitoracaoS1, MonitoracaoS2, MonitoracaoS3 e MonitoracaoL rep- resentam a função de monitoração QoS para o sistema. Nestes módulos são verificados se os parâmetros de tempo especificados para as transações e para os dados são atendidos. Um dos módulos, no caso MonitoracaoS1, é ilustrado Figura 7.14.

Capítulo 7. Modelo Formal 108 BDRetTS1 DBOCELL_ P Out RetornoTS1 RETURNS_ P In Monitoracao1 [or=S1 andalso ps=#nr(dbocell) andalso ps=#nr(dboup)]

Monitoracao Transacao Sensor1 Arg1EscBDWLe DBOCELL_XEVALFC FG EstadoEscrita1 ESTADOITEMSENSOR1 FG LeBDWMonit1 DBOCELL FG MetricaPt1 CORPT FG if (agora() > (#rtm(dbocell)+#avir(dbocell))) then (restart(dbocell,dboup),or) else (dbocell,or) (dboP(dbocell),or) ((dboup,avalfc),or) (estado,ps,listsensordl) if listsensordl=[] then 1‘(livre,ps,listsensordl) else if tl(listsensordl)=[] then 1‘(livre,ps,retDl(or,listsensordl)) else 1‘(estado,ps,retDl(or,listsensordl)) if (agora() > (#rtm(dbocell)+#avir(dbocell))) then restart(dbo,dbocell) else (dbo) dbo (transperderamprazo,transconcluidas) if (agora() > (#rtm(dbocell)+#avir(dbocell))) then (inc(transperderamprazo),inc(transconcluidas)) else (transperderamprazo,inc(transconcluidas))

Figura 7.14: Modelo HCPN para a Função de Monitoração

O módulo é uma subpágina da transição de substituição RetornoS1 do módulo HCPN AtualizaS1, tal como ilustrado na Figura 7.15. Os lugares Retorno1 e BDRet1 são os sockets na superpágina e os lugares RetornoTS1 e BDRetTS1 são as portas de entrada e de saída na subpágina, respectivamente.

Módulo HCPN AtualizaS1 RetornoTS1 BDReTS1 BDRet1 Retorno1

Transição de

Substituição

RetornoS1

Capítulo 7. Modelo Formal 109

O lugar EstadoEscrita1 é um lugar de fusão com o lugar EstadoBDWare, descrito para

as funções de negociação, contendo a lista das transações que estão executando. Quando uma transação é completada, suas referências são retiradas da lista de acordo com o algoritmo a seguir.

Algoritmo 5 Retira uma transação da lista de transações executando

1: Se Lista está vazia, ou seja, não tem nenhum registro armazenado Então 2: Retorne a ficha 1‘(livre,x,[])

3: Senão

4: Se Lista só tem um elemento. A função tl retira o primeiro elemento da lista Então 5: Retorne a ficha1‘(livre,x,[])

6: Senão

7: Retire a transação da lista e retorne a ficha com a referência das demais transações

executando

8: Fim Se 9: Fim Se

O lugarLeBDWMonit1 é um lugar de fusão com o lugarServidorBD, descrito no módulo

HCPN BDWarehousing, onde a operação da transação é desfeita, caso ela seja abortada. O lugarArg1EscBDWLeé um lugar de fusão comArg0EscBDWLe. O lugarMetricaPt1será de-

scrito mais adiante. A inscrição de arco entre a transiçãoMonitoracao1e o lugarBDRetTS1,

é uma expressão condicional para verificar se as restrições de tempo especificadas foram atendidas. Quando a transação é completada ou abortada uma ficha é adicionada ao lugar

BDRetTS1.

Métricas de Desempenho

As métricas de desempenho definidas no Capítulo 4 são consideradas no modelo e descritas a seguir.

1. Métrica P t: equivale a quantidade de transações que perderam o prazo final em relação à quantidade de transações que concluíram seus prazos com sucesso.

No modelo formal esta métrica é implementada nos módulos HCPN Especificacao- Transacao, MonitoracaoS1, MonitoracaoS2, MonitoracaoS3 e MonitoracaoL. Nas páginas de monitoração é modelado o lugar denominadoMetricaPt1, por exemplo, em

MonitoracaoS1, que incrementa a variável transconcluidas sempre que uma transação

é concluída com sucesso. Caso a transação seja abortada, então a variáveltransperder-

Capítulo 7. Modelo Formal 110

inc. O lugar MetricaPt1é um lugar de fusão com MetricaPtno módulo Especificacao-

Transacao.

Considerando os valores das variáveis transconcluidas e transperderamprazo, o controle

de admissão é realizado, onde uma nova transação só é admitida se a quantidade de transações que perderam o prazo final em relação à quantidade de transações que concluíram estiver dentro do aceitável, durante um determinado intervalo de tempo. O controle de admissão é implementado na guarda das transições Aces- saS1, AcessaS2, AcessaS3 e AcessaS4, no módulo HCPN EspecificacaoTransacao. A expressão agora() <= intervalo(agora(), varinter) define o intervalo de tempo e P t(transperderamprazo, transconcluidas) < P tOk define a relação entre as transações abortadas e concluídas.

2. Métrica Impr: equivale à imprecisão máxima admitida no item de dado para ele ainda ser considerado válido logicamente.

A métrica é implementada no modelo formal pelos módulos HCPN Negociacao1 e Negociacao2. Na guarda da transição LeiExec_EscInv no módulo Negociacao2, a expressão metimp1(dbo, dboup) é identificada. Esta função recebe como argumentos, o valor do item de dado armazenado no servidor, dado pela ficha dbo, e a porcent- agem de imprecisão permitida pela transação de leitura do servidor (T LW ), dada por dboup. Por exemplo, é definido que é permitida uma imprecisão de vinte por cento no valor do dado. Então, considerando o valor do dado no servidor igual a trinta, se o valor a ser atualizado pela transação sensor (T ES) estiver dentro do intervalo fechado de vinte e quatro a trinta e seis ([24, 36]), T ES poderá executar. Na guarda da transição EscExec_LeiInv, no módulo Negociacao1, tem a expressão metimp2(dbo, psimpmil). Esta função recebe como argumentos o valor do item de dado armazenado no servidor, dado pela ficha dbo, e a porcentagem de imprecisão permitida pela transação de leitura do servidor (T LW ), dada por psimpmil. En- tão, especificada a porcentagem de imprecisão, é verificado se as transações podem executar concorrentemente.

Para a F N3, na guarda da transição EscExec_EscInv no módulo Negociacao2, esta

métrica não é implementada. Esta decisão foi tomada considerando a existência de apenas transações com operações de escrita, onde em nenhum momento será

Capítulo 7. Modelo Formal 111

lido algum valor para posteriores tomadas de decisões. Neste caso, a execução concorrente será decidida pela avaliação das restrições temporais.

Capítulo 8

Uma Abordagem de Verificação e

Validação Formal

Neste Capítulo é definida uma abordagem para verificação e validação formal de bancos de dados em tempo-real. Tal abordagem visa assegurar que o método, definido no Capítulo 7, está correto e atende as necessidades do usuário.

A abordagem formal está de acordo com a Figura 8.1 e consiste na aplicação de cinco etapas:

1. Construir um modelo de objetos; 2. Construir um modelo de processos;

3. Gerar o espaço de estados do modelo, através do grafo de ocorrência, a fim de verificar se as escalas geradas atendem ao critério de corretude serialização Epsilon considerando os mecanismos de qualidade de serviços;

4. Gerar o diagrama de seqüência de mensagens para validar o workflow definido para um determinado cenário, e;

5. Gerar o diagrama de tempo para validar as restrições temporais atribuídas às transações do servidor e dos sensores.

Capítulo 8. Uma Abordagem de Verificação e Validação Formal 113

3

Grafo de Ocorrência

4

DSM Transações Banco de Dados Funções QoS Função de Negociação Funções QoS Função de Especificação/ Mapeamento Começa Efetiva Função de Mapeamento/ Monitoração

2

Modelo de Processos H2 O2 H2O 2 2 t

1

Modelo de Objetos QoS ESPECIFICA ÇÃO () WAREHOUSING ATRIBUTOS valor: inteiro avi: tempo rotulodetempo: tempo Imp: inteiro MÉTODOS CTH() Consulta Histórica NEGOCIAÇÃO FN1(CTH(X),AT(XNOVO)) = ((agora

-X.tsp<= X.avi) e (|X.val - XNOVO.val| <=(Imp_X-X.Imp +XNOVO.Imp))))- >X.Imp=X.Imp+XNOVO.Imp + |X.val - XNOVO.val| RESTRIÇÕES Milr: inteiro X.imp<=impr e Pt SENSORn ATRIBUTOS valor: inteiro avi: tempo rotulodetempo: tempo sensor: string MÉTODOS ATS() Adquire Temperatura NEGOCIAÇÃO FN2(CTL/I(X),AT(XNOVO)) =

((agora -X.tsp<= X.avi) e (|X.val - XNOVO.val| <=(Imp_X-X.Imp +XNOVO.Imp))))-

Dans le document Citrix XenDesktop Implementation (Page 96-112)

Documents relatifs