anchor.diff:      ?debug("    service_edge_rpc:register_service(): address: ~p ", [Address]),
   
       case 
  +	%% Register the service at service discovery
   	rvi_common:send_component_request(service_discovery, register_local_service,
   					  [
   					   {service, Service}, 
   					   {network_address, Address}
   					  ], [service]) of
   	{ ok, JSONStatus, [ FullSvcName], _JSON} -> 
  +	    
  +	    %% Announce the new service
  +	    rvi_common:send_component_request(data_link, announce_new_local_service,
  +					      [
  +					       %% Convert /some/svc to jlr.com/some/svc
  +					       {service, rvi_common:local_service_to_string(Service)}
  +					      ], [service]),
   	    { ok, [ {service, FullSvcName}, 
   		    {status, rvi_common:json_rpc_status(JSONStatus)} ] };
   
  
positive.code:     ?debug("    service_edge_rpc:local_msg: parameters:      ~p", [Parameters]),
      ?debug("    service_edge_rpc:local_msg: calling_service: ~p", [CallingService]),
  
      case 
  	rvi_common:send_component_request(authorize, authorize_local_message,
  					  [
  					   {calling_service, CallingService}, 
  
negative.code: 					  ],
  					  [ certificate, signature ]) of
  	{ ok, ok, [Certificate, Signature], _AuthJSON } -> 
  
  	    %%
  	    %% Check if this is a local service. If so, just forward it to its target.
  	    %% 
  	    case rvi_common:is_local_service(Target) of
  		true ->  %% Target is local. Forward message
  		    ?debug("    service_edge_rpc:local_msg(): Service is local. Forwarding."),
  		    forward_message_to_local_service(Target, Parameters);
  		    
  		false -> %% Target is remote
  		    %% Ask Schedule the request to resolve the network address
  		    ?debug("    service_edge_rpc:local_msg(): Service is remote. Scheduling."),
  		    forward_message_to_scheduler(Target, Timeout, Parameters, Certificate, Signature)
  	    end;
  
  	Err -> 
  	    ?warning("    service_edge_rpc:local_msg() Failed at authorize: ~p", 
  		      [ Err ]),
  	    Err
      end.
  