发信人: 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,现在想想 当时那家 公司真准备用那东西?可能只是时髦而已
|
|