原文地址:爱军的博客——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. 导入文件 服务器报错,有可能是 开发时候是window 服务器是linux,两个系统的文件系统的/和\是相反的,要注意这块

    导入文件 服务器报错,有可能是 开发时候是window 服务器是linux,两个系统的文件系统的/和\是相反的,要注意这块

  2. 2717: 递归函数求n的阶乘

    2717: 递归函数求n的阶乘 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1329  Solved: 942[Submit][Status][Web ...

  3. sqlite 新建实体时出错

    解决方式 手动下载 问题原因

  4. Html5的等学习

    看了w3c感觉是说明文档,没有详细的说明,然后就去看其他的 html5其实就是在html的基础上做了一些改变,感觉html5的推广还是需要时间的,因为习惯问题,虽然html5有很多很方便的标签如art ...

  5. Voyager下的关系模型

    关系:一个用户有几件商品,对应User表和Products表 在Products表下添加字段,user_id 打开products下的bread,点击Create Relationship Produ ...

  6. Voyager的路由

    修改默认的后台登录路由 打开web.php,把prefix值改为你想设置的值,如back: Route::group(['prefix' => 'back'], function () { Vo ...

  7. Vue实例和生命周期

    创建一个Vue实例 每个Vue应用都是通过Vue函数创建一个新的Vue实例开始: var vm = new Vue({ //选项 }) 数据与方法 当一个Vue实例被创建时,它向Vue的响应式系统中加 ...

  8. Python之路-时间模块

    time模块 import time 时间戳(time.time())--结构化时间(time.localtime)--字符串时间(time.strftime) import time print(t ...

  9. Python头脑风暴2

    今天想到了一个致富新途径:假如我在X东上班,我写个X宝爬虫,专门爬在X宝买奢侈品的土豪,然后我自己注册个X宝号,用脚本一个个加他们然后给他们发信息说我X东这还有比你更便宜更好的...不知道行不行啊(狗 ...

  10. spring+struts2+mybatis框架依赖pom.xml

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...