Version 3.0
Web 服务基础
第八章
2
回顾
? 数据绑定是将从数据库检索的数据链接到控
件的过程
? Repeater 控件是一个容器控件,它可用于显
示数据列表
? DataList 控件可以用于显示数据
3
目标
? 解释 Web 服务
? 使用 ASP.NET 创建 Web 服务
? 通过各种协议使用 Web 服务
? 为 Web 服务创建代理,理解 UDDI 的角色
4
Web现状
5
Web 服务的必要性
? 分布式系统之间的通讯
? 电子商务的数据交换
6
服务概念
服务
服务必须在注
册表上注册,
用户才能访问它
使用接口,可
以从其他任何
程序调用服务
7
Web服务的概念
? Web Service 就是一个应用程序,它向外界
暴露出一个能够通过 Web进行调用的 API
? 能够用编程的方法通过 Web来调用这个应用
程序
? 把调用这个 Web Service 的应用程序叫做客

8
具有 Web 服务的 Internet
站点、服务和设备协作
提供丰富的用户体验
Web 服务器
Web 服务器
Web 服务器
合成体
9
Web服务构成
10
Web服务目录
? Web Service 目录提供一个用以定位其他单
位提供的 Web Service 的中心位置
? Web Service 目录(如 UDDI 注册表)充当此
角色
? Web Service 客户端可能或可能不需要引用
Web Service 的目录
11
Web服务发现机制
? Web Service 发现是定位(或发现)使用
Web 服务描述语言 (WSDL) 对特定 Web
Service 进行描述的一个或多个相关文档的
过程
? DISCO 规范定义定位服务说明的算法
? 如果 Web Service 客户端知道服务说明的位
置,它们可以跳过发现过程
12
Web服务说明
? 若要了解如何与特定的 Web Service 进行交
互,需要提供定义该 Web Service 支持何种
交互操作的服务说明
? Web Service 客户端必须知道如何与 Web
Service 进行交互才可以使用该服务
13
Web服务联网形式
? 为实现通用的通讯,Web Service 使用开放
式连网形式进行通讯,该格式是任何能够支
持最通用的 Web 标准的系统都可以理解的
协议
? SOAP 是 XML Web Service 通讯的主要协议
14
与 Web 服务相关的活动
? 创建 Web 服务
? 定义 Web 服务的服务接口和调用方法
? 在 Intranet 或 Internet 上发布 Web 服务
? 查找 Web 服务以便使用它
? 调用 Web 服务以便使用它
? 不再需要时,取消对 Web 服务的发布
15
Web 服务特征
? 通过 Web 进行访问
? 使用其接口进行调用
? 在服务注册表中注册
? 使用标准 Web 协议通信
? 松散耦合
松散耦合的重要方面是 Web 服务只在必要时实时集成
16
Web 服务的优点
交叉业务集成
提高效率
拉近客户关系
便于实时集成
降低复杂性
旧式应用程序
17
Web 服务的缺点
? 公开单位的应用资产存在潜在的安全风险
? 必须支持 XML
? 部署 Web 服务技术的成本有点高
18
在 ASP.NET 中创建 Web 服务
以,aspx 扩展名保存文件
<%@ WebService Language="C#" class="TestWS" %>
using System.Web.Services;
class TestWS
{
[WebMethod]
public string SayHello(string name)
{
return "Hello" + name;
}
}
指定此 ASP 页是 Web 服务
编写 Web 服务所用的语言
包含 Web 方法的类
导入命名空间
表明是 Web 方法
命名空间
19
使用 Web 服务
HTTP-GET
20
使用 Web 服务 - HTTP-GET
21
使用 Web 服务 - HTTP-POST
<html><body>
<p>使用 POST 方法调用 Web 服务 </p>
<form name="form1" method="POST"
action="http://localhost/test1.asmx/SayHello">
<p> 请输入您的姓名:
<input type="text" name="name">
</p>
<p>
<input type="submit">
</p>
</form>
</body>
</html>
22
使用 Web 服务 – SOAP
? 轻型协议,用于分散的、分布式计算环境中
交换信息
? 有助于以独立于平台的方式访问对象、服务
和服务器
? 借助于 XML,提供了 HTTP 所需的扩展性
? 基于 HTTP/XML 的协议,能够使用特定值调
用方法
? 提供平台独立性
23
使用 Web 服务 – WSDL
? 关于 Web 服务的信息,如它包含的方法和
需要传递给这些方法的参数等,都是通过
WSDL 语言描述的
? 基于 XML
? 使用标记来定义服务的属性
24
使用 Web 服务 - 代理
WSDL http://localhost/test1.asmx /n:FirstWS
Web 服务代理
25
使用 Web 服务 - 调用代理
<script language="C#" runat=server>
public void Page_Load(Object Sender,
EventArgs e)
{
FirstWS.TestWS WSObj = new FirstWS.TestWS();
Text1.Text = WSObj.SayHello("Scooby");
}
</script>
<ASP:TextBox id=Text1 runat=server/>
26
UDDI 2-1
UDDI 用来查找以下信息:
? 关于业务伙伴提供的 Web 服务的信息
? 特定 Web 服务提供商的列表
? 关于公开特定 Web 服务的技术细节
? 提供特定 Web 服务的公司
? 用于注册各个服务提供商提供的服务,以便可以共享它们
? 有助于 Web 服务的客户或 Web 用户查找该 Web 服务
通用描述发现和集成
27
UDDI 2-2
UDDI API 架构
UDDI 服务
UDDI 规范
(业务注册)
28
总结
? 服务具有两个特征:接口和注册
? Web 服务可以使用 HTTP-GET 或 HTTP-POST
访问 Web 服务
? WSDL 是 Web 服务描述语言 (Web Services
Description Language) 的缩写
? 代理类不包含任何应用程序逻辑
? UDDI 用于注册各个服务提供商提供的服务,
以便可以共享它们