webservice入门教程_第1页
webservice入门教程_第2页
webservice入门教程_第3页
webservice入门教程_第4页
webservice入门教程_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WebService技术架构 国家软件外包人才培训(实训)基地 2008-2-19 作者: Jimmy E-MAil: 目录 lWebservice介绍 lWebservice技术构成 lWebservice开发 lS lS lS lS Webservice介绍 lWebService简介 lWebService应用互连设备 lWebService应用整合应用 lWebService优点 lWebService缺点 WebService简介 lWebService的主要目标是跨平台的可互操作性。 为了达到这一目标, WebService完全基于 XML( 可扩展标记语言)、 XSD( XMLSchema)等独 立于平台、独立于软件供应商的标准,是创建可 互操作的、分布式应用程序的新平台。 lWebService是一个协议,相当于 http协议 。 l能够在一个分布式的计算环境中动态地描述、发 布、发现和调用服务 Webservice介绍 lWebService简介 lWebService应用互连设备 lWebService应用整合应用 lWebService优点 lWebService缺点 WebService应用互连设备 Webservice介绍 lWebService简介 lWebService应用互连设备 lWebService应用整合应用 lWebService优点 lWebService缺点 WebService应用整合应用 Application Application Application XML XML XML XML XML XML XML XML XML Webservice介绍 lWebService简介 lWebService应用互连设备 lWebService应用整合应用 lWebService优点 lWebService缺点 WebService优点 l一、跨防火墙的通信 如果应用程序有成千上万的用户,而且分布 在世界各地,那么客户端和服务器之间的通信将 是一个棘手的问题。因为客户端和服务器之间通 常会有防火墙或者代理服务器。 举个例子,在应用程序里加入一个新页面, 必须先建立好用户界面 (Web页面 ),并在这个页 面后面,包含相应商业逻辑的中间层组件,还要 再建立至少一个 ASP页面,用来接受用户输入的 信息,调用中间层组件,把结果格式化为 HTML 形式,最后还要把 “结果页 ”送回浏览器。要是客 户端代码不再如此依赖于 HTML表单,客户端的 编程就简单多了。 WebService优点 l一、跨防火墙的通信 如果中间层组件换成 WebService的话,就可 以从用户界面直接调用中间层组件,从而省掉建 立 ASP页面的那一步。要调用 WebService,可以 直接使用 MicrosoftSOAPToolkit或 .NET这样的 SOAP客户端,也可以使用自己开发的 SOAP客户 端,然后把它和应用程序连接起来。不仅缩短了 开发周期,还减少了代码复杂度,并能够增强应 用程序的可维护性。同时,应用程序也不再需要 在每次调用中间层组件时,都跳转到相应的 “结果 页 ”。 WebService优点 l二、应用程序集成 例如,有一个订单登录程序,用于登录从客户 来的新订单,包括客户信息、发货地址、数量、 价格和付款方式等内容;还有一个订单执行程序 ,用于实际货物发送的管理。这两个程序来自不 同软件厂商。一份新订单进来之后,订单登录程 序需要通知订单执行程序发送货物。通过在订单 执行程序上面增加一层 WebService,订单执行程 序可以把 “AddOrder”函数 “暴露 ”出来。这样,每 当有新订单到来时,订单登录程序就可以调用这 个函数来发送货物了。 WebService优点 l三、 B2B的集成 用 WebService集成应用程序,可以使公司内 部的商务处理更加自动化。但当交易跨越供应商 和客户、突破公司的界限时会怎么样呢?跨公司 的商务交易集成通常叫做 B2B集成。 WebService是 B2B集成成功的关键。通过 WebService,公司可以把关键的商务应用 “暴露 ” 给指定的供应商和客户。例如,把电子下单系统 和电子发票系统 “暴露 ”出来,客户就可以以电子 的方式发送订单,供应商则可以以电子的方式发 送原料采购发票。 WebService只是 B2B集成的一 个关键部分,还需要许多其它的部分才能实现集 成。 WebService优点 l三、 B2B的集成 用 WebService来实现 B2B集成的最大好处在 于可以轻易实现互操作性。只要把商务逻辑 “暴露 ”出来,成为 WebService,就可以让任何指定的 合作伙伴调用这些商务逻辑,而不管他们的系统 在什么平台上运行,使用什么开发语言。这样就 大大减少了花在 B2B集成上的时间和成本,让许 多原本无法承受 EDI的中小企业也能实现 B2B集成 。 WebService优点 l四、软件和数据重用 WebService在允许重用代码的同时,可以重 用代码背后的数据。使用 WebService,再也不必 像以前那样,要先从第三方购买、安装软件组件 ,再从应用程序中调用这些组件;只需要直接调 用远端的 WebService就可以了。举个例子,要在 应用程序中确认用户输入的地址,只需把这个地 址直接发送给相应的 WebService,这个 WebService就会帮你查阅街道地址、城市、省区 和邮政编码等信息,确认这个地址是否在相应的 邮政编码区域。 WebService的提供商可以按时间 或使用次数来对这项服务进行收费。这样的服务 要通过组件重用来实现是不可能的,那样的话你 必须下载并安装好包含街道地址、城市、省区和 邮政编码等信息的数据库,而且这个数据库还是 不能实时更新的。 Webservice介绍 lWebService简介 lWebService应用互连设备 lWebService应用整合应用 lWebService优点 lWebService缺点 WebService缺点 l一、单机应用程序 目前,企业和个人还使用着很多桌面应用程 序。其中一些只需要与本机上的其它程序通信。 在这种情况下,最好就不要用 WebService,只要 用本地的 API就可以了。 COM非常适合于在这种 情况下工作,因为它既小又快。运行在同一台服 务器上的服务器软件也是这样。最好直接用 COM 或其它本地的 API来进行应用程序间的调用。当然 WebService也能用在这些场合,但那样不仅消耗 太大,而且不会带来任何好处。 WebService缺点 l二、局域网的同构应用程序 在许多应用中,所有的程序都是用 VB或 VC开 发的,都在 Windows平台下使用 COM,都运行在 同一个局域网上。例如,有两个服务器应用程序 需要相互通信,或者有一个 Win32或 WinForm的 客户程序要连接局域网上另一个服务器的程序。 在这些程序里,使用 DCOM会比 SOAP/HTTP有 效得多。与此相类似,如果一个 .NET程序要连接 到局域网上的另一个 .NET程序,应该使用 .NETremoting。有趣的是,在 .NETremoting中, 也可以指定使用 SOAP/HTTP来进行 WebService 调用。不过最好还是直接通过 TCP进行 RPC调用 ,那样会有效得多。 目录 lWebservice介绍 lWebservice技术构成 lWebservice开发 lS lS lS lS Webservice技术构成 lWeb Services协议栈 lWeb Services 工作流程 lSOAP lWSDL lUDDI lDemo Web Services协议栈 Web Services协议栈 Machine A Machine B Invoke WSDL proxy WSDLstub HTTP + SOAP1 Web Service UDDI Server 4 WSDL WSDL WSDL 3 WSDL request response 1 通讯协议 2 消息格式 描述语言3 发现机制4 XML 2 Webservice技术构成 lWeb Services协议栈 lWeb Services 工作流程 lSOAP lWSDL lUDDI lDemo Web Services 工作流程 那给我用用吧那给我用用吧 (SOAP) Design-Time or Dynamic Runtime 你都有什么服务啊你都有什么服务啊 ? (WSDL) /?WSDL XML with service 描述描述 /svc1 XML/SOAP BODY Web Service Web Service 客户端客户端 UDDI 查找服务查找服务 链接到链接到 DISCO 或者或者 WSDL 文档文档 Webservice技术构成 lWeb Services协议栈 lWeb Services 工作流程 lSOAP lWSDL lUDDI lDemo SOAP lSimple Object Access Protocol SOAP是一个协议规范,定义了传递 XML-encoded数据时的统一方式 ;同时它也 定义了使用 HTTP作为底层通信协议时,执 行远程调用 (RFC)的方法。 Webservice技术构成 lWeb Services协议栈 lWeb Services 工作流程 lSOAP lWSDL lUDDI lDemo WSDL l Web service Description Language 一个 WSDL文档在定义网络服务时遵循以下几个原理 : 类型 :使用某种类型的系统进行数据类型定义的容器 ( 如 XSD) 消息 :一种抽象的、被定义类型的通信数据 操作 :由服务所支持的一个抽象描述的动作 端口类型 :由一个或多个端点支持的一个操作的抽象集 合 绑定 :针对一个特定端口类型的具体的协议和数据格式 规范 端口 :被定义成一个结合绑定和网络地址的一个单一的 端点 服务 :相关端点的集合 由此可见, WSDL为客户提供了一个服务描述的模板。 Webservice技术构成 lWeb Services协议栈 lWeb Services 工作流程 lSOAP lWSDL lUDDI lDemo UDDI lUniversal Description, Discovery and Integration UDDI为客户提供了一种动态查找其它 Web服务的机制。可以将它看作商业应用 程序的 DNS服务。 Webservice技术构成 lWeb Services协议栈 lWeb Services 工作流程 lSOAP lWSDL lUDDI lDemo Demo lDOM vs. SAX 许多的 Webservice开发环境,将开发者从底 层的 XML文档的解析和处理中解放出来,他们提 供了自动化或者很方便的工具,使得这一过程变 得很简单。但是对于一些有特殊要求的 Webservice应用,比如需要更好的柔性或者对速 度要求特别高的应用,就需要手工处理 XML文档 。这时候两种 XML解析的模型 DOM 和 SAX的 选择,将成为重要的问题。 DOM使用树状图的方式解析 XML文档,而 SAX则更多的采用事件驱动的模型。 Demo l DOM vs. SAX DOM先将 XML文档映射成一颗树,然后通过采用一系列与树相 关的操作去处理这份文档。这种方法有很多的好处,首先开发者很容 易理解,使用一颗树这对于开发者来说是最常见不过的了。 DOM最 常用于 XML在 Service中需要频繁修改的场合。当然 DOM也有它的缺 点,在处理 XML文档的时候,它需要载入整个文档,而不管你需要修 改的是否只是其中的一小部分。因此它的运行效率以及对内存的使用 显然是不能接受的,尤其是面对很大的 XML文档。 SAX使用事件驱动的模型来处理 XML文档。通过一系列事件的触 发,来完成对 XML的解析,你可以只关心你所要处理的事件,当这些 事件发生时,会调用到相应的回调函数来通知到你。采用这种方式就 可以在很大程度上提高 XML文档解析的效率。但是它的缺点在于难于 使用,以及对同一文档的多次处理会存在一些问题。 总而言之, DOM更适合处理那种文档型的 XML文件,而 SAX则 适于那种想直接将 XML结构映射成在你系统中的一个对象的操作。( 比如将一个 XML结构直接映射成 JAVA中的一个 Class)或者那种针对 XML文件中特殊 Tag的操作。 目录 lWebService介绍 lWebService技术构成 lWebService开发 lS lS lS lS WebService开发 l用 Axis开发基于 Java的 Web服务 目前 WebService的实现主要有: 1、 sun的 JWSDP-Java Web服务开发人 员包( Java Web Services Developer Pack , JWSDP)是一个工具和库的集合。 2、 Axis Apache开源项目的一个子项目 。 3、 XFire 也是个开源项目。 WebService开发 lAxis简介 lAxis的安装测试 lAxis开发 WebService实例 Axis简介 lAxis框架来自 Apache 开放源代码组织,它 是基于 JAVA语言的最新的 SOAP 规范( SOAP 1.2)和 SOAP with Attachments 规 范(来自 Apache Group )的开放源代码 实现。有很多流行的开发工具都使用 AXIS 作为其实现支持 Web服务的功能,例如 JBuilder以及著名的 Eclipse J2EE插件 Lomboz。 AXIS的最新版本是 2.0,可以从 /axis/index.html下载。 Axis简介 l 下图是 AXIS核心引擎的体系结构图: l 整个 AXIS项目包括以下几个部分: 1. 消息流子系统 2. 传输框架子系统 3. 数据编码子系统 WebService开发 lAxis简介 lAxis的安装与测试 lAxis开发 WebService实例 Axis的安装与测试 环境说明 l安装 JDK 1.6.0_01( ) lMyEclipse + Eclipse 平台 版本: 3.0.2 lWebLogic Server 8.1 SP1 lApache Axis 1.4( /axis/ ) Axis的安装与测试 步骤 l在 IDE开发工具中,创建一个 Web工程,工 程名如: axis。 l将下载的 Axis包中 webapps/axis 目录中的 所有文件拷贝到 axis工程目录的 webroot 目 录中,然后刷新工程 。 l在 IDE开发工具中,配置 WebLogic应用服 务器。并将 axis工程添加到 WebLogic服务 器上。 Axis的安装与测试 步骤 l启动 WebLogic服务器,打开 IE,在地址栏 中输入: http:/localhost:7001/axis 测试。 测试成功出现下面的图片: Axis的安装与测试 步骤 l点击超链接 Validate后, AXIS会自动检查所 需的每一个 JAVA组件,这协组件分为:必 需组件以及可选组件,必须保证所有必需 组件都存在 。 WebService开发 lAxis简介 lAxis的安装与测试 lAxis开发 WebService实例 WebService开发 lAxis简介 lAxis的安装与测试 lAxis开发 WebService实例 Axis开发 WebService实例 l Axis服务的发布 Axis提供了两种服务发布方式: 1、即时发布( Instant Deployment)、 2、定制发布( Custom Deployment)。 n 即时发布 对即时发布的支持是 Axis的特色之一,使用即时发布使用户 只需有提供服务的 Java类的源代码,即可将其迅速发布成 Web 服务。每当用户调用这类服务的时候, Axis会自动进行编译,即 使服务器重启了也不必对其做任何处理,使用非常简单快捷。 使用即时发布首先需要一个实现服务功能的 Java源文件,将 其扩展名改为 .jws( Java Web Service的缩写),然后将该文 件放到 “webappsaxis” 目录下即可。 Axis开发 WebService实例 lAxis服务的发布 n 即时发布 在此给出一个从英里到公里的长度单位转 换的服务 。文件 Distance.java 。 将 Distance.java改为 Distance.jws并放到 IDE中 axis工程的 WebRoot目录下,通过访问 http:/localhost:7001/axis/Distance.jws?wsdl 可以看到这个服务的 WSDL描述文件,这说明 Distance服务被成功发布了。 Axis开发 WebService实例 l Axis服务的发布 Axis提供了两种服务发布方式: 1、即时发布( Instant Deployment)、 2、定制发布( Custom Deployment)。 n 定制发布 即时发布是一项令人激动的技术,它使 Web服务的开发变得如此 简单;然而即时发布并不总是最好的选择,比如有些应用系统是第三 方提供的,我们没有购买源代码,只有 .class文件,但我们又希望将 这个应用系统的一些功能对外发布成 Web服务,使其能够在更大范围 内产生作用,这个时候即时发布技术就无能为力了。此外,即时发布 技术并不灵活,无法进行更多的服务配置,这使得它并不能满足一些 特定系统的需求。 因此, Axis提供了另一种服务发布方式,这就是定制发布。 Axis开发 WebService实例 lAxis服务的发布 n 定制发布 在此给出一个从加仑到升的容积单位转换的服务 。文件 Capacity .java。 将其编译成 .class文件,放置到 “% WebLogic_HOME%.user_projectsdomains base_domainautodeployaxissamplescapacity ” 目录下,即可着手进行发布。 定制发布不需要构建 .jws文件,但必须创建服务发 布描述文件 deploy.wsdd( Web Service Deployment Descriptor的缩写),这个文件负责描述服务的名称 、入口等信息 。 Axis开发 WebService实例 l Axis服务的发布 n 定制发布 将该文件也放到 “% WebLogic_HOME%axissamplescapacity” 目录下,然后可以采用 Axis提供的一个客户端管理工具 AdminClient来完成服务的定制发布。 在 “% WebLogic_HOME% axissamplescapacity” 目录下, 运行: java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 这里还有点问题 可以看到以下运行结果: Processing file deploy.wsdd Doneprocessing 这表明 Capacity服务定制发布完成。 通过访问 http:/localhost:7001/axis/services/Capacity?wsdl可以看 到这个服务的 WSDL描述文件,这说明 Capacity服务被成功发布了。 Axis开发 WebService实例 l服务的访问 n GET方式的服务访问 一般的 SOAP消息都是采用 POST方式实现传递, 但也可以通过 GET方式来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论