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 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