A,B2个系统间发信息,A要发一个任务然后在B系统执行这个任务,如果是实时的B即时返回操作结果,如果非实时A会定时去B取任务执行是否成功,想请问A,B与通信用socket还是用webservice有什么区别各自的优缺点?谢谢

解决方案 »

  1.   

    Socket是长连接,主要有三种情况使用:
    1、所谓“超实时”需求,也对实时性要求非常高,通讯协议握手类的时延都必须消除掉;
    2、超高数据传输量,需要持久通道来保证数据传输,并减少通用协议的解析时间;某些高并发场合也会用通过多路复用的方式使用长连接;
    3、遗留系统集成,它只提供了Socket服务端口,没有WebService谢谢。
    WebService,也就是所谓接口调用,广泛适用于各种非极端场合;且比起Socket而言,系统间集成耦合度低。
      

  2.   

    Socket是长连接,主要有三种情况使用:
    1、所谓“超实时”需求,也对实时性要求非常高,通讯协议握手类的时延都必须消除掉;
    2、超高数据传输量,需要持久通道来保证数据传输,并减少通用协议的解析时间;某些高并发场合也会用通过多路复用的方式使用长连接;
    3、遗留系统集成,它只提供了Socket服务端口,没有WebService谢谢。
    WebService,也就是所谓接口调用,广泛适用于各种非极端场合;且比起Socket而言,系统间集成耦合度低。==============
    上面 ldh9111,请问Socket有通讯协议握手类的时延吗?
    2,这个不需要高数据量传出 只传定长的XML字符串
    3,没有遗留系统提供Socket服务端口最后还是不知道选哪种啊?
      

  3.   

    1,请问Socket有通讯协议握手类的时延吗?
    —— TCP协议就是标准的三次握手;但是在Socket连接断开之前,就不需要了;而基于接口调用的,相当于每次调用都要重新握手;
    2,这个不需要高数据量传出 只传定长的XML字符串
    3,没有遗留系统提供Socket服务端口最后还是不知道选哪种啊?
    ——我最后的话说了:接口调用,广泛适用于各种非极端场合。
    ——从你的表述看来,你这个需求显然不属于极端场合,所以没必要使用Socket,自己还要写大量端口读取控制啥的,何苦。
    ——建议用接口调用方式,至于用WS还是EJB之类的,都可以;从协议处理效率来说,EJB比WS稍高;Spring也提供一些轻量级接口调用,效率比EJB还高;异步类请求,也可以考虑采用双向消息队列。