code: function _executeMethod(method, id, fn, params){
          if (!fn) {
              if (id) {
                  _send({
                      id: id,
                      error: {
                          code: -32601,
                          message: "Procedure not found."
                      }
                  });
              }
              return;
          }
          
          var success, error;
          if (id) {
              success = function(result){
                  success = emptyFn;
                  _send({
                      id: id,
                      result: result
                  });
              };
              error = function(message, data){
                  error = emptyFn;
                  var msg = {
                      id: id,
                      error: {
                          code: -32099,
                          message: message
                      }
                  };
                  if (data) {
                      msg.error.data = data;
                  }
                  _send(msg);
              };
          }
          else {
              success = error = emptyFn;
          }
          // Call local method
          if (!isArray(params)) {
              params = [params];
          }
          try {
              var result = fn.method.apply(fn.scope, params.concat([success, error]));
              if (!undef(result)) {
                  success(result);
              }
          } 
          catch (ex1) {
              error(ex1.message);
          }
      }
docs: Executes the exposed method
  @private
  @param {String} method The name of the method
  @param {Number} id The callback id to use
  @param {Function} method The exposed implementation
  @param {Array} params The parameters supplied by the remote end