什么是 SOA?

简介: 我们可能应该回答的第一个问题也是最基本的问题。什么是面向服务的体系结构(Service-Oriented Architecture, SOA)?这个问题的答案实际上涉及与开发相关的若干不同方面。

我们可能应该回答的第一个问题也是最基本的问题。什么是面向服务的体系结构(Service-Oriented Architecture, SOA)?这个问题的答案实际上涉及与开发相关的若干不同方面。

SOA 是一种 IT 体系结构样式,支持将您的业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务。这个网络可能完全包含在您的公司总部内,也可能分散于各地且采用不同的技术,通过对来自纽约、伦敦和香港的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。需要时,这些服务可以将自己组装为按需应用程序——即相互连接的服务提供者和使用者集合,彼此结合以完成特定业务任务,使您的业务能够适应不断变化的情况和需求(在有些情况下,甚至不需要人工干预)。

这些服务是自包含的,具有定义良好的接口,允许这些服务的用户——称为客户机或使用者——了解如何与其进行交互。从技术角度而言,SOA 带来了“松散耦合”的应用程序组件,在此类组件中,代码不一定绑定到某个特定的数据库(甚至不一定绑定到特定的基础设施)。正是得益于这个松散耦合特性,才使得能够将服务组合为各种应用程序。这样还大幅度提高了代码重用率,可以在增加功能的同时减少工作量。由于服务和访问服务的客户机并未彼此绑定,因此可以完全替换用于处理订单的服务,下订单的客户机-服务将永远不会知道这个更改。所有交互都是基于“服务契约”进行的;服务契约用于定义服务提供者和客户机之间的交互。通常,您将通过创建“基于消息的”系统来实现此目标。

从业务的角度来说,面向服务的体系结构的重点在于开发能帮助您完成业务任务的技术,而不是通过技术约束来规定您的行动。例如,销售过程(制造、运输和收到货款)可能会涉及数十个步骤和若干不同的数据库和计算机系统。但就其实质而言,此过程包含一系列人工活动,例如:

  • 销售人员找到潜在客户
  • 客户订购产品
  • 生产部门制造产品
  • 生产部门发出产品
  • 收款部门开具产品帐单
  • 客户支付产品货款

面向服务的体系结构基于这些实际活动或业务服务进行组织,而不是形成公司所维护的不同的信息竖井 (Silo)。

通过实现 SOA,可以带来大量好处,包括以下各个方面:

  • 更高的业务和 IT 一致性
  • 基于组件的系统
  • 松散耦合的组件和系统
  • 基于网络的基础设施,允许分散于各地且采用不同技术的资源协同工作
  • 动态构建的按需应用程序
  • 更高的代码重用率
  • 更好地标准化整个企业内的流程
  • 更易于集中企业控制
 
相关文章
|
运维 IDE Java
SOA(面向服务架构)是什么?
SOA(面向服务架构)是什么?
2250 0
SOA(面向服务架构)是什么?
|
存储 供应链 监控
做了那么多架构,你真的懂 SOA 了吗?
如何统一看待和区别分层架构、微服务架构、分布式架构等主流架构?什么是 SOA?我们采用 SOA 的目的是什么?什么是服务化的本质?如何设计服务以及服务化架构呢?阿里高级技术专家程彦分享他对面向服务架构的一些看法,并给出相关的步骤和方案,较长,同学们可收藏后再看。
3447 0
做了那么多架构,你真的懂 SOA 了吗?
|
4月前
|
人工智能 搜索推荐 大数据
当SOA遇到DDD
【8月更文挑战第15天】
79 7
当SOA遇到DDD
|
XML 数据格式 网络架构
|
5月前
|
消息中间件 安全 NoSQL
「架构」SOA(面向服务的架构)
**SOA**是构建灵活企业IT系统的架构模式,基于服务组件进行设计。它强调服务的自包含、模块化,通过服务识别、抽象、组合和交互实现业务流程。特点包括松耦合、重用性、互操作性和标准化。优点是灵活性、可维护性、可扩展性和成本效益,但也有复杂性、性能和治理问题。设计策略涉及业务能力识别、服务契约定义和服务目录建立。技术栈涵盖Java EE、.NET、SOAP、REST、服务治理工具和各种数据库、消息队列及安全标准。SOA旨在适应变化,但也需妥善管理和规划。
240 0
|
Web App开发 XML 安全
SOA是什么
面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。
1218 0
|
缓存 监控 负载均衡
|
关系型数据库 Oracle 中间件