ServiceInterface contract, ExchangeHandler handler, ServiceMetadata metadata) {
ServiceReferenceImpl reference = new ServiceReferenceImpl(serviceName, contract, this, handler, metadata);
Dispatcher dispatch = _exchangeBus.createDispatcher(reference);
reference.setDispatcher(dispatch);
_serviceRegistry.registerServiceReference(reference);
_eventManager.publish(new ReferenceRegistrationEvent(reference));
return reference;
}