Storage { { Format 1.33 } { GeneratedFrom TSSD-version-2.20 } { WrittenBy vanrein } { WrittenOn "" } } Document { { Type "Static Structure Diagram" } { Name workflow-dns-queue-datastructure.ssd } { Author vanrein } { CreatedOn "" } { Annotation "" } { Hierarchy False } } Page { { PageOrientation Landscape } { PageSize A4 } { ShowHeaders False } { ShowFooters False } { ShowNumbers False } } Scale { { ScaleValue 1 } } # GRAPH NODES SSDClassNode 1 { { Name "Queue" } { Annotation "" } { Parent 0 } { Index "" } { Attributes 0 } { Operations 0 } { Stereotype "<< - >>" } { Properties "{ - }" } } SSDClassNode 2 { { Name "QueuedZone\r[Getting]" } { Annotation "" } { Parent 0 } { Index "" } { Attributes 2 } { Attribute "zone" } { Attribute "priority" } { Operations 0 } { Stereotype "<< - >>" } { Properties "{ - }" } } SSDClassNode 3 { { Name "QueuedZone\r[Putting]" } { Annotation "" } { Parent 0 } { Index "" } { Attributes 2 } { Attribute "zone" } { Attribute "priority" } { Operations 0 } { Stereotype "<< - >>" } { Properties "{ - }" } } SSDClassNode 4 { { Name "QueuedZone\r[Ready]" } { Annotation "" } { Parent 0 } { Index "" } { Attributes 2 } { Attribute "zone" } { Attribute "priority" } { Operations 0 } { Stereotype "<< - >>" } { Properties "{ - }" } } Comment 5 { { Name "QUEUE CLASS DIAGRAM" } { Annotation "" } { Parent 0 } { Index "" } } Note 6 { { Name "\rMuch of the DNS workflow hinges on the Queue's operation. Internally, the Queue holds QueuedZones\rwhich list zone updates. The [states] refer to the state diagram for the QueuedZone, and instances\rmove accordingly in this diagram when the proper (un)lock operation works on the Queue.\r\rAny number of QueuedZones can be in state [Putting], but no more than one per zone.\rAny number of QueuedZones can be [Ready] but a zone can only overtake _other_ zones.\rAt most one QueuedZone can be the current [Getting] instance.\r" } { Annotation "" } { Parent 0 } { Index "" } } SSDClassNode 7 { { Name "RRset" } { Annotation "" } { Parent 0 } { Index "" } { Attributes 0 } { Operations 0 } { Stereotype "<< - >>" } { Properties "{ - }" } } SSDClassNode 8 { { Name "ResourceRecord" } { Annotation "" } { Parent 0 } { Index "" } { Attributes 3 } { Attribute "dnsname" } { Attribute "dnstype" } { Attribute "valueset" } { Operations 0 } { Stereotype "<< - >>" } { Properties "{ - }" } } # GRAPH EDGES SSDAggregationEdge 9 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 4 } { Subject2 1 } { Constraint1 "0..*" } { Constraint2 "" } { RoleName1 "ready.to.serve\r{ordered}" } { RoleName2 "" } } SSDAggregationEdge 10 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 3 } { Subject2 1 } { Constraint1 "0..*" } { Constraint2 "" } { RoleName1 "incoming.zones\runique.key:zonename" } { RoleName2 "" } } SSDAggregationEdge 11 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 2 } { Subject2 1 } { Constraint1 "0..1" } { Constraint2 "" } { RoleName1 "outgoing.zone" } { RoleName2 "" } } SSDBinaryAssociationEdge 12 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 7 } { Subject2 8 } { Constraint1 "" } { Constraint2 "0..*" } { RoleName1 "" } { RoleName2 "remove" } } SSDBinaryAssociationEdge 13 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 7 } { Subject2 8 } { Constraint1 "" } { Constraint2 "0..*" } { RoleName1 "" } { RoleName2 "add" } } SSDBinaryAssociationEdge 14 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 3 } { Subject2 7 } { Constraint1 "" } { Constraint2 "0..*" } { RoleName1 "" } { RoleName2 "work" } } SSDBinaryAssociationEdge 15 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 4 } { Subject2 7 } { Constraint1 "" } { Constraint2 "0..*" } { RoleName1 "" } { RoleName2 "work" } } SSDBinaryAssociationEdge 16 { { Name "" } { Annotation "" } { Parent 0 } { Subject1 2 } { Subject2 7 } { Constraint1 "" } { Constraint2 "0..*" } { RoleName1 "" } { RoleName2 "work" } } # VIEWS AND GRAPHICAL SHAPES View 17 { { Index "0" } { Parent 0 } } SSDSingleClassBox 18 { { View 17 } { Subject 1 } { Position 120 250 } { Size 108 62 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { ShowStereotype False } { ShowProperties False } } SSDDoubleClassBox 19 { { View 17 } { Subject 2 } { Position 380 400 } { Size 109 75 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { ShowStereotype False } { ShowProperties False } } SSDDoubleClassBox 20 { { View 17 } { Subject 3 } { Position 380 110 } { Size 109 75 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { ShowStereotype False } { ShowProperties False } } SSDDoubleClassBox 21 { { View 17 } { Subject 4 } { Position 380 250 } { Size 109 75 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { ShowStereotype False } { ShowProperties False } } C2R2Line 22 { { View 17 } { Subject 9 } { FromShape 21 } { ToShape 18 } { Curved False } { End1 Empty } { End2 WhiteDiamond } { Points 2 } { Point 326 250 } { Point 174 250 } { NamePosition 250 240 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName True } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 304 261 } { T2Position 193 260 } { T3Position 257 234 } { T4Position 193 240 } { NameDirection None } } C2R2Line 23 { { View 17 } { Subject 10 } { FromShape 20 } { ToShape 18 } { Curved False } { End1 Empty } { End2 WhiteDiamond } { Points 2 } { Point 326 139 } { Point 174 221 } { NamePosition 244 172 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName True } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 317 165 } { T2Position 199 219 } { T3Position 236 127 } { T4Position 187 203 } { NameDirection None } } C2R2Line 24 { { View 17 } { Subject 11 } { FromShape 19 } { ToShape 18 } { Curved False } { End1 Empty } { End2 WhiteDiamond } { Points 2 } { Point 326 369 } { Point 174 281 } { NamePosition 257 317 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName True } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 304 376 } { T2Position 186 300 } { T3Position 336 335 } { T4Position 200 284 } { NameDirection None } } TextBox 25 { { View 17 } { Subject 5 } { Position 720 60 } { Size 20 20 } { Color "black" } { LineWidth 1 } { LineStyle Invisible } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } } NoteBox 26 { { View 17 } { Subject 6 } { Position 470 540 } { Size 910 139 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } } SSDSingleClassBox 27 { { View 17 } { Subject 7 } { Position 620 250 } { Size 110 76 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { ShowStereotype False } { ShowProperties False } } SSDDoubleClassBox 28 { { View 17 } { Subject 8 } { Position 840 250 } { Size 136 90 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FillStyle Unfilled } { FillColor "white" } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { ShowStereotype False } { ShowProperties False } } C2R2Line 29 { { View 17 } { Subject 12 } { FromShape 27 } { ToShape 28 } { Curved False } { End1 Empty } { End2 Empty } { Points 2 } { Point 675 232 } { Point 772 231 } { NamePosition 723 222 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 687 241 } { T2Position 750 240 } { T3Position 687 223 } { T4Position 740 221 } { NameDirection None } } C2R2Line 30 { { View 17 } { Subject 13 } { FromShape 27 } { ToShape 28 } { Curved False } { End1 Empty } { End2 Empty } { Points 2 } { Point 675 269 } { Point 772 269 } { NamePosition 723 259 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 687 279 } { T2Position 748 279 } { T3Position 687 259 } { T4Position 752 259 } { NameDirection None } } C2R2Line 31 { { View 17 } { Subject 14 } { FromShape 20 } { ToShape 27 } { Curved False } { End1 Empty } { End2 Empty } { Points 2 } { Point 435 142 } { Point 565 218 } { NamePosition 507 172 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 444 159 } { T2Position 528 215 } { T3Position 458 143 } { T4Position 559 193 } { NameDirection None } } C2R2Line 32 { { View 17 } { Subject 15 } { FromShape 21 } { ToShape 27 } { Curved False } { End1 Empty } { End2 Empty } { Points 2 } { Point 435 250 } { Point 565 250 } { NamePosition 500 240 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 451 260 } { T2Position 544 260 } { T3Position 451 240 } { T4Position 526 241 } { NameDirection None } } C2R2Line 33 { { View 17 } { Subject 16 } { FromShape 19 } { ToShape 27 } { Curved False } { End1 Empty } { End2 Empty } { Points 2 } { Point 435 366 } { Point 565 284 } { NamePosition 493 317 } { Color "black" } { LineWidth 1 } { LineStyle Solid } { FixedName False } { Font "-*-courier-medium-r-normal--10*" } { TextAlignment Center } { TextColor "black" } { NameUnderlined False } { T1Position 458 364 } { T2Position 557 309 } { T3Position 444 348 } { T4Position 524 291 } { NameDirection None } }