Created
August 20, 2018 08:47
-
-
Save chrisglass/b7363a0992b0f2bdc31e2b33b72235ee to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |
<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" width="991px" height="1402px" version="1.1" content="<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0" version="9.0.6" editor="www.draw.io" type="device"><diagram id="b6e2e94e-73e0-5c60-7c0d-aba4d8047099" name="Page-1">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</diagram></mxfile>"><defs/><g transform="translate(0.5,0.5)"><rect x="700" y="76" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(736.5,99.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="47" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 48px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Service</div></div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Service</div></text></switch></g><rect x="445" y="56" width="170" height="80" rx="12" ry="12" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(461.5,89.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="137" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 138px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">SecurityGroupService</div></div></foreignObject><text x="69" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">SecurityGroupService</text></switch></g><rect x="210" y="76" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(246.5,99.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="47" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 48px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Service</div></div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Service</div></text></switch></g><rect x="440" y="226" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(445.5,239.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="540" y="246" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(545.5,259.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="700" y="226" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(705.5,239.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="780" y="246" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(785.5,259.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="210" y="216" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(215.5,229.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="290" y="236" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(295.5,249.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 410 356 L 410 46" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 670 356 L 670 46" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 150 201 L 910 201" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><g transform="translate(0.5,235.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="108" height="41" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 108px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Data access layer</div><div><br /></div></div></div></foreignObject><text x="54" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Data access layer</div><div><br></div></text></switch></g><g transform="translate(5.5,104.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="168" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 169px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Service/Management layer</div></div></div></foreignObject><text x="84" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Service/Management layer</div></text></switch></g><path d="M 930 341 L 150 341" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 530 367 C 530 345.67 590 345.67 590 367 L 590 415 C 590 436.33 530 436.33 530 415 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 530 367 C 530 383 590 383 590 367" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(531.5,388.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 425 367 C 425 345.67 485 345.67 485 367 L 485 415 C 485 436.33 425 436.33 425 415 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 425 367 C 425 383 485 383 485 367" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(426.5,388.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 690 367 C 690 345.67 750 345.67 750 367 L 750 415 C 750 436.33 690 436.33 690 415 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 690 367 C 690 383 750 383 750 367" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(691.5,388.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 770 367 C 770 345.67 830 345.67 830 367 L 830 415 C 830 436.33 770 436.33 770 415 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 770 367 C 770 383 830 383 830 367" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(771.5,388.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 280 377 C 280 355.67 340 355.67 340 377 L 340 425 C 340 446.33 280 446.33 280 425 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 280 377 C 280 393 340 393 340 377" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(281.5,398.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 200 377 C 200 355.67 260 355.67 260 377 L 260 425 C 260 446.33 200 446.33 200 425 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 377 C 200 393 260 393 260 377" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(201.5,398.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 310 354.63 L 310 276" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 310 359.88 L 306.5 352.88 L 310 354.63 L 313.5 352.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 354.63 L 230 256" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 359.88 L 226.5 352.88 L 230 354.63 L 233.5 352.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 456.85 344.64 L 460 266" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 456.64 349.88 L 453.43 342.75 L 456.85 344.64 L 460.42 343.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 560 344.63 L 560 286" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 560 349.88 L 556.5 342.88 L 560 344.63 L 563.5 342.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 720 344.63 L 720 271" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 720 349.88 L 716.5 342.88 L 720 344.63 L 723.5 342.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 800 344.63 L 800 286" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 800 349.88 L 796.5 342.88 L 800 344.63 L 803.5 342.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(64.5,-0.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="255" height="22" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 256px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">BEFORE REFACTORING</div></div></foreignObject><text x="128" y="21" fill="#000000" text-anchor="middle" font-size="20px" font-family="Helvetica">BEFORE REFACTORING</text></switch></g><g transform="translate(51.5,689.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="236" height="22" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 237px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>AFTER REFACTORING</div></div></div></foreignObject><text x="118" y="21" fill="#000000" text-anchor="middle" font-size="20px" font-family="Helvetica"><div>AFTER REFACTORING</div></text></switch></g><path d="M 435.41 222.36 L 330 121" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 439.19 225.99 L 431.72 223.67 L 435.41 222.36 L 436.57 218.62 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 309.37 229.66 L 300 136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 309.89 234.89 L 305.71 228.27 L 309.37 229.66 L 312.67 227.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 256.18 247.54 L 283.82 254.46" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 251.08 246.27 L 258.72 244.57 L 256.18 247.54 L 257.03 251.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 288.92 255.73 L 281.28 257.43 L 283.82 254.46 L 282.97 250.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 232.63 209.66 L 240 136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 232.11 214.89 L 229.33 207.57 L 232.63 209.66 L 236.29 208.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 325.4 232.62 L 478 137" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 320.95 235.41 L 325.02 228.72 L 325.4 232.62 L 328.74 234.66 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 433.66 246.58 L 336.34 255.42" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 438.89 246.1 L 432.23 250.22 L 433.66 246.58 L 431.6 243.25 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 331.11 255.9 L 337.77 251.78 L 336.34 255.42 L 338.4 258.75 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 475.65 223.05 L 700 106" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 470.99 225.48 L 475.58 219.14 L 475.65 223.05 L 478.82 225.35 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 564.87 241.9 L 700 128" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 560.85 245.28 L 563.95 238.09 L 564.87 241.9 L 568.46 243.44 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 463.11 215.44 L 507.6 136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 460.55 220.02 L 460.91 212.21 L 463.11 215.44 L 467.02 215.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 551.3 239.77 L 573 136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 550.23 244.91 L 548.24 237.34 L 551.3 239.77 L 555.09 238.77 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 720.7 219.67 L 730 136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 720.12 224.89 L 717.42 217.55 L 720.7 219.67 L 724.38 218.32 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 799.42 239.66 L 790 136" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 799.9 244.89 L 795.78 238.23 L 799.42 239.66 L 802.75 237.6 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 543 286 L 460.12 347.22" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 455.9 350.34 L 459.45 343.36 L 460.12 347.22 L 463.61 348.99 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="740" y="761" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(776.5,784.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="47" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 48px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Service</div></div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Service</div></text></switch></g><rect x="485" y="741" width="170" height="80" rx="12" ry="12" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(501.5,774.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="137" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 138px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">SecurityGroupService</div></div></foreignObject><text x="69" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">SecurityGroupService</text></switch></g><rect x="250" y="761" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,784.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="47" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 48px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Service</div></div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Service</div></text></switch></g><rect x="480" y="911" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(485.5,924.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="580" y="931" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(585.5,944.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="740" y="911" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(745.5,924.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="820" y="931" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(825.5,944.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="250" y="901" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(255.5,914.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="330" y="921" width="40" height="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(335.5,934.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 29px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DAO</div></div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 450 1041 L 450 731" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 710 1041 L 710 731" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 190 886 L 950 886" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><g transform="translate(40.5,920.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="108" height="41" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 108px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Data access layer</div><div><br /></div></div></div></foreignObject><text x="54" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Data access layer</div><div><br></div></text></switch></g><g transform="translate(45.5,789.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="168" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 169px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>Service/Management layer</div></div></div></foreignObject><text x="84" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>Service/Management layer</div></text></switch></g><path d="M 970 1026 L 190 1026" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 570 1052 C 570 1030.67 630 1030.67 630 1052 L 630 1100 C 630 1121.33 570 1121.33 570 1100 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 570 1052 C 570 1068 630 1068 630 1052" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(571.5,1073.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 465 1052 C 465 1030.67 525 1030.67 525 1052 L 525 1100 C 525 1121.33 465 1121.33 465 1100 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 465 1052 C 465 1068 525 1068 525 1052" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(466.5,1073.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 730 1052 C 730 1030.67 790 1030.67 790 1052 L 790 1100 C 790 1121.33 730 1121.33 730 1100 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 730 1052 C 730 1068 790 1068 790 1052" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(731.5,1073.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 810 1052 C 810 1030.67 870 1030.67 870 1052 L 870 1100 C 870 1121.33 810 1121.33 810 1100 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 810 1052 C 810 1068 870 1068 870 1052" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(811.5,1073.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 320 1062 C 320 1040.67 380 1040.67 380 1062 L 380 1110 C 380 1131.33 320 1131.33 320 1110 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 320 1062 C 320 1078 380 1078 380 1062" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(321.5,1083.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 240 1062 C 240 1040.67 300 1040.67 300 1062 L 300 1110 C 300 1131.33 240 1131.33 240 1110 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 240 1062 C 240 1078 300 1078 300 1062" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(241.5,1083.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>DB Table</div></div></div></foreignObject><text x="28" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica"><div>DB Table</div></text></switch></g><path d="M 350 1039.63 L 350 961" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 350 1044.88 L 346.5 1037.88 L 350 1039.63 L 353.5 1037.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 270 1039.63 L 270 941" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 270 1044.88 L 266.5 1037.88 L 270 1039.63 L 273.5 1037.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 496.85 1029.64 L 500 951" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 496.64 1034.88 L 493.43 1027.75 L 496.85 1029.64 L 500.42 1028.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 600 1029.63 L 600 971" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 600 1034.88 L 596.5 1027.88 L 600 1029.63 L 603.5 1027.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 760 1029.63 L 760 956" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 760 1034.88 L 756.5 1027.88 L 760 1029.63 L 763.5 1027.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 840 1029.63 L 840 971" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 840 1034.88 L 836.5 1027.88 L 840 1029.63 L 843.5 1027.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 349.37 914.66 L 340 821" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 349.89 919.89 L 345.71 913.27 L 349.37 914.66 L 352.67 912.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 296.18 932.54 L 323.82 939.46" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 291.08 931.27 L 298.72 929.57 L 296.18 932.54 L 297.03 936.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 328.92 940.73 L 321.28 942.43 L 323.82 939.46 L 322.97 935.64 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 272.63 894.66 L 280 821" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 272.11 899.89 L 269.33 892.57 L 272.63 894.66 L 276.29 893.27 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 365.4 917.62 L 518 822" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 360.95 920.41 L 365.02 913.72 L 365.4 917.62 L 368.74 919.66 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 503.11 900.44 L 547.6 821" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 500.55 905.02 L 500.91 897.21 L 503.11 900.44 L 507.02 900.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 591.3 924.77 L 613 821" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 590.23 929.91 L 588.24 922.34 L 591.3 924.77 L 595.09 923.77 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 760.7 904.67 L 770 821" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 760.12 909.89 L 757.42 902.55 L 760.7 904.67 L 764.38 903.32 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 839.42 924.66 L 830 821" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 839.9 929.89 L 835.78 923.23 L 839.42 924.66 L 842.75 922.6 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 583 971 L 500.12 1032.22" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 495.9 1035.34 L 499.45 1028.36 L 500.12 1032.22 L 503.61 1033.99 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 478.66 781.55 L 376.34 790.45" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 483.89 781.1 L 477.22 785.19 L 478.66 781.55 L 476.61 778.22 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 371.11 790.9 L 377.78 786.81 L 376.34 790.45 L 378.39 793.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 733.68 790.26 L 661.32 781.74" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 738.89 790.87 L 731.53 793.53 L 733.68 790.26 L 732.35 786.58 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 656.11 781.13 L 663.47 778.47 L 661.32 781.74 L 662.65 785.42 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 693.72 247.05 L 586.28 264.95" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 698.9 246.18 L 692.57 250.79 L 693.72 247.05 L 691.42 243.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 581.1 265.82 L 587.43 261.21 L 586.28 264.95 L 588.58 268.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(0.5,1180.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="988" height="190" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 988px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div>The SecurityGroup service/Manager is the only component allowed to talk to the SecurityGroup DAOs. Other services call the SecurityGroup service.</div><div><br /></div><div>The SecurityGroup service still calls other Service's DAOs after converting from UUIDs to IDs (when necessary). Those calls can be changed when/if the target service gets similarly refactored.</div><div><br /></div><div>It is possible to reimplement the SecurityGroup service to talk to another backend.<br /></div></div></div></foreignObject><text x="494" y="105" fill="#000000" text-anchor="middle" font-size="20px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><g transform="translate(70.5,520.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="788" height="70" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 20px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 788px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">All Services/Managers talk to all DAOs directly. We cannot refactor at the DAO level since the DAOs map to database-specific notions (e.g. one DAO for a join table) </div></div></foreignObject><text x="394" y="45" fill="#000000" text-anchor="middle" font-size="20px" font-family="Helvetica">All Services/Managers talk to all DAOs directly. We cannot refactor at the DAO level since the DAOs map to database-specific notions (e.g. one DAO for a join table) </text></switch></g></g></svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment