SOAP有“远程对象”吗?

时间:2009-12-16 07:49:13

标签: web-services soap rmi

SOAP继续让我感到困惑。

在RMI中,有远程对象,它们位于远程服务器上。你可以传递它们,但这只会在本地创建存根。存根通过线路委托所有方法调用。 这与纯数据对象完全不同,纯数据对象是序列化的并作为副本发送。

SOAP中是否有远程对象?从我到目前为止看到的(虽然没有深入挖掘),有一些复杂的对象可以传递(作为参数或返回值),但那些只是“数据载体”。

2 个答案:

答案 0 :(得分:2)

您可能会发现阅读WS-I Basic Profile,等Web服务标准会很有帮助 比如说:

  

SOAP 1.1定义了消息交换   处理消息的模型。

换句话说,这是关于在不同系统之间传递消息。

作为SOAP服务的客户端,您不知道另一端是否有对象(至少在通常的实践中),您收到的有效负载不会返回您可以调用其他远程的引用对象消息。例如,如果你有(在概念上)

 Order getOrder( int orderId )

和订单看起来像

Order {  int orderId;
         Customer {  String name, String TelephoneNumber ... }
}

客户“对象”没有您在远程工作中调用该结果的方法。 SOAP接口具有纯粹以数据表示的有效负载。

Lanaguge绑定,使我们能够编码(例如)Java来调用SOAP / HTTP,为我们提供服务的本地代理objtec,但这并不意味着类似RMI的远程对象模型。

答案 1 :(得分:0)

由于SOAP与语言无关,因此不能有任何远程对象。应该使用哪种语言?