View
22
Download
5
Category
Preview:
DESCRIPTION
Especificação de um Mecanismo Autonômico em CSP. Adalberto R. Sampaio Junior Doutorado – Cin /UFPE. Ambiente de execução do sistema. S = state?i -> signal!i -> ( next -> S [] execute?x -> Sidx (x) ) Sidx ( i ) = state.i -> signal!i -> execute?x -> Sidx (x) ). - PowerPoint PPT Presentation
Citation preview
Especificação de um Mecanismo Autonômico
em CSPAdalberto R. Sampaio Junior
Doutorado – Cin/UFPE
2
Ambiente de execução do sistema
S = state?i -> signal!i -> ( next -> S [] execute?x -> Sidx(x) )Sidx(i) = state.i -> signal!i -> execute?x -> Sidx(x) )
3
Sistemas simulados
S1: não determinístico
4
Sistemas simulados
S1: determinísticoEstados válidos: 1, 2, 3, 5
5
Sistemas simulados
S3: determinísticoEstados válidos: 1, 2
6
Sistemas simulados
S4: determinísticoEstados válidos: 1, 5,3,2
7
Verificação de Traces
• Foi verificado se o ambiente e execução S poderia executar os sistemas S1, S2, S3, S4.• Traces• S \{|execute, next|} [T= S1• S \{|execute, next|} [T= S2• S \{|execute, next|} [T= S3• S \{|execute, next|} [T= S4
8
Mecanismo Autonômico
• Modelado com base na arquitetura Mape-K proposta pela IBM.• Quatro processos:• Monitor;• Analisador;• Planejador;• Executor;
• Uma base de conhecimento
9
Mecanismo Autonômico
• Monitor
check(n) = {s | s <- inter({sym.n},SYMPTOMS), member(sym.n,SYMPTOMS)}Monitor = signal?s -> monitor!s -> if empty(check(s)) then
next -> Monitor else symptom_detect!head(seq(check(s))) -> Monitor
10
Mecanismo Autonômico
• Analisador
request_change(n) = mapLookup(CHANGES,n)Analizer = symptom_detect?s -> if member(s, SYMPTOMS) then
change_plan!request_change(s) -> Analizer else Analizer
11
Mecanismo Autonômico
• Planejador
Planner = change_plan?cp -> (mapMember(ACTIONS, cp)) & apply!mapLookup(ACTIONS,cp) -> Planner
12
Mecanismo Autonômico
• Executor
Executor = apply?cp -> execute!cp -> Executor
13
Mecanismo Autonômico
Autonomic = ( ( Monitor [|{|symptom_detect|}|] Analizer ) [|{|change_plan|}|] Planner) [|{|apply|}|] Executor
14
Mecanismo Autonômico
• Base de conhecimento---------------Knowledge Base----------------- S2--SYMPTOMS = {sym.2, sym.3}--CHANGES = (| sym.2 => change.1, sym.3 => change.2 |)--ACTIONS = (| change.1 => 3, change.2 => 5 |)
-- S3--SYMPTOMS = {sym.2}--CHANGES = (| sym.2 => change.1 |)--ACTIONS = (| change.1 => 1 |)
-- S4SYMPTOMS = {sym.1, sym.2, sym.3, sym.5}CHANGES = (| sym.1 => change.1, sym.2 => change.2, sym.3 => change.3, sym.5 => change.4 |)ACTIONS = (| change.1 => 5, change.2 => 1, change.3 => 2, change.4 => 3 |)---------------end knowledge Base---------------
15
Execução do Sistema de Forma AutonômicaAu = S [|{|signal, execute, next|}|] Autonomic• Propriedades verificadas
• assert Au :[deadlock free]• assert Au :[deterministic]• assert Au :[divergence free]• assert S \{|execute, next|} [T= S1• assert S \{|execute, next|} [T= S2• assert S \{|execute, next|} [T= S3• assert S \{|execute, next|} [T= S4• TO_HIDE = {|symptom_detect, change_plan, apply, next, execute, monitor|}• assert Au \ TO_HIDE [T= S1• assert Au \ TO_HIDE [T= S2• assert Au \ TO_HIDE [T= S3• assert Au \ TO_HIDE [T= S4
16
Execução do Sistema de Forma Autonômica--
-- monitor.[n]
-- execute.[m]
A(n,m) = monitor.n -> execute.m -> A(n,m)
B(m,n) = execute.m -> monitor.n -> B(m,n)
assert Autonomic \ {|signal, symptom_detect, change_plan, apply|} [T= A(3,4)
assert Autonomic \ {|signal, symptom_detect, change_plan, apply|} [T= B(4,3)
17
Refinamento [FD=
---------------Centralized Monitor----------------- deterministic-- Monitorcheck(n) = {s | s <- inter({sym.n},SYMPTOMS), member(sym.n,SYMPTOMS)}Monitor = signal?s -> monitor!s -> if empty(check(s)) then next -> Monitor else symptom_detect!head(seq(check(s))) -> Monitor-------------------------------------------------
---------------Distributed Monitor---------------Non deterministic-- Monitor M(i) = sense?s -> if s == i then (signal.s -> monitor!s -> if empty (check(s)) then next -> M(i) else symptom_detect!head(seq(check(s))) -> M(i) ) else M(i)MMM = ||| i : STATES @ M(i)
assert MMM \ {|sense|} [T= Monitorassert MMM \ {|sense|} [FD= Monitor-------------------------------------------------
18
Obrigado!
Recommended