




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WebService技术架构 国家软件外包人才培训 实训 基地2008 2 19作者 JimmyE MAil jimmyrubya 目录 Webservice介绍Webservice技术构成Webservice开发SSSS Webservice介绍 WebService简介WebService应用 互连设备WebService应用 整合应用WebService优点WebService缺点 WebService简介 WebService的主要目标是跨平台的可互操作性 为了达到这一目标 WebService完全基于XML 可扩展标记语言 XSD XMLSchema 等独立于平台 独立于软件供应商的标准 是创建可互操作的 分布式应用程序的新平台 WebService是一个协议 相当于http协议 能够在一个分布式的计算环境中动态地描述 发布 发现和调用服务 Webservice介绍 WebService简介WebService应用 互连设备WebService应用 整合应用WebService优点WebService缺点 WebService应用 互连设备 Webservice介绍 WebService简介WebService应用 互连设备WebService应用 整合应用WebService优点WebService缺点 WebService应用 整合应用 Application Application Application XML XML XML XML XML XML XML XML XML Webservice介绍 WebService简介WebService应用 互连设备WebService应用 整合应用WebService优点WebService缺点 WebService优点 一 跨防火墙的通信如果应用程序有成千上万的用户 而且分布在世界各地 那么客户端和服务器之间的通信将是一个棘手的问题 因为客户端和服务器之间通常会有防火墙或者代理服务器 举个例子 在应用程序里加入一个新页面 必须先建立好用户界面 Web页面 并在这个页面后面 包含相应商业逻辑的中间层组件 还要再建立至少一个ASP页面 用来接受用户输入的信息 调用中间层组件 把结果格式化为HTML形式 最后还要把 结果页 送回浏览器 要是客户端代码不再如此依赖于HTML表单 客户端的编程就简单多了 WebService优点 一 跨防火墙的通信如果中间层组件换成WebService的话 就可以从用户界面直接调用中间层组件 从而省掉建立ASP页面的那一步 要调用WebService 可以直接使用MicrosoftSOAPToolkit或 NET这样的SOAP客户端 也可以使用自己开发的SOAP客户端 然后把它和应用程序连接起来 不仅缩短了开发周期 还减少了代码复杂度 并能够增强应用程序的可维护性 同时 应用程序也不再需要在每次调用中间层组件时 都跳转到相应的 结果页 WebService优点 二 应用程序集成例如 有一个订单登录程序 用于登录从客户来的新订单 包括客户信息 发货地址 数量 价格和付款方式等内容 还有一个订单执行程序 用于实际货物发送的管理 这两个程序来自不同软件厂商 一份新订单进来之后 订单登录程序需要通知订单执行程序发送货物 通过在订单执行程序上面增加一层WebService 订单执行程序可以把 AddOrder 函数 暴露 出来 这样 每当有新订单到来时 订单登录程序就可以调用这个函数来发送货物了 WebService优点 三 B2B的集成用WebService集成应用程序 可以使公司内部的商务处理更加自动化 但当交易跨越供应商和客户 突破公司的界限时会怎么样呢 跨公司的商务交易集成通常叫做B2B集成 WebService是B2B集成成功的关键 通过WebService 公司可以把关键的商务应用 暴露 给指定的供应商和客户 例如 把电子下单系统和电子发票系统 暴露 出来 客户就可以以电子的方式发送订单 供应商则可以以电子的方式发送原料采购发票 WebService只是B2B集成的一个关键部分 还需要许多其它的部分才能实现集成 WebService优点 三 B2B的集成用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性 只要把商务逻辑 暴露 出来 成为WebService 就可以让任何指定的合作伙伴调用这些商务逻辑 而不管他们的系统在什么平台上运行 使用什么开发语言 这样就大大减少了花在B2B集成上的时间和成本 让许多原本无法承受EDI的中小企业也能实现B2B集成 WebService优点 四 软件和数据重用WebService在允许重用代码的同时 可以重用代码背后的数据 使用WebService 再也不必像以前那样 要先从第三方购买 安装软件组件 再从应用程序中调用这些组件 只需要直接调用远端的WebService就可以了 举个例子 要在应用程序中确认用户输入的地址 只需把这个地址直接发送给相应的WebService 这个WebService就会帮你查阅街道地址 城市 省区和邮政编码等信息 确认这个地址是否在相应的邮政编码区域 WebService的提供商可以按时间或使用次数来对这项服务进行收费 这样的服务要通过组件重用来实现是不可能的 那样的话你必须下载并安装好包含街道地址 城市 省区和邮政编码等信息的数据库 而且这个数据库还是不能实时更新的 Webservice介绍 WebService简介WebService应用 互连设备WebService应用 整合应用WebService优点WebService缺点 WebService缺点 一 单机应用程序目前 企业和个人还使用着很多桌面应用程序 其中一些只需要与本机上的其它程序通信 在这种情况下 最好就不要用WebService 只要用本地的API就可以了 COM非常适合于在这种情况下工作 因为它既小又快 运行在同一台服务器上的服务器软件也是这样 最好直接用COM或其它本地的API来进行应用程序间的调用 当然WebService也能用在这些场合 但那样不仅消耗太大 而且不会带来任何好处 WebService缺点 二 局域网的同构应用程序在许多应用中 所有的程序都是用VB或VC开发的 都在Windows平台下使用COM 都运行在同一个局域网上 例如 有两个服务器应用程序需要相互通信 或者有一个Win32或WinForm的客户程序要连接局域网上另一个服务器的程序 在这些程序里 使用DCOM会比SOAP HTTP有效得多 与此相类似 如果一个 NET程序要连接到局域网上的另一个 NET程序 应该使用 NETremoting 有趣的是 在 NETremoting中 也可以指定使用SOAP HTTP来进行WebService调用 不过最好还是直接通过TCP进行RPC调用 那样会有效得多 目录 Webservice介绍Webservice技术构成Webservice开发SSSS Webservice技术构成 WebServices协议栈WebServices工作流程SOAPWSDLUDDIDemo WebServices协议栈 WebServices协议栈 MachineA MachineB Invoke WSDLproxy WSDLstub WebService Webservice技术构成 WebServices协议栈WebServices工作流程SOAPWSDLUDDIDemo WebServices工作流程 Design TimeorDynamic Runtime XMLwithservice描述 XML SOAPBODY WebService WebService客户端 UDDI http www uddi org 链接到DISCO或者WSDL文档 Webservice技术构成 WebServices协议栈WebServices工作流程SOAPWSDLUDDIDemo SOAP SimpleObjectAccessProtocolSOAP是一个协议规范 定义了传递XML encoded数据时的统一方式 同时它也定义了使用HTTP作为底层通信协议时 执行远程调用 RFC 的方法 Webservice技术构成 WebServices协议栈WebServices工作流程SOAPWSDLUDDIDemo WSDL WebserviceDescriptionLanguage一个WSDL文档在定义网络服务时遵循以下几个原理 类型 使用某种类型的系统进行数据类型定义的容器 如XSD 消息 一种抽象的 被定义类型的通信数据 操作 由服务所支持的一个抽象描述的动作 端口类型 由一个或多个端点支持的一个操作的抽象集合 绑定 针对一个特定端口类型的具体的协议和数据格式规范 端口 被定义成一个结合绑定和网络地址的一个单一的端点 服务 相关端点的集合由此可见 WSDL为客户提供了一个服务描述的模板 Webservice技术构成 WebServices协议栈WebServices工作流程SOAPWSDLUDDIDemo UDDI UniversalDescription DiscoveryandIntegrationUDDI为客户提供了一种动态查找其它Web服务的机制 可以将它看作商业应用程序的DNS服务 Webservice技术构成 WebServices协议栈WebServices工作流程SOAPWSDLUDDIDemo Demo DOMvs SAX许多的Webservice开发环境 将开发者从底层的XML文档的解析和处理中解放出来 他们提供了自动化或者很方便的工具 使得这一过程变得很简单 但是对于一些有特殊要求的Webservice应用 比如需要更好的柔性或者对速度要求特别高的应用 就需要手工处理XML文档 这时候两种XML解析的模型 DOM和SAX的选择 将成为重要的问题 DOM使用树状图的方式解析XML文档 而SAX则更多的采用事件驱动的模型 Demo DOMvs SAXDOM先将XML文档映射成一颗树 然后通过采用一系列与树相关的操作去处理这份文档 这种方法有很多的好处 首先开发者很容易理解 使用一颗树这对于开发者来说是最常见不过的了 DOM最常用于XML在Service中需要频繁修改的场合 当然DOM也有它的缺点 在处理XML文档的时候 它需要载入整个文档 而不管你需要修改的是否只是其中的一小部分 因此它的运行效率以及对内存的使用显然是不能接受的 尤其是面对很大的XML文档 SAX使用事件驱动的模型来处理XML文档 通过一系列事件的触发 来完成对XML的解析 你可以只关心你所要处理的事件 当这些事件发生时 会调用到相应的回调函数来通知到你 采用这种方式就可以在很大程度上提高XML文档解析的效率 但是它的缺点在于难于使用 以及对同一文档的多次处理会存在一些问题 总而言之 DOM更适合处理那种文档型的XML文件 而SAX则适于那种想直接将XML结构映射成在你系统中的一个对象的操作 比如将一个XML结构直接映射成JAVA中的一个Class 或者那种针对XML文件中特殊Tag的操作 目录 WebService介绍WebService技术构成WebService开发SSSS WebService开发 用Axis开发基于Java的Web服务目前WebService的实现主要有 1 sun的JWSDP JavaWeb服务开发人员包 JavaWebServicesDeveloperPack JWSDP 是一个工具和库的集合 2 AxisApache开源项目的一个子项目 3 XFire也是个开源项目 WebService开发 Axis简介Axis的安装测试Axis开发WebService实例 Axis简介 Axis框架来自Apache开放源代码组织 它是基于JAVA语言的最新的SOAP规范 SOAP1 2 和SOAPwithAttachments规范 来自ApacheGroup 的开放源代码实现 有很多流行的开发工具都使用AXIS作为其实现支持Web服务的功能 例如JBuilder以及著名的EclipseJ2EE插件Lomboz AXIS的最新版本是2 0 可以从http ws apache org axis index html下载 Axis简介 下图是AXIS核心引擎的体系结构图 整个AXIS项目包括以下几个部分 消息流子系统传输框架子系统数据编码子系统 WebService开发 Axis简介Axis的安装与测试Axis开发WebService实例 Axis的安装与测试 环境说明安装JDK1 6 0 01 MyEclipse Eclipse平台版本 3 0 2WebLogicServer8 1SP1ApacheAxis1 4 http ws apache org axis Axis的安装与测试 步骤在IDE开发工具中 创建一个Web工程 工程名如 axis 将下载的Axis包中webapps axis目录中的所有文件拷贝到axis工程目录的webroot目录中 然后刷新工程 在IDE开发工具中 配置WebLogic应用服务器 并将axis工程添加到WebLogic服务器上 Axis的安装与测试 步骤启动WebLogic服务器 打开IE 在地址栏中输入 http localhost 7001 axis测试 测试成功出现下面的图片 Axis的安装与测试 步骤点击超链接Validate后 AXIS会自动检查所需的每一个JAVA组件 这协组件分为 必需组件以及可选组件 必须保证所有必需组件都存在 WebService开发 Axis简介Axis的安装与测试Axis开发WebService实例 WebService开发 Axis简介Axis的安装与测试Axis开发WebService实例 Axis开发WebService实例 Axis服务的发布Axis提供了两种服务发布方式 1 即时发布 InstantDeployment 2 定制发布 CustomDeployment 即时发布对即时发布的支持是Axis的特色之一 使用即时发布使用户只需有提供服务的Java类的源代码 即可将其迅速发布成Web服务 每当用户调用这类服务的时候 Axis会自动进行编译 即使服务器重启了也不必对其做任何处理 使用非常简单快捷 使用即时发布首先需要一个实现服务功能的Java源文件 将其扩展名改为 jws JavaWebService的缩写 然后将该文件放到 webapps axis 目录下即可 Axis开发WebService实例 Axis服务的发布即时发布在此给出一个从英里到公里的长度单位转换的服务 文件Distance java 将Distance java改为Distance jws并放到IDE中axis工程的WebRoot目录下 通过访问http localhost 7001 axis Distance jws wsdl可以看到这个服务的WSDL描述文件 这说明Distance服务被成功发布了 Axis开发WebService实例 Axis服务的发布Axis提供了两种服务发布方式 1 即时发布 InstantDeployment 2 定制发布 CustomDeployment 定制发布即时发布是一项令人激动的技术 它使Web服务的开发变得如此简单 然而即时发布并不总是最好的选择 比如有些应用系统是第三方提供的 我们没有购买源代码 只有 class文件 但我们又希望将这个应用系统的一些功能对外发布成Web服务 使其能够在更大范围内产生作用 这个时候即时发布技术就无能为力了 此外 即时发布技术并不灵活 无法进行更多的服务配置 这使得它并不能满足一些特定系统的需求 因此 Axis提供了另一种服务发布方式 这就是定制发布 Axis开发WebService实例 Axis服务的发布定制发布在此给出一个从加仑到升的容积单位转换的服务 文件Capacity java 将其编译成 class文件 放置到 WebLogic HOME user projects domains base domain autodeploy axis samples capacity 目录下 即可着手进行发布 定制发布不需要构建 jws文件 但必须创建服务发布描述文件deploy wsdd WebServiceDeploymentDescriptor的缩写 这个文件负责描述服务的名称 入口等信息 Axis开发WebService实例 Axis服务的发布定制发布将该文件也放到 WebLogic HOME axis samples capacity 目录下 然后可以采用Axis提供的一个客户端管理工具 AdminClient来完成服务的定制发布 在 WebLogic HOME axis samples capacity 目录下 运行 java cp AXISCLASSPATH org apache axis client AdminClientdeploy wsdd这里还有点问题可以看到以下运行结果 Processingfiledeploy wsddDoneprocessing这表明Capacity服务定制发布完成 通过访问http localhost 7001 axis services Capacity wsdl可以看到这个服务的WSDL描述文件 这说明Capacity服务被成功发布了 Axis开发WebService实例 服务的访问GET方式的服务访问一般的SOAP消息都是采用POST方式实现传递 但也可以通过GET方式来访问 比如以下给出的一个服务 HelloWorld jws 将该文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沪教2024英语二年级上册Unit 1 My Morning 单元测试卷(含答案含听力原文无音频)
- 抵押合同范本相片
- 企业代运营合同范本
- 租船合同范本有哪些
- 测绘咨询费合同范本
- 赠送面积厨房合同范本
- 设施出租租赁合同范本
- 养兔入股合同范本
- 非雇佣关系合同范本
- 无证房屋购房合同范本
- 机场考试试题大全及答案
- NB/T 11629-2024煤炭行业物资分类与编码规范
- 2025-2030中国增强型飞行视觉系统行业市场发展趋势与前景展望战略研究报告
- 电梯有限空间作业安全专项施工方案
- 《锂离子电池正极材料研究》课件
- 无呕吐病房的CINV管理
- 2025年福建南平市武夷山水茶业有限公司招聘笔试参考题库含答案解析
- 2025-2030年中国液压系统行业市场全景评估及未来趋势研判报告
- 高三开学第一课课件-
- JCC工作循环检查流程与标准
- 小学1530安全教育
评论
0/150
提交评论