-
Notifications
You must be signed in to change notification settings - Fork 0
/
inter_DSL_Collaboration_CM_SRA_main.csp
82 lines (58 loc) · 2.03 KB
/
inter_DSL_Collaboration_CM_SRA_main.csp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{----------------------------------------------------------
Data types used to type channels, must correspond to B sets
-----------------------------------------------------------}
datatype CM=CM_AS1
datatype CONFIGURATION=CONFIGURATION1 | CONFIGURATION2 | CONFIGURATION3
datatype DEFENSE = DEFENSE1 | DEFENSE2 | DEFENSE3 | DEFENSE4 | DEFENSE5
datatype SRA = SRA_AS1
{--------------------------------
Operations and variables from CM
---------------------------------}
channel selectConfig, setQoS
channel validateConfig : CONFIGURATION
{------------------
Operations from SRA
-------------------}
channel initSRA, selectThreat
channel computeDefenses : Set(DEFENSE)
{--------------------------
Operations from Composition
---------------------------}
channel createSecureConfig : CONFIGURATION
channel affectValidDefenses : Set(DEFENSE)
channel approveSecureConfig
{------------
Messages without data
-------------}
channel ConfigurationRequest, SRARequest
{------------
Messages with data
-------------}
channel ValidConfig : CONFIGURATION
channel ValidDefenses : Set(DEFENSE)
MAIN =
CM_DSL [|{|ConfigurationRequest, ValidConfig|}|]
DSL_COMPOSITION
[|{| SRARequest, ValidDefenses |}|] SRA_DSL
DSL_COMPOSITION =
ConfigurationRequest -> ValidConfig?conf -> createSecureConfig!conf
-> SRARequest -> ValidDefenses?defenses -> EVALUATE_SECURE_CONFIGURATION (defenses)
; DSL_COMPOSITION
EVALUATE_SECURE_CONFIGURATION(defenses) =
affectValidDefenses!defenses -> (approveSecureConfig -> SKIP [] SKIP)
{------------
Translation of CM_DSL Pool
-------------}
CM_DSL =
ConfigurationRequest -> IDENTIFY_CONFIGURATION ; CM_DSL
IDENTIFY_CONFIGURATION =
selectConfig -> setQoS -> validateConfig?conf -> ValidConfig!conf -> SKIP
{------------
Translation of SRA_DSL Pool
-------------}
SRA_DSL =
SRARequest -> COMPUTE_CONFIGURATION_DEFENSES ; SRA_DSL
COMPUTE_CONFIGURATION_DEFENSES =
initSRA -> SELECT_THREATS ; computeDefenses?defenses -> ValidDefenses!defenses -> SKIP
SELECT_THREATS =
selectThreat -> SELECT_THREATS [] SKIP