您的位置:首页 > 其它

SOA 的定义

2009-02-13 23:12 204 查看
在构建 IT 架构(特别是企业级架构)时,我们的目标始终是:支持业务流程并对业务
变化做出响应。在最近几年中,出现了一些构建系统架构的新方法,这些方法主要围绕功能
单元(称为服务)来构建复杂的系统。
Web 服务也对以上这几个方面提供基于系统和标准的支持。因此,Web 服务具有无与
伦比的敏捷性这一优点。例如,使用 Web 服务基础设施可以在运行时更改服务提供者,而
不影响使用者。某个系统本身要被称为基于 SOA 的系统,应具备以下特性:
业务流程映射到软件服务;因此,业务可通过软件进行跟踪。
存在一种基础结构,支持上述服务的 4 个不同方面。这样服务级别就具有高度的
敏捷性。
服务是监视和管理单元。因此,一个人可以跟踪业务流程的操作属性和问题。
SOA 并不是一个新概念,有人就将 CORBA 和 DCOM 等组件模型看成 SOA 架构的前身。
早在 1996 年,Gartner Group 就已经提出了 SOA 的预言。不过那个时候仅仅是一个“预言”,
当时的软件发展水平和信息化程度还不足以支撑这样的概念走进实质性应用阶段。到了近一
两年,SOA 的技术实现手段渐渐成熟了。在 IBM、BEA、HP 等软件巨头的极力推动下,才
得以慢慢风行起来。Gartner 为 SOA 描述的愿景目标是实现实时企业(Real-Time Enterprise)。
关于 SOA,目前尚未有一个统一的、业界广泛接受的定义。一般认为:面向服务的架构
是一个组件模型(SOA),它将应用程序的不同功能单元——服务(service),通过服务间定
义良好的接口和契约(contract)联系起来。接口采用中立的方式定义,独立于具体实现服务
的硬件平台、操作系统和编程语言,使得构建在这样的系统中的服务可以使用统一和标准的
方式进行通信。这种具有中立接口的定义(没有强制绑定到特定的实现上)的特征被称为服
务之间的松耦合。
从这个定义中,我们看到下面两点:
它是一种软件系统架构。 SOA 不是一种语言,也不是一种具体的技术,更不是一
种产品,而是一种软件系统架构。它尝试给出在特定环境下推荐采用的一种架构,
从这个角度上来说,它其实更像一种架构模式(Pattern),是一种理念架构,是人们
面向应用服务的解决方案框架。
服务(service)是整个 SOA 实现的核心。SOA 架构的基本元素是服务,SOA 指定
一组实体(服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契
约),这些实体详细说明了如何提供和消费服务。遵循 SOA 观点的系统必须要有服
务,这些服务是可互操作的、独立的、模块化的、位置明确的、松耦合的,并且可
以通过网络查找其地址。
正是从这个观点出发,SOA 设计主要是从方法论层面考虑问题,重点是考虑如何把业务
流程映射到软件服务,以及业务如何规划,以达到足够而且恰当的业务敏捷。当然,这种映
射也需要通过一定的技术手段来完成,但是技术手段是多种多样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: