zoukankan      html  css  js  c++  java
  • 从Hello word 学习XMLRPC编程

    xml rpc学习目录:

    1 定义

    2 使用场景

    3 案例分析

    4 安全

    5 总结

    6 资源

    一  定义

    xml rpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。一个rpc系统,必然包括2个部分:1.rpc client,用来向rpc server调用方法,并接收方法的返回数据;2.rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。RPC是Remote Procedure Call的缩写,翻译成中文就是远程过程调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。(摘自百度百科)

    二 使用场景

    2.1 需要使用远程服务,对soap等其他远程服务协议不是很熟悉

    2.2 需要客户端能访问远程信息

    三 案例分析

    本案例使用ASP.NET实现服务端,控制台应用程序实现客户端。实现内容:调用RPC服务,输出hello word!

    3.1 服务端

    下载xml-RPC.net,程序集中引用CookComputing.XmlRpcV2.dll,新建一个服务之前,先新建一个接口,代码如下:

    /// <summary>
        /// 我的测试接口
        /// </summary>
        public interface IDiyiyusuanTest
        {
            [XmlRpcMethod("HelloWord")]
            string HelloWord();
    }

    实现这个接口,并且继承XmlRpcService,代码如下:

    /// <summary>
        /// 创建一个RPC服务
        /// </summary>
        public class RpcServer : XmlRpcService, IDiyiyusuanTest
        {
            public string HelloWord()
            {
                return "HelloWord!";
            }
    }

    要实现Http://www.domin.com/rpcserver.axd,需要在config中如下配置:

    <httpHandlers>
          <add verb="*" type="MvcTest.XMLRPC.RpcServer" path="rpcServer.axd"/>
        </httpHandlers>
    解释:type是命名空间和类的名称,path为url访问路径:网站根目录/rpcserver.axd

    3.2 客户端

    using System.Reflection;
    using CookComputing.XmlRpc;
    
    class Program
        {
            static void Main(string[] args)
            {
                RpcClient rc = new RpcClient();
                var hello = rc.HelloWord();
                Console.WriteLine(hello);
                Console.Read();
            }
        }
    [XmlRpcUrl("http://yourdmoin.com/rpcServer.axd")]
        public class RpcClient:XmlRpcClientProtocol
        {
            [XmlRpcMethod("HelloWord")]
            public string HelloWord()
            {
                return (string)Invoke(MethodBase.GetCurrentMethod());
            }
    }

    4 安全

    4.1 简单安全,在实现服务的方法中,加入用户名和密码,但是此处传播为明文传播,最好加密.

    4.2 使用强文件加密(暂时没研究)

    5 总结

    rpc实现比webservice要简单一些,没有复杂的配置,并且各个语言版本都有支持,不需要针对单个语言再写新的代码。但是rpc没有soap的webservice安全性高(暂时这样理解).

    6 资源

    xml-rpc 一些常见问题:http://xml-rpc.net/faq/xmlrpcnetfaq-2-5-0.html

    xml-rpc :xml-rpc.net

  • 相关阅读:
    GitHub指南
    团队管理之愿景
    软件开发中的思维僵化
    疯狂的 JAVA 后++
    Spring MVC ajax:post/get 的具体实现
    ReentrantLock的Condition使用问题
    Scala学习(一)
    Tomcat源码分析(一)
    LeetCode -- Word Break 动态规划,详细理解
    Javascript 闭包访问问题?
  • 原文地址:https://www.cnblogs.com/wxj200589/p/2302335.html
Copyright © 2011-2022 走看看