web 服务概述
如何创建和使用web服务
如何发布和查找WEB服务
如何理解web代理类
web服务实战

web服务:提供了一种软件组生产和流通的技术和标准。“软件就是服务”的真正实现。

服务请求者(用户)--查找--》服务代理者(电话号码簿)
服务请求者(用户)--绑定--》服务提供者(电信)
服务提供者(电信)--发布--》服务代理者(电话号码簿)

电话号码薄中注册的号码必须有一个统一的描述、查找和集成的定义。

web服务中的三种服务和操作
web服务请求者(应用程序)--查找--》web服务代理者(商业注册中心、专业注册中心、私有注册中心)
web服务提供者(软件开发商)--发布到--》web服务代理者
web服务请求者--绑定到--》web服务提供者

web服务的三基石
简单对象访问协议--SOAP,用于WEB服务的通信协议,是一种XML通信协议。包括三个部分:
SOAP封装结构:定义消息的XML格式,包括整体框架、消息内容、谁处理这些内容等。
SOAP编程规则:定义如何将程序数据表示为XML
SOAP RPC表示:定义如何使用SOAP进行远程过程调用
此外,SOAP规范还定义了包含SOAP消息的HTTP消息样式

WEB服务描述语言--WSDL
是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息
还定义了服务的位置以及如何使用服务的通信协议
可以提供更高层次的消息,如web服务的业务类型和关联关键字等

统一描述、发现和集成--UDDI
web服务的黄页
其核心组件是UDDI商业注册,它使用一个XML文档来描述web服务。包括三个部分:
白页:介绍提供服务的公司,包括名称、地址、联系方式
黄页:包括按照标准进行分类的行业类别
绿页:细则介绍、访问服务接口等技术信息

http://www.wsms.cn/ws/sms.asmx

几个UDDI中心:
uddi.microsoft.com
uddi.sap.com
uddi.ibm.com

代理类
可以引用远程的web服务,在用户的应用程序中使用其功能,就像返回的数据是本地产生的一样。
步骤:1.使用WSDL.EXE创建代理类 2.使用CSC编译生成的CS文件为DLL文件

代理类的作用示意图:
1.应用程序--调用--》代理类
2.代理类格式化应用程序的调用,使之能被web服务识别
3.代理类--调用--》web服务
4.web服务执行
5.web服务将执行的结果数据以XML形式发送给代理
6.代理类再格式化,提取数据,将XML数据格式化成各种数据形式
7.代理类将结果返回给应用程序

不使用VS.NET,使用web服务

1、  wsdl /out:myWebService.cs http://localhost/MyService/MathService.asmx

2、  csc /out:RegWebService.dll /t:library /r:System.xml.dll /r:System.Web.Services.dll myWebService.cs

3、  有了组件库,我们就可以编写调用WebService的客户端程序了。见CallWebService.cs。 
举例:(注意引用的类是在被编译成dll文件中声明的类)
using System;

class WebServiceTest
{
 static void Main()
 {
    //
   Service1 myService = new Service1();
   double db1 = double.Parse

(Console.ReadLine());
   double db2 = double.Parse

(Console.ReadLine());
   double dbResult = myService.WebAdd

(db1,db2);
   Console.WriteLine("结果

为:"+dbResult.ToString());
 }
}

4、  csc /r:myWebService.dll CallWebService.cs

运行CallWebService.exe