blob: 6f29e5d4e98e2ea39017c1bffe140415c2ef3ce2 [file] [log] [blame]
efiacor0fa01982019-04-08 14:52:08 +00001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
3
4Architecture
5============
6
7Capabilities
8------------
9The DMaaP Data Router (DR) provisioning API is an HTTPS-based, REST-like API for creating and managing
10DR feeds and subscriptions, which provides a pub/sub architectural model for the transfer of data.
11
12The DR API also supports `AAF CADI authorization <https://docs.onap.org/en/latest/submodules/aaf/authz.git/docs/sections/architecture/cadi.html#authorization>`_.
13
14To use this feature, the API client must provide a valid AAF AppID / MechID with each request.
15To enable this feature, see the :ref:`configuration` section.
16
17.. note:: In future releases, AAF CADI auth will be enabled by default.
18
19Usage Scenarios
20---------------
21Typically, DR pub clients request the provisioning of a new DR feed.
22Once created, DR sub clients can then subscribe to the feed to receive all data published to that feed.
23
24 .. image:: images/dr_pub_flow.png
25
26
27The DR provisioning API is not meant to be used directly by DR end users (publishers and subscribers)
28for feed / subscription CRUD (create, read, update, delete) operations.
29
30Instead, prospective publishers and subscribers should use the DMaaP Bus Controller API, which will call
31the DR provisioning API to manage feeds and subscriptions.
32
33 .. image:: images/dr_bc_prov.png
34
35
36See DMaaP Bus Controller API docs for more information:
37
38`Bus Controller Feeds API <https://onap.readthedocs.io/en/latest/submodules/dmaap/dbcapi.git/docs/api.html#feeds>`_
39
40`Bus Controller Subs API <https://onap.readthedocs.io/en/latest/submodules/dmaap/dbcapi.git/docs/api.html#dr-subs>`_
41
42
43High level Architecture
44-----------------------
45The following diagram shows the high-level relationship between the system components:
46
47 .. image:: images/dr_arch_only.png
48
49
50DMaaP DR architecture uses the Eclipse Jetty server as an application server to service it's front-end.
51 * dmaap-dr-prov services all provisioning requests.
52 * dmaap-dr-node services the publishing of data to feed subscribers.
53
54DMaaP DR uses MariaDB as it's storage component for the following:
55 * DR Provisioning data. (feeds, subscribers, etc.)
56 * Historical logging data related to feed activity. (Publish, Delivery, etc.)