25
Mapeamento de CSP em UML-RT

Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Mapeamento de CSP em UML-RT

Page 2: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 1

Características de UML-RT

• Cápsulas– Classes ativas e independentes– Comunicam-se entre si através de mensagens (sinais)– Máquinas de estado modelam o comportamento da cápsula para

cada ocorrência de sinal– Podem ser:

• Fixas: criadas automaticamente quando o sistema é iniciado• Opcionais ou Plug-in: criadas e destruídas em runtime

(como processos CSP)

q : Q

r : R

P

a.in /createCapsule(r);

a.in /removeCapsule(r);

a

State of P

Page 3: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 2

Características de UML-RT

• Cápsulas Fixas x Cápsulas Opcionais

q : QP

a.in /createInstance(r);

a.in /removeInstance(r);

a

r : R

• Cápsulas opcionais ativas comportam-se exatamente como cápsulas fixas• Cápsulas opcionais inativas são apenas apontadores vazios

Page 4: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 3

Características de UML-RT• Portas

– Realizam protocolos– Usadas para enviar ou receber mensagens de dados– Podem ser:

• Wired: explicitamente conectadas a outras portas, através de conectores

• Unwired: conectadas dinamicamente, em runtime

• Protocolos– Definem as regras de comunicação entre portas de um mesmo tipo– Definem o tipo das mensagens que podem ser transmitidas ou

aceitas pelas portas das cápsulas

(como canais CSP)

Page 5: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 4

Características de UML-RT• Mensagens

– Podem ser:• Assíncronas

• Síncronas

port.signal(data).send();port.signal(data).send(Priority.High);

port.signalIn(data).invoke();

port.signalOut(data).reply();

(como alguns eventos CSP)

Page 6: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 5

Mapeamento de CSP em UML-RT

• Deve considerar:– tipos de dados como classes básicas de negócio

– processos como cápsulas

– canais como portas de comunicação

– Parâmetros como atributos de cápsulas

– funções e expressões lógicas como expressões, métodos de cápsulas ou classes auxiliares

Page 7: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 6

Mapeamento de CSP em UML-RT

datatype X : x1 | x2

P(s) = a?x → P(f(x))

f(x) = x + 1

Datatype

X

$ x1 : X$ x2 : X

Page 8: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 7

Mapeamento de Tipos de Dados

T

$ v0 : T$ v1 : T

datatype T = v0 | .. | vn

T

x : T1y : T2

getX() : T1getY() : T2

datatype T = T1.T2

Page 9: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 8

Mapeamento de Processos

• Processos são representados como cápsulas• As transições da máquina de estados refletem os eventos do processo• Comunicação entre cápsulas deve atender o modelo de comunicação

de CSP

a1

a2P

P = a1?x → a2!x → StopSP

S1

S2

a1.in?x /a2.out!x;

Page 10: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 9

Mapeamento do Modelo de Comunicação de CSP

• CSP possui– Modelo de comunicação síncrono

• Sincronização simples (2 processos em paralelo)• Multi-sincronização (3 ou mais processos em paralelo)

– Causalidade entre eventos

• UML-RT possui– Comunicação síncrona e assíncrona– Semântica run-to-completion (um evento só ocorre após a

conclusão do anterior)

Page 11: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 10

Mapeamento do Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT são suficientes para implementar sincronismo simples

Qa.request(1)

true

P = a!{1,2,3} → STOPQ = a?{1,2} → STOPP |{a}| Q

P

A semântica do operador de paralelismo foi atendida

Page 12: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 11

Mapeamento do Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT não são suficientes para implementar multi-sincronismo de CSP

Q

R

a.request(1)

a.request(1)

true

P = a!{1,2,3} → STOP

Q = a?{1,2} → STOPR = a?{2,3} → STOPP |{a}| Q |{a}| R

P

A semântica do operador de paralelismo não foi atendida

Page 13: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 12

Mapeamento do Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT não são suficientes para implementar multi-sincronismo de CSP

Qa.request(1)

a.request(1)

true

a.rollback

P

P = a!{1,2,3} → STOP

Q = a?{1,2} → STOPR = a?{2,3} → STOPP |{a}| Q |{a}| R

R

A semântica do operador de paralelismo foi atendida

Page 14: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 13

Mapeamento do Modelo de Comunicação de CSP

• Mensagens síncronas de UML-RT não são suficientes para implementar multi-sincronismo de CSP

Q

R

a.request(2)

a.request(2)

true

true

a.commit

a.commit

A semântica do operador de paralelismo foi atendida

P

P = a!{1,2,3} → STOP

Q = a?{1,2} → STOPR = a?{2,3} → STOPP |{a}| Q |{a}| R

Page 15: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 14

Mapeamento do Modelo de Comunicação de CSP

• Por se tratar de uma regra de comunicação entre portas, podemos representar a causalidade entre eventos através de protocolos de comunicação

Page 16: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 15

Mapeamento do Modelo de Comunicação de CSP

Q = a?x:{1,2} -> STOP

Qa

Page 17: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 16

Mapeamento de Processos

• Operadores de CSP podem ser representados por cápsulas de controle, que contém outras cápsulas

• Ex: construa um modelo UML-RT a partir do código CSP abaixo

channel a

P = a?m:{1,2} -> P

Q = a?m:{2,3} -> Q

Parallel = P [|{|a|}|] Q

Page 18: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 17

Mapeamento de ProcessosSParallel

locked

S0

a.request?m /;

/ a.agreement!reply();

Sc

F T

a.commit /aP.commit!invoke();aQ.commit!invoke();

a.rollback/aP.rollback!invoke();aQ.rollback!invoke();

boolean r = False;rP = ap.request(m).invoke();rQ = aq.request(m).invoke();

if (rp == true and rq == true) {r = True;

} else {if (rp == true) aP.rollback;if (rq == true) aQ.rollback;

r = False;}

return r;

Parallel

aP : CSPMessageProtocol

p : P

q : Q

a : CSPMessageProtocol

aQ : CSPMessageProtocol

Page 19: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 18

Mapeamento de Processos– Em CSP, processos podem comportar-se como outros processos

• P = Q• P = a -> (R[]W)• P = a -> P\{a}

– Em UML-RT isto implicaria em cápsulas reaproveitarem ou serem substituídas por outras cápsulas

– UML-RT não admite recursão mútua entre cápsulasP = a -> QQ = b -> P

Page 20: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 19

Mapeamento de Processos

• A recursão mútua é resolvida por uma cápsula controladora, que contém as demais

• As cápsulas de processo:– São sub-cápsulas opcionais de cápsula controladora– Contém uma porta específica para informar novos

comportamentos à cápsula controladora

Page 21: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 20

Mapeamento de Processos• Cápsula controladora deve:

– Receber as mensagens de dados enviadas pelo ambiente externo e repassá-las para as sub-cápsulas ativas.

– Receber as mensagens de novos comportamentos enviadas pelas sub-cápsulas ativas, e mudar sua configuração interna.

• Cápsula controladora interpreta o comportamento associado aos operadores de CSP– P [|{|a|}|] Q– P;Q– STOP

Page 22: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 21

Mapeamento daSemântica Comportamental

P = a?x:{1,2} → RQ = a?x:{2,3} → WR = a?x → PW = c?x → QSystemController = P [|{|a|}|] Q

SystemController

aP : CSPMessageProtocol

a : CSPMessageProtocol

p : P

a : CSPMessageProtocol

bP : CSPBehaviorProtocol

b : CSPBehaviorProtocol

q : Q

bQ : CSPBehaviorProtocol

b : CSPBehaviorProtocol

aQ : CSPMessageProtocol

a : CSPMessageProtocol

c : CSPMessageProtocol

aR: CSPMessageProtocol

a : CSPMessageProtocol

r : R

bR : CSPBehaviorProtocol

b : CSPBehaviorProtocol

w : W

bW : CSPBehaviorProtocol

b : CSPBehaviorProtocol

cW : CSPMessageProtocol

c : CSPMessageProtocol

Page 23: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 22

Mapeamento daSemântica Comportamental

SSystemController

Sc

bP.term?N / removeCapsule(q);createCapsule(N);

bQ.term?N / removeCapsule(p);createCapsule(N);

a.request?x / if (pRef.status = active) aP.request(x).invoke();if (qRef.status = active) aQ.request(x).invoke();if (rRef.status = active) aR.request(x).invoke();

SystemController

aP : CSPMessageProtocol

a : CSPMessageProtocol

p : Pa : CSPMessageProtocol

bP : CSPBehaviorProtocol

b : CSPBehaviorProtocol

q : Q

bQ : CSPBehaviorProtocol

b : CSPBehaviorProtocol

aQ : CSPMessageProtocol

a : CSPMessageProtocol

P [|{|a|}|] Q

c : CSPMessageProtocol

Page 24: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 23

Mapeamento daSemântica Comportamental

SSystemController

Sc

bW.term?N / removeCapsule(w);createCapsule(N);

bR.term?N / removeCapsule(r);createCapsule(N);

c.request?x / if (wRef.status = active) cW.request(x).invoke();

SystemController

cR: CSPMessageProtocol

a : CSPMessageProtocol

r : Ra : CSPMessageProtocol

bR : CSPBehaviorProtocol

b : CSPBehaviorProtocol

w : W

bW : CSPBehaviorProtocol

b : CSPBehaviorProtocol

cW : CSPMessageProtocol

a : CSPMessageProtocol

R [|{|a|}|] W

c : CSPMessageProtocol

Page 25: Mapeamento de CSP em UML-RTdtvp/esd/aulas/MapeamentoFinal-1.pdf · Página 3 Características de UML-RT • Portas – Realizam protocolos – Usadas para enviar ou receber mensagens

Página 24

Mapeamento de CSP em UML-RT

• Ferramenta para Geração automática de Modelos UML-RT– Cria modelos UML-RT no Rose RealTime– Expressões lógicas e funções não são traduzidas. É necessário

codificá-las– Disponível a partir da próxima aula