面向服务的架构(SOA)是一个用于分布式系统的灵活且可适应的架构模式。在其核心,面向服务的架构是一个追求将IT组件(如数据库、服务器和网站)封装为可以集成到不同业务流程中的服务的范例。这种架构的主要任务是将多个单独的技术任务编排和组合成一个可以作为IT服务提供给其他组织单位或合作伙伴的高级服务。面向服务的架构意味着你可以隐藏单一应用的复杂性在一个标准化的接口后面,从而为集成提供一个服务的结构化形式。
面向服务的架构的主要目标包括降低软件开发和集成成本,以及通过在业务流程中重用现有服务来创造更大的灵活性。
市场研究机构Gartner在1996年首次使用了面向服务的架构这个词,因此被认为是这种架构模式的发明者。到目前为止,还没有一个被普遍接受的定义,但是来自组织信息标准推进组织(OASIS)的以下定义在文献中经常被引用:面向服务的架构是一个用于组织和利用可能受到不同所有权域控制的分布式能力的范例(Service oriented architecture is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains)。
面向服务的架构有几个重要的特征和属性,我们将在这一节中讨论。没有统一的面向服务的架构定义,从一般角度描述的最重要的特征包括以下几点: