From 5ac7f6a7e1054d96cbfe2f52142e16112a9ad617 Mon Sep 17 00:00:00 2001 From: thmsdt Date: Mon, 2 Aug 2021 14:33:13 +0200 Subject: [PATCH] Interactive ONAP Architecture Overview added Issue-ID: DOC-757 Signed-off-by: thmsdt Change-Id: I7946e9db32d899ab97039a7fb62a9c1b213de8f1 --- .../media/onap-architecture-overview-notes.txt | 64 + ...cture-overview-r9-istanbul-interactive-path.svg | 6288 ++++++++++++++++++++ ...chitecture-overview-r9-istanbul-interactive.svg | 3005 ++++++++++ ...ture-overview-r9-istanbul-labels-and-links.xlsx | Bin 0 -> 22974 bytes .../architecture/onap-architecture.rst | 16 +- 5 files changed, 9367 insertions(+), 6 deletions(-) create mode 100644 docs/guides/onap-developer/architecture/media/onap-architecture-overview-notes.txt create mode 100644 docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive-path.svg create mode 100644 docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive.svg create mode 100644 docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-labels-and-links.xlsx diff --git a/docs/guides/onap-developer/architecture/media/onap-architecture-overview-notes.txt b/docs/guides/onap-developer/architecture/media/onap-architecture-overview-notes.txt new file mode 100644 index 000000000..4e12cdd47 --- /dev/null +++ b/docs/guides/onap-developer/architecture/media/onap-architecture-overview-notes.txt @@ -0,0 +1,64 @@ +ONAP ARCHITECTURE OVERVIEW NOTES + +Version 0.9, 2021-07-19 + +This file contains information about how the map and its interactive functions were realized in Inkscape and how it can be maintained. + +The map was designed in Inkscape 1.1 running on Ubuntu 20.04. + +The following fonts, styles and spacings are used: +sans-serif, bold, 18 pt +sans-serif, bold, 9 pt +sans-serif, normal, 18 pt +sans-serif, normal, 9 pt +spacing between baselines: 1,05 lines +spacing between letters: -0,35 px +spacing between words: -1,00 px + +Drawing: Rectangles have a stroke (width 2 or 4 mm). To avoid that the stroke rezizes in case you rezize the single rectangle, have a look at the Inkscape button "When scaling objects, scale the stroke width by the same proportion" and turn it off! But turn it on, if you like to scale the complete (grouped) map because you need it in a smaler size. + +Rezising: If you need to resize a grouped object (with a label) do not resize the full group because then also the label will resized and distorted. Select only the form you want to resize in the "Objects" window. Then rezize it according your needs. You do not have to ungroup label/form for this action! + +Text Alignment: Do not align text in a rectangle manually! Create a rectangle which has a stroke (2 mm, 4 mm) in the same color as the box, create text, format text, select both, box and text and choose menu "Text - Flow into Frame". Thats it! The stroke acts as a border. + +Open the "Objects" window (Objects - Objects) and use it as your central point to select objects. Try to avoid ungrouping objects. + +Open the "Objects Properties" window (Objects - Objects Properties) to see and change properties of the object. + +Text to Path: To avoid display problems caused of missing fonts you should release the map only when all characters are rendered as pathes. To do so, do all changes in the "master file" of this map. Save it, select all elemets (STRG-A) and choose "Path - Objects to Path" and save it again with a new name (e.g. map-path.svg). All character are now converted to pathes - and are not editable via the text edit tool anymore! But the map is expected to be rendered on every target system in the same way. Path conversion can not be undone - so store the "master file" carefully. Unfortunately the label-text in the map can not be searched anymore. + +Group the rectangle and the label first, then add the link. Otherwise the link is used only for the rectangle or the label and mouseover will not work properly. + +If you have added a link to a group, ungrouping deletes the link without a warning! Do not ungroup unless you are aware of what you will loose! + +Grouping / Link: To add a link to an object, first check that label and form are grouped before you add a link. Select the grouped object and use "Create Link" of the Context Menu. Now a new element/group is created. Rename it to something meaningful in the "Objects" window. Then use the "Objects attributes" window to add the link for this new element in the field "Href". +See also: +https://inkscape.org/doc/tutorials/tips/tutorial-tips.html +https://www.petercollingridge.co.uk/tutorials/svg/interactive/ + +Mouseover Text: Add mouseover-text to the field "Title:" in the "Objects attributes" window. + +Keep the structure of map elements clear and maintainable by using groups and proper labels for all of the objects. The name of an element or group must be changed manually in the "Objects" window. +Example elements and structure: ++---designtime group that groups all designtime elements (visible and non-visible) of the map (not visible, manually created for reasons of clarity) + +--- ... other elements + +---designtime.link group were values for interactivity (e.g. link, text, opacy effects) are assigned to (created by inkscape when you choose "Create Link") + +---designtime group for the label and rectangle (not visible, manually created, required to have interactivity for both elements - rectangle and label) + +---designtime.label label on top of the rectangle (visible, manually created) + +---designtime.form rectangle for the architecture element (visible, manually created) + +Interactive Links and Tooltip Text in "Object Attributes": +Href: +https://docs.onap.org/ +Title: +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. + +Mouse-Over Effect in "Object Properties" at "Interactivity": +onmouseover: +style.opacity = 0.6; +onmouseout: +style.opacity = 1.0; + +NOT USED - Links in "Object Properties / Interactivity": +onlick: +window.open("https://docs.onap.org/","_blank"); diff --git a/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive-path.svg b/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive-path.svg new file mode 100644 index 000000000..794c5590b --- /dev/null +++ b/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive-path.svg @@ -0,0 +1,6288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive.svg b/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive.svg new file mode 100644 index 000000000..d952d10c4 --- /dev/null +++ b/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-interactive.svg @@ -0,0 +1,3005 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Unmaintained ONAP Component + + + + Entirety of ONAP Components + + + + Operations + + + + Orchestration & Management + + + + Design + + + + LEGEND + + + + + + + Managed Environment + + + + + IP + MPLS + + + + PublicCloud + + + + PrivateDC Cloud + + + + PrivateEdge Cloud + + + + + + Hypervisor / OS Layer + + + + OpenStack + + + + Commercial VIM + + + + Kubernetes + + + + Public Cloud + + + + + + Network Function Layer + + + + + PNF + + + + VNF + + + + + + External Systems + + + + 3rd Party Controllers + + + + sVNFM + + + + EMS + + + + + + + + + + + Utilities + + + + + + + ONAP Shared Utilities + + + + + + TOSCA Parser + + + + + + Model Utilities + + + + + + Common Controller SDK (CCSDK) + + + + + + + + + Manage ONAP + + + + + + ONAP Operation Manager (OOM) + + + + + + + + Design-Time + + + + + + + Service Design & Creation +(SDC) + + + + + + Catalog + + + + + + DCAE Design Studio + + + + + + Controller Design Studio (CDS) + + + + + + Workflow Designer + + + + + + xNF Onboarding + + + + + + Service/xNF Design + + + + + + + + VNF Validation + + + + + + VNF SDK + + + + + + VVP + + + + + + + + + Run-Time + + + + + + + Shared Services + + + + + + Config. Persistence Service (CPS) + + + + + + Multi-Site State (MUSIC) + + + + + + Audit (POMBA) + + + + + + Logging + + + + + + Optimization Framework (OOF) + + + + + + Appl. Authoriz. Framework (AAF) + + + + + + + Virtual Function +Controller +(VFC) + + + + + + Application +Controller +(APPC) + + + + + + SDN +Controller +(SDNC) + + + + + + Controller +Design Studio +(CDS) + + + + + + Infrastructure +Adaption +(Multi-VIM / Cloud) + + + + + + + Data Collection, +Analytics & Events +(DCAE) + + + + + + Collectors + + + + + + Correlation (Holmes) + + + + + + + Data Movement as a Platform (DMaaP) + + + + + + Microservice Bus (MSB) + + + + + + + Active & Available +Inventory (AAI) + + + + + + External System Register (ESR) + + + + + + + Service Orchestration (SO) + + + + + + + Policy +Framework + + + + + + Closed Loop Autom. +Platform (CLAMP) + + + + + + + + Interfaces + + + + + + CLI + + + + + + External APIs + + + + + + Use-Case UI (UUI) + + + + + + O&M Dashboard (VID) + + + + + + Portal + + + + + + + + Northbound Interface (NBI) towards OSS, BSS and other + + + + + RELEASE 9 »ISTANBUL« + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-labels-and-links.xlsx b/docs/guides/onap-developer/architecture/media/onap-architecture-overview-r9-istanbul-labels-and-links.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..40afbb720158b8666b608b6defc1aff0a1616e0c GIT binary patch literal 22974 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 e*7^x;_IK|MQ6s