软件 > 专题、教程宝典 > 技术开发 >


             微软基于Web计算的框架结构分析

                 胡朝晖(编译)

  二、Web服务体系结构分析

  这种基于Internet类型应用的出现使我们需要一个崭新的框架结构来进行程序的设计,我们需要一个快速和方便的方法进行代码的编写并且能够和Internet上其他的程序进行交互。当然在计算机之间进行数据和信息交互这个概念并不是很新,比如通过RPC,DCOM和CORBA等都可以实现不同计算机上的进程之间的交互。但是它们都有一个致命的缺点:它们需要进行交互的机器具有相似的系统,比如MSMQ只能和MSMQ进行对话,DCOM客户端只能和DCOM服务器端进行交互。

  而我们真正需要的是一个通用的开发框架,也就是说不管系统的那一端是什么东西,我们这一端都可以和它进行信息的交互。它的本质意义就是说两端的操作系统不仅可以是异构的(比如一端可以是Windows,另一端可以是UNIX),而且实现的语言也可以是异构的(一端可以用C++实现,另一端可以用VB实现)。

  如果大家还记得在DCOM进行交互时的数据列集(Marshal)这个概念的话,那么就可以理解基于Internet异构系统通讯的关键点是什么了。一个就是通讯的标准,两个进程需要采用标准的协议进行通讯,另外一个就是数据的打包,数据应该采用一致的形式进行打包和解包。当前基于Internet最流行的传输协议就是HTTP,所有的Web浏览器都通过这个协议和Web服务器进行通讯并得到相关的网页。而数据的打包也需要采用一定的标准,当前出现的跨平台的信息编码的标准就是XML。因为HTTP和XML都是工业的标准,并不和任何平台,厂商挂钩,所以基于这两种标准构建的系统无疑在任何环境是都是有生命力的。

  为了创建一个Web服务,我们所需要做的工作就是编写一个.Net服务对象,使它被异地进程的调用就象能够被本地的客户端直接调用一样。实际上是通过给它标记一定的属性来实现的,使它能够被Web客户端所使用。通过ASP.NET,这个.Net服务对象就能够接受来自客户端的请求(通过HTTP协议传输的)。也就是说.Net服务对象能够和任何使用HTTP和XML标准的进程进行通讯,你也不需要考虑Web通讯的体系结构,操作系统已经帮你搞定了这一切。

  从服务对象的角度来讲,一个客户和服务对象之间的通讯可以用下面的形式表示:

  1. 从客户端的HTTP请求到达,其中参数可能包含在URL中,也可能包含在一个单独的XML文件中
  
  2. ASP.NET根据.asmx文件的指定创建对象

  3. ASP.NET调用对象的某一个特定的方法

  4. 对象把结果返回给ASP.NET

  在客户端,.NET提供了Proxy类用来快速方便的和服务器提供的Web服务进行交互,通过开发工具得到Web服务的描述,然后就可以产生一个包含一些功能函数的Proxy类,注意,在这里我们可以使用任何类型的语言来开发客户端,当客户端调用其中的某一个函数的时候,Proxy就会产生一个HTTP请求并把它发送给服务器,当服务器响应返回的时候,Proxy能够对结果进行解析并返回给调用该函数的客户端。这样,就保证了客户端能够通过HTTP和XML无缝的和Web服务器进行信息的交互。

  从客户端的角度来讲,一个客户和服务对象之间的通讯可以用下面的形式表示:

  1. 在运行时刻,客户端产生一个Proxy对象

  2. 客户端调用Proxy中的一个方法

  3. Proxy把调用转换成HTTP和XML形式,并通过Internet发送到服务器端

  4. Proxy通过HTTP协议得到以XML形式表现的结果,并转化成相应的结果值返回给客户

上一页  1 2 3 4  下一页
【发表评论】【关闭窗口】