Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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