• 1. Web Service技术简介2006-5-31
  • 2.     摘  要 概述:是什么、做什么? 体系结构:组件与操作 主要协议 SOAP WSDL UDDI Web Service安全 主要开发工具 主要研究内容 参考文献2006-5-32
  • 3. 什么是Web Service一个 Web 服务就是一个应用程序,它可以通过轻量级的、与厂商无关的通信协议从其他的系统跨网络(Internet 或者 Intranet)接受 XML 格式的请求 基于XML的一种分布式计算技术、一种中间件技术 一种松散耦合的、面向服务的架构 在这种面向服务的架构中,接口的定义是至关重要的。正是接口定义(通常由 WSDL 来表达)作为服务所提供的东西和客户端所期望的结果之间的合约。 为了确保参与的各方是松散耦合的,必须同意两个关键的事项:共同的通信格式(也就是消息的样式)和共同的协议(也就是消息如何到达)。 最常见的组合是通过 HTTP(协议)的 SOAP (格式)。2006-5-33
  • 4. 什么是Web Service(Cont.)一个 Web 服务是一个接受 XML 格式请求的应用程序 无论一个远程函数调用是否作用于 Web 服务,或者一个消息是否发送给它,都必须用 XML 标记封装请求。 从其他系统跨网络(Internet 或者 Intranet) Web 服务类似于其他分布式计算技术,使远程、分布式企业应用程序成为可能。例如DCOM、CORBA等,实际上可以认为Web服务是分布式技术的发展。 Web 服务堆栈的平台的互操作性 这种互操作性是使得 Web 服务对于 EAI 如此具有吸引力的关键特征。2006-5-34
  • 5. 什么是Web Service(Cont.)轻量级 Web 服务所依赖的技术和协议被设计得相当轻量级的,将许多复杂的特征,比如安全性,会话处理和事务处理,都留给 Web 服务规范的扩展来处 与厂商无关的通信协议 因为 Web 服务是基于标准的开放协议, Web 服务系统提供了跨越所有厂商,实现了异构系统的互操作2006-5-35
  • 6. W3C’s Definition A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. 2006-5-36
  • 7. Web服务可以做什么让任何平台上的用任何语言编写的服务进行交互 将应用程序功能概念化成任务(服务),从而形成面向任务的开发和工作流。这使得更抽象的软件能够为工作在业务层面具有较少软件分析技术的用户所用 允许松耦合,这意味着,每当其中某个或多个服务在设计或实现中发生变更时,服务应用程序之间的交互可能不会因此而中断 使现有的应用程序能适应变化中的业务条件和客户需要2006-5-37
  • 8. Web服务可以做什么(Cont.)向现有或遗留的软件应用程序提供服务接口,而无需改变原来的应用程序,从而使这些应用程序完全可以运行在这种服务环境下 引入其他一些与原有功能无关的管理或操作管理功能,比如可靠性、可计帐性和安全性等等,从而在业务计算环境中增加了其通用性和实用性 典型应用 组件化电子服务(Componentized E-Services)(B2B) 企业应用集成(Enterprise Application Integration,EAI) 企业内部组件重用(Intra-enterprise component reuse Intra-enterprise) 2006-5-38
  • 9. Web服务体系结构-组件 服务提供者 提供服务及维护注册表以使服务可用; 代理 服务提供者与服务请求者的中介; 传统的代理是UDDI注册中心; 服务请求者 发现 Web 服务,然后调用这些服务以创建应用程序 服务 应用程序,通过服务描述语言进行描述,其描述信息通过代理发布2006-5-39
  • 10. Web服务体系结构-操作发布/撤除发布(Publish) 发布和撤除发布是指将服务发布至代理处(发布)或除去它们的一些项(撤除发布)。服务提供者通过代理来发布或不发布某个服务。 查找 (Find), 查找操作由服务请求者和服务代理共同完成。服务请求者描述他们正在寻找的服务类型,而服务代理发布与请求最匹配的结果。 绑定 (Bind) 绑定操作发生在服务请求者和服务提供者之间。双方经过适当的商讨之后,请求者就可以访问和调用提供者所提供的服务。2006-5-310
  • 11. Web服务实现过程Web Services Architecture W3C Working Group Note 11 February 2004 整个实现过程基本上分为四步 在这个过程中代理发挥着重要的作用 2006-5-311
  • 12. Web服务实现过程the requester and provider entities become known to each other (or at least one becomes know to the other) the requester and provider entities somehow agree on the service description and semantics that will govern the interaction between the requester and provider agents the service description and semantics are realized by the requester and provider agents2006-5-312
  • 13. Web服务实现过程(Cont.)the requester and provider agents exchange messages, thus performing some task on behalf of the requester and provider entities. (I.e., the exchange of messages with the provider agent represents the concrete manifestation of interacting with the provider entity's Web service.)2006-5-313
  • 14. Web Services Architecture W3C Working Group Note 11 February 2004 “Known each other”发现服务,将发现本身作为一个服务 发现服务获取WSD及FD 请求者实体向发现服务提供选择WEB服务的信息 发现服务返回符合标准的WSD2006-5-314
  • 15. Web Services Architecture的思考Agent Requester Agent and Provider Agent; 传统的注册中心被代理替代; 发现服务(Discovery Service) 执行一个发现的过程。获取WSD和FD、请求者实体提出发现标准、返回WSD 可以人工发现也可以自动发现(Agent); 发现的途径 注册中心; 索引; P2P发现; 这里有我们可以研究的问题吗?2006-5-315
  • 16. Web服务主要技术及标准Web服务协议分层的描述2006-5-316
  • 17. Web服务主要技术及标准2006-5-317
  • 18. SOAP、UDDI与WSDLWSDL,Web Services Description Language 描述Web服务的XML语言,提供了一种向其它程序描述Web服务的统一方法; 主要描述信息内容,定义了描述Web服务接口规范的标准格式; 主要版本有 WSDL1.1、WSDL1.2及WSDL2.0 UDDI,Universal Description,Discovery and Integration 创建可搜索的Web服务注册中心; 目前的最新版本是UDDI3.0; SOAP,Simple Object Access Protocol 提供了一种在Web服务与其它应用程序之间进行通信的机制 主要版本有SOAP1.1、SOAP1.22006-5-318
  • 19.  SOAP-概述简单对象访问协议 其中“O”-对象的含义逐步淡化 重心从对象转移到通用的 XML 消息处理框架上 SOAP是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义 在协议栈中,SOAP XML 位于用来发送消息的传输协议之上,而位于特定领域的 XML 文档之下 目前的版本是SOAP1.22006-5-319
  • 20. SOAP体系结构 SOAP envelop,描述SOAP消息格式 SOAP encoding rules,定义了一组对数据类型进行编码的规则 定义应用程序中需要使用的数据类型,SOAP1.2将其作为一个可选项处理; 对于编程人员来说,没有这个编码更加灵活; SOAP RPC,定义了SOAP消息如何执行远程调用 SOAP binding,SOAP绑定,定义了一个使用底层传输协议来完成在结点间交换SOAP信封的约定2006-5-320
  • 21. SOAP-消息交换模型SOAP 定义了一种方法以便将 XML 消息从发送者传送到接收者,上图描述了一种最简单的单向传送模型 发送者,创建和发送 SOAP 消息给最终的 SOAP 接收者 最终 SOAP 接收者,SOAP 发送者为发送的 SOAP 消息规定的最终目的地(不是中介),在这个模型中,接收者不反馈信响应信息,信息的发送是单向的 提供了一种基于 XML 且具有以下特性的消息处理框架 可扩展,该协议是简单的,缺少分布式系统的许多特征,如安全性、路由及可靠性等,允许分层扩展 可通过多种底层网络协议使用及 独立于编程模型2006-5-321
  • 22. SOAP-消息交换模型(Cont)请求/响应模型 接收方向发送方发送响应消息 2006-5-322
  • 23. SOAP-消息交换模型(Cont) 增加可选的“SOAP中介(intermediary)” 用来在 SOAP 发送者和最终 SOAP 接收者之间截取 SOAP 消息。在将消息发送给最终 SOAP 目的地之前,截取 SOAP 消息的任意中介都可以分析它,以执行过滤、记录和缓存等操作。SOAP 中介可以看作是发送者和接收者。2006-5-323
  • 24. SOAP消息SOAP 元素是 SOAP 消息的根元素,包含一个可选的 SOAP Header 和一个必需的 SOAP Body 元素 可选的并且可扩展的
    元素,用于描述元数据(metadata),比如安全性、事务处理和会话状态信息 必需的 元素,包含发送者的 XML 文档(文档形式和RPC形式) 在接收者(SOAP中介)返回的响应信息中,可能包含 的元素,用来描述在阅读 SOAP 消息时遇到的任何异常情况 W3C Note 指定了一种在 SOAP 消息中嵌入和描述 附件(attachment,格式不限) 的方式2006-5-324
  • 25. SOAP编码描述在SOAP消息中如何表示特定种类的数据的规则(可选) 不是强制性的,开发人员可以选择其它任意一种编码方法; SOAP Header或Body元素可以具有SOAP Encoding Style属性,该属性包含一个映射到编码规则的URI,它规定了对SOAP消息内部各数据元素的数据类型进行定义的规则2006-5-325
  • 26. SOAP-RPC Model and Document Model RPC 一种技术,应用程序可以通过它调用(执行)一个驻留在另一台计算机上的过程,调用与返回; RPC形式的SOAP解决的主要是互操作性问题,即跨越不同的网络执行任务,是应用程序与WEB服务进行交互的一种常用机制; 文档形式的SOAP不调用任何方法 单向(one-way)的或者异步(asynchronous); 文档形式的消息可以通过 SOAP 描述任意 XML 文档,每个消息都遵循它自己独特的协议2006-5-326
  • 27. WSDL简介WSDL,Web Services Description Language 提供了一种语法,将服务描述为交换消息的端点集 用一种与平台无关的语言(XML)来描述一个或多个服务。它描述了服务、访问服务的方式以及需要返回的响应的类型(如果有的话) 可以私下交换 WSDL 文档,也可以将其发送到 UDDI 注册中心(公共的或者私有的),以允许更广泛的访问 基于 XML 的文件格式,用来描述类型(Type)、消息(Message)、操作(Operation)和接口(称为 端口类型(PortTypes))、定位和协议绑定 可以用 WSDL 来把 Web 服务描述成一组运行在消息上的端点2006-5-327
  • 28. WSDL简介消息描述了客户端和服务之间的通信(通过交换的数据类型来描述) 操作包括输入和输出消息 PortTypes 包括一组操作。而且,PortTypes 被约束在某些协议上,这称为绑定(binding) WSDL 是可扩展的,可以与其他类型的网络协议和消息格式一起进行使用2006-5-328
  • 29. UDDI简介统一描述、发现和集成(Universal Description, Discovery, and Integration) 一个提供注册和定位Web服务(商业)的开放框架,既是一个规范,又是若干企业间的伙伴关系UDDI 包含于完整的 Web 服务协议栈之内,而且是协议栈基础的主要部件之一,支持创建、说明、发现和调用 Web 服务。 2006-5-329
  • 30. UDDI工作原理UDDI 注册中心包含了通过程序手段可以访问到的Web服务 通过 HTTP 从客户机的 SOAP 请求传到注册中心节点,然后再反向传输2006-5-330
  • 31. UDDI工作原理(Cont.)如何往UDDI注册中心送入数据,顾客又如何能发现和使用这一信息。UDDI注册中心建立在顾客提供的数据的基础之上。 2006-5-331
  • 32. Web服务安全概述 保护Web服务安全性目标可以分解为几个子目标 提供用来保护消息完整性和机密性的工具; 提供用来确保服务只对表达策略所需声明的消息中的请求起作用的工具; 安全套接字层(SSL)和实际的传输层安全性(Transport Layer Security,TLS)一起被用于为 Web 服务应用程序提供传输级别的安全性 IPSec是另一个用于传输安全性的网络层标准 传输层之外的中介体接收并转发数据时,数据的完整性和任何随数据流动的安全性信息都可能会丢失 Web服务应用程序将许多动态的系统组织在一起; 消息传递依赖中介,传输层安全措施不能保证其安全性;2006-5-332
  • 33. 点对点配置,中介处的安全性得不到保证全面的 Web 服务安全性体系架构中所需要的是一个提供端到端安全性的机制-Web服务安全性模型2006-5-333
  • 34. Web服务安全概述(Cont.)Web 服务安全性模型使我们能够通过一个过程达到保证安全性的目的,在这个过程中: Web 服务可以要求进来的消息证明一组 声明(例如,名称、密钥、许可、性能等等) 请求者可以通过把 安全性令牌与消息关联起来发送带必需声明的证明的消息 如果请求者没有必需的声明,那么请求者或它们的代表可以通过与其它 Web 服务联系设法获得必需的声明,其它的 Web 服务指的是 安全性令牌服务(security token service),可以接下来要求它们自己的一组声明,安全性令牌服务通过签发安全性令牌代理不同信任域之间的信任2006-5-334
  • 35. 安全性令牌服务模型这个常规的消息传递模型 ― 声明、策略和安全性令牌 ― 包含并支持几个更特殊的模型,比如基于身份的安全性、访问控制列表和基于性能的安全性。它允许使用现有的技术如 X.509 公用密钥证书、Kerberos 共享秘密的票据甚至密码摘要2006-5-335
  • 36. Web服务安全 Web服务的安全性构建在一整套的安全协议的基础上; WS-Security是所有安全的基础  描述如何向 SOAP 消息附加签名和加密报头;  描述如何向消息附加安全性令牌(包括二进制安全性令牌,如 X.509 证书和 Kerberos 票据) 另一个问题是如何把Web服务安全性与现有的安全性模型关联起来2006-5-336
  • 37. 开发工具Microsoft Visual .Net SUN J2EE IBM WSTK(Web Services ToolKit)2006-5-337
  • 38. 主要研究内容工业界 Web服务规范及协议标准化问题; SOAP、WSDL、UDDI、WS-Security等; 学术界 数据集成,通过一定的访问控制及事务机制保证服务响应的可靠性及服务组件的协同工作; 服务搜索与发现,如P2P、自动化、基于语义; 服务组合问题 现有安全策略与Web服务集成的问题; Web服务与其它网络技术的结合,例如P2P、网格; 特别说明:把握未必准确2006-5-338
  • 39. SOA and Web Service?2006-5-339
  • 40. 主要参考文献http://www.w3.org/2002/ws/ http://www.w3.org/TR http://www-128.ibm.com/developerworks/cn/webservices http://www.microsoft.com/china/MSDN/library/WebServices/default.mspx?mfr=true http://www.webservices.org http://www.uddi.org CNKI、万方学位论文数据库等2006-5-340
  • 41. http://webservices.sys-con.com/(SOA Web Services Journal) http://www.web2journal.com http://www-128.ibm.com/developerworks/webservices/standards/2006-5-341