随笔 - 19, 文章 - 93, 评论 - 17, 引用 - 0
数据加载中……

SOA的进化(一)----------大纲和SOA时间轴(从XML到Web服务再到SOA)

      本文审视 XML Web 服务及 SOA 间的关系,并解释厂商和标准组织如何从那些持续浮现 Web 服务规范中形成奇妙的竞争与协同竞技场。然后我们从应用架构简短历史的叙述着手来对过去的二十年作一个总结。

本文大纲如下:

  1. SOA 时间轴(从 XML Web 服务再到 SOA
  2. SOA 的持续进化(标准组织与贡献厂商)
  3. SOA 的根源( SOA 与过去架构的比较)

这个主题顺序可能有一点奇怪。我们以最近及当前的开发开始,以回顾过去架构平台而结束。简单地选择了这个结构,是因为本文最后环节的信息或许不是每个人 都需要 阅读。

1 SOA 时间轴(从 XML Web 服务再到 SOA

我们从讲述形成当前 SOA 平台的关键工业开发入手来建立时间轴。然后我们看一看 SOA 在它的权限范围内,如何作为当代架构的平台而改变了 XML Web 服务技术的角色。


1.1. XML 简史

如同 HTML ,扩展标记语言( XML )系 W3C 所创建,源自流行的标准通用标记语言( SGML ),它在 60 年代后期就已存在。这是广泛使用的元语言,允许组织增加原始文档数据。

XML 90 年代后期的电子商务运动中声名鹊起,服务器端脚本语言可以经由互联网而处理业务。通过 XML 的使用,开发者能够给任何片段附加上意义和上下文,再跨越互联网协议传输。

XML 不仅被用于以标准化的方式来表达数据,其语言自身还被用作一系列的附加规范的基础。 XML Schema 定义语言( XSD )与 XSL 转换语言( XSLT )都以 XML 表达。这些规范,事实上已成为关键核心 XML 技术集的关键部分。

XML 表达架构代表了 SOA 的基础层。在其内部, XML 建立了在服务各处流动的消息格式与结构。 XSD schemas 保持消息数据的完整与有效性,而且 XSLT 使得不同的数据表达间通过 schema 映射而能够互相通信。换句话说,没有 XML 你在 SOA 内寸步难行。

1.2. Web 服务简史

2000 年, W3C 接受了一项关于 简单对象访问协议 SOA P )规范的提案。这个规范本来设计用于(并在一些案例替代)专有 RPC 通信。想法是对于在构件间传输参数数据可以序列化成 XML 传送,然后支序列化成其原生格式。

很快,公司及软件厂商开始看到,对于推进通过构建于专有 - 免费的互联网通信框架之上的电子商务技术,存在日益巨大的潜力。这最后导致了创建一个纯粹的、基于 Web 的分布式技术能充分利用概念标准化的通信框架,来桥接组织之间和组织内部所存在的巨大差异。这个概念被称为 Web 服务。

Web 服务最重要的部分是其公共接口。它是分配服务识别并使其激活的核心信息块。因此,首先支持 Web 服务的是 Web 服务描述( WSDL )。 W3C 第一份 WSDL 评议提案是在 2001 年,此后还在不断地修订这一规范。

为了进一步的开放协同性的愿景, Web 服务需要一个互联网友好的、 XML 兼容的通信格式,以便能够建立一个标准化的通讯框架。尽管有别的选择,譬如可以考虑 XML-RPC ,但 SOA P 因为工业界的偏好而胜出,并且保留了最初的通讯标准用于 Web 服务。

为支持 SOA P 的新角色, W3C 随之发布了更新版本的规范,同时考虑了 RPC 风格的与文档风格的消息类型。而后者在 SOA 里面更为常用。最终,“ SOA P ”一词不再代表“简单对象访问协议”的首字母缩写。到了规范的 1.2 版,它变成了一个独立的术语。

完成第一代 Web 服务标准家族的是 UDDI 规范,它原本由 UDDI.org 所开发,被递交到 OASIS 之后,它继续与 UDDI.org 一起合作开发。这个规范考虑在组织内部及组织边界之外来创建标准化的服务描述的注册。 UDDI 提供了潜在的对 Web 服务在一个集中的位置注册,在此处能够被服务请求者所发现。 WSDL SOA P 不同, UDDI 尚未被工业界所普遍接受,并且保留了一个可选的 SOA 扩展。

开发定制的 Web 服务可适应变化的业务需求,并且第三方市场出现了促进各种实用服务的销售或租赁。现存的通讯平台,譬如面向消息的中间件( MOM )产品,结合 Web 服务可支持 SOA P 之外的其他消息协议。一些组织可迅速合并 Web 服务,以促进 B2B 数据交换经常要转变为 EDI (电子数据交换)替代品的需求。

1.3. SOA 简史

不久前组织才开始意识到只需要缓和地替代现存的分布式应用, Web 服务可成为独立的架构平台 --- 可使用 Web 服务技术集的效益来实现企业中服务概念的平台。这样,面向服务架构开始进入 IT 的主流。

在这一点 SOA 频繁地以不同的方式被分类,经常依赖于构建服务所用的实现技术。早期的模型,主要从 Web 服务标准初始系列中得到灵感,将 SOA 定义为一个围绕三个基本的构件的架构模型:服务请求者,服务服务提供者与服务注册( 1 )。

1. SOA 的早期形态

SOA早期形态

第一代 Web 服务标准实现此模型的以下方面:

  • WSDL 描述服务。
  • SOA P 提供了用于服务及其请求者的通讯格式。
  • UDDI 提供了标准化的服务注册格式。

从物理架构的角度,基于 Web 服务的 SOA 第一次变异实际上超越了 原始 SOA 模型。你或许能回忆起原始 SOA 不需要使用服务注册。作为替代,发现被归类为当代 SOA 的一个特征,通过面向服务原则在服务层面被提倡。

我们的原始 SOA 模型在今天可轻易获得,因为它已被所有主要厂商的开发及运行平台所支持。这些相同厂商都有关于 SOA 的远大计划,其中许多现在已经能够自我证明。 当代 SOA 的诸多特征,大都是过分主动的开发与协作的结果,已经产生了一系列第一代 Web 服务平台的扩展。知名的“第二代”或“ WS-* ”规范,这些扩展处理特殊的功能区域, Web 服务技术平台全面提升至企业水平。

补充 WS-* 领域对于将面向服务概念引入业务分析的世界也很重要。通过面向服务,业务逻辑能够清晰地被封装,并从根本的自动化技术中抽象。这个愿景藉由业务流程定义语言的提升而得到进一步支持,最知名的是 WS-BPEL 。这不仅考虑到将传统的业务流程管理( BPM )模型解决成一系列的服务,更进一步提供具体的和可执行的格式充分表达业务逻辑的语言能力,填补了分析与实现间的空隙。

这些及其他工业影响已经扩大了 SOA 的潜在范围。如同更多的当代特征被增加,也很可能今天我们所归类的当代 SOA ,会形成未来原始 SOA 的基础。

SOA 是一个真正的进化。今天的结果明显是被不同的相关标准组织和软件厂商主动驱动的结果。通过受协作与竞争的混合刺激的不稳定环境,扩展被作为战略定位,每个都定义了我们称为当代 SOA 技术平台一个特定部分。在第 2 节,我们近距离看看标准的开发过程。

1.4. SOA 如何改造 XML Web 服务

如同任何架构, SOA 引入了边界和规则。尽管当代 SOA 可能由 XML Web 服务技术平台所构成,但这些平台需要经历大量的变化,以便其各自的技术被适当定位并在面向服务架构范围内加以利用。

使用 XML Web 服务的传统分布式应用环境因此肯定有一些重新实现,面向服务的设计原则需要在技术与心态方面都进行改变。以下是当你必须对现存实现翻工时,你可能面对的一些潜在问题示例。

  • SOA 现在需要数据表达与服务建模标准表达保持一致。这个相当含糊的需求有许多含意,并主要促进内在协同性。
  • SOA 依赖于负责所有服务间通信的 SOA P 通讯。结果,所有需要 XML 的地方,一般也会有 SOA P 消息,以照顾传输、临时处理与路由及最终交付。 XML 文档与关联的 XSD schema 现在经常需要有意地与 SOA P 通讯一起建模。
  • SOA 使用标准化的文档风格的通讯。从 RPC 风格迁移到文档风格的消息给服务描述的设计强加了变化。特别地,接口特征需要以更普通的术语表示,并全面增加操作粒度。
  • 由于强调文档风格的 SOA P 消息, SOA 促进内容及高智能模型。这个支持服务的无状态及自治,并使消息传输的频度最小化。然而先前的 RPC 风格的方法支持带有目标数据的小颗粒 XML 文档传输,在 SOA 内的 XML 文档经常需要代表不止一个数据语境的绑定数据。
  • 直到 WS-* 扩展的高阶信息能力普遍流行,许多应用都将需要配备 SOA P 报头来实现临时解决方案以管理复杂的消息交换。一些更急迫需求包括管理与关联。这些临时的设计有效地建立了转变模型,需要时可轻易地迁移到工业标准的实现。

要点总结

  • 核心 XML 技术集已成为分布式互联网架构的通用部分。现在也提供基础数据表达及 SOA 数据管理层。
  • 第一代 Web 服务架构来自关键标准开发: WSDL SOA P UDDI 。然而 UDDI 对于多数据环境而言仍旧是一个可选的发现机制, WSDL SOA P 已经成为构建在 XML 层之上定义 SOA 基本通信框架的核心技术。
  • SOA 充分利用 XML Web 服务率先铺设的道路。它将久经考验的概念与先进技术的结合,已经被 IT 社团所充分接受。
  • 尽管当代 SOA 已经形成并有了对 XML Web 服务的工业级接受度, SOA 的到来对于已有 XML Web 服务的传统应用还是带来了改变。


posted on 2006-12-03 09:11 BPM 阅读(229) 评论(0)  编辑  收藏 所属分类: SOA


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问