2024首更---Web Service 教程

Web Services 简介


Web Services 可使您的应用程序成为 Web 应用程序。

Web Services 通过 Web 进行发布、查找和使用。


您应当具备的基础知识

在继续学习之前,您需要对下面的知识有基本的了解:

  • HTML
  • XML

如果您希望首先学习这些项目,请在我们的首页访问这些教程。


什么是Web Services?

  • Web Services 是应用程序组件
  • Web Services 使用开放协议进行通信
  • Web Services 是独立的(self-contained)并可自我描述
  • Web Services 可通过使用UDDI来发现
  • Web Services 可被其他应用程序使用
  • XML 是 Web Services 的基础

它如何工作?

基础的 Web Services 平台是 XML + HTTP。

HTTP 协议是最常用的因特网协议。

XML 提供了一种可用于不同的平台和编程语言之间的语言。

Web services 平台的元素:

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

我们会在本教程后面章节讲解这些主题。

为什么使用 Web Services?


几年前,Web services 的速度还没有快到让人们产生兴趣的程度。


最重要的事情是协同工作

由于所有主要的平台均可通过 Web 浏览器来访问 Web,不同的平台可以借此进行交互。为了让这些平台协同工作,Web 应用程序被开发了出来。

Web 应用程序是运行在 Web 上的简易应用程序。它们围绕 Web 浏览器标准被进行构建,几乎可被任何平台之上的任何浏览器来使用。


Web services 把 Web 应用程序提升到了另外一个层面

通过使用 Web services,您的应用程序可向全世界发布功能或消息。

Web services 使用 XML 来编解码数据,并使用 SOAP 借由开放的协议来传输数据。

通过 Web services,您的会计部门的 Win 2k 服务器可与 IT 供应商的 UNIX 服务器进行连接。


Web services 有两种类型的应用

可重复使用的应用程序组件

有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢?

Web services 可以把应用程序组件作为服务来提供,比如汇率转换、天气预报或者甚至是语言翻译等等。

比较理想的情况是,每种应用程序组件只有一个最优秀的版本,这样任何人都可以在其应用程序中使用它。

连接现有的软件

通过为不同的应用程序提供一种链接其数据的途径,Web services有助于解决协同工作的问题。

通过使用 Web services,您可以在不同的应用程序与平台之间来交换数据。

Web Services 平台元素


Web Services 拥有三种基本的元素: SOAP、WSDL 以及 UDDI。


什么是 SOAP?

基本的 Web services 平台是 XML + HTTP。

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

如需更多有关 SOAP 的知识,请访问我们的《SOAP 教程》


什么是 WSDL?

WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

  • WSDL 指网络服务描述语言
  • WSDL 使用 XML 编写
  • WSDL 是一种 XML 文档
  • WSDL 用于描述网络服务
  • WSDL 也可用于定位网络服务
  • WSDL 还不是 W3C 标准

如需更多有关 WSDL 的知识,请访问我们的《WSDL 教程》


什么是 UDDI?

UDDI是统一描述、发现和集成(Universal Description, Discovery, and Integration)的缩写。

UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。

它是一个基于 XML 的跨平台的描述规范,可以使世界范围内的企业在互联网上发布自己所提供的服务。

  • UDDI 指通用的描述、发现以及整合(Universal Description, Discovery and Integration)。
  • UDDI 是一种用于存储有关 web services 的信息的目录。
  • UDDI 是一种由 WSDL 描述的网络服务接口目录。
  • UDDI 经由 SOAP 进行通迅。
  • UDDI 被构建于 Microsoft .NET 平台之中。

 

Web Service 实例


任何应用程序都可拥有 Web Service 组件。

Web Service 的创建与编程语言的种类无关。

本章节我们将为大家介绍使用 PHP 的 SOAP 扩展来创建 Web Service。

SOAP有两种操作方式,NO-WSDL 与 WSDL。

  • NO-WSDL模式:使用参数来传递要使用的信息。
  • WSDL模式: 使用WSDL文件名作为参数,并从WSDL中提取服务所需的信息。

一个实例:PHP Web Service

在开始实例前,我们需要确定PHP是否安装了 SOAP 扩展。查看 phpinfo,出现以下信息表明已经安装了 SOAP 扩展:

在这个例子中,我们会使用 PHP SOAP 来创建一个简单的 Web Service。

服务端 Server.php 文件代码如下:

<?php 
// SiteInfo 类用于处理请求
Class SiteInfo
{/***    返回网站名称*    @return string **/public function getName(){return "菜鸟教程";}public function getUrl(){return "www.runoob.com";}
}// 创建 SoapServer 对象
$s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php"));// 导出 SiteInfo 类中的全部函数
$s->setClass("SiteInfo");
// 处理一个SOAP请求,调用必要的功能,并发送回一个响应。
$s->handle();
?>

客户端 Client.php 文件代码如下:

<?php
try{// non-wsdl方式调用web service// 创建 SoapClient 对象$soap = new SoapClient(null,array('location'=>"http://localhost/soap/Server.php",'uri'=>'Server.php'));// 调用函数 $result1 = $soap->getName();$result2 = $soap->__soapCall("getUrl",array());echo $result1."<br/>";echo $result2;
} catch(SoapFault $e){echo $e->getMessage();
}catch(Exception $e){echo $e->getMessage();
}

这时我们访问 http://localhost/soap/Client.php,输出结果如下所示:

您已经学习了 Web Services, 下一步学习什么内容呢?


Web Services 概要

本教程已经向您讲解了如何把应用程序转换为网络应用程序.

您已经学习了如何使用 XML 在应用程序间发送消息。

您也学习了如何从应用程序导出某项功能(创建一个 web service)。


您已经学习了 Web Services,下一步呢?

下一步您应当学习 WSDL 和 SOAP。

WSDL

WSDL 是基于 XML 的用来描述 Web services 以及如何访问它们的一种语言。

WSDL 可描述 web service,连同用于 web service 的消息格式和协议的细节。

SOAP

SOAP 是一种使应用程序有能力通过 HTTP 交换信息的基于 XML 的简易协议。

或者可以更简单地说:SOAP 是一种用于访问 web service 的协议。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/637621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年华数杯国际赛A题:放射性废水处理建模 思路模型代码解析

2024年华数杯国际赛A题&#xff1a;放射性废水处理建模&#xff08;Radioactive Wastewater from Japan&#xff09; 一、问题描述 2011年3月&#xff0c;日本东海岸发生了地震&#xff0c;引发了福岛第一核电站事故&#xff0c;导致三个核反应堆熔毁&#xff0c;并在一场巨大…

[java基础揉碎]基本数据类型转换

介绍 当java程序在进行赋值或者运算时&#xff0c;精度小的类型自动转换为精度大的数据类型&#xff0c; 这个就是自动类型转换。 数据类型按精度&#xff08;容量&#xff09;大小排序为: 自动类型转换注意和细节 1.有多种类型的数据混合运算时&#xff0c;系统首先自动…

如何在浏览器上设置 VPN 网络虚拟专用网络

如何在DT浏览器上设置 VPN 网络 虚拟专用网络&#xff08;VPN&#xff09;是一种用公用网络架设专用网络的技术。如何在DT浏览器上设置 VPN 呢&#xff0c;先下载DT浏览器&#xff0c;建议在官方网站下载最新版&#xff0c;安装&#xff0c;在DT浏览器首页点更多&#xff0c;网…

php基础学习之变量

php使用变量的必要性 PHP 是一种动态网站开发的脚本语言&#xff0c;动态语言特点是交互性&#xff0c;会有数据的传递&#xff0c;而 PHP作为“中间人”&#xff0c;需要进行数据的传递&#xff0c;传递的前提就是 PHP 能自己存储数据(临时存储) php变量的使用 定义&#xf…

HTML以及CSS相关知识总结(一)

近日就开始回顾html和css相关知识啦&#xff0c;并且会学习html5和css3的新知识&#xff0c;以下是我对记忆不太深刻的地方以及新知识点的总结&#xff1a; Web标准&#xff1a; 结构&#xff1a;用于对网页元素进行整理和分类&#xff0c;即HTML 表现&#xff1a;用于设置网页…

使用 Node 创建 Web 服务器

Node.js 提供了 http 模块&#xff0c;http 模块主要用于搭建 HTTP 服务端和客户端&#xff0c;使用 HTTP 服务器或客户端功能必须调用 http 模块&#xff0c;代码如下&#xff1a; var http require(http); 以下是演示一个最基本的 HTTP 服务器架构(使用 8080 端口)&#x…

Python实现稳健线性回归模型(rlm算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 稳健回归可以用在任何使用最小二乘回归的情况下。在拟合最小二乘回归时&#xff0c;我们可能会发现一些…

python写完程序怎么运行

python有两种运行方式&#xff0c;一种是在python交互式命令行下运行; 另一种是使用文本编辑器直接在命令行上运行。 注&#xff1a;以上两种运行方式均由CPython解释器编译运行。 当然&#xff0c;也可以将python代码写入eclipse中&#xff0c;用JPython解释器运行&#xff0c…

Spring MVC的原理

Spring MVC中的MVC即模型-视图-控制器&#xff0c;该框架围绕一个DispatcherServlet设计而成&#xff0c;DispatcherServlet会把请求分发给各个处理器&#xff0c;并支持可配置的处理器映射和视图渲染等功能。Spring MVC的具体工作流程如下&#xff1a; &#xff08;1&#xff…

微服务不死 — 共享变量在策略引擎项目的落地详解

01 背景 1、共享变量的提出 前段时间&#xff0c;来自亚马逊 Prime Video 团队的一个案例研究在开发者社区中掀起了轩然大波。大体是这样一件事&#xff0c;作为一个流媒体平台&#xff0c;Prime Video每天都会向客户提供成千上万的直播流。为了确保客户无缝接收内容&#xff0…

【动态规划】【数学】【C++算法】805 数组的均值分割

作者推荐 【动态规划】【数学】【C算法】18赛车 本文涉及知识点 动态规划 数学 805 数组的均值分割 给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 数组 或者 B 数组中&#xff0c;使得 A 数组和 B 数组不为空&#xff0c;并且 average(A) average(B)…

Java基础(2)

一 String、StringBuffer、StringBuilder String 为什么要设计成不可变的&#xff1f; String是不可变的&#xff08;修改String时&#xff0c;不会在原有的内存地址修改&#xff0c;而是重新指向一个新对象&#xff09;&#xff0c;String用final修饰&#xff0c;不可继承&…

两个bbox的IoU计算步骤分析

IoU&#xff1a;交并比&#xff0c;数值上等于交集面积除以并集面积。 两个bbox的位置关系无外乎以上三种情况&#xff1a;&#xff08;1&#xff09;部分相交。&#xff08;2&#xff09;不相交。&#xff08;3&#xff09;包含。 计算步骤&#xff1a; 计算交集&#xff08…

操作系统-操作系统引导(磁盘 操作系统引导过程)

文章目录 总览一个刚买来的磁盘&#xff08;硬盘&#xff09;往磁盘安装操作系统后操作系统引导过程例&#xff1a;windows操作系统的初始化程序 总览 一个刚买来的磁盘&#xff08;硬盘&#xff09; 此时空空如也 往磁盘安装操作系统后 操作系统在C盘 主引导记录不属于某…

java idea 中的 Scratches and Consoles

IDEA 中&#xff0c;"Scratches and Consoles" 是一个用于临时代码编辑和交互式开发的工具窗口&#xff0c;作用如下&#xff1a;Scratches&#xff08;草稿&#xff09;&#xff1a;Scratches 是一个用于临时编写和运行代码片段的工具&#xff0c;你可以在其中创建临…

Python基础第四篇(Python函数)

文章目录 一、函数介绍二、函数的定义三、函数的参数与返回值四、函数说明文档五、函数的嵌套六、变量域七、函数案例1.源代码2.读出结果 在程序设计领域&#xff0c;函数成为一个不可或缺的角色&#xff0c;它们为我们提供了精练、高效和易于管理的编程方式。本篇博客将带您深…

无人机航迹规划(四):七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划(提供MATLAB代码)

一、七种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖…

【JavaEE】_网络编程基础

目录 1. 网络编程基础 1.1 网络编程定义 1.2 网络编程中的基本概念 1.2.1 API 1.2.2.发送端和接收端 1.2.3 请求和响应 1.2.4 客户端和服务端 2. Socket 套接字 2.1 概念 2.2 分类 3. UDP数据报套接字编程 3.1 DatagramSocket API 3.1.1 含义 3.1.2 构造方法 3…

【C++记忆站】类和对象(一)

类和对象(一) 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间…

计算机:无所不在的角色与跨学科函数概念的生动探索

The Computer’s Ubiquitous Role and the Conceptual Underpinnings of Functions Across Disciplines: A Vivid Exploration 计算机&#xff1a;无所不在的角色与跨学科函数概念的生动探索 A computer is an extraordinary apparatus that has the remarkable ability to exe…