1 / 38

CON223 UDDI: 服务的发现和搜索

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

Download Presentation

CON223 UDDI: 服务的发现和搜索

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CON223UDDI:服务的发现和搜索

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

  3. 课程内容安排 • SOA和Web服务管理的挑战 • UDDI简介 • 核心的数据模型 • 分类的应用 • 微软UDDI Services产品简介 • UDDI Services的典型应用 • 下一个微软UDDI版本

  4. SOA和服务管理的挑战

  5. SOA和Web Services • 面向服务的架构(SOA) • 应用的业务逻辑通过多个相对独立和非紧密耦合的服务实现 • 加快服务的更新和部署周期,从而提高敏捷性 • 提高服务的重用性 • 跨平台 • Web Services:完整的自定义接口描述的基于XML数据格式的应用服务.这些服务可以通过互联网或者内部网被发布,发现,和使用 • 服务的应用不依赖于操作系统或者编程语言 • 一系列的Web Services的标准

  6. 服务数量快速增长带来的挑战 • 面向服务的架构会使Web Services数目快速增长 • 由此带来的问题 • 服务如何被发现? • 作为IT管理员,我如何有效的管理所有服务? • 我怎么知道现在企业里有没有服务已经实现了我想要的功能? • UDDI是解决方案 • 一句话概括:UDDI是服务的注册表

  7. 微软基于服务的开发平台 应用4 应用1 应用2 应用3 WCF (Indigo) WSE BizTalk 适配器 其他 协议栈 网络 WS-* 系列协议 Infrastructure and Profiles Metadata WS-Federation WS-Management Devices Profile 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

  8. UDDI和微软UDDI Services产品简介

  9. UDDI (通用的描述,发现和集成) • UDDI是一个标准(OASIS) • 主要IT行业巨头的支持(Microsoft,IBM, SAP, Oracle,…) • 非常灵活的数据模型 • 丰富的搜索功能 • 标准的SOAP接口

  10. tModel(技术模型):服务提供的接口的定义 0…n Service(服务): 服务的描述 0…n 0…n Binding(绑定): 服务端点的信息 UDDI 核心数据模型 Provider: 服务提供者的信息

  11. tModel(技术模型):服务提供的接口的描述 0…n Service(服务): 服务的描述 0…n 0…n Binding(绑定): 服务端点的信息 UDDI 核心数据模型 Provider: 服务提供者的信息 服务部署部门的名字,描述和分类. 指向 WSDL 的URL 服务的名字,描述和分类 访问地址和分类

  12. 分类在UDDI中的应用 • 为什么要分类? • 有效的搜索和快速准确地发现服务 • “我要找到部署在中国的,日用消费品,库存跟踪的服务” • 分类提供了一个非常重要的描述手段 • 分类的例子: • 地理位置. 比如:服务器所在的城市 • 服务提供者所属部门 • 服务的部署环境 • 访问权限

  13. ASP.NET 用户界面 XML SOAP API HTTP or HTTPS IIS服务器(Internet Information Services) 业务逻辑用.NET实现 MSDE SQL Server2000 或 微软UDDI Services 架构 活动目录(Active Directory)用户认证 & 授权 管理和监控

  14. 微软UDDI Services组成 • “UDDI站点” • 数据库(SQL Server 2000 或MSDE) • Web • 用户界面(发布服务,搜索服务,管理功能的网页) • UDDI v1.0 & v2.0 SOAP接口 • 微软附加的SOAP接口 • UDDI站点管理控制台 • 本地和远程站点管理 • 标准的微软管理控制台界面

  15. 微软UDDI Services组成 • UDDI SDK • 包括在Windows 2003 服务器 Platform SDK • .NET 1.1 • 管理员工具 • 包括在Windows 2003 服务器 Resource Kit • 类(categorization)编辑器 • 数据导出工具 • UDDI Services组件配置工具 • Visual Studio .NET 整合 • 加web reference

  16. UDDI Services的典型应用

  17. 发布服务到UDDI Services • 什么时候要发布服务? • 贯穿于服务整个生命周期:部署,更新,退休 • 发布服务的方式:浏览器界面和SOAP API • 通过浏览器界面手动发布 • 适用于简单的服务发布和少数量的服务 • 手动过程,容易出错 • 通过编程用SOAP API发布 • 可以很方便地用提供的SDK实现 • 信息准确 • 减少重复劳动

  18. 手动发布服务

  19. SOAP API消息集 • 典型的请求/回答消息 • 对每个核心的数据结构(服务提供者,服务,绑定,技术模型) • Finds – find_service, find_business • Gets – get_serviceDetail, get_businessDetail • Saves – save_service, save_business • Deletes – delete_service, delete_business

  20. 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> <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>

  21. 用程序发布服务的步骤 • 指定UDDI服务器或者从活动目录找到 • 建立一个与UDDI服务器的连接 • Windows集成认证或者UDDI认证 • 发布服务接口的技术模型 • 生成基本的服务数据结构 • 如果还没有相应的服务提供者,建完整的服务提供者 • 把生成的数据结构放到SaveBusiness或者SaveService请求发给UDDI服务器 • 确认服务器端的返回

  22. 用程序发布服务

  23. 搜索和发现服务 • 为什么用UDDI搜索和发现服务 • 所有服务的信息都在一个地方 • 便于找到最合适的服务 • 利于最大限度的重用服务 • 有效的信息共享途径 • 什么时候需要搜索和发现服务 • 程序设计的时候 • 配置程序的时候 • 运行时动态发现服务,程序逻辑的一部分

  24. 定价web service UDDI Services 程序设计阶段 • Office VBA用户绑定这个定价服务完成整个解决方案 • .NET开发人员用开发并部署了一个定价的web服务. • Office VBA 用户到UDDI服务器上搜索“定价”服务 • .NET开发人员发布定价服务到UDDI服务器并加以分类 • Office VBA用户确定了对他最合适的“定价”服务

  25. 在Visual Studio .NET中的UDDI集成

  26. 程序运行时动态搜索和发现服务 • 弥补静态发现和绑定服务的不足 • 如果”定价”服务发生变动程序将不能工作 • 动态改变服务访问地址 • 可以动态地发现和绑定到当时最”合理”的那个服务 • 地理位置最近的服务 • 服务质量最好的服务 • 版本最新的服务 • 可以用于提高程序的容错性(Fail-over) • SDK中的ManagedUrl

  27. 服务 1 UDDI Services 程序运行时动态搜索和发现服务 1. 程序开始时从UDDI服务器找到所有 符合要求的服务 服务 N 服务 2 2. 程序绑定到其中一个服务 3. 如果调用服务失败,自动绑定到下一个服务 • ManagedUrl: • 实例 1 • 实例 2 • … • 实例 N 程序

  28. 动态发现和绑定服务

  29. 下一个微软UDDI版本

  30. 下一个微软UDDI版本 • 完全实现UDDI V3 • 更丰富的检索功能 • 更安全的数据保护 • 更易记忆的数据键 • 方便的服务更新的跟踪 • 多站点之间的数据复制

  31. 更丰富的检索功能 • 提供嵌套式检索 • 例:我想找到所有实现了某一类接口(例TCP)的服务 • 原来:找到所有属于这一类的接口,然后对每一个接口找到相应的所有服务.用多个Find_Service请求 • 现在: 一个Find_Service请求 • 提供更丰富的指示语,用以改变缺省检索方式. • 例:大小写是否敏感;结果以何种方式排序; • 通配符支持 • <keyedReference tModelKey="uddi:uddi.org:categorization:general_keywords" keyName=“abc%" keyValue=“abc%" /> • <name>abc_e%</name>

  32. 更安全的数据保护-数字签名 • 为什么要用数字签名 • 防止数据被任何第三方改动,包括UDDI服务器 • 更严格的互信关系 • 数字签名过程 • 服务发布者: • 生成服务的数据结构 • 用自己的证书产生数字签名 • 把数字签名和含公钥的证书附于生成的数据结构后 • 把完整的数据发给UDDI服务器 • 服务使用者: • 从UDDI服务器上找到符合要求的服务 • 下载该服务的完整数据结构 • 验证数字签名并验证所附证书

  33. 更易记忆的数据键 • V2键 • UUID键: b5dc2013-d5af-324b-81f8-28bcfb00d639 • 不容易记 • 不允许发布者指定 • V3键 • 由键的域名,分区名,和键值组成. 例-uddi:microsoft.com:mschina:atcshanghai:testservice • 容易记 • 发布者可以指定 • 没有象看起来的简单 • 保证键值的唯一性 • 管理键域和键分区

  34. 方便的服务信息更新的跟踪 • 如何及时得到最新的服务信息 • 用户定时发请求给UDDI服务器 • 效率低,不方便,有延迟 • 服务器通知用户-服务的订阅 • 指定订阅的内容 • 罗列每一个感兴趣的服务提供者或者服务 • 规定某一类符合指定条件的服务提供者或者服务 • 通知的方式 • 接收端是电子邮件 • 接收端是web服务 • 实时性

  35. UDDI Services 纽约 UDDI Services 伦敦 UDDI Services 新加坡 UDDI Services 北京 多站点之间的数据复制 • 完全的数据复制 • 各站点共享所有数据 • 提升性能:更多客户,更多流量,更快地响应 • 复制是持续的

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

  37. 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

More Related