首页 > 代码库 > 现实世界里的 SOA

现实世界里的 SOA

在现实世界中,SOA 常常是失败的。确保 SOA 成功的最好的实践是熟悉 SOA 的设计模式和成功案例。

一个成功案例

SOA 是解决数据管理问题的一个强大工具。在你的企业里是否存在数据不一致的问题?将存在这种问题的数据实体的 CRUD (Create、Read、Update 和 Delete) 都封装在同一个服务中。这是对你的数据进行集中控制和方便访问的一个简单办法。
我们这个成功案例就是这样 - ACME Carrot 公司 (化名) 正面临一些客户数据实体的问题。
技术分享
如上图所示,客户数据会在众多系统及报表集市之间进行复制和改变。随之而来的一些问题:
  • 客户常常抱怨说,ACME 的员工经常向他们要自己已经提供的信息
  • 员工需要定期手工重新调整客户数据
  • 关键流程依赖于重新定义的数据
  • 客户数据不可信,因为批处理作业的延迟性造成这些数据实时性不高
  • 数据问题引发客户订单和发货通知错误

SOA 的解决方案

ACME 抓狂了。他们制定了规则 - 由 CRM 系统作为客户数据的 master 数据存储。
为了保持对客户数据的开放存取,他们创建了 SOA 服务来对其进行察看和更新。
技术分享

具体细节

ACME 的具体实现细节是使用了几个 SOA 设计模式 - 企业服务总线、多服务契约、服务门面、认证代理以及 SOA 服务无关事务。
数据访问和安全相关逻辑在一个组件层 (译者注:SOA 系统总体划分的三个层次:组件层、系统层、集成层) 中实现 - 以和其它服务进行共享。
技术分享

效果

ACME Carrot 公司的三个 SOA 服务 - 客户列表下载、客户查找以及客户更新,被广泛使用于公司内部。事实上,这些服务最终拥有 50 多个客户。
最终效果 - 流程得到了简化,减少了人工错误,员工开始信任客户数据而客户也再也没有重复请求提供基础数据。
这就是一个低成本 SOA 项目的例子,它改进了关键的运营操作指标以及客户满意度问题。
原文链接:Soa In The Real World,发布日期:2011 年 2 月 11 日。
作者简介
技术分享
John Spacey 是一名工作在东京的加拿大籍企业级架构师。

现实世界里的 SOA