您的位置:首页 > 其它

XML Files - The Birth of Web Services 笔记 (一)

2010-07-05 18:25 253 查看
因为开发需要, 最近开始研究 Web Service. 在 MSDN 中找到一篇文章 XML Files - The Birth of Web Services
, 比较清楚的阐述了 Web Service 的定义, 产生背景, 及涉及的几个主要知识点, 非常浅显易懂, 在此记下心得体会

Web Service 说白了, 就是一种分布式的计算/数据服务, 套用文章中的说法, 叫 Distributed Computing Technology, 这种远端提供服务调用的程序, 历史应该很悠远了, 中间出现了很多术语, 比如 RPC, ORPC (DCOM, Corba, Java RMI) 之类, 本质上是一回事.

既然是一回事, 那为什么还会出现这么多不同的方案呢?

技术做久了的话, 慢慢会体会到, 碰到一个问题, 一开始会有一个方案, 但这个方案往往不是最佳的, 会随着对问题了解的深入, 方案也会随之演进.而且一个方案, 在不同的环境下适用性不一定最佳, 所以也会随着环境的不同, 而采用不同的方案. 另外就是新技术的出现, 往往也会引入了新的, 更恰当的方案.

那么, Web Service 的出现, 又是基于什么原因呢?

文章给了 2 个说法: 1. 互通性的要求, 2. Web 应用的大行其道

关于互通性, 文章其实说了两点, 一个是组织内部的场景(Enterprise Application Integration, EAI), 一个是对外提供服务的场景(Business-to-Business Integration, B2Bi), 不过两种场景在我看来没有太大区别, 所以就简单说下第一种场景

既然 Distributed Computing Technology 提供的是一种服务, 一个组织, 尤其是大的组织, 内部必然会存在很多的 Distributed Computing Service, 信息是一种资源, 资源经过整合, 才能发挥最大的效用, 那么该组织内部, 要想整合所有的计算/数据资源, 必然存在 Service 互相调用的需要.

既然要相互调用, 就更我们写API 一样, 当然是越方便, 简单, 越好. 但是方便, 简单, 在这个应用场景中, 语义稍有些特殊. 因为这些服务, 可能是由不同的团队, 在不同的时期, 分别独立开发而成, 使用的语言, 应用的技术可能都完全不一样, 如果没有一个统一的规范, 供外部调用的接口肯定也是各色各样的, 比如 A 提供 RPC, B 提供 ORPC, C 提供 Corba. 如果有一个调用者, 同时要用到 3 者的服务, 那就必须实现 3 种调用方式. 而且如果以后 A/B/C 需要调整, 互相调用对方的接口, 那么它们也要各自实现对方的调用方式.

这种做法, 不管是对实现新的调用者, 或者说维护原有服务, 都是很大的负担. 因此如果想要达到互通性, 为所有的服务定义一个统一的接口规范是势在必行的.

不管之前存在还是不存在这样统一的一个规范, 命运的齿轮开始转动, Web Service 作为新来者, 展现出了巨大的优势, 而这个优势, 依托在之前提到的 "Web 应用的大行其道" 基础上.

Web 应用天然具备非常好的互通性, 几乎是在所有平台上都能构建 Web 服务, 然后在所有平台上都能访问这些服务, 套用文中的话, "直到 Web 应用的普及, 互通性才真正出现". 也即是说, 如果用 Web 作为互通的方式, 那么不管服务的提供者使用的什么语言, 技术, 在什么平台上, 也不管调用者的使用的语言, 技术, 平台, 它们都能在一个规范下, 提供统一的服务及调用的交互.

这个诱惑是很巨大的, 因此也能解释为什么 Web Service 这么受大家喜爱了.

然而, 原有的 Web 应用设计的初衷不是这个, 所以存在一些局限, 因此需要引入一些方案做些调整, 而新的方案使用的工具, 就是大家耳熟能详的 XML.

(待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐