導覽
近期變更
隨機頁面
新手上路
新頁面
優質條目評選
繁體
不转换
简体
繁體
3.147.68.94
登入
工具
閱讀
檢視原始碼
特殊頁面
頁面資訊
求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。
檢視 Web服務 的原始碼
←
Web服務
前往:
導覽
、
搜尋
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您請求的操作只有這個群組的使用者能使用:
用戶
您可以檢視並複製此頁面的原始碼。
{| class="wikitable" style="float:right; margin: -10px 0px 10px 20px; text-align:left" ! <p style="background: #D8D8EB; color: #000000; margin:auto; padding:5px 0; "> '''Web服务''' </p> |- |<center><img src="https://dotblogsfile.blob.core.windows.net/user/marcus116/1108/e2fbf84cd467_101E7/Architecture_thumb_1.png" width="280"></center><small>[https://dotblogs.com.tw/marcus116/2011/08/28/34524 圖片來自dotblogs] </small> |} '''Web服务'''是一种[[服務導向架構]]的技术,通过标准的[[Web]]协议提供服务,目的是保证不同平台的应用服务可以互操作。<ref>[https://dotblogs.com.tw/marcus116/2011/08/28/34524 Web服务],dotblogs</ref> 根据[[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服務的调用難度。例如[[Microsoft Visual Studio]]、[[Eclipse]]等等[[整合開發環境]](IDE)工具。使用者只需要專注於调用與實行。 Web服务的性能也时常是人们关注的一个问题。由于使用XML作为消息格式,并以SOAP封装,由HTTP传输,Web服务始终处于较高的开销状态。不过目前一些新兴技术正在试图解决此一问题,诸如新的XML处理模型致力于解决XML这一部分的性能。 == 类似方式 == 无论是在Web服务出现以前,还是现在,一直不断有各种同类技术问世。比如,[[Java RMI|RMI]]作为这样一种中间件系统就得到了广泛部署。[[CORBA]]和[[DCOM]]则更加雄心壮志,两者都尝试将作用域波及到分布式对象,这一点也为Web服务所模仿。 这些类似方式往往借助于XML-RPC和HTTP本身,而不依靠SOAP封装参数。 == 參考文獻 == {{reflist}} [[Category: 730 亞洲史地總論 ]]
此頁面使用了以下模板:
Template:Main other
(
檢視原始碼
)
Template:Reflist
(
檢視原始碼
)
模块:Check for unknown parameters
(
檢視原始碼
)
返回「
Web服務
」頁面