ARC AAI Component Description - Kohn-R11
Page Status: updated for Kohn - May 31, 2022
Component Status: PTL Updated, awaiting ArchCom Review
Last Reviewed on:
Certified by:
AAI (Available and Active Inventory):
1. High Level Component Definition and Architectural Relationships
The AAI (Available and active inventory) function provides real-time views of the resource and services in managed by and their relationships. It provides
Realtime views of the managed resources and services and their relationships
The relevance of the managed resources and services to the ONAP components.
It is a registry of the active, available and assigned assets.
It maintains a multidimensional relationship amongst the managed services and resources.
It provides interfaces for canned and ad-hoc complex network topology queries
2. API definitions
AAI provides the following interfaces:
Interface Name | Interface Definition | Interface Capabilities | Version | Status | API Spec (Swagger) |
---|---|---|---|---|---|
Inventory Service Interface. CRUD & Queries | An interface to create, update, retrieve, query, delete the service, resources and relationship inventory information for:
AAI provides multiple interfaces to use canned queries, dynamic queries (DSL), and CRUD operations (Resources) | v27 | |||
AAI Graphical User Interfaces | Provides the capability to view the inventory |
Note: xxxI interface is a Component internal interface. xxxxE interface is a component external interface
The current API documents can be found at:
AAI consumes the following Interfaces:
Interface Name | Purpose Reason For Use | API Spec (Swagger) |
---|---|---|
SDCE-6 | To receive the service and resource artifacts from SDC. | N/A Interface Details |
3. Component Description:
A more detailed figure and description of the component.
For Above:
The above red boxes indicate everything no longer deployed in Jakarta, being in maintenance mode.
Release Artifacts
Release Components Name
Components Name | Components Repository name | Maven Group ID | Components Description |
---|---|---|---|
aai-common | aai/aai-common | org.onap.aai.aai-common | This holds the model, annotations and common modules used across the Resources and Traversal micro services |
data-router | aai/data-router | org.onap.aai.data-router | AAI Micro Service used to route/persist AAI event data for consumption by the UI |
logging-service | aai/logging-service | org.onap.aai.logging-service | AAI common logging library |
model-loader | aai/model-loader | org.onap.aai.model-loader | Loads SDC Models into A&AI |
resources | aai/resources | org.onap.aai.resources | AAI Resources Micro Service providing CRUD REST APIs for inventory resources |
rest-client | aai/rest-client | org.onap.aai.rest-client | Library for making REST calls |
router-core | aai/router-core | org.onap.aai.router-core | Library containing the core camel components for the data router |
search-data-service | aai/search-data-service | org.onap.aai.search-data-service | Service for persisting data to a search database |
sparky-be | aai/sparky-be | org.onap.aai.sparky-be | AAI user interface back end |
sparky-fe | aai/sparky-fe | org.onap.aai.sparky-fe | AAI user interface front end |
test-config | aai/test-config | org.onap.aai.test-config | Repository containing test configuration for use in continuous integration |
traversal | aai/traversal | org.onap.aai.traversal | AAI Traversal Micro Service providing REST APIs for traversal/search of inventory resources |
babel | aai/babel | org.onap.aai.babel | AAI Microservice to generate AAI model XML from SDC TOSCA CSAR artifacts |
esr-server | aai/esr-server | org.onap.aai.esr-server | ESR backend, mainly include the function of external system reachable check and data pretreatment |
esr-gui | aai/esr-gui | org.onap.aai.esr-gui | External system management ui |
event-client | aai/event-client | org.onap.aai.event-client | Library to manage interactions with an event bus |
graphadmin | aai/graphadmin | org.onap.aai.graphadmin | Microservice with various functions for graph management |
cacher | aai/cacher | org.onap.aai.cacher | The Response Caching Microservice (Cacher) is built to deliver multiple mechanisms of making API calls and populating the responses into a JSON datastore |
validation | aai/validation | org.onap.aai.validation | Microservice used to invoke validation mechanism |
schema-service | aai/schema-service | org.onap.aai.schema-service | Microservice to provide centralized run-time schema information for AAI's microservice |
graphgraph | aai/graphgraph | org.onap.aai.graphgraph | Microservice used to provide view of AAI model, schema and edge rules |
oom | aai/oom | org.onap.aai.oom | AAI's helm chart repo, is a submodule of the oom project, but will be brought back into the main project in the Guilin release. This will need to remain open for as long as Frankfurt and El Alto are supported and then can be locked. |
spike | aai/spike | org.onap.aai.spike | Microservice used to generate events describing changes to the graph data (deprecated) |
tabular-data-service | aai/tabular-data-service | org.onap.aai.tabular-data-service | Microservice which serves as an abstraction layer to a tabular data store (deprecated) |
gap | aai/gap | org.onap.aai.gap | A get and publish microservice which extracts entities from A&AI and publishes them to an event topic (deprecated) |
eis | aai/eis | org.onap.aai.eis | Microservice used to manage entity identities across systems (deprecated) |
chameleon | aai/chameleon | org.onap.aai.chameleon | Abstraction service for historical database (deprecated) |
gallifrey | aai/gallifrey | org.onap.aai.gallifrey | Transformation service between AAI-modelled data, operations and gallifrey representation (deprecated) |
enricher | aai/enricher | org.onap.aai.enricher | Enables complementing AT&T data with federated data from additional sources (deprecated) |
aai-service | aai/aai-service | org.onap.aai.service | AAI REST based services (deprecated) |
aai-config | aai/aai-config | org.onap.aai.aai-config | AAI Chef cookbooks |
aai-data | aai/aai-data | org.onap.aai.aai-data | AAI Chef environment files (deprecated) |
gizmo | aai/gizmo | org.onap.aai.gizmo | CRUD Rest API endpoint for resources and relationships, delivering atomic interactions with the graph for improved scalability. (deprecated) |
champ | aai/champ | org.onap.aai.champ | Abstraction from underlying graph storage systems that A&AI would interface with.(deprecated) |
4. known system limitations
Eventually consistent database (CAP Theorem - Performance over Consistency) - see Warning! AAI REST API Not Safe With Concurrent Access (i.e. more than 1 REST client)
Basic issue is when running multiple instances and calls are made to the same objects concurrently, there runs the risk of creating duplicates or ghost vertices, see https://docs.janusgraph.org/advanced-topics/eventual-consistency/ for more
We have provided a sticky config in HAProxy, to keep clients operating on the same instance for X mins and data grooming (via GraphAdmin) to clean up bad data
5. Used Models
AAI uses the following models:
Inventory Model
6. System Deployment Architecture
See component section.
7. New Capabilities in this Release
This release, AAI adds the following Capabilities:
Use Cases supported: AAI R11 Kohn Release: Functional Use Cases
Global Requirements: AAI R11 Kohn Release: Global Requirements
Release Planning: AAI R11 Release Planning