def execute_procedure(self, name, args=None, kwargs=None):
        """
        Call the concrete python function corresponding to given RPC Method `name` and return the result.

        Raise RPCUnknownMethod, AuthenticationFailed, RPCInvalidParams or any Exception sub-class.
        """

        _method = registry.get_method(name, self.entry_point, self.protocol)

        if not _method:
            raise RPCUnknownMethod(name)

        logger.debug('Check authentication / permissions for method {} and user {}'
                     .format(name, self.request.user))

        if not _method.check_permissions(self.request):
            raise AuthenticationFailed(name)

        logger.debug('RPC method {} will be executed'.format(name))

        # Replace default None value with empty instance of corresponding type
        args = args or []
        kwargs = kwargs or {}

        # If the RPC method needs to access some internals, update kwargs dict
        if _method.accept_kwargs:
            kwargs.update({
                REQUEST_KEY: self.request,
                ENTRY_POINT_KEY: self.entry_point,
                PROTOCOL_KEY: self.protocol,
                HANDLER_KEY: self,
            })

        if six.PY2:
            method_std, encoding = _method.str_standardization, _method.str_std_encoding
            args = modernrpc.compat.standardize_strings(args, strtype=method_std, encoding=encoding)
            kwargs = modernrpc.compat.standardize_strings(kwargs, strtype=method_std, encoding=encoding)

        logger.debug('Params: args = {} - kwargs = {}'.format(args, kwargs))

        try:
            # Call the rpc method, as standard python function
            return _method.function(*args, **kwargs)

        except TypeError as e:
            # If given arguments cannot be transmitted properly to python function,
            # raise an Invalid Params exceptions
            raise RPCInvalidParams(str(e))
Call the concrete python function corresponding to given RPC Method `name` and return the result.

        Raise RPCUnknownMethod, AuthenticationFailed, RPCInvalidParams or any Exception sub-class.