SOAP继续让我感到困惑。
在RMI中,有远程对象,它们位于远程服务器上。你可以传递它们,但这只会在本地创建存根。存根通过线路委托所有方法调用。 这与纯数据对象完全不同,纯数据对象是序列化的并作为副本发送。
SOAP中是否有远程对象?从我到目前为止看到的(虽然没有深入挖掘),有一些复杂的对象可以传递(作为参数或返回值),但那些只是“数据载体”。
答案 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与语言无关,因此不能有任何远程对象。应该使用哪种语言?