42
XML Web Service 开开 开1开 XML Web Service 开2开 XML Web Service 开开开 开3开 XML Web Service 开开开开 开4开 开开 XML Web Service 开5开 开开 开开开开 XML Web Service 6 开开开开开 XML Web Service 开7开 XML Web Service 开开开 开8开 XML Web Service 开开 开9开 开开 XML Web Service 开开开

XML Web Service 开发

  • Upload
    kenna

  • View
    255

  • Download
    11

Embed Size (px)

DESCRIPTION

XML Web Service 开发. 第 1 章 XML Web Service 第 2 章 XML Web Service 体系结构 第 3 章 XML Web Service 基础技术 第 4 章 使用 XML Web Service 第 5 章 实现一个简单的 XML Web Service 第 6 章 部署和发布 XML Web Service 第 7 章 XML Web Service 的安全 第 8 章 XML Web Service 设计 - PowerPoint PPT Presentation

Citation preview

Page 1: XML Web Service  开发

XML Web Service 开发第 1 章 XML Web Service 第 2 章 XML Web Service 体系结构第 3 章 XML Web Service 基础技术第 4 章 使用 XML Web Service 第 5 章 实现一个简单的 XML Web Service 第 6 章 部署和发布 XML Web Service 第 7 章 XML Web Service 的安全第 8 章 XML Web Service 设计第 9 章 全局 XML Web Service 体系结构

Page 2: XML Web Service  开发

第 6 章 部署和发布 XML Web Service

部署 Web 服务UDDI 概述发布一个 Web 服务使用 UDDI

Page 3: XML Web Service  开发

部署 Web 服务部署 Web 服务所需要的文件手动部署 Web 服务使用 Windows 安装程序文件来部署 Web 服务演示 创建一个 Web 安装项目

6.1 部署 Web 服务

Page 4: XML Web Service  开发

Web 服务文件 必须的 删除的.sln, .vbproj, .csproj, .vsdisco, .webinfo.resx.vb, .cs.xsd\Web 引用文件夹和文件\bin 目录和 .dll(s).asmxWeb.configGlobal.asax.xml

部署 Web 服务需要的文件6.1.1 部署 Web 服务所需要的文件

Page 5: XML Web Service  开发

Web 服务项目中的文件需要删除的

.sln, .vsdisco, .vbproj, .vbproj.webinfo, .csproj 等文件都是 Visual Studio .NET 使用的,生产环境不需要

资源文件 .resx 、 code - behind 文件 .cs,.vb 、结构化数据集文件 .xsd 以及 Web 引用文件夹中的文件都会被编译到程序集的 .dll 文件中,因此在生产环境中不再需要必须的

\bin 文件夹中保存程序集 .dll

.aspx,.ascx,.asmx 是和用户的接口文件 配置文件,包括 web.config 和 global.asax

其他辅助文件

6.1.1 部署 Web 服务所需要的文件

Page 6: XML Web Service  开发

手动部署 Web 服务手动部署 Web 服务的使用场合

在开发使用的服务器上部署 Web 服务 在 Web 服务最终部署前的测试 Web 服务相对比较简单

手动部署 Web 服务可以使用的方法 xcopy 命令, Windows 资源管理器或者 FTP

Visual Studio .NET 复制项目命令IIS 的配置不能通过复制部署到目标服务器上

6.1.2 手动部署 Web 服务

Page 7: XML Web Service  开发

手动部署 Web 服务的优缺点优点

易于部署,复制的操作很简单 易于升级,只需要把新文件覆盖旧文件即可

缺点 必须人为判断哪些文件必不可少,如果在复制时遗漏文件可能使 Web 服务不能正常工作 部署 Web 服务后必须手工修改目标服务器的

IIS 配置

6.1.2 手动部署 Web 服务

Page 8: XML Web Service  开发

手工复制后的配置当把 Web 服务的相关文件复制到目标服务器后,必须在 IIS 中配置其为 Web 应用程序

6.1.2 手动部署 Web 服务

Page 9: XML Web Service  开发

Visual Studio .NET 复制项目的用户界面6.1.2 手动部署 Web 服务

Page 10: XML Web Service  开发

使用 Windows Installer 文件部署 Web 服务Windows Installer 文件可以简化具有下列特性的 Web 服务的部署过程

共享组件 传统的 COM 组件 IIS 配置 Web 应用程序的资源,例如消息队列、事件日志和性能计数器

Visual Studio .NET Web 安装项目可以创建部署 Web 服务使用的 Windows Installer 文件

6.1.3 使用 Windows 安装程序文件来部署 Web 服务

Page 11: XML Web Service  开发

Web 安装项目的创建过程首先创建一个空的解决方案,然后把已有的 Web 服务项目和一个新的 Web 安装项目添加到这个解决方案中配置 Web 安装项目,包括虚拟文件夹名字、访问控制、索引和记录日志等编译并生成安装项目

6.1.3 使用 Windows 安装程序文件来部署 Web 服务

Page 12: XML Web Service  开发

演示 创建 Web 安装项目创建新的解决方案并添加项目配置 Web 安装项目生成 Web 安装项目复制和测试 Web 服务的部署显示部署的文件删除 Web 服务

6.1.4 演示 创建一个 Web 安装项目

Page 13: XML Web Service  开发

第 6 章 部署和发布 XML Web Service

部署 Web 服务UDDI 概述发布 Web 服务使用 UDDI

Page 14: XML Web Service  开发

UDDI

Web 服务提供商Web 服务消费者

发布 查找

绑定

Internet

UDDI 概述UDDI 使用 UDDI 的原因在 Intranet 上发布 Web 服务使用 UDDI 的概述UDDI 数据结构安装 UDDI SDK设置对 UDDI DLL 的引用

6.2 UDDI 概述

Page 15: XML Web Service  开发

UDDI 的定义规范的集合

UDDI 是与 Web 服务相关的分布式信息注册表的规范集合,主要包括- UDDI Programmer’s API 规范- UDDI 数据结构规范

UDDI 注册表 是这些规范的实现

6.2.1 UDDI

Page 16: XML Web Service  开发

使用 UDDI 的原因使用 UDDI 的优点

列出了实现应用程序集成时业务伙伴之间必须遵守的服务约定 使企业提供的 Web 服务可以在全世界范围内被潜在用户和市场发现并访问 使多个企业之间的业务集成更方便且易于修改

UDDI 提供的信息 特定企业提供的 Web 服务信息 特定 Web 服务的端点位置 特定 Web 服务端点当前的绑定信息,例如所支持的协议

6.2.2 使用 UDDI 的原因

Page 17: XML Web Service  开发

在企业内部网中发布 Web 服务自定义发布 / 发现的两种常用解决方案

在 Windows Server 2003 中实现 UDDI 服务•优点:实现 UDDI 规范的 UDDI 注册表采用统一的应用程序接口、 UDDI 查询和发布接口,维护简单•缺点:实现完整的 UDDI 规范比较困难

直接在 Web 服务客户端硬编码端点位置•优点:非常简单,可以快速实现•缺点:一旦 Web 服务的位置发生变化必须重新编译源代码

6.2.3 在 Intranet 上发布 Web 服务

Page 18: XML Web Service  开发

使用 UDDI 的概述

2

15

Web 服务开发商生成并发布 Pricing Web 服务1

Web 服务开发商注册并分类 Web 服务2

Web 服务消费者在 UDDI 中查询 Pricing 服务3

Web 服务消费者选择最合适的 Pricing 服务4

Web 服务开发者创建解决方案访问 Web 服务的数据5

Pricing Web 服务UDDI 注册表 3

4

6.2.4 使用 UDDI 的概述

Page 19: XML Web Service  开发

使用 Web 服务的完整过程

在企业内部网、外部网或互联网中搜索 UDDI 注册表发现所需的服务1

使用 UDDI 注册表提供的信息获得 WSDL 服务描述文档2

根据 WSDL 文档创建基于 SOAP 消息的代理类3

从 Web 服务客户端调用 Web 服务方法4

6.2.4 使用 UDDI 的 概述

Page 20: XML Web Service  开发

UDDI 数据结构

tModel: 服务的规范描述

Binding: 服务入口点的技术信息

Service: 特定服务的描述信息服务的名字、描述和分类

Business: 提供服务实体的信息提供商的名字、联系方法、描述以及业务领域

服务的访问入口

指向 WSDL 文档

6.2.5 UDDI 数据结构

Page 21: XML Web Service  开发

UDDI 常用类BusinessEntity

描述在 UDDI 注册表中注册过服务的提供商BusinessService

描述具体的 Web 服务BindingTemplate

绑定特定 Web 服务所需的技术信息AccessPoint

描述 Web 服务的入口点TModelInstanceInfo

描述和 UDDI 规范相关的信息TModel

6.2.5 UDDI 数据结构

Page 22: XML Web Service  开发

安装 UDDI SDK

微软的 UDDI 软件开发工具包 (SDK) 支持客户端以编程的方法与实现符合 UDDI 规范的 UDDI 注册表服务器进行交互操作, UDDI 注册表服务器可以工作在下述环境中 在内部网中,仅供企业内部使用 在外部网中,开放给合作伙伴使用 在 Internet 中,供公众使用

安装 UDDI SDK 2.0 没有单独安装选择,是 Core SDK 的组成部分,需要大约 500M 空间

6.2.6 安装 UDDI SDK

Page 23: XML Web Service  开发

UDDI SDK 的命名空间

命名空间 描述Microsoft.UDDI 包含 UDDI SOAP API 相关的类Microsoft.UDDI.Businesses

包含 businessEntity 类、结构以及提供商Assertion 类

Microsoft.UDDI.Extensions

包含相关分类功能的类和枚举以及活动目录服务相关的类和枚举Microsoft.UDDI.Services

包含 businessService 类以及相关bindingTemplate 类和结构

Microsoft.UDDI.TModels

包含 tModels 类以及相关 bindingTemplate 类

6.2.6 安装 UDDI SDK

Page 24: XML Web Service  开发

设置引用 UDDI DLL

设置对 Microsoft.Uddi.dll 文件的引用在编码中包含 UDDI 的命名空间

using Microsoft.Uddi;using Microsoft.Uddi.Businesses;using Microsoft.Uddi.Extensions;using Microsoft.Uddi.Services;using Microsoft.Uddi.TModels;

例子

6.2.7 设置对 UDDI DLL 的引用

Page 25: XML Web Service  开发

第 6 章 部署和发布 XML Web Service

部署 Web 服务UDDI 概述发布 一个 Web 服务使用 UDDI

Page 26: XML Web Service  开发

发布 Web 服务配置一个 Web 服务在 Windows Server 2003 UDDI 服务中发布 Web 服务用 UDDI 发布向导发布 Web 服务以编程的方式发布一个 Web 服务

6.3 发布一个 Web 服务

Page 27: XML Web Service  开发

配置 Web 服务配置服务发现

禁用动态发现提高安全性创建自定义的发现文件

权限和安全策略 配置程序集的安全性

配置程序集设置程序集的版本控制

Web 服务本地化 配置调用不同的资源文件

6.3.1 配置一个 Web 服务

Page 28: XML Web Service  开发

使用 Windows Server 2003 UDDI 服务发布 Web 服务6.3.2 在 Windows Server 2003 UDDI 服务中发布 Web 服务

Page 29: XML Web Service  开发

使用 UDDI 发布向导的准备工作UDDI 注册表服务器的 URL拥有在 UDDI 注册表服务器上执行发布的权限准备发布 Web 服务的名称和描述Web 服务提供商的名字Web 服务访问入口的 URLWeb 服务 WSDL 文件的 URL

6.3.3 用 UDDI 发布向导发布 Web 服务

Page 30: XML Web Service  开发

使用 UDDI 发布向导发布 Web 服务6.3.3 用 UDDI 发布向导发布 Web 服务

Page 31: XML Web Service  开发

UDDI 发布向导的页面身份验证类型( Authentication Type )UDDI 站点( UDDI Site )Web 服务提供商( Web Service Provider )Web 服务详细信息( Web Service Details )WSDL 接口定义( WSDL Interface Definition )总结( Summary )

6.3.3 用 UDDI 发布向导发布 Web 服务

Page 32: XML Web Service  开发

编程发布 Web 服务步骤

连接 UDDI 注册中心1

使用 SaveService 类添加 Web 服务4

使用 SaveBusiness 类添加业务提供商3

使用 SaveTModel 类添加模型2

6.3.4 以编程的方式发布一个 Web 服务

Page 33: XML Web Service  开发

第 6 章 部署和发布 XML Web Service

部署 Web 服务UDDI 概述发布 Web 服务使用 UDDI

Page 34: XML Web Service  开发

使用 UDDI

查找一个 UDDI 注册中心连接到 UDDI 注册中心查找 Web 服务

6.4 使用 UDDI

Page 35: XML Web Service  开发

查找 UDDI 注册中心使用 Active Directory 在企业内部网络查找 UDDI 注册表服务器的访问入口

调用静态对象 UddiSiteDiscovery 的 Find 方法获得 UddiSiteLocation 对象的数组,其中包含的元素就是企业内部网络中所有可用的 UDDI 注册表服务器

数组中每个 UddiSiteLocation 对象除了包含入口点信息外还提供服务器的身份验证模式和站点的描述信息等

6.4.1 查找一个 UDDI 注册中心

Page 36: XML Web Service  开发

查找 UDDI 注册中心UddiConnection myConn;FindBusiness fb;BusinessList bizList;

UddiSiteLocation[] uSiteArray = UddiSiteDiscovery.Find();

foreach( UddiSiteLocation uddiSite in uSiteArray){

myConn = new UddiConnection(uddiSite.InquireUrl);fb = new FindBusiness("Contoso");bizList = fb.Send(myConn);Console.WriteLine("Found {0} businesses at {1}",

bizList.BusinessInfos.Count.ToString(),uddiSite.Description);

}

6.4.1 查找一个 UDDI 注册中心

Page 37: XML Web Service  开发

连接到 UDDI 注册中心UddiConnection 对象支持两种身份验证的方法集成的 Windows 身份验证

使用当前执行操作的用户凭据连接服务器 UDDI 服务使用的缺省身份验证方法 只能在企业内部网络中使用

UDDI 身份验证 要求在执行任何发布操作前必须预先设置用户名和密码等凭据信息

6.4.2 连接到 UDDI 注册中心

Page 38: XML Web Service  开发

UDDI 身份验证的代码示例

UddiConnection myConn = new UddiConnection("http://test.uddi.microsoft.com/inquire","https://test.uddi.microsoft.com/publish","http://test.uddi.microsoft.com/extension.asmx");

string szUsername = null;string szPassword = null;

myConn.AuthenticationMode = AuthenticationMode.UddiAuthentication;

myConn.Username = szUsername;myConn.Password = szPassword;

6.4.2 连接到 UDDI 注册中心

Page 39: XML Web Service  开发

查找 Web 服务定位服务提供商

调用 FindBusiness 类的 Send 方法,返回值是 BusinessList 对象

FindBusiness fb = new FindBusiness("Contoso");BusinessList bizList = fb.Send(myConn);

6.4.3 查找 Web 服务

Page 40: XML Web Service  开发

查找 Web 服务定位服务

使用遍历的方法

使用查找的方法

foreach (BusinessInfo bizInfo in bizList.BusinessInfos){

foreach (ServiceInfo myServ in bizInfo.ServiceInfos){

//Service name is myServ.Names[0].Text//Service key is myServ.ServiceKey

}}

FindService fs = new FindService("Bank");ServiceList sl = fs.Send(myConn);

6.4.3 查找 Web 服务

Page 41: XML Web Service  开发

查找 Web 服务获得 Web 服务的绑定信息

foreach(ServiceInfo si in sl.ServiceInfos ){

GetServiceDetail gsd = new GetServiceDetail(si.ServiceKey);ServiceDetail sd = gsd.Send( myConn );foreach (BusinessService bizServ in sd.BusinessServices){

foreach (BindingTemplate bindTemp in bizServ.BindingTemplates)

{strURL = bindTemp.AccessPoint.Text;

}}

}

6.4.3 查找 Web 服务

Page 42: XML Web Service  开发

回顾

学习完本章后,将能够:部署 Web 服务掌握 UDDI 在实现 Web 服务中的作用掌握在企业内部网部署 Web 服务的多种方法掌握修改 Web 服务缺省配置的方法使用 UDDI SDK 把 Web 服务发布到 UDDI 注册表中使用 UDDI SDK 搜索 UDDI 注册表定位 Web 服务