原文地址:爱军的博客——WebService简介

一、为什么需要Web Service

笔记:

WebService 可以实现 跨(硬件、服务器、开发工具、平台、应用程序、程序语言……)共享数据和应用,多么强大!

当你困扰于以下难题,WebService可以完美解决!

  • 有没有一种办法可以实现跨应用程序和跨平台进行通信呢?
  • 换句话说,就是有什么办法可以实现应用程序 A 可以和应用程序 B 进行通信呢?
  • 换句话说,如何实现用不同的程序语言和不同厂商的软件开发工具开发的软件,那些已开发和部署的软件,能够实现分布式计算的目的?
  • 或者说是,用 Java 写的应用程序和用 . Net 开发的应用程序之间进行通信呢?
  • 或者说是,Windows Server 2008 服务器如何和UNIX 或者是 Linux 服务器进行连接呢?

WebServices 特点优势?

  • 可以通过 Web 服务来公开一些接口给其他人(程序)使用。
  • 可以将多个 WebServices 组合成为更为强大的 WebServices使用。

二、Web Service 体系结构

在 Web 服务的体系结构中,涉及到三个角色,一个是 Web 服务提供者,一个是 Web 服务中介者,还有一个就是 Web 服务请求者,同时还涉及到三类动作,即发布,查找,绑定

  • Web 服务提供者:可以发布 Web 服务,并且对使用自身服务的请求进行响应,Web 服务的拥有者,它会等待其他的服务或者是应用程序访问自己。
  • Web 服务请求者:也就是 Web 服务功能的使用者,它通过服务注册中心也就是 Web 服务中介者查找到所需要的服务,再利用 SOAP 消息向 Web 服务提供者发送请求以获得服务。
  • Web 服务中介者:也称为服务代理,用来注册已经发布的 Web 服务提供者,并对其进行分类,同时提供搜索服务,简单来说的话,Web 服务中介者的作用就是把一个 Web 服务请求者和合适的 Web 服务提供者联系在一起, 充当一个管理者的角色,一般是通过 UDDI 来实现。
  • 发布:通过发布操作,可以使 Web 服务提供者向 Web 服务中介者注册自己的功能以及访问的接口。
  • 发现(查找):使得 Web 服务请求者可以通过 Web 服务中介者来查找到特点的种类的 Web 服务。
  • 绑定:这里就是实现让服务请求者能够使用服务提供者提供的服务了。

WebServices 三种基本元素之 SOAPWSDLUDDI

笔记:

SOAP

SOAP 其指导理念是“唯一一个没有发明任何新技术的技术”,通过 XML 来实现消息描述,然后再通过 HTTP 实现消息传输。

WSDL

Web服务描述语言,描述了 Web 服务的三个基本属性:

(1)服务所提供的操作

(2)如何访问服务

(3)服务位于何处(通过 URL 来确定就 OK 了)

UDDI

是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web 服务。存放的是关于 Web 服务的信息。

UDDI 通过 SOAP 进行通讯。

三、开发 Web Service

(1)开发阶段:

实现一个 Web 服务,使这个 Web 服务能响应和接收 SOAP 消息,

(这个呢,其实可以通过 Visual Studio 来帮助实现),

定义好逻辑模块(这个 Web 服务总要干点事情吧),

然后再撰写 WSDL 文件(这个呢,开发工具会自动生成的,不需要人工撰写了)

(2)部署阶段:

指定 Web 服务的传输协议,将 Web 服务注册到相应服务描述部署文件(这些也是可以由工具来自动完成的)

(3)发布阶段:

将 Web 服务的接口和调用的地址公开给客户端调用,

常用的发布方式为基于 Web 提供的 WSDL 的链接,当然 UDDI 也是一个选择。

学习 WebService 第一步:体系结构、三元素SOAP/WSDL/UDDI的更多相关文章

  1. 学习Java第一步:安装Intellij IDEA和JDK

    注:其实真正学习一门新语言的第一步并不是安装开发工具,我是C#转JAVA,有一点编程经验了,所以可以直接跳过前面几步,直接上IDE. 1.下载IntelliJ IDEA [官网] http://www ...

  2. webservice SOAP WSDL UDDI简介

    WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...

  3. WebService三大基本元素 SOAP WSDL UDDI

    转自:https://blog.csdn.net/hhooong/article/details/51763128 1.SOAP 即 Simple Object AccessProtocol 也就是简 ...

  4. html5学习之第一步:认识标签,了解布局

    图1. Acme United的网页的规划 Header区的例子包含了页面标题和副标题,< header>标签被用来创建页面的Header区的内容.除了网页本身之外,< header ...

  5. 学习opengl第一步

    有两个地址一个是学习opengl基础知识的网站, 一个是博客园大牛分享的特别好的文章. 记录一下希望向坚持做俯卧撑一样坚持下去. 学习网站:http://learnopengl-cn.readthed ...

  6. Spring 开发第一步(三)Spring与JDBC

    <spring in action 3rd>中的前面4章讲解的是Spring的核心,也就是DI/IOC和AOP .从第5章开始是Spring在企业开发中的各个方面的应用.其实作为笔者从事的 ...

  7. WebService SOAP WSDL UDDI 使用php的curl、PHP5的SoapClient实现同步

    一.基本名词 WebService: WebService是一种跨编程语言和跨操作系统平台的远程调用技术.不同系统,不同语言的数据交换方法都是不同的,这就导致在不同系统,不同语言之间传递数据很麻烦,基 ...

  8. Qt 学习第一步 做计划和确定目标

    接下来開始一步步深入学习Qt. 学习的第一步是整理资料,也就是找书和sample. 逛了一些论坛,推荐以下3本书 1> C++ GUI programming with Qt 4(2nd Edi ...

  9. Vue踩坑第一步,安装Vue最新版本

    学习vue第一步肯定是安装vue-cli,那么肯定想去搜下如何安装vue-cli呢? 网上搜到的结果大都是: npm i vue-cli -g 输入vue -V发现: 输入node -v发现: 自己明 ...

随机推荐

  1. 第011课_串口(UART)的使用

    from: 第011课_串口(UART)的使用 第001节_辅线1_硬件知识_UART硬件介绍 1. 串口的硬件介绍 UART的全称是 Universal Asynchronous Receiver ...

  2. Win10开机启动项

    键盘输入:win+r 输入命令:shell:startup

  3. GC执行finalize的过程以及对象的一次自我拯救

    参考资料:深入理解java虚拟机 /** * 此代码演示了两点: * 1.对象可以在被GC时自我拯救 * 2.这种自救的机会只有一次,因为一个对象的finalize()方法只会被系统自动调一次 */ ...

  4. JavaScript无提示关闭当前页面窗口,兼容IE/Firefox/Chrome

    <script type="text/javascript" language="javascript"> function fc(){ var b ...

  5. sql 经典加强巩固练习题

    由于本人需要加强巩固一下数据库知识,就搜罗了一些题目来练习,感觉不错,故分享一下资源难度层度依次上升这50道里面自认为应该没有太多错误,而且尽可能使用了最简单或是最直接的查询,有多种不相上下解法的题目 ...

  6. python入门:求1-2+3-4+5...99的所有数的和(自写)

    #!/usr/bin/env pyhton # -*- coding:utf-8 -*- #求1-2+3-4+5...99的所有数的和(自写) """ 给x赋值为0,给y ...

  7. overtrue/wechat 包 由 sys_get_temp_dir 引发的 the directory "c:\Windows" is not writable

    vendor\overtrue\wechat\src\Foundation\Application.php registerBase 方法 在初始化属性时 $this['cache'] = funct ...

  8. Linux异常体系之vector_stub宏解析

    ARM-Linux汇编的宏定义语法说明如下: 使用注意: 1.宏定义以.macro开始,以.endm结束 2.可带参数,参数可有默认值 3.直接使用参数的名字\arg vector_stub宏的功能: ...

  9. LeetCode(234) Palindrome Linked List

    题目 Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) t ...

  10. C与C++接口相互调用

    转载于:http://blog.csdn.net/lincoln_2012/article/details/50801080 项目中经常使用C和C++混合编程,那么,在调用对方接口时,总是不可避免地出 ...