Web服务(Web Service)


Web服务(Web Service)

Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。


根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们通过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。


尽管W3C的定义涵盖诸多相异且无法介分的系统,不过通常我们指有关于主从式架构(Client-server)之间根据SOAP协议进行传递XML格式消息。无论定义还是实现,WEB服务过程中会由服务器提供一个机器可读的描述(通常基于WSDL)以辨识服务器所提供的WEB服务。另外,虽然WSDL不是SOAP服务端点的必要条件,但目前基于Java的主流WEB服务开发框架往往需要WSDL实现客户端的源代码生成。一些工业标准化组织,比如WS-I,就在WEB服务定义中强制包含SOAP和WSDL。


贴图图片


核心定义



考虑到并没某个独立文档包含一切相关内容,可采用模块化的方式给出对WEB服务的描述,但不能给出一个“绝对全面和准确”的定义。受外部环境和实现技术影响,各方给出的核心定义可能稍有出入,但通常包括:

SOAP

    一个基于XML的可扩展消息信封格式,需同时绑定一个传输用协议。这个协议通常是HTTP或HTTPS,但也可能是SMTP或XMPP。


WSDL

    一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。


UDDI

    一个用来发布和搜索WEB服务的协议,应用程序可借由此协议在设计或运行时找到目标WEB服务。


这些标准由这些组织制订:W3C负责XML、SOAP及WSDL;OASIS负责UDDI。


协议集

为提高WEB服务间的互操作能力,WS-I还特别发布了WEB服务协议集(Profile)。协议集包含了一系列特定版本的核心定义(诸如SOAP和WSDL),以及对其使用上的限制与约束。WS-I还发布了用于部署协议集兼容WEB服务的测试工具及相关用例。

WS-系列追加定义

为扩展WEB服务能力,一些新的标准已经或正在被开发。这些标准通常被冠以WS字头(Web Service的简称),以下是一个WS系列追加标准的不完全列表:

WS安全(WS-Security)
    定义了如何在SOAP中使用XML加密或XML签名来保护消息传递。可作为HTTPS保护的一种替代或扩充。

WS信赖性(WS-Reliability)
    一个来自OASIS的标准协议,用来提供可信赖的WEB服务间消息传递。

WS可信赖消息(WS-ReliableMessaging)
    同样是一个提供信赖消息的协议,由Microsoft, BEA 和IBM发布。目前OASIS正对其实施标准化工作。

WS寻址(WS-Addressing)
    定义了在SOAP消息内描述发送/接收方地址的方式。

WS事务(WS-Transaction)
    定义事务处理方式。


一直以来,W3C负责制定了不少WS追加定义,但近来此举开始受到怀疑。一些人呼吁W3C作为网络和语义网构建者应当把精力放在核心网络本身,而不是为WEB服务改换版本。特别是2007年2月的企业级WEB服务论坛上,对W3C不再充当WEB服务定义者的诉求开始表面化。 此外,OASIS对WEB服务扩展实施了许多标准化工作。包括WEB服务资源框架以及WSDM。

使用WEB服务的方式

WEB服务实际上是一组工具,并有多种不同的方法调用之。三种最普遍的手段是:远程过程调用(RPC),面向服务架构(SOA)以及表述性状态转移(REST)。

远程过程调用


WEB服务提供一个分布式函数或方法接口供用户调用,这是一种比较传统的方式。通常,在WSDL中对RPC接口进行定义(类似于早期的XML-RPC)。


尽管最初的WEB服务广泛采用RPC方式部署,但针对其过于紧密之耦合性的批评声也随之不断。这是因为RPC式WEB服务实质上是利用一个简单的映射,以把用户请求直接转化成为一个特定语言编写的函数或方法。如今,多数服务提供商认定此种方式在未来将难有作为,在他们的推动下,WS-I基本协议集(WS-I Basic Profile)已不再支持远程过程调用。


面向服务架构


现在,业界比较关注的是遵从面向服务架构(Service-oriented architecture,SOA)概念来构筑WEB服务。在面向服务架构中,通讯由消息驱动,而不再是某个动作(方法调用)。这种WEB服务也被称作面向消息的服务。

SOA式WEB服务得到了大部分主要软件供应商以及业界专家的支持和肯定。作为与RPC方式的最大差别,SOA方式更加关注如何去连接服务而不是去特定某个实现的细节。WSDL定义了联络服务的必要内容。

表述性状态转移


表述性状态转移式(Representational state transfer,REST)WEB服务类似于HTTP或其他类似协议,它们把接口限定在一组广为人知的标准动作中(比如HTTP的GET、PUT、 DELETE)以供调用。此类WEB服务关注与那些稳定的资源的互动,而不是消息或动作。


此种服务可以通过WSDL来描述SOAP消息内容,通过HTTP限定动作接口;或者完全在SOAP中对动作进行抽象。


批评


一些人抱怨,WEB服务(具象化状态转移式除外)过于复杂,认为它太过于偏重那些大型软件开发商,而不利于开源项目。


WEB服务的性能也时常是人们关注的一个问题。由于使用XML作为消息格式,并以SOAP封装,由HTTP传输,WEB服务始终处于较高的开销状态。不过目前一些新兴技术正在试图解决此一问题,诸如新的XML处理模型致力于解决XML这一部分的性能。

类似方式


无论是在WEB服务出现以前,还是现在,一直不断有各种同类技术问世。比如,RMI作为这样一种中间件系统就得到了广泛部署。CORBA和DCOM则更加雄心壮志,两者都尝试将作用域波及到分布式对象,这一点也为WEB服务所模仿。


这些类似方式往往借助于XML-RPC和HTTP本身,而不依靠SOAP封装参数。


维基百科
本文来源:



C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:WSDL Web服务描述语言
下一篇:UDDI 统一描述、发现和集成
评论列表

发表评论

评论内容
昵称:
关联文章

Web服务(Web Service)
WCF与Web Service的区别与关系
承载 Service Host 和使用 WCF 服务
WSDL Web服务描述语言
面向服务的体系结构(Service-Oriented Architecture,SOA)
WebService架构 - 为什么需要Web服务?
不使用配置文件构建和使用WCF服务(WCF Service)
除非Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。
Web方法(WebMethod)服务端权限控制
C# ASP.NET WebApi服务器搭建详解 - Win服务承载(Windows Service Hosting宿主)
开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告
基于Web前端用户调用CSFramework.WebApi服务端登录登出接口实现
运行WebApi服务:未能加载文件或程序集“System.Web.Cors”或它的某一个依赖项
什么是Web Api? ASP.NET Web Api体系架构
CSFramework.WebApi框架快速搭建后端服务支持APP、B/S、C/S、微信小程序、公众号、Web客户端
ASP.NET Web API入门介绍(一)
鹊巢PaaS快速建站系统,助力您快速搭建企业网站Web站点
(C# 更新Web引用) 此计算机上没有安装枚举Web引用所需的组件
底层统一使用透明代理访问WCF服务
Web后端开发框架,WebApi后端主流开发框架介绍

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序