// $URL$ // $Id$ // This is an attempt to capture // http://subvert-rpki.hactrn.net/docs/prague-whiteboard-2007-03-22-23:15:01.jpg // {arrowhead,arrowtail} shapes to use for database object relationships: // 1- none // m- crow // Color code: // Blue: visible in left-right protocol // Green: created on the fly // Explanation for many-many mapping beween CA and child objects // (courtesy of RobL): Each child is an entity; each CA can have // multiple children, and each child can hold certs from multiple CAs. digraph rpki_engine_objects { rotate=90; size="11,8.5"; splines=true; ratio=fill; node [ shape=record ]; // Objects visible in left-to-right protocol node [ color=blue ]; self [ label="Self|{Preferences}" ]; parent [ label="Parent|{URI|TA}" ]; repo [ label="Repository|{URI|TA}" ]; child [ label="Child|{TA}" ]; biz_sign [ label="Business\nSigning Context|{Keypair|CertChain}" ]; // Objects created on the fly by the RPKI engine node [ color=green ]; ca [ label="CA|{CRL #|Last Issued Serial #}" ]; child_cert [ label="Child Certificate" ]; ee_cert [ label="EE Certificate|{ROA}" ]; ca_key_pair [ label="CA Key Pair|{Latest CA Certificate|Latest CRL}" ]; // One-many mappings edge [ color=blue, arrowtail=none, arrowhead=crow ]; biz_sign -> child; biz_sign -> parent; biz_sign -> repo; self -> child; self -> parent; repo -> parent; // Many-many mappings edge [ color=green, arrowtail=crow, arrowhead=crow ]; ca -> child; // One-many mappings edge [ color=green, arrowtail=none, arrowhead=crow ]; ca -> ca_key_pair; child -> child_cert; self -> ca; parent -> ca; // Weird one-many edge [ color=green, arrowtail=none, arrowhead=crow, style=dashed ]; ca_key_pair -> child_cert; ca_key_pair -> ee_cert; } // Local Variables: // compile-command: "neato -Tps2 whiteboard-object-model.dot | ps2pdf - whiteboard-object-model.pdf" // End: