Documentation outline for topoprocessing 89/16089/5
authorMatus Marko <matus.marko@pantheon.sk>
Thu, 2 Apr 2015 13:33:06 +0000 (15:33 +0200)
committerMatus Marko <matus.marko@pantheon.sk>
Wed, 8 Apr 2015 07:42:57 +0000 (09:42 +0200)
Change-Id: I0a1ce63759ad07ba030b4b701b6268cfce49e8a2
Signed-off-by: Michal Polkorab <michal.polkorab@pantheon.sk>
Signed-off-by: Matus Marko <matus.marko@pantheon.sk>
.gitignore
manuals/developer-guide/src/main/asciidoc/bk-developers-guide.adoc
manuals/developer-guide/src/main/asciidoc/topoprocessing/odl-topoprocessing-framework-dev.adoc [new file with mode: 0644]
manuals/developer-guide/src/main/resources/images/topoprocessing/architecture.png [new file with mode: 0644]

index 78575d1ba76a0e07478920a84a8d2c135f44d999..5cf8bfcb88063190a5764bbcf464bc7796db1da6 100644 (file)
@@ -1,2 +1,5 @@
 target
+.idea
 *.iml
+*.ipr
+*.iws
index 8a6d5efcb8b4cac1557753678d6b05edbd87df98..92f8baedf177450537304798028d58cf3400a44a 100644 (file)
@@ -90,6 +90,8 @@ include::snmp4sdn.adoc[]
 
 include::tcpmd5/odl-tcpmd5-all-dev.adoc[TCP-MD5]
 
+include::topoprocessing/odl-topoprocessing-framework-dev.adoc[]
+
 include::ttp/ttp-model-dev.adoc[]
 
 include::ttp/ttp-cli-tools-dev.adoc[]
diff --git a/manuals/developer-guide/src/main/asciidoc/topoprocessing/odl-topoprocessing-framework-dev.adoc b/manuals/developer-guide/src/main/asciidoc/topoprocessing/odl-topoprocessing-framework-dev.adoc
new file mode 100644 (file)
index 0000000..334c381
--- /dev/null
@@ -0,0 +1,37 @@
+== Topology Processing Framework Developer Guide
+
+=== Overview
+TopoProcessingProvider is entry point for Topology Processing Framework. It requires DataBroker instance. DataBroker is needed for listener registrations. There is TopologyRequestListener which listens on aggregated topology requests (placed into configuration datastore) and UnderlayTopologyListeners which listen on underlay topology data changes (made in operational datastore). TopologyRequestHandler saves toporequest data and provides method for translating path to the specified leaf. When a change in topology occurs, registered UnderlayTopologyListener processes this information for further aggregation and/or filtration. Finally, after overlay topology is created, it is passed to TopologyWriter, which writes this topology into operational datastore.
+
+=== Topology Processing Framework Architecture
+Contains of topoprocessing-api, topoprocessing-spi and topoprocessing-impl 
+bundles.
+
+* topoprocessing-api - contains correlation definitions
+* topoprocessing-spi - entry point for topoprocessing service (start and close)
+* topoprocessing-impl - contains implemented handlers, listeners and aggregators
+
+*Typical usecase*
+
+. TopoProcessingProvider instance is created, DataBroker dependency is set
+. TopoProcessingProvider registers TopologyRequestListener (into configuration datastore)
+    - TopologyRequestListener listens on any topology creation or deletion and checks if it contains CorrelationAugment augmentation
+. TopologyRequestListener creates TopologyRequestHandler on new topology request
+    - TopologyRequestHandler translates paths from correlation into InstanceIdentifiers
+. TopologyRequestHandler creates TopologyFiltrator and/or TopologyAggregator (depending on correlation)
+. This step shows, that we can create filtered views on aggregated topologies
+. TopologyRequestHandler registers needed UnderlayTopologyListener(s) (into operational datastore)
+. Data change events are passed for aggregation and/or filtering
+. Overlay topology is passed to TopologyWriter
+. TopologyWriter writes the overlay topology into operational datastore
+
+.architecture schema
+image::topoprocessing/architecture.png["architecture", width=500]
+
+=== Key APIs and Interfaces
+Basic Provider class is TopoProcessingProvider which provides startup and shutdown
+methods. Otherwise the framework communicates via requests and outputs stored 
+in DataStores.
+
+=== API Reference Documentation
+Provide links to JavaDoc, REST API documentation, etc. [TBD]
diff --git a/manuals/developer-guide/src/main/resources/images/topoprocessing/architecture.png b/manuals/developer-guide/src/main/resources/images/topoprocessing/architecture.png
new file mode 100644 (file)
index 0000000..a150b73
Binary files /dev/null and b/manuals/developer-guide/src/main/resources/images/topoprocessing/architecture.png differ