webservice系列教学(1)

web

关键字: SOAP  XML  XSD  WSDL
1.  什么是webservice
从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。
对Web service 更精确的解释: Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
不管你的Web service是用什么工具,什么语言写出来的,只要你用SOAP协议通过HTTP来调用它,总体结构都应如下图所示。通常,你用你自己喜欢的语言(如VB 6或者VB.NET)来构建你的Web service,然后用SOAP Toolkit或者.NET的内建支持来把它暴露给Web客户。于是,任何语言,任何平台上的客户都可以阅读其WSDL文档,以调用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。对VB 6程序来说,Web service请求处理器是一个与SOAP Toolkit组件协同工作的ASP页面或ISAPI extension。而对VB.NET程序来说,Web service请求处理器则是一个.NET Framework自带的ISAPI extension。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。

2.  基本概念
SOAP  
Web service建好以后,其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的远程过程调用( RPC)方法来调用Web service。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。客户端和服务端之间的方法调用请求和结果返回值都放在这些消息里。
       XMLXSD
可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的。XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。W3C制定的XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合Web service标准,所有使用的数据类型都必须被转换为XSD类型。
       WSDL(Web Services Description Language)
用于描述服务端所提供服务的XML格式。WSDL文件里,描述了服务端提供的服务,提供的调用方法,以及调用时所要遵循的格式,比如调用参数和返回值的格式等等。WSDL 很像COM编程里的IDL(Interface Description Language),是服务器与客户端之间的契约,双方必须按契约严格行事才能实现功能。
   WSML(Web Services Meta Language)
用于描述WSDL里提供的方法与实现该方法的COM对象之间的映射关系。该文件是Microsoft的实现中特有的,不是SOAP标准的一部分。一般情况下,该文件只在服务端存在。

时间: 2024-09-08 16:11:33

webservice系列教学(1)的相关文章

webservice系列教学(6)-如何调用webservice(C#,)

web 4. 5使用C#调用无需下载任何组件新建项目Visual C#项目windows应用程序.在解决方案资源管理器中添加web引用,输入wsdl文件所在地址.将web引用改名.yundan.(service_name)即可引用*需引用System.web.services*例程:using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windo

webservice系列教学(17)-例程用到的wsdl文件等

web <Service1.asmx><%@ WebService Language="vb" Codebehind="Service1.asmx.vb" Class="yundan.Service1" %><Service1.asmx.vb>Imports System.Web.Services<WebService(Namespace := "http://tempuri.org/"

webservice系列教学(5)-如何调用webservice(Jscript,vbscript)

js|jscript|vbscript|web 4. 3 在asp中使用Jscript调用需下载msSoapToolkit20.exe引用:MSSOAP.SoapClient    例程:    <%@ LANGUAGE = JScript %><HTML><HEAD><TITLE>webservice演示</TITLE></HEAD><BODY>    <%         var WSDL_URL = "

webservice系列教学(3)-如何调用webservice

web 4.如何调用webservice4.0 webservice的调用过程    客户端:取得服务端的服务描述文件WSDL,解析该文件的内容,了解服务端的服务信息,以及调用方式.根据需要,生成恰当的SOAP请求消息(指定调用的方法,已经调用的参数),发往服务端.等待服务端返回的SOAP回应消息,解析得到返回值. 服务端:生成服务描述文件,以供客户端获取.接收客户端发来的SOAP请求消息,解析其中的方法调用和参数格式.根据WSDL和WSML的描述,调用相应的COM对象来完成指定功能,并把返回值

webservice系列教学(2)

web 3.Webservice的技术特点长项一: 跨防火墙的通信 如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题.因为客户端和服务器之间通常会有防火墙或者代理服务器.在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中.传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户.这样做的结果是开发难度大,程序很难维护. 举个例子,在应用程序里加入一个新页面,必须先

webservice系列教学(8)-如何调用webservice(vb.net)

web 4.7使用vb.net调用无需下载任何组件新建项目Visual Basic项目windows应用程序.在解决方案资源管理器中添加web引用,输入wsdl文件所在地址.将web引用改名为yundan.yundan.(service_name)即可引用*需引用System.web.services*例程:    Public Class Form1        Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码

webservice系列教学(7)-如何调用webservice(javascript)

需下载msSoapToolkit20.exe引用:MSSOAP.SoapClient    例程:var WSDL_URL = "http://192.168.0.4/yundan/service1.wsdl"WScript.echo("Connecting: " + WSDL_URL)var Calc = WScript.CreateObject("MSSOAP.SoapClient")Calc.mssoapinit(WSDL_URL, &qu

webservice系列教学(9)-如何调用webservice(vb6.0,vbscript)

vbscript|web 4.8使用vb6.0调用需下载msSoapToolkit20.exe添加引用:Microsoft Soap Type Library 位置:"C:\Program Files\Common Files\MSSoap\Binaries\ MSSOAP1.dll"    调用方法:    Dim cc As New MSSOAPLib.SoapClient    例程:    新建工程标准EXE添加3个textbox控件,text1,text2,text3添

webservice系列教学(15)-如何调用webservice(vc6)

web ////////////////////////////////////////////////////////////////////////////////////////////////////  function: CMClientDlg::AddtoTree()////  parameters: (HTREEITEM hParent, HTREEITEM hInsertAfter, LPTSTR pszData, UINT mask, IUnknown //