Aplicações: Cruise Control – CBDT – QoS em CBabel Alexandre Sztajnberg

16
Aplicações: Cruise Control – CBDT – QoS em CBabel Alexandre Sztajnberg 2 o Workshop do Projeto VAS PDPG-TI CNPq 552192/02-3 Novembro / 2004 IC/UFF, Niterói

description

Aplicações: Cruise Control – CBDT – QoS em CBabel Alexandre Sztajnberg. 2 o Workshop do Projeto VAS PDPG-TI CNPq 552192/02-3 Novembro / 2004 IC/UFF, Niterói. Agenda. Estado da aplicação do cruise control Adaptações para o CBabel Tools interação paralela guardas com portas assíncronas - PowerPoint PPT Presentation

Transcript of Aplicações: Cruise Control – CBDT – QoS em CBabel Alexandre Sztajnberg

Page 1: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

Aplicações:Cruise Control – CBDT – QoS em CBabel

Alexandre Sztajnberg

2o Workshop do Projeto VASPDPG-TI CNPq 552192/02-3

Novembro / 2004IC/UFF, Niterói

Page 2: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

Agenda

• Estado da aplicação do cruise control– Adaptações para o CBabel Tools

• interação paralela• guardas com portas assíncronas• do/done com restrições de tempo

• CBDT– Estado atual

• QoS em CBabel– Objetivos– Estado atual

Page 3: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

engineOn

engineOff

accelerator

breack

engine loop getThrottle setThrottle getSpeed

enableControl

disableControl

recordSpeed

clearSpeed

correta

sleep 500 setSpeed

carInput

on

off

resume

cruiseInput

carSimulator

speedController

cruiseController

splitter

speedControlPace

carController

tranco

Configuração proposta originalmente

Page 4: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

breack

accelerator

engineOn

engineOff

Mutex para 4 portas de saída

• possibilidades – Rademaker: macro (escala bem?)– Usar guardas

• uma variável “turn”

• um guarda por porta a ser mutex

Page 5: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

engineOn

engineOff

accelerator

breack

engine loop

throttlespeed setThrottle

enableControl

disableControl

recordSpeed

clearSpeed

correta

sleep 500

setSpeed

on

off

resume

cruiseInput

carSimulator

speedController

cruiseController

splitter

speedControlPace

carController

tranco

Configuração atual...

incompletaincompleta

Page 6: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

Conector splitter (/* Sends the signal to the car engine and to the cruise control*/

connector splitter-engineOff {

// controles normais de um carro padrao

in port oneway engineOff-in;

out port oneway engineOff-out1;

out port oneway engineOff-out2;

interaction {

engineOff-in > (engineOff-out1 || engineOff-out2);

}} // splitter)

Page 7: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

cruiseControl-con(connector Controller-br_disa { var int INACTIVE = int(0); var int ACTIVE = int(1); var int CRUISING = int(2); var int STANDBY = int(3); var int controlState = INACTIVE;

// controles normais de um carro padrao in port oneway brake; // efeito produzido no cruise control out port oneway disableControl;

interaction { brake > guard (controlState==CRUISING) { alternative (ground); before {controlState=STANDBY;} } > disableControl; }} // end Control)

Page 8: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

carSimulator-modmodule CarSimulator {

var float throttle = float (0.0); //throttle setting 0.10 var int speed = int(0); //speed 0 .. 120 mph! var int distance = int(0); //miles*10 var int brakepedal = int(0); // brake setting 0..10 var int maxSpeed = int(120); var float maxThrottle = float(10.0); var int maxBrake = int(10); var float airResistance = maxSpeed/maxThrottle; //inverse air resistance

factor var int ticksPerSecond = int(5);

in port oneway setThrottle; }

)

/** do { throttle=t; brakepedal=b;

if (throttle<0.0) throttle=0.0; if (throttle>10.0) throttle=10.0; }**/

Page 9: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

speedControl-con(connector SpeedControl-setSp_setThrot { staterequired int DISABLED; //speed control states staterequired int ENABLED; staterequired int state; //initial state staterequired int setSpeed; //target cruise control speed staterequired int speed; // vem do modulo engine

in port oneway setSpeed; out port oneway setThrottle; // !!!!! jogada com statereq

interaction { setSpeed > guard (state==ENABLED) {

before { error = setSpeed - speed / 6.0; steady = setSpeed / 12.0; speed = steady+error; // ja jogo o valor no modulo... }

alternative (ground); } > setThrottle; //simplified feed back control }})

Page 10: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

Próximos passos

• Terminar o modelo

• Simular

• Verificar o zoom...

Page 11: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

CBDT• Eclipse 3.11

– Mais estável e flexível no gerenciamento de vários workspaces

• Não usa EMF– Problemas reportados pelo André na 2.X persistem na 3.X

• Estado– Editor (AntLR) – Árvore (com painéis de edição)– Verificação sintática e semântica (alguma)– Modelo em objetos e Persistência em XML– Perspectivas e Wizards

Page 12: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg
Page 13: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

Perspectivas

• Término do Editor…

• Editor Gráfico

• Gerente de Aplicações– ambiente de execução ? (JMX)

• Integração com CBabel Tool– pelo XML?– Direto, gerando Maude?

Page 14: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

QoS• Utilizar a sintaxe atual de QoS

– Estender o parser atual em AntLR contemplando as construções de QoS

• Criar a o modelo interno• Para permitir as traduções e verificações

• Reproduzir os componentes de suporte a QoS (em Maude ?)– Para permitir verificações em um nível mais amplo

• Uma aplicação de Vídeo-Conferência usando JMF

Page 15: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

Estado

• Leitura de artigos sobre CR-RIO, QoS, JMF e Vídeo Conferência

• Estudo do Eclipse

• BNF levantada (segundo os últimos artigos de CR-RIO)

• Algum esforço (?) para inserir no AntLR do CBDT

Page 16: Aplicações: Cruise Control  – CBDT – QoS em CBabel Alexandre Sztajnberg

Perspectivas• Semântica para os contratos de QoS• Semântica para o padrão de infra-estrutura• Ainda não temos fechado

– o que exatamente verificar (que respostas queremos obter)• Absoluto (dá/não-dá), percentagens ?

• Recursos mínimos para implantar um serviço (por exemplo minimizando o custo total?

• Estabilidade?

– o que podemos prever em termos de QoS para a operação ainda durante a especificação da arquitetura