乌鲁木齐做四维彩超哪凤凰L网站/个人网站推广方法
目录
1、WebService定义
解决问题:
2、WebService的工作原理
2.1 实现一个完整的Web服务包括以下步骤
2.2 调用方式
3、Web Service的核心组件
3.1 XML
3.2 SOAP
3.3 WSDL
3.4 UDDI
4、主流框架
4.1 AXIS(已淘汰)
4.2 XFire
4.3 CXF
5、Soap协议详解
1.Soap协议是什么
2.认识Soap
3.结论
4.SOAP小总结
6、WSDL详解
1.types
2.message
3.portType
4.binding
7、UDDI详解
1、WebService定义
Web Service是一个SOA(面向服务架构)的应用程序,它是不依赖于语言,不依赖于平台,可以
实现不同的语言(通过xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的
交互。
通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
简单可以理解成:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的
API。
这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。
从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应
用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。
解决问题:
-
不同系统、不同平台、不同语言之间的通信访问和调用。
-
应用程序的集成,不同业务的整合。
WebService实质就是实现应用程序之间通信,有两种应用程序通信的方法:
-
RPC 远程调用。
在客户端,RPC的通常方式是:实例化一个远程对象,并调用其方法和属性。
-
消息传递。
WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,
你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService 的应用程序叫做
客户。
2、WebService的工作原理
Web服务有两层含义:
1、它是指封装成单个实体并发布到网络上的功能集合体;
2、它是指功能集合体被调用后所提供的服务。
简单地讲,Web服务是一个URL资源,客户端可以通过编程方式请求得到它的服务,而不需要知
道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。
Web服务的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角色和发
布、发现、绑定三个动作构建的。
简单地说,Web服务提供者就是Web服务的拥有者,它耐心等待为其他服务和用户提供自己已有
的功能。
Web服务请求者就是Web服务功能的使用者,它利用SOAP消息向Web服务提供者发送请求以获得
服务。
Web服务中介者的作用是把一个Web服务请求者与合适的Web服务提供者联系在一起,它充当管
理者的角色,一般是UDDI。
这三个角色是根据逻辑关系划分的,在实际应用中,角色之间很可能有交叉:一个Web服务既可以
是Web服务提供者,也可以是Web服务请求者,或者二者兼而有之。
显示了Web服务角色之间的关系:其中,“发布”是为了让用户或其他服务知道某个Web服务的存在
和相关信息;“查找(发现)”是为了找到合适的Web服务;“绑定”则是在提供者与请求者之间建立
某种联系。
2.1 实现一个完整的Web服务包括以下步骤
-
Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册; (发布)
-
Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务; (发现)
-
Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读;(发现)
-
利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;(绑定)
-
Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。(绑定)
2.2 调用方式
webservice 的调用有3种方式:
-
httpget
-
httppost
-
httpsoap
soap的优点是可以传递结构化的数据,而前两种不行。
btw, soap 最终也是使用 HTTP 传送 XML。
3、Web Service的核心组件
3.1 XML
XML:(Extensible Markup Language) :扩展型可标记语言和HTTP
面向短期的临时数据处理、面向万维网络,是Soap的基础。
XML和HTML在形式上是一样的,但本质上确实不同的,XML是用来传输数据的,HTML是用来显
示数据的。
HTML的标签是预定义,而XML标签是自己定义的。
XML主要的构成是根元素和子元素。且必须前后对应,属性值必须用双引号或者单引号括起来。
形式如下:
<?xml version="1.0" encoding="UTF-8"?><root><header>响应头信息</header><body>响应结果信息</body></root>
XML的特性:
1.具有自我描述性。
2.可以在不中断应用程序的情况下进行扩展。
3.2 SOAP
SOAP(Simple Object Access Protocol) :简单对象访问协议
WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封
装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和
XML内容格式就是SOAP协议。
SOAP协议 = HTTP协议 + XML数据格式
SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD
的,XML是SOAP的数据编码方式。
3.3 WSDL
WSDL(Web Service Description Language) :WebService描述语言。
WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息,即:说明当前的
服务在哪,有哪些接口可以调用,分别是什么方法,什么参数等信息。一个web service对应一个
唯一的wsdl文档。
3.4 UDDI
UDDI(UnviversalDescription ,Discovery,andIntegration) :统一描述发现和集成协议。
UDDI是一种目录服务,企业可以使用它对WebServices进行注册和搜索。
4、主流框架
4.1 AXIS(已淘汰)
Axis (Apache extensible lnteraction System):阿帕奇可扩展交互系统
它是一款开源的webService运行引擎,本质上就是一个SOAP引擎,提供创建服务器端、客户端和
网关SOAP操作的基本框架。
Axis分为1.x系列和2系列,两个系列体系结构和使用上有较大的区别,相对而言,Axis1.x更加稳
定,文档也比较齐全。
官网: Apache Axis
4.2 XFire
XFire是下一代的java SOAP框架。XFire提供了非常方便的API,使用这些API可以开发面向服务
(SOA)的程序。它支持各种标准,性能优良(基于低内存的STAX模型)。
官网:http://xfire.codehaus.org/
4.3 CXF
Apache CXF = Celtix+ XFire
Apache CXF的前身叫Apache Celtixfire,现在已经正式更名为Apache CXF了,以下简称为CXF。
CXF继承了celtix和XFire两大开源项目的精华,提供了对JAX-WS全面的支持,并且提供了多种
Binding、DataBinding、Transport以及各种Format的支持,并且可以根据实际项目的需要,采用
代码优先(Code First)或者WSDL优先(WSDL First)来轻松地实现web Services的发布和使
用。
Apache CXF已经是一个正式的Apache顶级项目。
官网: Apache CXF -- Index
5、Soap协议详解
1.Soap协议是什么
简单对象访问协议(Simple Object AccessProtocol,SOAP)是一种轻量的、简单的、基于XML的
协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。
2.认识Soap
一条SOAP消息就是一个普通的XML文档。
所有构成元素均被声明于针对 SOAP 封装的默认命名空间中:
http://www.w3.org/2001/12/soap-envelope
以及针对 SOAP 编码和数据类型的默认命名空间:http://www.w3.org/2001/12/soap-encoding
一条SOAP消息就是一个普通的XML文档,包含下列元素
-
必需的Envelope元素,可把此XML文档标识为一条SOAP消息
必须要有的元素,是SOAP 消息的根元素。包含两个属性:
1 xlmns:soap。命名空间。这个属性值必须是 "http://www.w3.org/2001/12/soap-envelope"。
因为SOAP必须拥有与此命名空间相关联的一个Envelope元素。
2 encodingStyle。用于定义在文档中使用的数据类型。此属性可出现在任何 SOAP 元素中,并会
被应用到元素的内容及元素的所有子元素上。SOAP 消息没有默认的编码方式。
-
可选的Header元素,包含头部信息
这个元素是可选的,包含一些头部信息。包含有关 SOAP 消息的应用程序专用信息(比如认证、
支付等)。
如果Header元素被提供,则它必须是 Envelope 元素的第一个子元素。
有三个重要的属性:
1、mustUnderstand 。SOAP 的 mustUnderstand 属性可用于标识标题项对于要对其进行处理的接
收者来说是强制的还是可选的。假如您向 Header 元素的某个子元素添加了
"mustUnderstand="1",则它可指示
处理此头部的接收者必须认可此元素。假如此接收者无法认可此元素,则在处理此头部时必须失
效。
2、actor。用于将 Header 元素寻址到一个特定的端点。
3、encodingStyle。
-
必需的Body元素,包含所有的调用和响应信息。
必须要有的元素,包含实际的SOAP消息。
-
可选的Fault元素,提供有关在处理此消息所发生错误的信息
可选的元素,用于存留SOAP消息的错误和状态信息。如果已提供了 Fault 元素,则它必须是 Body
元素的子元素。
在一条 SOAP 消息中,Fault 元素只能出现一次。
<?xml version="1.0"?><soap:Envelopexmlns: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>
3.结论
SOAP是用于访问网络服务的协议。
一次WebService的调用,不是方法的调用 而是soap消息(xml格式规范的文档片段)之间的输入输出。
4.SOAP小总结
1.客户端到UUDI上寻找Service目录。
2.客户端获得WSDL文件。
3.客户端根据WSDL文件的约束和规范,创建SOAP客户端。
4.客户端根据SOAP访问Service。
SOAP 是一个基于类对象的传输协议。
主要包含以下四个部分:
1.封装。它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还
是必须的。
2.编码规则。它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。
序列化:序列化是指将数据从有结构清晰的语言定义的数据形式转化为二进制字符串,反序列化则
是序列化的逆操作。
3.RPC 表示。它定义了用于表示远程过程调用和应答的协定。
4.绑定。定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。
6、WSDL详解
网络服务描述语言,基于XML。用于描述WebService以及如何对它们进行访问。
WSDL文档是利用这些主要的元素来描述某个WebService的:
1.types
WebService使用的数据类型。为了实现平台无关性,使用 XML Schema语法来定义数据类型。
2.message
WebService使用的消息。类比函数调用的参数。它由一个或者多个 part 组成。
Part:消息参数
<message name="getTermRequest"><part name="term" type="xs:string"/></message>
3.portType
WebService执行的操作。类比c++一个函数库。它是WSDL 端口。特定端口类型的具体协议和数
据格式规范。
有四种操作类型。
One-way | 此操作可接受消息,但不会返回响应。 |
---|---|
Request-response | 此操作可接受一个请求并会返回一个响应 |
Solicit-response | 此操作可发送一个请求,并会等待一个响应。 |
Notification | 此操作可发送一条消息,但不会等待响应。 |
一个 request-response 操作的例子:
<message name="getTermRequest"><part name="term" type="xs:string"/></message><message name="getTermResponse"><part name="value" type="xs:string"/></message><portType name="glossaryTerms"><operation name="getTerm"><input message="getTermRequest"/><output message="getTermResponse"/></operation></portType>
portType中name属性:定义了一个端口。
operation元素定义了每个端口提供的操作符。name属性定义一个操作。
具体意义如下:定义了一个名为“getTerm”的操作。"getTerm" 操作会请求一个名为 "getTermRequest" 的输入消
息,此消息带有一个名为 "term" 的参数,并将返回一个名为 "getTermResponse" 的输出消息,此消息带有一个名为 "value" 的参数。
4.binding
WebService使用的通信协议。
一个实例如下:
<message name="getTermRequest"><part name="term" type="xs:string"/></message><message name="getTermResponse"><part name="value" type="xs:string"/></message><portType name="glossaryTerms"><operation name="getTerm"><input message="getTermRequest"/><output message="getTermResponse"/></operation></portType><binding type="glossaryTerms" name="b1"><soap:binding style="document"transport="http://schemas.xmlsoap.org/soap/http" /><operation><soap:operation soapAction="http://example.com/getTerm"/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation></binding>
binding 元素有两个属性
-
type 属性: 指向用于 binding 的端口,在这个例子中是 "glossaryTerms" 端口。
-
name 属性:定义 binding 的名称。
soap:binding 元素有两个属性
-
style 属性:可取值 "rpc" 或 "document"。在这个例子中我们使用 document。
-
transport 属性:定义了要使用的 SOAP 协议。在这个例子中我们使用 HTTP。
xmlns:xml namespace
7、UDDI详解
UDDI是一种目录服务,企业可以使用它对WebService 进行注册和搜索。
UDDI,英文为 "Universal Description, Discovery and Integration",可译为"通用描述、发现与集成服务"。
UDDI是一种目录,这个目录用于存储有关 WebService 信息。
例子:假如行业发布了一个用于航班比率检测和预订的 UDDI 标准,航空公司就可以把它们的服务
注册到一个UDDI 目录中。然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。当此
界面被找到后,旅行社就能够立即与此服务进行通信。
相关文章:

一篇文章掌握WebService服务、工作原理、核心组件、主流框架
目录 1、WebService定义 解决问题: 2、WebService的工作原理 2.1 实现一个完整的Web服务包括以下步骤 2.2 调用方式 3、Web Service的核心组件 3.1 XML 3.2 SOAP 3.3 WSDL 3.4 UDDI 4、主流框架 4.1 AXIS(已淘汰) 4.2 XFire 4.3 CXF 5、Soap协议详解…...

观成科技-加密C2框架EvilOSX流量分析
工具简介 EvilOSX是一款开源的,由python编写专门为macOS系统设计的C2工具,该工具可以利用自身释放的木马来实现一系列集成功能,如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信,通信内容为特…...

PCL 计算异面直线的距离
目录 一、算法原理二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,PCL 计算异面直线的距离,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 设置直线 A B AB A...

【数字人】9、DiffTalk | 使用扩散模型基于 audio-driven+对应人物视频 合成说话头(CVPR2023)
论文:DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation 代码:https://sstzal.github.io/DiffTalk/ 出处:CVPR2023 特点:需要音频对应人物的视频来合成新的说话头视频,嘴部抖…...

完成源示例
本主题演示如何创作和使用自己的完成源类,类似于 .NET 的 TaskCompletionSource。 completion_source 示例的源代码 下面的列表中的代码作为示例提供。 其目的是说明如何编写自己的版本。 例如,支持取消和错误传播不在此示例的范围内。 #include <w…...

业务和流程的关系
背景 概念不清,沟通就容易出现问题,最可怕会出现跑偏情况如何解决,数字化落地过程,程序是死的,最怕灵活,所以在沟通和编码,设计中,很重要的一点就是解决概念,澄清问题&a…...

【河海大学论文LaTeX+VSCode全指南】
河海大学论文LaTeXVSCode全指南 前言一、 LaTeX \LaTeX{} LATEX的安装二、VScode的安装三、VScode的配置四、验证五、优化 前言 LaTeX \LaTeX{} LATEX在论文写作方面具有传统Word无法比拟的优点,VScode作为一个轻量化的全功能文本编辑器,由于其极强的…...

学习python仅此一篇就够了(文件操作:读,写,追加)
python文件操作 文件编码 编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。 计算机中有许多可用编码: UTF-8 GBK BUG5 文件的读取操作 open()函数 在pyth…...

vue中 ref 和 $refs的使用
1. 作用 利用 ref 和 $refs 可以用于 获取 dom 元素, 或 组件实例 2. 获取 dom 使用步骤: 2.1 目标标签添加属性 :ref <div ref"chartRef">我是渲染图表的容器</div>2.2 通过$ref:获取标签 mounted() {console.log(this.$re…...

Centos7升级openssl到openssl1.1.1
Centos7升级openssl到openssl1.1.1 1、先查看openssl版本:openssl version 2、Centos7升级openssl到openssl1.1.1 升级步骤 #1、更新所有现有的软件包列表并安装最新的软件包: $sudo yum update #2、接下来,我们需要从源代码编译和构建OpenS…...

uniapp中实现H5录音和上传、实时语音识别(兼容App小程序)和波形可视化
文章目录 Recorder-UniCore插件特性集成到项目中调用录音上传录音ASR语音识别 在uniapp中使用Recorder-UniCore插件可以实现跨平台录音功能,uniapp自带的recorderManager接口不支持H5、录音格式和实时回调onFrameRecorded兼容性不好,用Recorder插件可避免…...

HashMap集合万字源码详解(面试常考)
文章目录 HashMap集合1.散列2.hashMap结构3.继承关系4.成员变量5.构造方法6.成员方法6.1增加方法6.2将链表转换为红黑树的treeifyBin方法6.3扩容方法_resize6.3.1扩容机制6.3.2源码resize方法的解读 6.4 删除方法(remove)6.5查找元素方法(get)6.6遍历HashMap集合几种方式 7.初始…...

LeetCode1124. Longest Well-Performing Interval
文章目录 一、题目二、题解 一、题目 We are given hours, a list of the number of hours worked per day for a given employee. A day is considered to be a tiring day if and only if the number of hours worked is (strictly) greater than 8. A well-performing in…...

如何使用手机公网远程访问本地群辉Video Station中视频文件【内网穿透】
最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1.使用环境要求:2.下载群晖videostation&am…...

事件分析应急响应-Server2229(环境+解析)
任务环境说明: 服务器场景:Server2229(开放链接)用户名:root,密码:...

SpringCloud:微服务
文章目录 微服务服务架构演变单例架构(集中式架构)分布式架构 微服务SpringCloud 微服务 服务架构演变 单例架构(集中式架构) 单例架构: 将业务的所有功能集中在一个项目中开发,打成一个包部署 优点&…...

拥抱Guava之集合操作
深入Guava集合操作 在Java开发中,Google Guava库是处理集合的强大工具。起源于Google内部需求,Guava以简洁性、性能优化为理念,提供高效不可变集合和实用工具类。本文深入剖析Guava的核心功能,为开发者呈现集合操作的全新视角&am…...

运算放大器相关知识总结(1)
1、 前言 最近做了一个小项目,这个项目是研发一款阻抗测量仪。这个阻抗测量仪可以测量人体在不同频率下的生物电阻抗,该设备的核心是模拟电路,技术难点是减小模拟电路噪声。该项目前前忙了2个多月,借着研发这个项目的机会把自己掌…...

ZMQ_REQ\REP模式
文章内容: 学习ZMQ库中REQ\REP模式相关的内容 简介 应答模式:REQ(客户端)和REP(服务端) 典型的一问一答协议,即客户端需要首先发送hello,服务器则返回word,若客户端发…...

机器人跟踪性能量化指标
衡量机械臂关节轨迹跟踪控制的性能可以通过以下几个方面来进行: 跟踪精度:这是衡量机械臂关节轨迹跟踪控制性能的最重要的指标。它反映了机械臂实际运动轨迹与期望运动轨迹之间的偏差。跟踪精度越高,说明机械臂的控制性能越好。运动范围&…...

【GitHub项目推荐--开源的坦克大战】【转载】
坦克大战当年红遍大江南北,很多和我一样的九零后应该都有着对这个游戏的记忆。现在显示器分辨率越来越高,使用矢量图来实现像素风格游戏,可以获得非常高的展现质量。 这个项目是作者肥超花了很长时间折腾的复刻版本,所有元素都使…...

06、Kafka ------ 各个功能的作用解释(ISR 同步副本、非同步副本、自动创建主题、修改主题、删除主题)
目录 CMAK 各个功能的作用解释★ ISR副本 (同步副本)★ 非同步副本★ 自动创建主题★ 修改主题★ 删除主题 CMAK 各个功能的作用解释 ★ ISR副本 (同步副本) 简单来说 ,ISR 副本 就是 Kafka 认为与 领导者副本 同步的副本。 ISR࿰…...

Spring Security实现详解
一、WebSecurityConfigurerAdapter 总配置类: 1、介绍:配置类 2、主要方法: (1)configure(HttpSecurity http) protected void configure(HttpSecurity http) throws Exception {this.logge…...

⭐Unity LeapMotion与手的相关开发
LeapMotion 官方文档中文翻译帮助手册教程 Hand 一个Hand手对象表示了一个跟踪的手,一个手总是包含5个手指以及相关属性如:Direction,PalmPosition,和Basis(orientation). lamPosition :手掌中心到Leap设备原点以毫米测量的距离 PalmVelocity :手掌移…...

React16源码: React中的update和updateQueue的源码实现
React中的update和updateQueue 1 )概述 在 ReactDOM.render 过程中,还需要创建一个 update 对象update 用于记录组件状态的改变的一个对象,它存放于Fiber对象的 updateQueue 中updateQueue,它是一个单向链表的结构,一…...

mybatisplus(service CRUD 接口)
一、我们在控制器层都是调用Service层,不会直接调用仓储层。现在我给大家介绍一下怎么快速实现Service 的CRUD 定义接口:IProductService 继承IService<实体> package com.saas.plusdemo;import com.baomidou.mybatisplus.extension.service.ISe…...

GC6109——双通道5V低电压步进电机驱动芯片,低噪声、低振动,应用摄像机,机器人等产品中
GC6109是双通道5V低电压步进电机驱动器,具有低噪声、低振动的特点,特别适用于相机的变焦和对焦系统,万向节和其他精密、低噪声的STM控制系统。该芯片为每个通道集成了256微步驱动器。带SPl接口,用户可以方便地调整驱动器的参数。内…...

MySQL-多表联合查询
🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL 🍹文章作者技术和水平很有限,如果文中出现错误&am…...

商城小程序(8.购物车页面)
目录 一、商品列表区域1、渲染购物车商品列表的标题区域2、渲染商品列表区域的基本结构3、为my-goods组件封装radio勾选状态4、为my-goods组件封装radio-change事件5、修改购物车中商品的选择状态6、为my-goods组件封装NumberBox7、为my-goods封装num-change事件8、修改购物车商…...

[Vulnhub靶机] DC-1
[Vulnhub靶机] DC-1靶机渗透思路及方法(个人分享) 靶机下载地址: https://download.vulnhub.com/dc/DC-1.zip 靶机地址:192.168.67.28 攻击机地址:192.168.67.3 一、信息收集 1.使用 arp-scan 命令扫描网段内存活的…...