对象序列化可以通过传输对象到远程机器
是否也可以利用这个原理调用远程机器上的对象呢?rmi和webservice又有什么区别?webservice大家用得多吗

解决方案 »

  1.   

    RMI的本质是J2EE实现中,帮你自动进行序列化和反序列化,和传输的工作。WebService一般是走协议,实现通讯的,而且通讯的目的是为了call function
    一般由J2EE服务器实现。
      

  2.   

    概念不清RMI是远程调用,他的目的是让使用远程的方法和使用本地方法一样简单。他的底层协议可以是Tcp。你所谓的socket是指TCP吧,一般用它来传输数据。WebService说实话目的是为了替代RMI,实现跨语言性。它也是用来实现远程方法本地调用的。
      

  3.   

    socket走的是tcp,webservice走的是http,socket主要是用于二进制数据传输,也是跨平台,跨语言,webservice也能用于数据传输,也是跨平台,跨语言,只是主要是用于方法的调用且基于soap协议
    socket数据传输由于是二进制数据流,安全性不高,webservice是ASCII文本,比较安全。
      

  4.   

    "socket数据传输由于是二进制数据流,安全性不高,webservice是ASCII文本,比较安全。"文本不是更不安全吗?
      

  5.   

    socket按你的说法,其实指的是tcp协议
    http是基于tcp的高层协议
    RMI是基于tcp的更高层协议
    WebService是基于http的更高层协议RMI和WebService是用来做远程调用的,不是简单的传输数据.也就是说Rmi和WebService可以实现的功能,你自己用tcp也可以实现,但这样做没有任何标准,也不可靠.RMI和WebService最大的区别就是前者做不到语言无关.WebService实际上是基于soap协议,把对象变成xml数据,到对方再根据配置反向还原成对象或者结构.如果你的程序是java和c++之间做远程调用,那么只能用WebService,这也是为什么现在WebService被说的这么火至于lhfzd2004(风之刀)说的安全性,我不苟同
    lz如果有兴趣,可以看看相关的资料,或者自己测试一下.只要一用就明白了.
      

  6.   

    没有底层得socket通讯做保证,你的那个RMI应用还能转嘛
    包括我们的web开发,服务器都要通过socket通讯,不要被封装的那些
    运用搞晕了头......