code: @Override
  	public Object invoke(final Invocation invocation) throws Exception {
  		if (invocation == null) throw new NullPointerException("invocation");
  
  		MethodDescriptor<?, ?> method = invocation.getMethod();
  		DataTypeDescriptor<?> resultd = (DataTypeDescriptor<?>) method.getResult();
  		MessageDescriptor<? extends Message> excd = descriptor.getExc();
  
  		RpcRequest request = protocol.getRequest(invocation);
  		return session.send(request, resultd, excd);
  	}
docs: Serializes an invocation, sends an rpc request and returns the result.