老李分享:webservice是什么?

 

前言

Web Services 是 Web 应用出于和其他 Web 应用以交互数据为目的的开放式标准(XML、SOAP、HTTP 等)。
Web Services 可以将你现有的应用程序转换为 Web 应用程序。
通过本系列指南中,您将了解到 Web Services 是什么,为什么和如何使用它们。本系列指南将对那些志在学习 Web Services 基础知识并在实践中进行实施的朋友有所帮助。
这是一套介绍 Web Services 概念的基本教程,并不要求读者事先具备这些技术的相关知识,但是如果你对 XML、HTTP、TCP/IP 等概念有基本了解的话那么读起来当然会更轻松一些。

定义

很多不同的书或者不同的机构对于 Web Services 提供了不同的定义。以下列出了其中的一些定义。

  • 一个 web service 是任何使自己能够通过互联网并使用一个标准化的 XML 消息传递体系进行访问的软件。XML 被用于对所有和 web service 的通信进行编码。例如,客户端通过发送一个 XML 消息对一个 web service 进行调用,然后等待一个相应的 XML 响应。由于所有的通信都是基于 XML,因此 web service 并不会被绑定到特定的操作系统或者编程语言 —— Java 可以和 Perl 进行交互;而 Windows 应用也可以和 Unix 应用进行交互。
  • web service 是一些独立的、模块化的、分布式的、动态应用,它们可以被描述、发布、定位或者通过网络来创建产品、流程和供应链。这些应用可以是本地化的,可以是分布式的,或者也可以是基于 web 的。web service 建立在诸如 TCP/IP、HTTP、Java、HTML 以及 XML 等开放标准之上。
  • web service 是使用互联网进行直接应用程序到应用程序交互的基于 XML 的信息交换系统。这样的系统可以包含程序、对象、消息或者文档。
  • 一个 web service 就是一系列用于在应用或者系统之间交换数据的开放协议和标准的集合。不同语言写的、运行在不同平台上的软件应用可以使用 web service 来通过计算机网络交互数据,就像单台计算机上的进程间通信一样。这种互操作性(比如,Java 和 Python 之间,或者 Windows 和 Linux 应用之间)归功于开放标准的使用。

作为总结,一个完整的 web service 就是符合以下条件的任何服务:

  • 可以通过互联网或私有(内部网)网络进行访问
  • 使用一个标准化的 XML 消息传递系统
  • 没有绑定到任何操作系统或者编程语言
  • 通过一个通用的 XML 语法的自描述性
  • 通过一个简单发现机制的可查找性

web service 组件

基本的 web service 平台是 XML + HTTP。所有标准的 web service 使用以下组件:

  • SOAP(简单对象访问协议)
  • UDDI(通用描述、发现与集成)
  • WSDL(web service 描述语言)

所有这些组件都将会在 web service 章节中进行讨论。

一个 web service 是如何工作的?

一个 web service 通过使用诸如 HTML、XML、WSDL 以及 SOAP 之类的开放标准来保证不同应用之间的通信。一个 web service 需要这些要素:

  • XML 标记数据
  • SOAP 传输消息
  • WSDL 来对 service 的可用性进行描述

你可以在 Solaris 上构建一个基于 Java 的 web service,它可以被你运行在 Windows 上的 VB 程序所访问。
你也可以使用 C# 在 Windows 上构建一个新的 web service,它可以被你的基于 JSP 的并且运行在 Linux 上的 web 应用所调用。

例子

假设有一个简单的账户管理和订单处理系统。会计人员使用一个构建于 VB 或者 JSP 的客户端应用来创建新的账户并输入新客户订单。
该系统的处理逻辑是用 Java 写的,被放在一台 Solaris 主机上,它同时还和一个 db 交互以保存数据。
执行这一操作的步骤如下:

  1. 客户端程序将帐户注册信息封装到一个 SOAP 消息
  2. 这个 SOAP 消息作为一个 HTTP POST 请求体被发送到 web service
  3. web service 对 SOAP 请求解包并将其转换为应用可以理解的一个指令
  4. 应用对所需信息进行处理并以该用户的一个新的唯一的账号进行响应
  5. 接下来,web service 将响应打包到另外一个 SOAP 消息,并作为 HTTP 请求的响应返还给客户端应用
  6. 客户端应用解包 SOAP 消息来获取账户注册的处理结果

老李分享:webservice是什么?的更多相关文章

  1. 老李分享:webservice是什么?1

    老李分享:webservice是什么?   前言 Web Services 是 Web 应用出于和其他 Web 应用以交互数据为目的的开放式标准(XML.SOAP.HTTP 等).Web Servic ...

  2. 老李分享:接口测试之jmeter

    老李分享:接口测试之jmeter   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...

  3. 老李分享:持续集成学好jenkins之内置命令

    老李分享:持续集成学好jenkins之内置命令   Jenkins命令调用方式:调用Jenkins命令设置job的描述信息. $JAVA_BIN-jar "$JENKINS_CLI_JAR& ...

  4. 老李分享:持续集成学好jenkins之安装

    老李分享:持续集成学好jenkins之安装   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  5. 老李分享:持续集成学好jenkins之解答疑问

    老李分享:持续集成学好jenkins之解答疑问   poptest(www.poptest.cn)在培训的过程中使用jenkins搭建持续集成环境,让学员真正交流持续集成到底是什么,怎么去做的. Je ...

  6. 老李分享:持续集成学好jenkins之Git和Maven配置

    老李分享:持续集成学好jenkins之Git和Maven配置   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...

  7. 老李分享:https协议

    老李分享:https协议   最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如果你访问 google,查看一下地址栏 ...

  8. 老李分享: JSON

    老李分享: JSON    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478, ...

  9. 老李分享:SSL协议相关证书

    老李分享:SSL协议相关证书   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088214 ...

随机推荐

  1. Android Asynctask的优缺点

    导语:之前做习惯了Framework层的开发,今天在武汉斗鱼公司面试APP客户端的开发,其中一道题是讲述Asynctask的优缺点,我靠,我只是知道有这么一个东西,会用而已,看来之前的生活太过于安逸, ...

  2. mycat

    mycat系列: mycat系列-概述 Cobar的十个秘密之一 Cobar的十个秘密之二 Cobar的十个秘密之三 Cobar的十个秘密之四 Cobar的十个秘密之五 Cobar的十个秘密之六 Co ...

  3. 解析令人费解的java泛型

    对于我们java中的泛型,可能很多人知道怎么使用并且使用的还不错,但是我认为想要恰到好处的使用泛型,还是需要深入的了解一下它的各种概念和内部原理.本文将尽可能的囊括java泛型中的重要的概念.主要内容 ...

  4. P177 test 6-3 UVa536

    //P177 test 6-3 #include<cstdio> #include<cstring> using namespace std; +],s2[+]; int re ...

  5. JAVA三大特性之一——封装

    自学java已经有一段时间了,但是感觉对于很多知识点还是有必要总结和整理一下,下面我就来说一下我对JAVA三大特性之一——封装特性的认识和理解. 封装,从字面意思可以看出来,就是包装,也就是把我们写好 ...

  6. Mr.聂 带你成为web开发大牛——入门篇(上)

    作为一名IT届的后生,当初也经历过懵懂无知的实习期,对那种无力感深有体会.在这,希望能用我这几年的开发经验,让各位即将踏入或者刚刚踏入web开发领域的新人们少走些弯路.鉴于这是入门篇,下面我就从零为大 ...

  7. spring事务源码解析

    前言 在spring jdbcTemplate 事务,各种诡异,包你醍醐灌顶!最后遗留了一个问题:spring是怎么样保证事务一致性的? 当然,spring事务内容挺多的,如果都要讲的话要花很长时间, ...

  8. ERP实施规范化及示例——邮件沟通

    上门服务前 上门服务计划,要详细,提前发给客户,反复确定双方的行程 上门服务所需的常规文档(培训SOP,培训记录) 项目组内反复确认本次上门要完成的事项 …… 上门服务中 先跟老板沟通项目进展,本次上 ...

  9. node c++多线程插件 第二天 c++指针

    虽然取名叫node多线程插件,但是目前还是在学习c++的情况. 今天谈一谈c++指针. c++指针就像是c#中的引用变量,例如一个Person类的实例zs{Name="张三",Ag ...

  10. Python之数据序列化(json、pickle、shelve)

    本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...