精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Java>>技术言论>>(-)读书笔记 之 SOAP简单理解

主题:(-)读书笔记 之 SOAP简单理解
发信人: yife()
整理人: zjxyz(2003-04-08 09:19:40), 站内信件
 写在前面,我一个不懂编程的人,也许没碰到java之前,我以为我不会干这行。。。
 

1。 SOAP:“Simple Object Access Protocol”,首先它是一种传输协议,它用来传输什么呢?

2。传输对象、方法。传这些干什么?

3。你一定听过这样一个概念,“现在(或未来)的程序要建立在网络上”,java RMI就是最好例子 ,远程方法调用(remote method invoke)  ,这意味着一个程序运行在网络上,内部分别运行在不同机器上的对象可以有了某种联系了。

  你可以认为当本地的程序 调用一次接口方法后,远端就被相应调用一个方法,实现某种操作,那是如何实现的? java把 interface 或 class 串行化 ,就是采取一定编译形式把含有一定信息的实例(instance)存储成二进制的数据。然后把这个数据传给远端的,远端程序通过一定的翻译从这个数据中获知 发送端的一些操作 ,并作出相应的操作 。

4. 有两种大家都听过的DCOM、CORBA 他们都采用传输 2进制 包来保持 分布式程序体之间的联系,分别采用Object Remote Procedure Call (ORPC), Internet Inter-ORB Protocol (IIOP) 协议来传输这个数据 .

5.现在又有了SOAP,从它身上可以把以上的过程理解的更形象,因为他传送的是 普通文本的 数据包,不过 很难想象用文字 来表达 对象的方法,似乎缺乏足够的结构性,不过 现在有的XML!! 

你们看:

有这样一个接口:
public interface Hello 

    public String sayHelloTo(String name); 
}

用xml表达:
<?xml version="1.0"?> 
<Hello> 
    <sayHelloTo> 
        <name>John</name> 
    </sayHelloTo> 
</Hello> 
 
以上的表达,表示本地调用了sayHelloTo(John)


那传到远端被处理 之后,就传回来如下:

<?xml version="1.0"?> 
<Hello> 
    <sayHelloToResponse> 
        <message>Hello John, How are you?</message> 
    </sayHelloToResponse> 
</Hello> 


其实以上过程,就可理解为 调用 sayHelloTo(John) 返回“Hello John, How are you?”这一 String!! 

6.所以说SOAP是基于XML,当然这只是简单的例子,其实SOAP还有很多的协议条文。

7。DCOM、CORBA 都要改成 基于SOAP了,这不也说明DCOM、CORBA 也会相差无几了。微软大喊 基于XML的.net架构,正是因为要采用 SOAP.

8。另:EJB也是采用CORBA体系,象websphere \ weblogic 等aplication server也采用的是IIOP传输。

写在最后 

记得第一次去找工作,是要招做网页的,一进去第一句话,就把我问住了,“会XML吗?” 我说“不知道,和html差不多吧”,结果当然没戏了。后来终于弄明白xml,现在想想 当时那家 公司真准备用那东西?可能只是时髦而已



[关闭][返回]