Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1. Building the docker image from source and run it on port 8083 http

Code Block
languagebash
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)
Image Removed

The demo application must implement these callbacks in order to work with ICS:

...

  1. Check the system for dependencies such as Maven, Java, Docker and docker-compose
  2. Package the demo application for a producer and a consumer and build the docker images
  3. Start the docker container in the same docker network with docker-compose
  4. 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
  5. The script will send type1 to ICS, which is already predefined in the demo application
  6. The script will send the producer info to ICS
  7. The script will send the consumer job info to ICS
  8. ICS will trigger the demo application based on its callbacks
  9. Data is produced on the demo application
  10. The script sends docker logs of the Producer Callback function of ICS
  11. 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.

Image RemovedImage Added

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
  •   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 JobsService status API