WebService&SOA&ESB入门介绍.ppt
《WebService&SOA&ESB入门介绍.ppt》由会员分享,可在线阅读,更多相关《WebService&SOA&ESB入门介绍.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Web ServiceTOCnWeb Service的概念的概念SOAPWSDLREST vs XML-RPC vs SOAP vs DATA BINDINGWS-securityWS-NotificationWS-Transaction.nWebService相关技术相关技术AJAXJMSBPELGridnSOA需要知道的知识nXMLnHTTP/HTTPSnSCHEMA/DTDWeb Service的概念Web ServicenWeb服务(Web Service)提供了一个在不同的应用和平台之间的交互操作标准。n这个交互操作通过一系列基于XML的开放标准实现,包括WSDL、SOAP和UDDI
2、等。这些标准提供了一系列通用方法来定义、发布和使用Web Service。Web Service的基本层次结构基础连接基础连接基础连接基础连接:InternetInternet统一数据格式统一数据格式统一数据格式统一数据格式:XMLXML服务操作协议服务操作协议服务操作协议服务操作协议:SOAPSOAP服务描述协议服务描述协议服务描述协议服务描述协议:WSDLWSDLSimple,Open,Broad Industry SupportSimple,Open,Broad Industry Support简单、开放、工业界广泛支持简单、开放、工业界广泛支持简单、开放、工业界广泛支持简单、开放、工业
3、界广泛支持服务发布协议服务发布协议服务发布协议服务发布协议:UDDIUDDIUDDI:Universal Description Discovery and Integration WSDL:Web Service Description LanguageSOAP:Simple Object Access Protocol为什么需要WebService DBMSDBMSDBMSDBMSNameNo.ZipStateOKCancelDataServicesBusinessLogicServicesPresentationServicesDBMSDBMSDBMSDBMSDataServicesWe
4、bServicesPresentation&ProcessServicesNameNo.ZipStateOKCancelbrowserbrowser之前之前之后之后Client APNameNo.ZipStateOKCancelMobile DeviceLegacySOAP&WSDLSOAP是什么?nSOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。nSOAP的概念最初来自于 Microsoft
5、and Userland software,它已经演化了好几代;当前最新的规范是SOAP 2.0。由W3C组织制定。SOAPnSOAP被广泛地认为是新一代跨平台和跨语言的分布式计算机应用的基础框架。nSOAP 1.1只支持HTTP POST方式向终端提交请求。nSOAP 1.2支持HTTP POST和GET两种方式。四个主要组成部分nSOAP是一个基于XML的轻量级规范,其主要使用在分布式系统中,由下面几个部分组成:SOAP封装结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。SOAP编码规则定义了用以交换应用程序定义的数据类型的实例的一系列机制
6、。SOAP RPC表示定义了一个用来表示远程过程调用和应答的协定。虽然这三个部分都作为SOAP的一部分一起描述,但它们在功能上是相交的。特别的,封装和编码规则是在不同的名域中定义的。规范定义了SOAP封装、SOAP编码规则和SOAP-RPC协定之外,这个规范还定义了SOAP和其他协议的绑定,描述了在有或没有HTTP扩展框架的情况下,SOAP消息如何包含在消息中被传送。SOAP消息结构SOAP消息处理框架nSOAP 规范的核心部分就是消息处理框架。SOAP 消息处理框架定义了一整套 XML 元素,用以“封装”任意 XML 消息以便在系统之间传输。n该框架包括以下核心 XML 元素:Envelop
7、e、Header、Body 和 Fault,所有这些都来自 SOAP 1.1 中的 http:/schemas.xmlsoap.org/soap/envelope/命名空间。以下代码中提供了 SOAP 1.1 的完整 XML 架构定义,以供在阅读下文时参考。SOAP 1.1 XML 架构定义架构定义:SOAP.xmlSOAP Envelope 的结构 SOAP Envelope 的结构所有的SOAP消息都使用XML形式编码,一个SOAP应用程序产生的消息中,所有由SOAP定义的元素和属性中必须包括正确的域名。SOAP应用程序必须能够处理它接收到的消息中的SOAP域名,并且它可以处理没有SOAP
8、域名的SOAP消息,就象它们有正确的名域一样。SOAP定义了两个名域:SOAP封装的名域标志符是http:/schemas.xmlsoap.org/soap/envelope/SOAP的编码规则的名域标志符是http:/schemas.xmlsoap.org/soap/encoding/SOAP encodingStyle属性nEncodingStyle全局属性用来表示SOAP消息的序列化规则。这个属性可以在任何元素中出现,作用范围与域名声明的作用范围很相似,为这个元素的内容和它的所有没有重载此属性的子元素。SOAP消息没有定义缺省编码。属性值是一个或多个URI的顺序列表,每个URI确定了一种
9、或多种序列化规则,用来不同程度反序列化SOAP消息,举例如下:http:/schemas.xmlsoap.org/soap/encoding/http:/my.host/encoding/restricted http:/my.host/encoding/封装版本模型SOAP没有定义常规的基于主版本号和辅版本号的版本形式。SOAP消息必须有一个封装元 素与名域http:/schemas.xmlsoap.org/soap/envelope/关联。如果SOAP应用程序接收到的SOAP消息中的SOAP封装元素与其他的名域关联,则视为版本错误,应用程序必须丢弃这个消息。如果消息是通过HTTP之类的请求
10、/应答协议收到的,应用程序必须回答一个SOAP VersionMismatch 错误信息。Envelope元素Envelope元素始终是 SOAP 消息的根元素。这就便于应用程序识别“SOAP 消息”只要检查一下根元素的名称即可。通过检查 Envelope 元素的命名空间,应用程序也可确定所使用的 SOAP 版本。Envelope元素包含一个可选的 Header 元素,后跟一个必要的 Body 元素。Body 元素代表了该消息的有效内容。它是一种通用容器,因为它可包含来自任何命名空间的任意数量的元素。这就是试图发送数据的最终目的地。例子:在银行帐户之间转帐的请求信息:request.xml相应
11、的响应信息:response.xmlFault元素该消息处理框架还定义了一个名为Fault 的元素,用于在发生错误时在 Body 元素中表示错误。这是不可缺少的,因为如果没有一种标准的错误表示方法,每个应用程序将不得不自己创建,从而使得通用基础结构不可能区分成功和失败。以下示例 SOAP 消息中包含了一个 Fault 元素,指明在处理该请求时发生了“Insufficient Funds(资金不足)”错误:fault.xmlFault元素nFault 元素必须包含一个 faultcode,后跟一个 faultstring 元素。faultcode 元素使用一种符合命名空间的名称对错误进行分类,而
12、 faultstring 元素提供一种对错误可读的解释(类似于 HTTP 的工作方式)。表 2 简要地说明了 SOAP 1.1 所定义的各种错误码(所有这些代码都包含在 http:/schemas.xmlsoap.org/soap/envelope/命名空间中)。nFault 元素也可能包含一个 detail 元素,以便提供该错误的细节,这样可以帮助客户端诊断问题,特别是在 Client 和 Server 错误码的情况下。SOAP 1.1 错误码错误码nVersionMismatch处理方发现 SOAP Envelope 元素的命名空间是无效的nMustUnderstand处理方没有理解或服从
13、 SOAP Header 元素的某个直接子元素,而该子元素包含一个值为“1”的 SOAP mustUnderstand 属性。nClient表明消息的格式错误或者不包含适当的信息,因而不能成功。这通常表明,如果不对该消息做出更改,就不应该重发该消息。nServer表明该消息未能得到处理的原因与消息的内容并没有直接关系,而是跟该消息的处理有关。例如,处理过程可能包括与某个上游处理器的通信,但该处理器没有响应。如果在稍后重发,该消息可能会成功。Soap Headern大多数现有的协议都区分控制信息(例如,标头)和消息有效负载。在这方面,SOAP 也不例外。SOAP Header 和 Body 元素
14、在易于处理的 XML 世界中也进行同样的区分。除了易用性之外,可扩展 Envelope 的关键优势在于它可用于任何通讯协议。n在各种应用程序协议中(如 HTTP、SMTP 等)标头总是具有重要的意义,因为标头允许连网两端的应用程序就所支持命令的具体行为进行协商。尽管 SOAP 规范本身并不定义任何内置的标头,标头将逐渐在 SOAP 中扮演同等重要的角色。n与 Body 元素类似,Header 元素是控制信息的通用容器。其中可包含来自任何命名空间(除 SOAP 命名空间之外)的任意数量的元素。放置在 Header 元素中的各个元素被称为标头块。如同其他协议一样,标头块中包含的信息应该能够影响有效
15、负载的处理。因此,这里正适于放置诸如凭证一类的元素,以帮助控制对操作的访问:header.xml 2:我们也可以利用一个名为 mustUnderstand 的全局 SOAP 属性对标头块进行标注,以指明接收方在处理该消息之前是否需要理解标头:mustunderstand.xml.Soap BodynSOAP体元素(Body)提供了一个简单的机制,使消息的最终接收者能交换必要的信息。使用体元素的典型情况包括配置RPC请求和错误报告。体元素编码为SOAP封装元素的直接子元素。n如果已经有一个头元素,那么体元素必须紧跟在头元素之后,否则它必须是SOAP封装元素的第一个直接子元素。体元素的所有直接子元
16、素称作体条目,每个体条目在SOAP体元素中编码为一个独立的元素。条目的编码规则如下:n一个条目由它的元素全名(包括名域URI和局部名)确定。SOAP体元素的直接子元素可能是名域限制的。协议绑定协议绑定nSOAP可以和很多传输协议进行绑定:SOAP over HTTP/HTTPS GET/POSTSOAP over JMSSOAP over SMTPSOAP over RPC一种具体的协议绑定准确地定义了应该如何利用给定的协一种具体的协议绑定准确地定义了应该如何利用给定的协议来传输议来传输SOAP 消息。消息。换言之,它详细定义了 SOAP 如何适用于另一协议的范围,该协议很可能具有自己的消息处
17、理框架以及多种标头。协议绑定实际所定义的内容很大程度上取决于该协议的功能和选项。例如,针对 HTTP 的协议绑定应很大程度不同于针对 JMS 或针对 SMTP 的协议绑定。SOAP 类型类型n如今有两种基本类型的SOAP消息处理:文档和RPC。文档类型指出主体只是包含一个 XML 文档,而发送方和接收方都必须遵循该文档的格式。另一方面,RPC 类型指出主体中包含某个方法调用的 XML 表示,正如刚才所述。n两种方法可用于确定如何将数据序列化到主体中:使用Literal文字的 XML 架构定义和使用 SOAP 编码规则Encoding。利用前一种方法,架构定义逐字确定了主体的 XML 格式,不具
18、有二义性。然而,利用后一种方法,SOAP 处理器必须在运行时遍历各种 SOAP 编码规则以确定主体正确的序列化。很显然,这种方法更易于导致错误和互操作性方面的问题。n最常见的情形是在使用文档类型时也使用文字架构定义(称为文档/文字),以及在使用 SOAP 编码规则时使用 RPC 类型(称为 rpc/编码)。文档/编码和 rpc/文字也是可能的,但并不常见,也没有太大意义。大多数 Web 服务平台都集中于文档/文字类型,将其作为发展的主要用例,且是现今 Microsoft ASP.NET WebMethod 框架的默认设置。HTTP 绑定绑定 HTTP 协议绑定定义了在 HTTP 上使用 SOA
19、P 的规则。SOAP 请求/响应自然地映射到 HTTP 请求/协议模型。SOAP RPC绑定 尽管 SOAP 规范已日渐远离对象,它仍然定义了一种约定,以便利用上述的消息处理框架来封装并交换 RPC 调用。定义一种标准的方法将 RPC 调用映射到 SOAP 消息,这使得在运行时基础结构可以在方法调用和 SOAP 消息之间自动转换,而不用围绕 Web 服务平台重新设计代码。要利用 SOAP 进行方法调用,基础结构需要以下信息:1.终结点位置(URI)2.方法名称3.参数名称/值4.可选的方法签名5.可选的标头数据SOAP RPC绑定RPC调用:调用:double add(ref double x
20、,double y)Request对象:对象:struct add double x;double y;33 44Response对象:对象:struct addResponse double result;77SOAP RPCnSOAP文档内容 5 服务调用前置机前置机SOAP消息HTTPHTTPWSDL2JAVASOAP消息Class OperationXML Message服务描述CONTEXTXML2JAVAXML Message实现SOAP的容器nXFIRE 1.xnApache AXIS 1.x/2.xnSOAPLiteWSDL描述web服务的三个基本属性:n服务做些什么?服务所提
21、供的操作(方法);n如何访问服务?数据格式以及访问服务操作的必要协议;n服务位于何处?由特定协议决定的网络地址,如URL。WSDL是什么?n服务主要通过六个元素进行定义types,定义了交换信息的数据格式。message,传输消息的抽象定义。一个消息含有多个逻辑部分,每一部分和一些类型相关联。portType,一些抽象操作的集合。每个操作关联一个输入消息和一个输出消息。binding,针对操作和portType中使用的消息指定实际的协议和数据格式规范。port,指定一个绑定的地址,这样定义一个通信的终端。service,一些port构成的集合WSDL定义nWSDL是XML描述的网络服务,基于消
22、息机制、包含面向文本或面向过程信息的操作集合。n操作及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的,这样就可以重用这些抽象定义。n消息是需要交换数据的抽象描述;n端点类型是操作的抽象集合。n针对一个特定端点类型的具体协议和数据格式规范构成一个可重用的绑定。n一个端点定义成网络地址和可重用的绑定的联接,端点的集合定义为服务。服务接口定义和服务实现定义n服务接口组成了服务描述中的可重用部分,type元素、message和portType。types元素中描述消息中复杂数据类型的使用。message元素指定XML 数据类型组成消息的各个部分。message元素用于定义操作的输入和输出参数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- WebService amp SOA ESB 入门 介绍
限制150内