WebService技术讲义


WEBSERVICE 技术WEBSERVICE 技术 WbS i 介绍一、WebService介绍 1 为什么会出现Webservice技术?1、为什么会出现Webservice技术? ●商业需求的问题●商业需求的问题 ●应用集成问题●应用集成问题 ●复杂连接的问题●复杂连接的问题 商业需求的问题 公司公司 AA 公司公司 BB 商业需求的问题 远端办公室远端办公室//客户客户 移动雇员移动雇员 远端办公室远端办公室//客户客户 移动雇员移动雇员 客户客户 合作伙伴合作伙伴 供应商供应商 商务需求商务需求 连接无所不在连接无所不在商务需求商务需求 = = 连接无所不在连接无所不在 CORBA AppApp 应用集成问题 COM+ AppApp Legacy System 旧的集成模式:复杂连接 System CORBA App COM+ Apppp Legacy System 新的集成模式 复杂连接的问题复杂连接的问题 ●对于每个应用 程序员都为每个需要的企业资源或外●对于每个应用,程序员都为每个需要的企业资源或外 部资源编写连接代码,以使得应用得以运行。 ●程序员还需要编写更多的代码以使得大量的用户能够 访问每个应用。 ●应用与应用之间的集成同样需要编写大量的代码 ●代价惊人:  需要更多的员工和资金来管理负责纷乱的应用 应 需要更多的员工和资金来管理负责纷乱的应用,应 用间的集成,并维护多种承载应用的基础架构。 为什么 b 是最佳解决方案2、为什么Web Services是最佳解决方案? ●HTTP+XML, 最通用的访问方式 ●基于规范协议的访问接口 可支持所有平台和应用●基于规范协议的访问接口, 可支持所有平台和应用 ●仅使用Web Service作为访问界面, 使得所有接入模●仅使用 e Se ce作为访问界面, 使得所有接入模 块的编写变得容易 ●只有使用WbS i 架构 今后的大规模的面向公●只有使用Web Services架构, 今后的大规模的面向公 众的系统对接才成为可能 例:旅游咨询业务系统例:旅游咨询业务系统 3、Web Service 概述 WbS i 目标WebService目标 ●在现有的各种异构平台的基础上,构筑一个通用异 个 的,与应用无关、语言无关的技术层,各种不同 平台之上的应用依靠这各技术层来实施彼此的连实 接和集成; ●传统的的Wb技术解决的问题是如何让人来使用●传统的的Web技术解决的问题是如何让人来使用 Web应用所提供的服务,而Web Service则要解决 如何让计算机系统来使用Wb应用所提供的服务如何让计算机系统来使用Web应用所提供的服务。 什么是 XML Web 服务? 一个能够使用XML消息通过网络来访问的 Interface, 这个Interface描述了一组可访问的操作。Interface, 这个Interface描述了 组可访问的操作。  由SOAP+WSDL包装的Object  适应松散耦合的网络环境,可通过Web访问, 手段是SOAP Message手段是SO essage  服务的行为、输入/输出都可使用WSDL描述 SOAP Wb Invocation Service Requestor Web Service WSDLWSDL 可看成 部署在 上的对象 ●对象界面描述 WSDL Web Service可看成 部署在Web上的对象 ●对象界面描述: WSDL ●对象访问: SOAP UDDI●对象访问: SOAP ●对象界面发现: UDDI WSDL SOAP象发现 ●对象实现: EJB, COM+, 任何 SOAP EJB/COM+/CORBA CORBA以及任何可用于 对象实现的技术实 b 架构Web Service架构 Service Broker UDDI Registry Bind/InvokeService Provider Service Requester Bind/Invoke bWeb Service Client Application SOAP ●三个参与者:  服务提供者(Service Provider) 服务提供者(Service Provider)  服务请求者(Service Requester)  服务代理(Service Broker) ●三个基本操作●三个基本操作  发布(Publish)  查找(Find) 绑定/调用(Bi d/I k ) 绑定/调用(Bind/Invoke) b 的特点Web Service的特点 ●完好的封装性●完好的封装性 ●松散耦合 ●使用标准协议规范 ●高度可互操作性●高度可互操作性 ●高度可集成能力 ●动态性 比较前面服务特性 b 的分类Web Service的分类 ●Business-Oriented Web Service ●Ct Oi tdWbS i●Customer-Oriented Web Service ●Device-Oriented Web Service ●System-Oriented Web Service 二 Web 服务标准二、Web服务标准 SOAPSOAP WSDL UDDIUDDI 1 SOAP1、SOAP SOAP 是一个简单的用于在Web上交换结构信 息的XML协议 SOAP 1 1的特性:SOAP 1.1的特性: ●自由的传输绑定 (不仅仅是HTTP) ●自由的语言绑定 (比如Java, C#) ●可插入的数据格式 (当然必须基于XML)●可插入的数据格式 (当然必须基于XML) ●完全的中立 (中立、公开的标准) ●独立于任何编程语言、对象模型、操作系统、平台、协议 ●信封 包含的功能和服务 ●数据的编码规则 定义了一套编码机制用于交换应用程序定义的数 据类型的实例据类型的实例 ●RPC调用规范 定义了一个用于表示远程过程调用和响应的约定 ●SOAP绑定●SOAP绑定 定义了一个使用底层传输协议来完成节点之间交换 SOAP信封的约定。 SOAP Message structureSOAP Message structure SOAP 定义了一个“envelope”对象  使用“envelope”包装消息自身 使用 envelope 包装消息自身  消息可以采用自身特定的XML词汇  使用namespace来区分彼此 使用namespace来区分彼此 自定义自定义 词汇 SOAP Envelope词汇集 SOAP Message structureSOAP Message structure Request/Response Message  Request 调用远端对象的某个方法 Request 调用远端对象的某个方法  Response 返回该方法运行后的输出结果 User Service Provider SOAP Request SOAP Response Web ServiceService ASOAPR tMA SOAP Request Message A SOAP Response MessageA SOAP Response Message SOAP 隐藏了实现SOAP 隐藏了实现 User Service Provider SOAP Request SOAP R HTTP Server SOAP Processor SOAP Response ?? 用户只需要了解SOAP消息的格式, 而对底层实现的细节可以无需关心而对底层实现的细节可以无需关心 EJB? Corba? DCOM? Internet环境下实现技术的多样性使得早期的 分布式技术无法实现普遍的互相连接分布式技术无法实现普遍的互相连接 DCOM – 需要每个连接点都使用Windows CORBA – 需要每个连接点都有ORB RMI – 需要每个连接点都使用Java SOAP是基于平台独立的选择 - 简单的XML格式 以在任意平台采用任意技术- 可以在任意平台采用任意技术 - 可以使用开放源代码资源 SOAP与HTTP Http协议Http协议 HTTP(HyperText Transfer Protocol)是超文本 传输协议的缩写,它用于传送WWW方式的数据. 当你 在浏览器的地址框中输入一个URL(统一资源定位符)。 浏览器通过超文本传输协 (HTTP),将Web服务器上站点 的网页代码提取出并翻译成漂亮的网页。 Html语言 HTML是网络的通用语言,一种简单、通用的全置 标记语言。它允许网页制作人建立文本与图片相结合的 复杂页面,这些页面可以被网上任何其他人浏览到,无 论使用的是什么类型的电脑或浏览器 请求 响应 2、WSDL 2.1 WSDL描述web服务的三个基本属性: ●服务做些什么? 服务所提供的操作(方法); ●如何访问服务?●如何访问服务? 数据格式以及访问服务操作的必要协议; ●服务位于何处? 由特定协议决定的网络地址,如URL。 ●Web服务描述语言(Web Services Description 务 p Language WSDL)是WebServices技术重要组成部分。 ●WSDL描述了分布在Internet环境中服务操作的抽象定 义接口和服务的具体实现端口 实现远程计算资源共义接口和服务的具体实现端口,实现远程计算资源共 享。 面向服务视图2.2 面向服务视图 JAVA2WSDLWSDL2JAVA UDDI 客户端(人) Content 发布发现与定位 运行时浏览器AJAX 客户端(机器) 操作  规范描述资源与协议变换  实现自动服务部署和调用 资源 服务 客户端(机器) 资源 2.3 WSDL特点 实 务体系结构的松散耦合●实现 Web 服务体系结构的松散耦合; ●无论是请求者还是提供者可以各自独立地使用平●无论是请求者还是提供者可以各自独立地使用平 台、编程语言或分布式对象模型。 2.4 WSDL文档框架 ● WSDL是XML描述的网络服务,基于消息机制、包 含面向文本或面向过程信息的操作集合。 ● 操作及消息的抽象定义与它们具体的网络实现和 数据格式绑定是分离的 这样就可以重用这些抽象数据格式绑定是分离的,这样就可以重用这些抽象 定义。 案例: Ct S i服务CustomerService服务 有一个getCustomerAddress()操作 输入客户ID 输出街道 城市 邮编输入客户ID,输出街道、城市、邮编 考虑一下一个WSDL中应该包含哪些元素? ● 有些具体的操作? ● 有哪些消息?消息格式是什么?● 有哪些消息?消息格式是什么? ● 采用什么样的传输协议? ● 在哪里可以找到服务的实现 ?● 在哪里可以找到服务的实现 ? WSDL1 1 结构WSDL1.1 结构 5个部分构成5个部分构成 服务接口定义服务接口定义 ●服务接口组成了服务描述中的可重用部分,包括 type元素、message和portType。  types元素中描述消息中复杂数据类型的使用。 素指定 数据类型组 消息的各个 message元素指定XML 数据类型组成消息的各个 部分。操作的输入或输出(参数)被定义为 素message 元素。  portType元素中定义了Web服务的操作。操作定 portType元素中定义了Web服务的操作。操作定 义了输入和输出数据流中可以出现的XML消息。 服务实现定义 服务实现定义是一个描述给定服务提供者如何 实现特定服务接口的WSDL文档。有binding和 services。 ● binding 元素描述特定服务接口的协议 数● binding 元素描述特定服务接口的协议、数 据格式、安全性和其它属性。 素 务 素包含 组 素● service元素。服务元素包含一组port元素。 端口将端点与来自服务接口定义的binding 元 素关联起来素关联起来。 WSDL文档框架 WSDL1 1WSDL1.1 命名空间 wsdl http://schemas.xmlsoap.org/wsdl/ soap http://schemas.xmlsoap.org/wsdl/soap/ http http://schemas.xmlsoap.org/wsdl/http/ i htt // h l / dl/ i /mime http://schemas.xmlsoap.org/wsdl/mime/ soapenc http://schemas.xmlsoap.org/soap/encoding/ soapenv http://schemas.xmlsoap.org/soap/envelope/ xsi http://www w3 org/2000/10/XMLSchema instancexsi http://www.w3.org/2000/10/XMLSchema-instance xsd http://www.w3.org/2000/10/XMLSchema 241>类型2.4.1> 类型 types元素包含了交换消息的数据类型定义。为了yp 实现最大的互操作性(interoperability)和平台中立性 (neutrality),WSDL选用XML Schema DataTypes,简称 作为标准类型系统 并将它作为固有类型系统XSD作为标准类型系统,并将它作为固有类型系统。 基类型基类型 复合类型复合类型 XML schema允许complex类型的定义,就像Cp 里是struct。 例如,为了定义类似如下的C的struct类型: 对应的 类型对应的XML Schema类型 yp 考虑一下一个Java中的对象如何表示? 用复合数据类型,利用特定的API 绑定工具进行转换绑定工具进行转换 考虑WDSL2 JAVA和JAVA2 WSDL的作用 2.4.2> 消息 元素定义 个操作的数据元素 每个消息均由 个或多个部件组成元素定义一个操作的数据元素。 每个消息均由一个或多个部件组成。 可以把这些部件比作传统编程语言中一个函数调用的参数 消息(message)name属性指 定了消息的名称。 * * 如果消息具有多个逻辑单位 则 如果消息具有多个逻辑单位,则 需要使用多个part元素。Eg:对应 几个输入参数 消息示例消息示例 "P2" 243> 端口类型定义 (T)2.4.3> 端口类型定义 (portType) 元素是最重要的 WSDL 元素。 它可描述 个 可被执行的操作它可描述一个 web service、可被执行的操作, 以及相关的消息。 WSDL 端口可描述由某个 web service 提供 的界面(合法操作)的界面(合法操作)。 2 4 4> binding元素2.4.4> binding元素 ●binding 元素有两个属性 - name 属性和 type 属性。 ●name 属性定义 binding 的名称,而 type 属性指向用于 binding 的端口。 ●soap:binding 元素有两个属性 - style 属性和 transport 属性。 ● tl 属性可取值 ""或 "d t" 在这个例子中我们●style 属性可取值 "rpc" 或 "document"。在这个例子中我们 使用 document。transport 属性定义了要使用的 SOAP 协议。 在这个例子中我们使用 HTTP。在这个例子中我们使用 HTTP。 ●operation 元素定义了每个端口提供的操作符。 ●对于每个操作,相应的 SOAP 行为都需要被定义。同时您 必须如何对输入和输出进行编码。在例子中我们使用了 "literal""literal"。 Binding栏把前三部分的抽象定义具体化 元素2.4.5> service元素 service是一套<port>元素 在一一对应形式service是一套<port>元素。在一一对应形式 下,每个<port>元素都和一个location关联。如 果同一个<binding>有多个<port>元素与之关联果同一个<binding>有多个<port>元素与之关联, 可以使用额外的URL地址作为替换。 在一个WSDL文档中 <service>的name属在一个WSDL文档中,<service>的name属 性用来区分不同的service。因为同一个service中可 以有多个端口 它们也有"name"属性以有多个端口,它们也有"name"属性。 服务中的访问端点具有如下的关系服务中的访问端点具有如下的关系: ●如果一个服务中有多个访问端点属于同一端口 类型,但是对应不同的绑定或者地址,则这些 访问端点可以相互替换。这使得WSDL文档使用 者根据需要选择访问端点。 ●通过检查访问端点可以确定服务的端口类型●通过检查访问端点可以确定服务的端口类型。 这使得WSDL文档的使用者能够根据它支持的端 口类型决定是否与一个特定的服务通讯口类型决定是否与一个特定的服务通讯。 portType binding binding binding port portport g g port 总结 25 消息交换方式2.5、消息交换方式 支持 种消息交换方式 来访问服务端点WSDL支持4种消息交换方式,来访问服务端点。 ●单向(One-way):服务访问端点接收消息;●单向(One way):服务访问端点接收消息; ●请求响应(Request-response):服务访问 端点接收请求消息 然 发 响应消息端点接收请求消息,然后发送响应消息; ●要求应答(Solicit-response):服务访问●要求应答(Solicit response):服务访问 端点发送要求消息,然后接收应答消息; 通知 务访问端点发送●通知(Notification):服务访问端点发送 通知消息。 单向操作 请求响应操作请求响应操作 3 关于消息传递模式的几点说明3、关于消息传递模式的几点说明 RPC与DOCUMNET RPC RPC(Remote Procedure Call)本质上 就是远程方法的调用。尽管Webservice是基于 XML的但是你仍然可以使用远程方法调用这 种模式来进行Webservice的实现,尤其是在那 种简单的请求相应的模型中。在这个过程中, 传输中的XML文件所描述的更多是有关远程 方法的信息,比如方法名,方法参数等等。 DOCTUMNET 即文档交换方式.与RPC相比较在XML文件 中不是做远程方法的映射 而是一份完整的中不是做远程方法的映射,而是 份完整的 自包含的业务文档,当Service端收到这份 文档后 先进行预处理(比如词汇的翻译和文档后,先进行预处理(比如词汇的翻译和 映射),然后再构造出返回消息。这个构造 返回消息的过程中 往往不再是简简单单的返回消息的过程中,往往不再是简简单单的 一个方法调用,而是多个对象协同完成一个 事务的处理 再将结果返回事务的处理,再将结果返回。 两者比较 ●DOCUMENT方法可以充分利用XML文件的功能去描述和●DOCUMENT方法可以充分利用XML文件的功能去描述和 验证一份业务文档 方法中 仅仅被用于描述方法的信息●RPC方法中XML仅仅被用于描述方法的信息。 ● DOCUMENT方法在客户的Service的提供者之间不再需 要紧密的约定 ●RPC方法需要客户和Service的提供者紧密相连,一旦方法需要客户和 的提供者紧密相连 方法发生变化,客户端就需要做相应的改动 ●业务数据是自包含的,显然DOCUMENT方法更利于采用●业务数据是自包含的,显然DOCUMENT方法更利于采用 异步处理 Encoded和Literal Edd和Lit l是两种Ti t 前者Encoded和Literal是两种Typing system,前者 对应http://schemas.xmlsoap.org/soap/encoding/,后者 利用XML S h 定义数据类型利用XML Schema定义数据类型。 encoded包含part的类型信息,比如 xsi:type=“xsd:int” literal是不包含part的类型信息但是通过literal是不包含part的类型信息但是通过 引用schema里的元素也可以容易的通过schema验证。 目前encoded已经很少使用 上述有几种组合? 3 UDDI3、UDDI 什么是UDDI 英文为 “Ui lD iti Di英文为 “Universal Description, Discovery and Integration”,可译为“通用描述、发现与集成 服务”服务”。 UDDI 是一个独立于平台的框架,用于通过使用 Internet 来描述服务,发现企业,并对企业服务进行 集成。 ●UDDI 指的是通用描述、发现与集成服务 ●UDDI 是一种用于存储有关 web services 的信息的 目录。目录。 ●UDDI 是一种由 WSDL 描述的 web services 界面的 目录目录。 ●UDDI 经由 SOAP 进行通信●UDDI 经由 SOAP 进行通信 UDDI基于什么? ●UDDI 使用 W3C 和 IETF 的因特网标准 比如 XML●UDDI 使用 W3C 和 IETF 的因特网标准,比如 XML、 HTTP 和 DNS 协议。 ●UDDI 使用 WSDL 来描述到达 web services 的界面 ●通过采用 SOAP 还可以实现跨平台的编程特性●通过采用 SOAP,还可以实现跨平台的编程特性 UDDI的好处 任何规模的行业或企业都能得益于 UDDI。在 UDDI 之前,还不任何规模的行业或企业都能得益于 UDDI。在 UDDI 之前,还不 存在一种 Internet 标准,可以供企业为它们的企业和伙伴提供有关其产 品和服务的信息。也不存在一种方法,来集成到彼此的系统和进程中。 UDDI 规范帮助我们解决的问题UDDI 规范帮助我们解决的问题: ●使得在成百万当前在线的企业中发现正确的企业成为可能 ●定义一旦首选的企业被发现后如何启动商业 ●扩展新客户并增加对目前客户的访问●扩展新客户并增加对目前客户的访问 ●扩展销售并延伸市场范围 满足 户 动的需 为在全球 济中快速合作的●满足用户驱动的需要,为在全球 Internet 经济中快速合作的 促进来清除障碍 UDDI如何被使用 假如行业发布了 个用于航班比率检测和预订假如行业发布了一个用于航班比率检测和预订 的 UDDI 标准,航空公司就可以把它们的服务注册到 个 UDDI 目录中 然后旅行社就能够搜索这个 UDDI一个 UDDI 目录中。然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。当此界面被找到后, 旅行社就能够立即与此服务进行通信 这样由于它使旅行社就能够立即与此服务进行通信,这样由于它使 用了一套定义良好的预订界面。 UDDI的工作原理 UDDI 注册中心包含了通过程序手段可以访问到UDDI 注册中心包含了通过程序手段可以访问到 的对企业和企业支持的服务所做的描述 。 UDDI 提供了一种编程模型和模式,它定义与注 册中心通信的规则。UDDI 规范中所有 API 都用 XML 来定义,包装在 SOAP 信封中,在 HTTP 上传输。 UDDI 消息在客户机和注册中心之间的流动UDDI 消息在客户机和注册中心之间的流动 ●第1 步软件公司和标准组织定义关于在 UDDI 中注册的行业或企 业的规范时,开始向注册中心发布有用的信息。这些规范叫做技 术模型或者更常见的说法是 Mdl术模型或者更常见的说法是 tModel 。 ●第 2 步公司会注册关于其业务及其提供的服务的描述。 ●第 3 步中所示,UDDI 注册中心会给每个实体指定一个在程序中 唯一的标识符,叫做唯一通用标识符(Unique Universal Identifier,q UUID)键,从而能随时了解所有这些实体的情况。UUID 键必须 是唯一的,并且在一个 UDDI 注册中心中从来都不会变化。这些 键看上去象格式化好的十六进制随机字符串(例如 C0B9FE13键看上去象格式化好的十六进制随机字符串(例如 C0B9FE13- 179F-413D-8A5B-5004DB8E5BB2)。可以利用这些键来引用与 之相关联的实体。在一个注册中心中创建的 UUID 键只在该注册之相关联的实体。在 个注册中心中创建的 UUID 键只在该注册 中心的上下文中有效。 ●第 4 步诸如电子交易场所(e-Marketplace)和搜索引擎等其它 类型的客户机与商业应用程序(例如,基于工作流聚合起来的 Wb服务)使用 UDDI 注册中心来发现它们感兴趣的服务Web 服务)使用 UDDI 注册中心来发现它们感兴趣的服务。 ●第5步企业就可以调用这些服务,简便的进行动态集成
还剩92页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

mnliuzhen1

贡献于2012-07-09

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf