...
- How does this project fit into the rest of the ONAP Architecture?
- Please Include architecture diagram if possible
- What other ONAP projects does this project depend on?
- Integration
- Please Include architecture diagram if possible
- How does this align with external standards/specifications?
- APIs/Interfaces - OpenAPI/Swagger
- Information/data models - Swagger JSON or YAML models
- Are there dependencies with other open source projects?
- APIs/Interfaces - OpenResty, Consul, Redis
- Integration Testing
- etc.
This part was added yesterday and have not been discussed inside project yet, we will discuss it later and solve it inside project. Currently, this part is considered one of the potential seed code, but it doesn't impact the scope of this proposal.
**********************************************************************************************************************************************************************************************************************
DME2 ( Direct Messaging Engine )
...
- Fast-failover - Queuing the requests on server implementation is disabled by default, which allows the client to fast failover if a service provider is consumed at its max capacity.
- Dynamic Routing - The client requests will be routed to the DME2 service provider instances via routing made possible by the dynamic registration of the service provider as instances become available
- Affinity Routing - The client requests will be routed to the service provider by means of data, partner or geographic affinity depending on the client requirements.
- JMS API's - Provides standard JMS API implementation for destinations type as JMS Queues or Point-to-Point messaging
- Async Request/Reply - Enables better use of resources by avoiding the traditional thread per request, thus supporting highly scalable service provider implementation
**********************************************************************************************************************************************************************************************
MSB Use Cases:
- Service registration per service provider instances
- Registration
Service instances are registered to the registry by proxy or themselves. The visible scope should be indicated as a parameter when register. If a service is only internal visible, the service information is only pulled by the internal gateway (aka router & load balancer) and used by other components inside the system, the interal services can't be accessed by external systems or front end(web client). If a service is visible to external system, the service information is pulled by the external gateway and can be accessed by external systems and front end (web client) with auth.
- Discovery & Service Consuming
- For internal service consumers(Components inside ONAP system, such as A&AI, SO, Controller, etc.)
- Client side discovery and load balancing
- Server side discovery and load balancing
- Client side discovery and load balancing
- For external service clients(OSS, BSS, Web client, etc.), access the service via external gateway
- For internal service consumers(Components inside ONAP system, such as A&AI, SO, Controller, etc.)
- Registration
- Service registration per service
The service may have its own load balancer built inside, for example, Kubernetes can create a load balancer for a service. In such case, only need to register the service LB node to MSB, and the service request from the consumer is routed to the service LB node.- Registration
- Discovery & Service Consuming
Note: Only show the client side discovery in this diagram for simplicity, it's also possible to use server side discovery by the internal gateway.
- Registration
- Centralized Authentication&Authorization via MSB plugin
MSB is a pluggable architecture, so it can provide centralized authentication & authorization for service request with plugin of auth service provider like AAF.
...