|
什么是SOA?
SOA
(
Service-Oriented Architecture
,面向服务架构)是一种架构模型,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是
SOA 的基础,可以直接被应用调用,从而有效控制系统中与软件代理互联网纾的人为依赖性。
SOA 的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义适配器进行通讯,不涉及底层编程适配器和通讯模型。
早在 2002 年
Gartner 就预测,到 2008 年,
SOA 将成为占有绝对优势的软件工程实践方法,它将结束传统的整体软件体系架构长达 40
年的统治地位,届时,将有 70% 的企业在进行企业
IT 建设时会转向 SOA 。从技术上讲,
SOA 并不是一个新概念,早在 20 世纪
90 年代中期, Gartner 就提出了
SOA 的概念,但当时的软件技术发展和信息化水平还不足以使它走入实用阶段。进入 21
世纪,随着 Web 服务等相关标准的出现和成熟,
SOA 开始从概念走向实用。
SOA 不是某个产品,也不是某个技术,而是一种软件设计架构和方法。 SOA
要求开发者从服务集成的角度来设计应用软件,它将应用程序的不同功能组件定义为 “
服务 ” ,通过 “ 服务
” 之间的良好接口联系起来。 ( 也就是
“ 服务 ” 之间的松耦合。 )
接口是采用中立方式进行定义的,独立于实现 “ 服务
” 的硬件平台、操作系统和编成语言。而且这些构建在各种各样系统中的 “ 服务
” 可以以一种统一和通用方式进行交互。保证系统灵活性,另外,还可以保证 “
服务 ” 的重复利用。
SOA 是一种 IT
体系结构样式,支持将您的业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务。这个网络可能完全包含在您的公司总部内,也可能分散于各地且采用不同的技术,通过对来自纽约、伦敦和香港的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。需要时,这些服务可以将自己组装为按需应用程序——即相互连接的服务提供者和使用者集合,彼此结合以完成特定业务任务,使您的业务能够适应不断变化的情况和需求(在有些情况下,甚至不需要人工干预)。
这些服务是自包含的,具有定义良好的接口,允许这些服务的用户——称为客户机或使用者——了解如何与其进行交互。从技术角度而言,
SOA 带来了“松散耦合”的应用程序组件,在此类组件中,代码不一定绑定到某个特定的数据库(甚至不一定绑定到特定的基础设施)。正是得益于这个松散耦合特性,才使得能够将服务组合为各种应用程序。这样还大幅度提高了代码重用率,可以在增加功能的同时减少工作量。由于服务和访问服务的客户机并未彼此绑定,因此可以完全替换用于处理订单的服务,下订单的客户机
- 服务将永远不会知道这个更改。所有交互都是基于“服务契约”进行的;服务契约用于定义服务提供者和客户机之间的交互。通常,您将通过创建“基于消息的”系统来实现此目标。
从业务的角度来说,面向服务的体系结构的重点在于开发能帮助您完成业务任务的技术,而不是通过技术约束来规定您的行动。例如,销售过程(制造、运输和收到货款)可能会涉及数十个步骤和若干不同的数据库和计算机系统。但就其实质而言,此过程包含一系列人工活动,例如:销售人员找到潜在客户、客户订购产品、生产部门制造产品、生产部门发出产品、收款部门开具产品帐单、客户支付产品货款。
面向服务的体系结构基于这些实际活动或业务服务进行组织,而不是形成公司所维护的不同的信息竖井。 |