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 repect to ONF CoreModel and IISOMI @startuml ' Diagram title ODLUX NetworkApp Information Model end title TOPpackage <|network-map- Network TOP <|-- SubNetwork TOP <|-- Site TOP <|-- Device TOP <|-- Port TOP <|-- Link TOP <|-- Path Network "1" 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 getId() String getClass() String getName() String getLabel() ENUM getLifeCycleState() ENUM getAlarmSummaryState() } interface Topology implements Top interface Node implements Top interface Edge implements Top interface Path implements Top } package network-map-classes { class Network implements Topology class SubNetwork implements Node class Site implements Node class Device implements Node class Port implements Node class Link implements Edge class Service implements Path } Topology *--> "*" Node: hasNodes Topology *--> "*" Edge: SubNetwork NetworkhasEdges Topology *--> "1*" Path: hasPaths Node *--> "*" Node: Path NetworkhasChildren Node *--> "1*" Node: hasNeighborsOfSameType Edge *--> "*" Edge: LinkhasChildren SubNetworkEdge "1" *o--> "*2" Node: SiterefrencesNodesOfSameType SitePath "1" o--> "*" Edge: referencesLinks Network *--> "*" Device DeviceSubNetwork: hasSubnetworks Network *--> "1*" Service: hasServices Network *--> "*" Port LinkLink: hasLinks Network *--> "1*" * Site: hasSites SubNetwork o--> "2*" Site: Port PathreferencesSites Site *--> "1"*" Device: hasDevices Device *--> "*" Link Port: hasPorts Site ..> SiteNeighbor: uses Site ..> GeoLocation: uses class TOPSite { UUID id String nameGeoLocation geo-location } class Device { String labeltype ENUM life-cycle-stateString manufacture ENUM alarm-summary-stateString owner } class Network { 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 |