con223 uddi: 服务的发现和搜索

38
CON223 CON223 UDDI: UDDI: 服服服服服服服服 服服服服服服服服

Upload: valentine-newman

Post on 03-Jan-2016

75 views

Category:

Documents


3 download

DESCRIPTION

CON223 UDDI: 服务的发现和搜索. 课程内容概述. 在这个讲座里,我们会介绍 UDDI 的基本的数据模型和它的主要功能.我们会演示如何发布 web service 的信息到微软的 UDDI 服务器上和如何在不同的应用环境下依靠 UDDI 找到合适的 web service .另外你也可以了解到微软下一个版本的 UDDI 产品中可能加入的一些新的功能 . 本讲座主要合适于企业的软件开发人员 , 架构设计人员 , 企业 CIO, 以及从事 IT 架构咨询的专业人员. 课程内容安排. SOA 和 Web 服务管理的挑战 UDDI 简介 核心的数据模型 分类的应用 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CON223 UDDI: 服务的发现和搜索

CON223CON223UDDI:UDDI: 服务的发现和搜索服务的发现和搜索

Page 2: CON223 UDDI: 服务的发现和搜索

课程内容概述课程内容概述

在这个讲座里,我们会介绍在这个讲座里,我们会介绍 UDDIUDDI的基本的数据的基本的数据模型和它的主要功能.我们会演示如何发布模型和它的主要功能.我们会演示如何发布 web web serviceservice的信息到微软的的信息到微软的 UDDIUDDI服务器上和如何在服务器上和如何在不同的应用环境下依靠不同的应用环境下依靠 UDDIUDDI找到合适的找到合适的 web web serviceservice.另外你也可以了解到微软下一个版本的.另外你也可以了解到微软下一个版本的UDDIUDDI产品中可能加入的一些新的功能产品中可能加入的一些新的功能 ..

本讲座主要合适于企业的软件开发人员本讲座主要合适于企业的软件开发人员 ,, 架构设计架构设计人员人员 , , 企业企业 CIO,CIO,以及从事以及从事 ITIT架构咨询的专业人架构咨询的专业人员员 ..

Page 3: CON223 UDDI: 服务的发现和搜索

课程内容安排课程内容安排

SOASOA 和和 WebWeb服务管理的挑战服务管理的挑战UDDIUDDI简介简介核心的数据模型核心的数据模型分类的应用分类的应用

微软微软 UDDI ServicesUDDI Services产品简介产品简介UDDI ServicesUDDI Services的典型应用的典型应用下一个微软下一个微软 UDDIUDDI版本版本

Page 4: CON223 UDDI: 服务的发现和搜索

SOASOA 和服务管理的挑战和服务管理的挑战

Page 5: CON223 UDDI: 服务的发现和搜索

SOASOA 和和 Web ServicesWeb Services

面向服务的架构面向服务的架构 (SOA)(SOA)应用的业务逻辑通过多个相对独立和非紧密耦合的服务应用的业务逻辑通过多个相对独立和非紧密耦合的服务实现实现加快服务的更新和部署周期加快服务的更新和部署周期 ,, 从而提高敏捷性从而提高敏捷性提高服务的重用性提高服务的重用性跨平台跨平台

Web Services:Web Services:完整的自定义接口描述的基于完整的自定义接口描述的基于XMLXML数据格式的应用服务数据格式的应用服务 .. 这些服务可以通过互这些服务可以通过互联网或者内部网被发布联网或者内部网被发布 ,, 发现发现 ,, 和使用和使用服务的应用不依赖于操作系统或者编程语言服务的应用不依赖于操作系统或者编程语言一系列的一系列的Web ServicesWeb Services 的标准的标准

Page 6: CON223 UDDI: 服务的发现和搜索

服务数量快速增长带来的挑战服务数量快速增长带来的挑战

面向服务的架构会使面向服务的架构会使Web ServicesWeb Services数目快速增数目快速增长长由此带来的问题由此带来的问题服务如何被发现服务如何被发现 ??

作为作为 ITIT管理员管理员 ,, 我如何有效的管理所有服务我如何有效的管理所有服务 ??

我怎么知道现在企业里有没有服务已经实现了我想要的我怎么知道现在企业里有没有服务已经实现了我想要的功能功能 ??

UDDIUDDI是解决方案是解决方案一句话概括一句话概括 :UDDI:UDDI是服务的注册表是服务的注册表

Page 7: CON223 UDDI: 服务的发现和搜索

微软基于服务的开发平台微软基于服务的开发平台

网络

应用 3

BizTalk适配器

Assurances

Messaging

SOAP

WS-Security

MTOMWS-Addressing

Metadata

WS-Policy

WSDL

UDDI

XML Schema

WS-ReliableMessaging

WS-Coordination

WS-AtomicTransaction

WS-BusinessActivity

WS-Trust

WS-SecureConversation

Infrastructureand Profiles

WS-ManagementWS-FederationDevicesProfile

Foundation

SOAP / HTTPMIME

XML Infoset

XML 1.0XML

Namespaces

WS-* 系列协议

应用2

WSE

应用 4

其他协议栈

应用 1

WCF(Indigo)

UDDIServerUDDIServer

WS-MetadataExchange

Page 8: CON223 UDDI: 服务的发现和搜索

UDDIUDDI 和微软和微软 UDDI UDDI ServicesServices 产品简介产品简介

Page 9: CON223 UDDI: 服务的发现和搜索

UDDI (UDDI ( 通用的描述通用的描述 ,, 发现和集成发现和集成 ))

UDDIUDDI是一个标准是一个标准 (OASIS)(OASIS)

主要主要 ITIT行业巨头的支持行业巨头的支持 (Microsoft,IBM, SAP, (Microsoft,IBM, SAP, Oracle,…)Oracle,…)

非常灵活的数据模型非常灵活的数据模型丰富的搜索功能丰富的搜索功能标准的标准的 SOAPSOAP接口接口

Page 10: CON223 UDDI: 服务的发现和搜索

UDDI UDDI 核心数据模型核心数据模型

Provider: Provider: 服务提供者的信息服务提供者的信息

0…n

Service(Service( 服务服务 ): ): 服务的描述服务的描述

0…n

Binding(Binding( 绑定绑定 ): ): 服务端点的信息服务端点的信息

tModel(tModel( 技术模型技术模型 ):): 服务提供的接口服务提供的接口的定义的定义

0…n

Page 11: CON223 UDDI: 服务的发现和搜索

UDDI UDDI 核心数据模型核心数据模型

Provider: Provider: 服务提供者的信息服务提供者的信息

0…n

Service(Service( 服务服务 ): ): 服务的描述服务的描述

0…n

Binding(Binding( 绑定绑定 ): ): 服务端点的信息服务端点的信息

tModel(tModel( 技术模型技术模型 ):): 服务提供的接口服务提供的接口的描述的描述

0…n

服务部署部门的名字 , 描述和分类 .

服务部署部门的名字 , 描述和分类 .

服务的名字 , 描述和分类服务的名字 , 描述和分类

访问地址和分类访问地址和分类

指向 WSDL 的 URL指向 WSDL 的 URL

Page 12: CON223 UDDI: 服务的发现和搜索

分类在分类在 UDDIUDDI 中的应用中的应用

为什么要分类为什么要分类 ??有效的搜索和快速准确地发现服务有效的搜索和快速准确地发现服务““我要找到部署在我要找到部署在中国中国的的 ,, 日用消费品 ,, 库存跟踪库存跟踪的服务的服务””

分类提供了一个非常重要的描述手段分类提供了一个非常重要的描述手段分类的例子分类的例子 ::地理位置地理位置 . . 比如比如 :: 服务器所在的城市服务器所在的城市服务提供者所属部门服务提供者所属部门服务的部署环境服务的部署环境访问权限访问权限

Page 13: CON223 UDDI: 服务的发现和搜索

微软微软 UDDI Services UDDI Services 架构架构

业务逻辑用业务逻辑用 .NET.NET 实现 实现

IISIIS 服务器服务器 (Internet Information Services)(Internet Information Services)

SQL ServerSQL Server 20002000 MSDEMSDE或或

ASP.NETASP.NET用户界面用户界面

XML SOAP XML SOAP APIAPI

HTTP HTTP or or

HTTPSHTTPS

活动

目录

活动

目录

(Act

ive

Dir

ecto

ry)

(Act

ive

Dir

ecto

ry)

用户

认证

户认

证 &

&

授权

授权

管理

和监

控管

理和

监控

Page 14: CON223 UDDI: 服务的发现和搜索

微软微软 UDDI ServicesUDDI Services 组成组成

““UDDIUDDI站点站点””数据库数据库 (SQL Server 2000 (SQL Server 2000 或或 MSDE)MSDE)

WebWeb用户界面(发布服务,搜索服务,管理功能的网页)用户界面(发布服务,搜索服务,管理功能的网页)UDDI v1.0 & v2.0 SOAPUDDI v1.0 & v2.0 SOAP 接口接口微软附加的微软附加的 SOAPSOAP 接口接口

UDDIUDDI站点管理控制台站点管理控制台本地和远程站点管理本地和远程站点管理标准的微软管理控制台界面标准的微软管理控制台界面

Page 15: CON223 UDDI: 服务的发现和搜索

微软微软 UDDI ServicesUDDI Services 组成组成

UDDI SDKUDDI SDK包括在包括在Windows 2003 Windows 2003 服务器 服务器 Platform SDKPlatform SDK

.NET 1.1.NET 1.1

管理员工具管理员工具包括在包括在Windows 2003 Windows 2003 服务器 服务器 Resource KitResource Kit

类类 (categorization)(categorization) 编辑器编辑器数据导出工具数据导出工具UDDI ServicesUDDI Services组件配置工具组件配置工具

Visual Studio .NET Visual Studio .NET 整合整合加加 web referenceweb reference

Page 16: CON223 UDDI: 服务的发现和搜索

UDDI ServicesUDDI Services 的典型应的典型应用用

Page 17: CON223 UDDI: 服务的发现和搜索

发布服务到发布服务到 UDDI ServicesUDDI Services

什么时候要发布服务?什么时候要发布服务?贯穿于服务整个生命周期:部署,更新,退休贯穿于服务整个生命周期:部署,更新,退休

发布服务的方式:浏览器界面和发布服务的方式:浏览器界面和 SOAP APISOAP API通过浏览器界面手动发布通过浏览器界面手动发布适用于简单的服务发布和少数量的服务适用于简单的服务发布和少数量的服务手动过程,容易出错手动过程,容易出错

通过编程用通过编程用 SOAP APISOAP API 发布发布可以很方便地用提供的可以很方便地用提供的 SDKSDK 实现实现信息准确信息准确减少重复劳动减少重复劳动

Page 18: CON223 UDDI: 服务的发现和搜索

手动发布服务手动发布服务

Page 19: CON223 UDDI: 服务的发现和搜索

SOAP APISOAP API 消息集消息集

典型的请求典型的请求 // 回答消息回答消息对每个核心的数据结构对每个核心的数据结构 (( 服务提供者,服务,绑定服务提供者,服务,绑定,技术模型),技术模型)

Finds – find_service, find_businessFinds – find_service, find_businessGets – get_serviceDetail, get_businessDetailGets – get_serviceDetail, get_businessDetailSaves – save_service, save_businessSaves – save_service, save_businessDeletes – delete_service, delete_businessDeletes – delete_service, delete_business

Page 20: CON223 UDDI: 服务的发现和搜索

SOAP APISOAP API 消息集消息集例子例子

<find_business generic="2.0" maxRows="1000" xmlns="urn:uddi-org:api_v2"> <name>Microsoft</name></find_business>

<find_business generic="2.0" maxRows="1000" xmlns="urn:uddi-org:api_v2"> <name>Microsoft</name></find_business>

<businessList generic="2.0" truncated="false" xmlns="urn:uddi-org:api_v2"> <businessInfos> <businessInfo businessKey="0076b468-eb27-42e5-ac09-9955cff462a3"> <name xml:lang="en">Microsoft Corporation</name> <description xml:lang="en">Empowering people through great software</description> <serviceInfos> <serviceInfo serviceKey="bd9b1a10-4668-42e9-ac69-d3da905c314d"> <name xml:lang="en">Electronic Business Integration Services</name> </serviceInfo> </serviceInfos> </businessInfo> <businessInfo businessKey="5529b081-5510-4c28-9629-c42c50f75be4"> <name xml:lang="en">Microsoft DRMS Production</name> <serviceInfos> <serviceInfo serviceKey="60ad773a-aef6-44cf-a5c9-78b88493c52e"> <name xml:lang="en">Machine Activation</name> </serviceInfo> <serviceInfo serviceKey="75bc89b9-8766-4603-82da-0a4ab4afd71a"> <name xml:lang="en">Server Enrollment</name> </serviceInfo> </serviceInfos> </businessInfo> </businessInfos></businessList>

<businessList generic="2.0" truncated="false" xmlns="urn:uddi-org:api_v2"> <businessInfos> <businessInfo businessKey="0076b468-eb27-42e5-ac09-9955cff462a3"> <name xml:lang="en">Microsoft Corporation</name> <description xml:lang="en">Empowering people through great software</description> <serviceInfos> <serviceInfo serviceKey="bd9b1a10-4668-42e9-ac69-d3da905c314d"> <name xml:lang="en">Electronic Business Integration Services</name> </serviceInfo> </serviceInfos> </businessInfo> <businessInfo businessKey="5529b081-5510-4c28-9629-c42c50f75be4"> <name xml:lang="en">Microsoft DRMS Production</name> <serviceInfos> <serviceInfo serviceKey="60ad773a-aef6-44cf-a5c9-78b88493c52e"> <name xml:lang="en">Machine Activation</name> </serviceInfo> <serviceInfo serviceKey="75bc89b9-8766-4603-82da-0a4ab4afd71a"> <name xml:lang="en">Server Enrollment</name> </serviceInfo> </serviceInfos> </businessInfo> </businessInfos></businessList>

Page 21: CON223 UDDI: 服务的发现和搜索

用程序发布服务的步骤用程序发布服务的步骤

指定指定 UDDIUDDI服务器或者从活动目录找到服务器或者从活动目录找到建立一个与建立一个与 UDDIUDDI服务器的连接服务器的连接

WindowsWindows 集成认证或者集成认证或者 UDDIUDDI 认证认证发布服务接口的技术模型发布服务接口的技术模型生成基本的服务数据结构生成基本的服务数据结构如果还没有相应的服务提供者,建完整的服务提供者如果还没有相应的服务提供者,建完整的服务提供者

把生成的数据结构放到把生成的数据结构放到 SaveBusinessSaveBusiness或者或者SaveServiceSaveService 请求发给请求发给 UDDIUDDI服务器服务器确认服务器端的返回确认服务器端的返回

Page 22: CON223 UDDI: 服务的发现和搜索

用程序发布服务用程序发布服务

Page 23: CON223 UDDI: 服务的发现和搜索

搜索和发现服务搜索和发现服务

为什么用为什么用 UDDIUDDI搜索和发现服务搜索和发现服务所有服务的信息都在一个地方所有服务的信息都在一个地方便于找到最合适的服务便于找到最合适的服务利于最大限度的重用服务利于最大限度的重用服务有效的信息共享途径有效的信息共享途径

什么时候需要搜索和发现服务什么时候需要搜索和发现服务程序设计的时候程序设计的时候配置程序的时候配置程序的时候运行时动态发现服务,程序逻辑的一部分运行时动态发现服务,程序逻辑的一部分

Page 24: CON223 UDDI: 服务的发现和搜索

程序设计阶段程序设计阶段

UDDI UDDI ServicesServices2.2. .NET.NET开发人员发布定价服务开发人员发布定价服务

到到 UDDIUDDI 服务器并加以分类服务器并加以分类

1.1. .NET.NET开发人员用开发并部署开发人员用开发并部署了一个定价的了一个定价的 webweb服务.服务.

定价定价web web

serviceservice

5.5. Office VBAOffice VBA 用户绑定这个定价服用户绑定这个定价服务完成整个解决方案务完成整个解决方案

3.3. Office VBA Office VBA 用户到用户到 UDDIUDDI 服务服务器上搜索“定价”服务器上搜索“定价”服务

4.4. Office VBAOffice VBA 用户确定了对他最合用户确定了对他最合适的“定价”服务适的“定价”服务

Page 25: CON223 UDDI: 服务的发现和搜索

在在 Visual Studio .NETVisual Studio .NET 中的中的 UDDIUDDI集成 集成

Page 26: CON223 UDDI: 服务的发现和搜索

程序运行时动态搜索和发现服务程序运行时动态搜索和发现服务

弥补静态发现和绑定服务的不足弥补静态发现和绑定服务的不足如果如果””定价定价””服务发生变动程序将不能工作服务发生变动程序将不能工作

动态改变服务访问地址动态改变服务访问地址可以动态地发现和绑定到当时最可以动态地发现和绑定到当时最””合理合理””的那个服的那个服务务地理位置最近的服务地理位置最近的服务服务质量最好的服务服务质量最好的服务版本最新的服务版本最新的服务

可以用于提高程序的容错性可以用于提高程序的容错性 (Fail-over)(Fail-over)SDKSDK中的中的 ManagedUrlManagedUrl

Page 27: CON223 UDDI: 服务的发现和搜索

程序运行时动态搜索和发现服务程序运行时动态搜索和发现服务

ManagedUrl:ManagedUrl:•实例 实例 11•实例 实例 22•……•实例 实例 NN

UDDI Services

1. 1. 程序开始时从程序开始时从 UDDIUDDI 服务器找到所有服务器找到所有符合要求的服务符合要求的服务

3. 3. 如果调用服务失败如果调用服务失败 ,, 自动绑定到下自动绑定到下一个服务一个服务

2. 2. 程序绑定到其中一个服务程序绑定到其中一个服务

程序

服务 N服务 2服务 1

Page 28: CON223 UDDI: 服务的发现和搜索

动态发现和绑定服务 动态发现和绑定服务

Page 29: CON223 UDDI: 服务的发现和搜索

下一个微软下一个微软 UDDIUDDI 版本版本

Page 30: CON223 UDDI: 服务的发现和搜索

下一个微软下一个微软 UDDIUDDI 版本版本

完全实现完全实现 UDDI V3UDDI V3

更丰富的检索功能更丰富的检索功能更安全的数据保护更安全的数据保护更易记忆的数据键更易记忆的数据键方便的服务更新的跟踪方便的服务更新的跟踪多站点之间的数据复制多站点之间的数据复制

Page 31: CON223 UDDI: 服务的发现和搜索

更丰富的检索功能更丰富的检索功能提供嵌套式检索提供嵌套式检索

例例 :: 我想找到所有实现了某一类接口我想找到所有实现了某一类接口 (( 例例 TCP)TCP) 的服务的服务原来原来 :: 找到所有属于这一类的接口找到所有属于这一类的接口 ,, 然后对每一个接口然后对每一个接口找到相应的所有服务找到相应的所有服务 .. 用多个用多个 Find_ServiceFind_Service 请求请求现在现在 : : 一个一个 Find_ServiceFind_Service 请求请求

提供更丰富的指示语提供更丰富的指示语 ,, 用以改变缺省检索方式用以改变缺省检索方式 ..例例 :: 大小写是否敏感大小写是否敏感 ;; 结果以何种方式排序结果以何种方式排序 ;;

通配符支持通配符支持<keyedReference <keyedReference tModelKey="uddi:uddi.org:categorization:general_keywortModelKey="uddi:uddi.org:categorization:general_keywords" keyName=“abc%" keyValue=“abc%" />ds" keyName=“abc%" keyValue=“abc%" />

<name>abc_e%</name><name>abc_e%</name>

Page 32: CON223 UDDI: 服务的发现和搜索

更安全的数据保护更安全的数据保护 -- 数字签名数字签名为什么要用数字签名为什么要用数字签名

防止数据被任何第三方改动防止数据被任何第三方改动 ,, 包括包括 UDDIUDDI服务器服务器更严格的互信关系更严格的互信关系

数字签名过程数字签名过程服务发布者服务发布者 ::

生成服务的数据结构生成服务的数据结构用自己的证书产生数字签名用自己的证书产生数字签名把数字签名和含公钥的证书附于生成的数据结构后把数字签名和含公钥的证书附于生成的数据结构后把完整的数据发给把完整的数据发给 UDDIUDDI服务器服务器

服务使用者服务使用者 ::从从 UDDIUDDI服务器上找到符合要求的服务服务器上找到符合要求的服务下载该服务的完整数据结构下载该服务的完整数据结构验证数字签名并验证所附证书验证数字签名并验证所附证书

Page 33: CON223 UDDI: 服务的发现和搜索

更易记忆的数据键更易记忆的数据键

V2V2 键键UUIDUUID 键键 : b5dc2013-d5af-324b-81f8-: b5dc2013-d5af-324b-81f8-28bcfb00d63928bcfb00d639

不容易记不容易记不允许发布者指定不允许发布者指定

V3V3 键键由键的域名由键的域名 ,, 分区名分区名 ,, 和键值组成和键值组成 . . 例例 --uddi:microsoft.com:mschina:atcshanghai:testseuddi:microsoft.com:mschina:atcshanghai:testservicervice

容易记容易记发布者可以指定发布者可以指定没有象看起来的简单没有象看起来的简单

保证键值的唯一性保证键值的唯一性管理键域和键分区管理键域和键分区

Page 34: CON223 UDDI: 服务的发现和搜索

方便的服务信息更新的跟踪方便的服务信息更新的跟踪如何及时得到最新的服务信息如何及时得到最新的服务信息用户定时发请求给用户定时发请求给 UDDIUDDI服务器服务器效率低效率低 ,, 不方便不方便 ,, 有延迟有延迟

服务器通知用户服务器通知用户 -- 服务的订阅服务的订阅指定订阅的内容指定订阅的内容

罗列每一个感兴趣的服务提供者或者服务罗列每一个感兴趣的服务提供者或者服务规定某一类符合指定条件的服务提供者或者服务规定某一类符合指定条件的服务提供者或者服务

通知的方式通知的方式接收端是电子邮件接收端是电子邮件接收端是接收端是 webweb服务服务实时性实时性

Page 35: CON223 UDDI: 服务的发现和搜索

多站点之间的数据复制多站点之间的数据复制

完全的数据复完全的数据复制制

各站点共享所各站点共享所有数据有数据提升性能提升性能 :: 更更多客户多客户 ,, 更多更多流量流量 ,, 更快地更快地响应响应复制是持续的复制是持续的

UDDI UDDI ServicesServices

纽约纽约

UDDI UDDI ServicesServices

伦敦伦敦

UDDI UDDI ServicesServices

新加坡新加坡

UDDI UDDI ServicesServices

北京北京

Page 36: CON223 UDDI: 服务的发现和搜索

多站点之间的数据复制多站点之间的数据复制部分的数据复制部分的数据复制

复制是有选择性的复制是有选择性的减少重复劳动减少重复劳动 . . 例例 :: 常用的技术模型常用的技术模型复制可能是一次性的或者重复性的复制可能是一次性的或者重复性的例子例子 : : 企业中有两企业中有两 UDDIUDDI站点站点 :: 开发和测试开发和测试 , , 产品产品当一个服务通过测试并转移到产品环境时当一个服务通过测试并转移到产品环境时 ,, 需要复制该服务及需要复制该服务及相关的数据相关的数据

UDDI UDDI ServicesServices

开发环境开发环境

UDDI UDDI ServicesServices

产品环境产品环境

Page 37: CON223 UDDI: 服务的发现和搜索

Windows Windows 服务器中的服务器中的 UDDI ServicesUDDI Services

http://www.microsoft.com/windowsserver2003/http://www.microsoft.com/windowsserver2003/

technologies/idm/uddi/default.mspxtechnologies/idm/uddi/default.mspx UDDI SDKUDDI SDK

http://msdn.microsoft.com/library/en-us/uddihttp://msdn.microsoft.com/library/en-us/uddi

UDDI newsgroupsUDDI newsgroupsMicrosoft.public.uddi.generalMicrosoft.public.uddi.general

Microsoft.public.uddi.programmingMicrosoft.public.uddi.programming

Microsoft.public.uddi.specificationMicrosoft.public.uddi.specification

Page 38: CON223 UDDI: 服务的发现和搜索