Information Model
The most abstracted topology model is visible in package "network-map-interfaces" - an implementation of such abstraction is in package "network-map-classes".
PlantUML Macro |
---|
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright 2020 highstreet technologies GmbH ' Licensed under the Apache License, Version 2.0 (the "License"); ' you may not use this file except in compliance with the License. ' You may obtain a copy of the License at ' ' http://www.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, software ' distributed under the License is distributed on an "AS IS" BASIS, ' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ' See the License for the specific language governing permissions and ' limitations under the License. ' ' With respectrepect to ONF CoreModel and IISOMI @startuml ' Diagram title ODLUX NetworkApp Information Model end title package network-map-types { class GeoLocation <<Type>>{ decimal[ fraction-digit 5 ] latitude decimal[ fraction-digit 5 ] longitude decimal[ fraction-digit 1 ] above-mean-sea-level [m] String geo-source } class SiteNeighbor { Site neighbor decimal[ fraction-digit 2 ] azimuth [°] Integer distance [m] String operator } } package network-map-interfaces { interface Top { UUID id getId() String getClass() String namegetName() String labelgetLabel() ENUM life-cycle-stategetLifeCycleState() ENUM alarm-summary-stategetAlarmSummaryState() } interface Topology implements Top interface Node implements Top interface Edge implements Top interface Path implements Top } package network-map-classes { class Network implements TopTopology class SubNetwork implements TopNode class Site implements TopNode class Device implements TopNode class Port implements Node Top class Link implements TopEdge class PathService implements TopPath } NetworkTopology *--> "1*" Node: hasNodes Topology *--> "*" SubNetworkEdge: hasSubnetworks NetworkhasEdges Topology *--> "1*" Path: hasPaths Node *--> "*" PathNode: hasPathes NetworkhasChildren Node *--> "1*" Node: hasNeighborsOfSameType Edge *--> "*" LinkEdge: hasLinkshasChildren SubNetworkEdge "1" *o--> "*2" SiteNode: hasSitesrefrencesNodesOfSameType SitePath "1" *o--> "*" DeviceEdge: hasDevicesreferencesLinks Site ..> GeoLocation: uses Device "1" Network *--> "*" SubNetwork: hasSubnetworks Network *--> "*" Service: hasServices Network *--> "*" PortLink: linkHasPorts LinkhasLinks Network *--> "1"*" Site: hasSites SubNetwork o--> "2*" PortSite: referencesPorts PathreferencesSites Site *--> "1*" o Device: hasDevices Device *--> "*" Link: referencesLinks Port: hasPorts Site ..> SiteNeighbor: uses Site ..> GeoLocation: uses class Site { GeoLocation geo-location } class Device { String type String manufacture String owner } class Port { int capacity [kbit{s] } ' End Diagram ' Format header <b><font color=#8888ff>License</font></b> <b><font color=#8888ff>Apache 2.0</font></b> end header right footer Thanks to plantUml! 2020-05-1921 | onap.org | o-ran-sc.orgccsdk sdnc end footer skinparam backgroundColor #fefefe skinparam backgroundColor #fefefe 'skinparam handwritten true skinparam roundcorner 15 skinparam class { BorderColor #444444 BackgroundColor #ffffdd FontColor #444444 } skinparam database { BorderColor #444444 BackgroundColor #ffffdd FontColor #444444 } skinparam sequence { MessageAlign left ArrowThickness 2 ArrowColor #2277dd ArrowFontColor #444444 ActorBorderColor #444444 LifeLineBorderColor #444444 LifeLineBackgroundColor #eeeeee BoxBorderColor #444444 GroupBorderColor #444444 GroupBackgroundColor #eeeeee ParticipantBorderColor #444444 ParticipantBackgroundColor #ffffdd ParticipantFontColor #444444 ActorBackgroundColor #ffffdd 'ActorFontColor DeepSkyBlue 'ActorFontSize 17 'ActorFontName Aapex } @enduml |