See also: JIRA link:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
1. Building the docker image from source and run it on port 8083 http
Code Block | ||
---|---|---|
| ||
git clone "https://gerrit.o-ran-sc.org/r/nonrtric/plt/informationcoordinatorservice"
cd informationcoordinatorservice
mvn clean install
docker run -d -p 8083:8083 o-ran-sc/nonrtric-plt-informationcoordinatorservice:latest |
Or use the pre-built image
...
1. Authorization check: POST to the Authentication Agent (from the starting config config/application.yaml )
2. Validation: The URLs seem to be used only for URI validation (?)
3. Consumer starts a job on the Producer POST producerCallbacks.startInfoSubscriptionJob->restClient.post(producer.getJobCallbackUrl(), jobCallbackBody(infoJob))
ICS Callbacks Flow
Demo Application - Java Producer and Consumer
WIP application: https://gerrit.nordix.org/c/local/oransc/nonrtric-prototyping/+/20750
Script for the demo: https://gerrit.nordix.org/gitweb?p=local%2Foransc%2Fnonrtric-prototyping.git;hb=refs%2Fchanges%2F50%2F20750%2F15;f=kafka-demo-app%2Fdemo2.sh
Running the script will check the requirements and start 3 containers: DemoApp(localhost:8080), Kafka(localhost:9092), ICS(localhost:8083)
The demo application must implement these callbacks in order to work with ICS:
...
- Check the system for dependencies such as Maven, Java, Docker and docker-compose
- Package the demo application for a producer and a consumer and build the docker images
- Start the docker container in the same docker network with docker-compose
- After Strimzi kafka is up and running the user can run manually ./runproducer.sh and ./runconsumer.sh in different shells or use demo.sh to start the producer and consumer
- The script will send type1 to ICS, which is already predefined in the demo application
- The script will send the producer info to ICS
- The script will send the consumer job info to ICS
- ICS will trigger the demo application based on its callbacks
- Data is produced on the demo application
- The script sends docker logs of the Producer Callback function of ICS
- The script sends docker logs of the Demo applications
Terminology:
- Information Type: Represents the types of data that can be produced by data producers and consumed by data consumers.
- Information Job: Represents an active data subscription by a data consumer, specifying the type of data to be produced and additional parameters for filtering.
- Data Consumer: Represents entities that consume data and manage data subscription jobs.
- Data Producer: Represents entities that produce data.
API offered in ICS:
- A1-EI Data producer API: Data consumer EI job registration and EI job status callbacks (enrichment information)
- Data producer API:
- Data consumer API
- Service status API Information Type and Information Producer
- Producer CALLBACKS: GET healthcheck (supervision); Information Job Creation/Modification/Delete
- Data consumer API: Information Type Subscription Creation/Modification/Delete (REGISTERED/UNREGISTERED); Information Job (Creation/Modification/Delete) and GET Information Type
- Consumer CALLBACKS: POST Information Type Status: REGISTERED/UNREGISTERED invoked when a Information type status has been changed.
- Service status API: Number of Producers Types and Jobs