11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

SOA 中的数据联邦技术解密

  • 2008-10-17
  • 本文字数:1432 字

    阅读完需:约 5 分钟

通常来说,大部分企业不会明智到从其创业伊始就开始着手建立 SOA 的地步。在他们打算实施 SOA 时,不论他们是出于什么原因和目的,企业内部已经堆积了大量支撑业务的系统。而你,作为 SOA 的实施人员,“如何有效地利用这些浩如烟海的数据”是你不得不面对的问题。

无法访问,就无法利用。关于如何在 SOA 环境中有效地访问数据,已经有了大量的文章,而 Oracle 的 Dain Hansen 最近在 SOA 杂志 上发表的文章《 Demystifying Data Federation for SOA 》不失为是对这些文章的一个很好总结。同时,正如标题所暗示的,它也是一篇关于数据联邦的很好介绍。

在 SOA 环境中,数据的访问也是通过服务实现的,只不过在这里它被叫做“数据服务”。Dain Hansen 在文中指出了数据服务的作用:

为了更好地访问聚合管理数据,数据服务将数据源转换成了可重用的组件。

至于导致数据服务出现的原因,Dain Hansen 总结:

  • 数据无处不在。
  • 数据来自结构化和非结构化数据源
  • 没有数据服务,数据访问将非常复杂
  • 随 IT 实现不断增加而出现的“意大利面条式”的点对点数据消费方式
  • 缺少实时、统一、跨多个数据源的数据视图很难保证数据的一致利用

同时,他列出了 3 种常见的数据服务实现方式并给出了优缺点:

  • 简单数据访问:将数据源封装成适配器,消费者使用它来访问各个数据源,并自行将数据进行组装。
    • 优点:简单、低前期投入
    • 缺点:不适于大型 SOA 项目;当元数据频繁变动时,数据分析师和消费者将面临令人头痛的映射管理问题。
  • 数据集线器(Data Hub),利用 ETL 方式将数据抽取、加载和转换到一个统一的数据集线器中,消费者通过集线器访问数据。
    • 优点:主要适用于数据仓库和 BI 应用,对于大批量数据实现有良好的伸缩性;合并后的数据为访问和管理数据提供优化;可离开原始来源进行脱机管理。
    • 缺点:依赖数据复制,为了保持数据同步要求具有"数据变更捕获(Change Data Capture,CDC)"特性;对于小型 SOA 实现来说,技巧要求太高;在某些情况下,数据不允许复制。
  • 数据联邦服务(Data Federation Service),将来自多个来源的数据聚合成一个数据视图,并作为服务被应用利用。
    • 优点:简单、可重用、数据管理方便,并且不依赖复制和同步。
    • 缺点:需要密切关注它的性能

根据以上列表,虽然存在潜在的性能问题,数据联邦无疑是 SOA 环境下理想的数据访问模式。在接下来的文章中,Dain Hansen 对数据联邦进行了简要介绍。并指出,一个联邦解决方案应该包含:

  • SOA 的数据源抽象层
  • 联邦、经优化的查询
  • CRUD 风格的数据更新
  • 丰富的层次结构
  • 安全

在实际应用中,Dain Hansen 认为并不存在“一刀切”的模式选择。并指出:

事实上,多数务实的组织一开始是以“点对点”方式集成业务服务,并只在必要的时候想虚拟化的方法转变。

无独有偶,James Kobielus 在其文章《 Federation Supplements The Data Warehouse - Not Either/Or, Never Was 》中认为,数据联邦和 EDW(Enterprise Data Warehousing,企业数据仓库)(译注:在不考虑其后续分析功能的前提下,该方式基本和 Dain Hansen 文中所说的数据集线器一样)是互补的,并认为:

……数据联邦比部署于大多数企业中面向批操作的 EDW 更适合近实时的 BI 需求。

在文末,Dain Hansen 以数据联邦在一个金融组织中应用案例结束了本文。并认为:

随着数据仓库、SOA 和 BI 技术的日益成熟,数据服务将可能继续演变。

欲了解全文的内容,请参见这里

关于 SOA 中数据的其他内容,请参见 InfoQ 的其他文章:

2008-10-17 08:181018
用户头像

发布了 255 篇内容, 共 51.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

区块链医疗应用场景有哪些?区块链医疗解决方案

13530558032

智慧园区管理平台app系统开发,智慧楼宇系统搭建

13530558032

Java踩坑记系列之BigDecimal

Java老k

BigDecimal

家庭留白、中屏崛起与硬件棋局

脑极体

甲方日常 57

句子

工作 随笔杂谈 日常

关于 AWS Lambda 中的冷启动,你想了解的信息都在这!

donghui

Serverless Faas 函数计算

论“万剑归宗”思想对开发设计的一点“肤浅”作用

八苦-瞿昙

随笔杂谈 设计实践

架构师训练营 - 第五周学习总结

joshuamai

Java踩坑记系列之Arrays.AsList

Java老k

Java

面试者必看:Java8中的默认方法

Silently9527

java8 默认方法

一期二班-吴水金-第六课作业

吴水金

Thread.start() ,它是怎么让线程启动的呢?

小傅哥

Java 线程 JVM 小傅哥 Thread

Architecture Phase1 Week10:Summarize

phylony-lu

极客大学架构师训练营

熬夜不睡觉整理ELK技术文档,从此摆脱靠百度的工作(附源码)

996小迁

Java 编程 架构 面试 ELK

Alibaba官方发文:阿里技术人的成长路径与方法论

Java架构师迁哥

架构师训练营 - 第五周课后练习

joshuamai

讯飞推出充电宝式便携拾音器,重新定义传统拾音

Talk A.I.

肝了一周的 UDP 基础知识终于出来了。

cxuan

计算机网络 计算机基础

表格控件Spread.NET V14.0 发布:支持 .NET 5 和 .NET Core 3.1

葡萄城技术团队

数字人民币快来了,但多数人可能会有四大误解

CECBC

数字人民币

JVM-技术专题-垃圾回收策略

洛神灬殇

开源认证和访问控制的利器keycloak使用简介

程序那些事

开源 程序那些事 授权框架 keycloak 认证授权

802.11抓包软件对比之Microsoft Network Monitor

IoT云工坊

wifi 嵌入式 抓包

《华为数据之道》读书笔记:第 4 章 面向“业务交易”的信息架构建设

方志

数据中台 数字化转型 数据治理

计算机核心课程必读书目——《高级数据结构:理论与应用》

计算机与AI

数据结构 算法

java: Compilation failed: internal java compiler error解决办法

LSJ

IDEA

IPFS四币连发系统开发技术(四币循环模式)

薇電13242772558

区块链 数字货币

mongodb 源码实现系列 - command命令处理模块源码实现一

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 高性能 源码剖析 分布式数据库mongodb

为什么说应用架构需要分类思维?

Java架构师迁哥

“奋斗者”号下潜10909米:我们为什么要做深海探索?

脑极体

架构师训练营 W06 作业

Geek_f06ede

SOA中的数据联邦技术解密_SOA_胡键_InfoQ精选文章