最近使用ODI的工具箱中的ODIInvokeWebService。因此简单了解下WebService的理论知识。

一、Web Service 简介

Web Service就是可编程的URL,使用标准的Internet协议(比如HTTP或 XML)远程可调用的应用程序组件。

二、为什么使用 Web Service?

本质:以标准化的方式实现企业内外各个不同服务系统之间的互调或者集成。

Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。

Web Service减少了应用接口的花费。为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

三、Web Service的3个要素

  • SOAP (简易对象访问协议)
  • UDDI (通用描述、发现及整合)
  • WSDL (Web Service 描述语言)

假如服务A要远程调用服务B上的服务

1、服务B要用一种标准化的语言 (WSDL)告诉服务A能提供什么样的服务,以及如何调用它的服务,它的服务在那里,这称为Web Service的服务描述 (what、how、where)

2、服务A要以一种标准化的通信消息格式(SOAP)告诉服务B, 它想调用什么服务并加入相应的输入参数等,当服务B完成服务后,会同样以标准化的通信方式告诉A相应的服务结果,这是Web Service的服务消息的 request和response。

3、服务B要注册到相应的公共网址,以便外部能找到,是URL部分。(UDDI)

3.1、SOAP

什么是 SOAP?HTTP + XML = SOAP

SOAP采用了已经广泛使用的两个协议:HTTP 和XML标准通用标记语言下的一个子集)。HTTP用于实现 SOAP 的RPC 风格的传输, 而XML 是它的编码模式。

  • SOAP 指简易对象访问协议
  • SOAP 是一种通信协议
  • SOAP 用于应用程序之间的通信
  • SOAP 是一种用于发送消息的格式
  • SOAP 被设计用来通过因特网进行通信
  • SOAP 独立于平台
  • SOAP 独立于语言
  • SOAP 基于 XML
  • SOAP 很简单并可扩展
  • SOAP 允许您绕过防火墙
  • SOAP 将被作为 W3C 标准来发展
Why SOAP?

对于应用程序开发来说,使程序之间进行因特网通信是很重要的。

目前的应用程序通过使用远程过程调用(RPC)在对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。

通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。

SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。

SOAP 消息的基本结构

一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:

  • 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
  • 可选的 Header 元素,包含头部信息
  • 必需的 Body 元素,包含所有的调用和响应信息
  • 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Header>
...
</soap:Header> <soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>

</soap:Envelope>

可以使用 SoapUI 或在ODI ODIInvokeWebService属性 XML请求 选项查看生成的soap请求消息

一个 SOAP 实例

WSDL(网络服务描述语言,Web Service Description Language)是一门基于 XML 的语言,用于描述 Web Service 以及如何对它们进行访问。

3.2.1 WSDL 文档结构

      一个基本的WSDL文档包含7个重要的元素:

  • Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。

  • Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。

  • Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。

  • PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。

  • Binding - 特定端口类型的具体协议和数据格式规范的绑定。

  • Port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。

  • Service- 相关服务访问点的集合。

WSDL types

types元素定义 Web Service 使用的数据类型。为了最大程度的平台中立性,WSDL 使用 XML Schema 语法定义在文档中的其他位置使用的复杂数据类型与元素;

WSDL import

import元素类似于XML模式文档中的import元素,用于从其他WSDL文档中导入WSDL定义;

WSDL message

message元素使用在WSDL文档的type元素中定义或在import元素引用的外部WSDL文档中定义的XML模式的内置类型、复杂类型或元素描述了消息的有效负载;<message> 元素定义一个操作的数据元素。每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。

WSDL Bindings

Binding元素将portType元素和operation元素赋给一个特殊的协议和编码样式;<binding> 元素为每个端口定义消息格式和协议细节。

WSDL Service

service元素负责将Internet地址赋给一个具体的绑定;

WSDL Operation

Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。operation元素使用一个或者多个message类型来定义他的输入和输出的有效负载;类似于java接口中定义的方法声明

WSDL portType

<portType>它可描述一个 Web Service、可被执行的操作,以及相关的消息。portType元素和operation元素描述了Web服务的接口并定义了他的方法。可以把该portType比作传统编程语言中的一个函数库(或一个模块、或一个类),而把每个操作比作传统编程语言中的一个函数。

WSDL 例子

3.3、UUID

UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。

UDDI是一种目录服务,企业可以使用它对 Web Service 进行注册和搜索。

UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

参考文档

WSDL 详解详细介绍了WSDL的结构,并附了例子

Web 服务编程,REST 与 SOAP

可供测试的在线webservice

Web Service 简介的更多相关文章

  1. SAP Web Service简介与配置方法

    [版权声明]本文为博主原创文章,转载请在明显位置注明出处. 一. SAP Web Service简介 二. SAP Web Service配置准备工作 1. 通过RZ10配置服务器名称和其他参数 2. ...

  2. Web Service简介与开发实例

    简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的 ...

  3. C# Web Service简介及使用

    一. 软件开发的形式 1.SaaS:Software as a Service(软件即服务) (1)将软件视为一种基础设施与服务 (2)网络无所不在,网络可以看成是一个软件服务的聚合体,是一个超级大& ...

  4. Web Service简介 内部资料 请勿转载 谢谢合作

    1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...

  5. 使用Web Service进行网络编程-----Web Service简介

    Android应用通常都是运行在手机平台上,手机系统的硬件资源是有限的,不管是存储能力还是计算能力都是有限的,在Android系统上开发.运行一些单用户.小型应用是可能的,但对于需要进行大量的数据处理 ...

  6. Web Service简介(一)

    这篇博文,我们对Web Service进行一个简单的介绍和认识,作为Web Service的入门.在学习之前,你需要对HTML和XML有基本的了解,Web Service并不难,而且非常的简单. 什么 ...

  7. Web Service简介

    1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...

  8. Web service简介 与servletContext的参数

    Web service顾名思义是基于web的服务,它是一种跨平台,跨语言的服务. 我们可以这样理解它,比如说我们可以调用互联网上查询天气信息的web服务,把它嵌入到我们的B/S程序中,当用户从我们的网 ...

  9. (转)Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

随机推荐

  1. MySQL中的IFNULL,IF,NULLIF函数

    MySQL中的IFNULL函数和IF函数 MySQL中的IFNULL函数类似于Oracle中的NVL函数,其表达式为:IFNULL(expr1,expr2),含义是:如果第一个参数不为空,则返回第一个 ...

  2. Vim 常用操作、查找和替换

    这篇文章来详细介绍 Vim 中查找相关的设置和使用方法. 包括查找与替换.查找光标所在词.高亮前景/背景色.切换高亮状态.大小写敏感查找等. 查找 在normal模式下按下/即可进入查找模式,输入要查 ...

  3. MySQL 锁模式

    InnoDB implements standard row-level locking where there are two types of locks, shared (S) locks an ...

  4. SharePoint 2013 基于表单 Membership 的身份验证

    其实关于SharePoint 2013 表单身份验证网上已经有很多了,比如SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authenticatio ...

  5. Mediator 中介者 MD

    中介者模式 简介 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 中介者模式也称为调解者模式或者调停者模式. 当程序存在大 ...

  6. linux命令学习——cat

    1.前言 今天需要处理一个oui.txt文件,需要从中抽丝man和orginaziton信息,导出到另外一个文件中.可以cat和grep命令进行操作.之前对cat命令了解一下,知道cat可以查看文件内 ...

  7. SPARK:作业基本运行原理

    Spark作业基本运行原理: 我们使用spark-submit提交一个spark作业之后,这个作业就会启动一个对应的Driver进程.根据你使用的部署模式(deploy-mode)不同:1)Drive ...

  8. [Functional Programming] Using JS, FP approach with Arrow or State Monad

    Using Naive JS: const {modify, get} = require('crocks/State'); const K = require('crocks/combinators ...

  9. 配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp

    配置 Windows 下的 nodejs C++ 模块编译环境 根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境&quo ...

  10. JavaScript 继承——三种继承方法及其优劣

    原文地址   本文内容 目的 继承的第一步--最简单的继承 私有变量/成员和原型 三种继承方式及其优劣 基本的原型继承 Yahoo JavaScript 模块模式 创建闭包的构造函数 三种方法的代码执 ...