CON223 UDDI:服务的发现和搜索
课程内容概述 在这个讲座里,我们会介绍UDDI的基本的数据模型和它的主要功能.我们会演示如何发布web service的信息到微软的UDDI服务器上和如何在不同的应用环境下依靠UDDI找到合适的web service.另外你也可以了解到微软下一个版本的UDDI产品中可能加入的一些新的功能. 本讲座主要合适于企业的软件开发人员,架构设计人员, 企业CIO,以及从事IT架构咨询的专业人员.
课程内容安排 SOA和Web服务管理的挑战 UDDI简介 微软UDDI Services产品简介 UDDI Services的典型应用 核心的数据模型 分类的应用 微软UDDI Services产品简介 UDDI Services的典型应用 下一个微软UDDI版本
4/21/2019 2:29 PM SOA和服务管理的挑战 4 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
SOA和Web Services 面向服务的架构(SOA) 应用的业务逻辑通过多个相对独立和非紧密耦合的服务实现 加快服务的更新和部署周期,从而提高敏捷性 提高服务的重用性 跨平台 Web Services:完整的自定义接口描述的基于XML数据格式的应用服务.这些服务可以通过互联网或者内部网被发布,发现,和使用 服务的应用不依赖于操作系统或者编程语言 一系列的Web Services的标准
服务数量快速增长带来的挑战 面向服务的架构会使Web Services数目快速增长 由此带来的问题 UDDI是解决方案 服务如何被发现? 作为IT管理员,我如何有效的管理所有服务? 我怎么知道现在企业里有没有服务已经实现了我想要的功能? UDDI是解决方案 一句话概括:UDDI是服务的注册表
微软基于服务的开发平台 WS-* 系列协议 应用1 应用2 应用3 应用4 WCF (Indigo) WSE BizTalk 适配器 其他 协议栈 网络 WS-* 系列协议 Infrastructure and Profiles WS-Federation WS-Management Devices Profile Metadata Assurances WS-Secure Conversation WS-Business Activity WS-Metadata Exchange UDDI Server WS-Trust WS-Atomic Transaction UDDI WS-Security WS-Reliable Messaging WS-Coordination WS-Policy Messaging WSDL SOAP WS-Addressing MTOM XML Schema Foundation XML Infoset XML 1.0 XML Namespaces MIME SOAP / HTTP
UDDI和微软UDDI Services产品简介 4/21/2019 2:29 PM UDDI和微软UDDI Services产品简介 8 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
UDDI (通用的描述,发现和集成) UDDI是一个标准(OASIS) 主要IT行业巨头的支持(Microsoft,IBM, SAP, Oracle,…) 非常灵活的数据模型 丰富的搜索功能 标准的SOAP接口
tModel(技术模型):服务提供的接口的定义 UDDI 核心数据模型 tModel(技术模型):服务提供的接口的定义 0…n Provider: 服务提供者的信息 0…n Service(服务): 服务的描述 0…n Binding(绑定): 服务端点的信息
tModel(技术模型):服务提供的接口的描述 UDDI 核心数据模型 tModel(技术模型):服务提供的接口的描述 0…n Provider: 服务提供者的信息 服务部署部门的名字,描述和分类. 0…n Service(服务): 服务的描述 指向 WSDL 的URL 服务的名字,描述和分类 0…n Binding(绑定): 服务端点的信息 访问地址和分类
分类在UDDI中的应用 为什么要分类? 分类的例子: 有效的搜索和快速准确地发现服务 分类提供了一个非常重要的描述手段 “我要找到部署在中国的,日用消费品,库存跟踪的服务” 分类提供了一个非常重要的描述手段 分类的例子: 地理位置. 比如:服务器所在的城市 服务提供者所属部门 服务的部署环境 访问权限 1.Many services. 2. text searching is not good enough.
IIS服务器(Internet Information Services) 微软UDDI Services 架构 ASP.NET 用户界面 XML SOAP API HTTP or HTTPS IIS服务器(Internet Information Services) 活动目录(Active Directory) 用户认证 & 授权 管理和监控 业务逻辑用.NET实现 SQL Server 2000 MSDE 或
微软UDDI Services组成 “UDDI站点” UDDI站点管理控制台 数据库(SQL Server 2000 或MSDE) Web 用户界面(发布服务,搜索服务,管理功能的网页) UDDI v1.0 & v2.0 SOAP接口 微软附加的SOAP接口 UDDI站点管理控制台 本地和远程站点管理 标准的微软管理控制台界面
微软UDDI Services组成 UDDI SDK 管理员工具 Visual Studio .NET 整合 包括在Windows 2003 服务器 Platform SDK .NET 1.1 管理员工具 包括在Windows 2003 服务器 Resource Kit 类(categorization)编辑器 数据导出工具 UDDI Services组件配置工具 Visual Studio .NET 整合 加web reference
UDDI Services的典型应用 4/21/2019 2:29 PM 16 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
发布服务到UDDI Services 什么时候要发布服务? 发布服务的方式:浏览器界面和SOAP API 贯穿于服务整个生命周期:部署,更新,退休 发布服务的方式:浏览器界面和SOAP API 通过浏览器界面手动发布 适用于简单的服务发布和少数量的服务 手动过程,容易出错 通过编程用SOAP API发布 可以很方便地用提供的SDK实现 信息准确 减少重复劳动
手动发布服务
SOAP API消息集 典型的请求/回答消息 对每个核心的数据结构(服务提供者,服务,绑定,技术模型) Finds – find_service, find_business Gets – get_serviceDetail, get_businessDetail Saves – save_service, save_business Deletes – delete_service, delete_business
SOAP API消息集 例子 <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> <serviceInfo serviceKey="60ad773a-aef6-44cf-a5c9-78b88493c52e"> <name xml:lang="en">Machine Activation</name> <serviceInfo serviceKey="75bc89b9-8766-4603-82da-0a4ab4afd71a"> <name xml:lang="en">Server Enrollment</name> </businessInfos> </businessList>
用程序发布服务的步骤 指定UDDI服务器或者从活动目录找到 建立一个与UDDI服务器的连接 发布服务接口的技术模型 生成基本的服务数据结构 Windows集成认证或者UDDI认证 发布服务接口的技术模型 生成基本的服务数据结构 如果还没有相应的服务提供者,建完整的服务提供者 把生成的数据结构放到SaveBusiness或者SaveService请求发给UDDI服务器 确认服务器端的返回
用程序发布服务
搜索和发现服务 为什么用UDDI搜索和发现服务 什么时候需要搜索和发现服务 所有服务的信息都在一个地方 便于找到最合适的服务 利于最大限度的重用服务 有效的信息共享途径 什么时候需要搜索和发现服务 程序设计的时候 配置程序的时候 运行时动态发现服务,程序逻辑的一部分
程序设计阶段 定价web service UDDI Services Office VBA用户绑定这个定价服务完成整个解决方案 .NET开发人员用开发并部署了一个定价的web服务. 定价web service UDDI Services Office VBA 用户到UDDI服务器上搜索“定价”服务 .NET开发人员发布定价服务到UDDI服务器并加以分类 Office VBA用户确定了对他最合适的“定价”服务
在Visual Studio .NET中的UDDI集成
程序运行时动态搜索和发现服务 弥补静态发现和绑定服务的不足 动态改变服务访问地址 可以动态地发现和绑定到当时最”合理”的那个服务 如果”定价”服务发生变动程序将不能工作 动态改变服务访问地址 可以动态地发现和绑定到当时最”合理”的那个服务 地理位置最近的服务 服务质量最好的服务 版本最新的服务 可以用于提高程序的容错性(Fail-over) SDK中的ManagedUrl
程序运行时动态搜索和发现服务 ManagedUrl: 实例 1 实例 2 … 实例 N 1. 程序开始时从UDDI服务器找到所有 符合要求的服务 服务 1 服务 2 服务 N 2. 程序绑定到其中一个服务 3. 如果调用服务失败,自动绑定到下 一个服务 UDDI Services ManagedUrl: 实例 1 实例 2 … 实例 N 程序
动态发现和绑定服务
4/21/2019 2:29 PM 下一个微软UDDI版本 29 © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
下一个微软UDDI版本 完全实现UDDI V3 更丰富的检索功能 更安全的数据保护 更易记忆的数据键 方便的服务更新的跟踪 多站点之间的数据复制
更丰富的检索功能 提供嵌套式检索 提供更丰富的指示语,用以改变缺省检索方式. 通配符支持 例:我想找到所有实现了某一类接口(例TCP)的服务 原来:找到所有属于这一类的接口,然后对每一个接口找到相应的所有服务.用多个Find_Service请求 现在: 一个Find_Service请求 提供更丰富的指示语,用以改变缺省检索方式. 例:大小写是否敏感;结果以何种方式排序; 通配符支持 <keyedReference tModelKey="uddi:uddi.org:categorization:general_keywords" keyName=“abc%" keyValue=“abc%" /> <name>abc_e%</name> V2: 11 findqualifiers, v3: 22
更安全的数据保护-数字签名 为什么要用数字签名 数字签名过程 防止数据被任何第三方改动,包括UDDI服务器 更严格的互信关系 服务发布者: 生成服务的数据结构 用自己的证书产生数字签名 把数字签名和含公钥的证书附于生成的数据结构后 把完整的数据发给UDDI服务器 服务使用者: 从UDDI服务器上找到符合要求的服务 下载该服务的完整数据结构 验证数字签名并验证所附证书
更易记忆的数据键 V2键 V3键 UUID键: b5dc2013-d5af-324b-81f8-28bcfb00d639 不容易记 不允许发布者指定 V3键 由键的域名,分区名,和键值组成. 例-uddi:microsoft.com:mschina:atcshanghai:testservice 容易记 发布者可以指定 没有象看起来的简单 保证键值的唯一性 管理键域和键分区
方便的服务信息更新的跟踪 如何及时得到最新的服务信息 指定订阅的内容 通知的方式 用户定时发请求给UDDI服务器 服务器通知用户-服务的订阅 效率低,不方便,有延迟 服务器通知用户-服务的订阅 指定订阅的内容 罗列每一个感兴趣的服务提供者或者服务 规定某一类符合指定条件的服务提供者或者服务 通知的方式 接收端是电子邮件 接收端是web服务 实时性
多站点之间的数据复制 完全的数据复制 各站点共享所有数据 提升性能:更多客户,更多流量,更快地响应 复制是持续的 UDDI Services 纽约 完全的数据复制 各站点共享所有数据 提升性能:更多客户,更多流量,更快地响应 复制是持续的 UDDI Services 伦敦 UDDI Services 北京 UDDI Services 新加坡
多站点之间的数据复制 部分的数据复制 复制是有选择性的 减少重复劳动. 例:常用的技术模型 复制可能是一次性的或者重复性的 例子: 企业中有两UDDI站点:开发和测试, 产品 当一个服务通过测试并转移到产品环境时,需要复制该服务及相关的数据 UDDI Services 开发环境 UDDI Services 产品环境
Windows 服务器中的UDDI Services http://www.microsoft.com/windowsserver2003/technologies/idm/uddi/default.mspx UDDI SDK http://msdn.microsoft.com/library/en-us/uddi UDDI newsgroups Microsoft.public.uddi.general Microsoft.public.uddi.programming Microsoft.public.uddi.specification