-
Notifications
You must be signed in to change notification settings - Fork 1
/
kiimate.puml
232 lines (192 loc) · 3.51 KB
/
kiimate.puml
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
@startuml
Instance "1" -down-|> "1" ModelSubscription
Asset .right.. AssetSubscription
Status ..right.. Instance
Model ..right... ModelSubscription
Asset "1" ...> "n" Model : "Space Point"
Asset "1" ...> "n" Status : "Time x Space"
Model "1" ...> "n" Status : "Time Point"
ModelSubscription "n" -right-|> "1" ModelPublication
ModelPublication "1" --|> "1" Extension
ModelPublication "1" --|> "n" Intension
Extension "1" --right--|> "n" Intension
AssetPublication "1" -down-|> "1" Instance
AssetSubscription "n" -right-> "1" AssetPublication
class Asset #FFFFFF {
Subject owner_id // a_subscriber_id
Subject visitor_id
---
Model model
Status asset
---
DateTime view_time
}
class Status #FFFFFF {
Subject owner_id // m_subscriber_id
Namespace m_sub_group
Namespace m_sub_name
---
Instance[] subscription
---
DateTime track_time
}
class Model #FFFFFF {
Subject provider_id
string pub_set_hash
string root_ext_id
---
Namespace ext_group
Namespace ext_name
---
Stability stability
Version semantic
Visibility visibility
}
class AssetSubscription {
string id
---
Subject subscriber_id
string sub_set // a_pub_set
---
Subject operator_id
DateTime begin_time
DateTime end_time
}
class AssetPublication{
string id
---
string pub_set
string ins_id
string m_sub_id
---
Subject owner_id
Stability stability
Version semantic
Visibility visibility
---
Subject operator_id
DateTime begin_time
DateTime end_time
}
class Extension {
string id // ext_id
---
Subject owner_id
Namespace group
Namespace name
Tracking tree
Visibility visibility
string int_set
---
Subject operator_id
DateTime begin_time
DateTime end_time
}
class Intension {
string id // int_id
---
string ext_id
string field
Boolean single
Structure structure
string ref_m_pub_set
Visibility visibility
Boolean required
---
Subject operator_id
DateTime begin_time
DateTime end_time
}
class ModelPublication {
string id // pub_id
---
string m_pub_set_hash
string ext_id
string int_id
---
Subject provider_id
Stability stability
Version semantic
Visibility visibility
---
Subject operator_id
DateTime begin_time
DateTime end_time
}
class ModelSubscription {
string id // sub_id
---
Subject subscriber_id
string m_sub_set_hash // m_pub_set_hash
---
Namespace group
Namespace name
Tracking tag
---
Subject operator_id
DateTime begin_time
DateTime end_time
}
class Instance {
string id // ins_id
Subject owner_id
string sub_id
string ext_id
string int_id
Namespace field
string value
string value_set_hash
Coordinate v_ref_path
ReferencePolicy value_ref_policy
---
Subject operator_id
DateTime begin_time
DateTime end_time
}
enum Namespace {
GROUP
NAME
FIELD
}
enum ReferencePolicy {
LATEST
FIXED
}
class Coordinate {
subject_id
group
name
stability
version
}
enum Stability {
MILESTONE
RELEASE
}
enum Structure {
REFERENCE
NUMBER
STRING
BOOLEAN
DATETIME
}
enum Subject {
OWNER
PROVIDER
SUBSCRIBER
VISITOR // read only
OPERATOR // read&write
}
enum Tracking {
TREE
TAG
}
enum Version {
SEMANTIC
}
enum Visibility {
PRIVATE
PROTECTED
PUBLIC
}
@enduml