pnoltes opened a new issue, #719:
URL: https://github.com/apache/celix/issues/719

   # Intro
   With the current RSA implementation, Remote Service Admins can bound to 
multiple network interfaces (bind 0.0.0.0), but there is not clear defined way 
to ensure that discovery can work with endpoints that describe an exposed 
endpoint on multiple network interface and thus exposed with multiple IPs.
   
   # Improvements
   a) Let RSA implementations decide if they support "dynamic IP fill-in" by 
providing a additional service property on the registered RSA service. if 
dynamic IP fill-in is supported, the RSA implementation should bind to ANY 
address (0.0.0.0)
   
   b) The Topology Manager should handle RSA without "dynamic IP fill-in" as-is
   
   c) And the Topology Manager should select which network interfaces are used 
for exported endpoint exposure. 
   This can based on configuration (config properties) or on dynamic lookup. IP 
addresses that are 
   not part of the selected  interface should be ignore so that no 
communication is possible on not-selected IP addresses. 
   
   d) Update the Topology Manager to detect RSA services what support dynamic 
IP fill-in and in that case create multiple endpoints for a single export 
registration based on the available network interfaces and an optional network 
selection configuration. These endpoints are then forwarded to the discovery 
listener services that support network specific endpoints. The discovery 
implementation can pick and handle or drop endpoints based on the selected 
network interface.
   
   The primary idea is that most of the boiler-plating to support dynamic IP 
fill-in is moved to the topology manager and kept away from the RSA and 
discovery implementations.
   
   For the service/endpoint property something like the following can be used:
   
   - RSA Dynamic IP fill-in support
     - Property name: "rsa.dynamic.ip.support"
     - Type: boolean
     - Description: Indicates whether the RSA implementation supports dynamic 
IP address fill-in for service exports
   - RSA Export Registration dynamic replaceable property
     - Property name: rsa.ifnames
     - Type: string array (depends on #674 
     - Description: The dynamically determined IP address for the endpoint.
   - Discovery interface-specific endpoints support.
     - Property Name: "discovery.interface.specific.endpoints.support
     - Type: boolean
     - Description: Indicates if the discovery implementation supports handling 
of interface-specific endpoints.
    
   
    
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@celix.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to