1.Overview
数据服务是专门化的Web服务,在Web服务占了很大的地盘。
因此,有企业服务总线(ESB),也会有数据总线,两者是SOA下的两大总线,概念与功能上基本能一一对应,都是提供集中、星型的访问服务。
数据vs信息。数据一般指单体的表,而信息指有业务含义的多个数据表的组合。数据服务的主体一般是"信息"。
2.数据的基本服务接口
通过元数据定义,在一个或多个数据源中,将一个或多个数据表组合为信息视图,暴露为服务,提供CRUD接口和更新通知机制。
除了让数据总线直接访问数据库外,数据源还可能是业务系统的WebService/EJB等接口,这一点上极具SOA的意义,业务系统下的数据库极有可能在物理上或逻辑上不允许总线对其直接访问和更新。
1.CRUDSI操作接口:
对信息暴露标准的Create,Update,Delete,Retrive,Search与Information接口。
除了最传统的WebService接口外,还可能有下面的传输协议与数据格式:
- REST,轻量级面向资源接口,数据服务似乎是REST最贴切的用武之地--层次式URL定位对象,CRUD操作的HTTP原语。
- JSON/POX(Plain Old XML),尽量简化的数据传输。
- RSS/ATOM Feed,轻量级的信息发布订阅格式。
- IBM/BEA的SDO规范,虽然看上去很美,但由于数据传输的跨平台要求,没有MS的加入等于白搭。
- 虚拟JDBC Driver,支持ADO.net的WebService,尽量减少旧系统改造的成本。
2.查询语言:
- 直接的SQL92语言。
- 针对XML结果集的XQuery。
- 自设计的面向对象的查询语言,JPA的JQL、Salesforce的SOQL、Facebook的FQL等,能更好的表达信息视图中的对象嵌套关系,如post.comments。
- Google Base的简单按属性匹配查询--Fillter模式。
3.数据更新通知机制:
- SalesForce的带时间窗参数(beginTime,endTime)的服务端查询接口,如id[] getUpdated(objectType,beginTime,endTime)。
优点-
最为简单;缺点-实时性低,要达到高实时性时资源损耗严重;
- 客户自行实现接收通知的Web Service,供服务端调用。
缺点--客户需要实现Web Service Server,而服务端需要自行实现订阅,可靠性保障等消息中间件功能。
- 使用跨平台的消息中间件 ,客户通过MOM的客户端接收消息。而且封装屏蔽底层消息中间件的存在,只向用户提供有限的API。
优点-
效率高,且对客户端要求低。缺点-免费又服众的跨平台中间件难觅。
4.接口粒度:
可以每个业务实体一个接口,下属SCURDI操作;也可以使用同一个操作接口,如使用REST定位实际对象类型。
REST的"层次式定位"比单纯的"数据类型"更适合复杂的数据环境。
无论是最后是采用SOAP还是REST格式,采用RPC风格与强数据类型都会频繁增加或改动接口。
5.权限规则引擎:
在表级、列级权限控制的基础上,还需要灵活的规则引擎来实现可定义的行记录级的权限控制。
6.业务级封装
在规范数据接口之上,可以封装可重用的业务级接口。
3.数据的分散式部署
在上面的基本服务提供了基本的分散数据源的集中统一访问点(但不支持整合)之后,还可以:
数据联合模式 ,将分散在位置透明的多种数据源(DB,WebService),多个数据表中的数据,联合成一个更大的有业务意义的信息视图,支持其即时联合查询与有限的更新能力。
数据整合模式 ,支持连接于数据总线上的数据服务进行纵向的整合。
比如,当多个自治的独立异构数据源(地域分公司,并购企业)中,都存在核心的业务实体--主数据(如客户,订单),可进行叠加转换后,提供统一的只读数据集。
整合的方式有两种,一种是各数据源主动调用总数据集的基本服务接口进行发布。而另一种模式则是数据总线主动对各数据源进行拉取。
4.其他更强悍的需求
- 全文索引:支持相关性排序、模糊搜索,或者多个关键字搜索的搜索。
- 数据分析:支持数据挖掘,仪表板报告等。
- ETL。
5. 轻量级的数据服务
6. 其他实现项目
6.1 BEA Data Service Platform
支持基本服务接口,输出Web Service,SDO,JDBC(只读)等操作接口,偏重于基于XQuery的异构数据横向联合查询。
6.2 其他
7. 其他参考资料
分享到:
相关推荐
1. **基本概念**:首先,笔记可能会定义数据结构的基本概念,如什么是数据、数据元素、数据对象、数据结构和抽象数据类型(ADT)。它会解释数据结构是如何组织和存储数据的,以及如何通过不同的方式访问和操作这些...
郝斌数据结构笔记 。
数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 ...
这份"python数据分析笔记.zip"包含了作者近半年自学Python的心得体会,涵盖了从基础到高级的各种主题,旨在帮助读者全面掌握Python在数据分析中的应用。 首先,让我们来看看Python在数据分析中的核心库。Pandas是...
"数据仓库学习笔记" 数据仓库学习笔记是研究数据仓库的笔记,旨在探索数据仓库的发展和演化过程。数据仓库学习笔记第 1 章讲述了决策支持系统的发展历史和演化过程。 数据仓库学习笔记中提到,决策支持系统(DSS)...
数据结构与算法笔记.pdf 数据结构与算法是计算机科学中两个紧密相关的概念。数据结构是指计算机中存储、组织和管理数据的方式,而算法是指解决问题的步骤和方法。在这份笔记中,我们将详细介绍算法的五个特性、算法...
数据结构手写笔记,讲义,考研复习的好帮手,值得一看!
数据结构学习笔记基数排序 详细讲解数据结构学习笔记基数排序 详细讲解数据结构学习笔记基数排序 详细讲解数据结构学习笔记基数排序 详细讲解数据结构学习笔记基数排序 详细讲解数据结构学习笔记基数排序 详细讲解...
"408考试数据结构高分笔记2019版(天勤论坛)"是一份针对这一考试的重要参考资料,它包含了丰富的理论知识和实战技巧,旨在帮助考生深入理解和熟练应用数据结构的基本概念、算法和设计方法。 笔记首先会涵盖数据...
《数据结构笔记 绪论+算法》是对B站王卓教授数据结构课程的整理,结合了PPT和教材内容,适合考研复习使用。笔记中包含了数据结构的基础概念和算法的相关知识。 1. 数据和数据元素: 数据是描述现实世界事物的符号,...
本资料包包含的"python数据分析2nd文档笔记加书中代码"是学习和理解Python数据分析的宝贵资源。 首先,Python作为一门高级编程语言,其简洁明了的语法使得它成为数据分析的首选工具。Python库如Pandas、NumPy和...
这是我从B站上看韩老师讲的数据结构与算法后整理的笔记 代码经过运行,欢迎批评指正 有些地方我感觉还是挺难的 大都经过我自己的语言进行描述,韩老师中期的表达可能或多或少也影响可阅读性,望先生们见谅
"数据结构看书笔记---lazyfennec整理精选"是一份由lazyfennec精心整理的数据结构学习资料,旨在帮助学习者深入理解并掌握这一领域的重要概念和算法。 笔记可能涵盖了以下几个关键知识点: 1. **数组**:数组是最...
这份“2020 天勤数据结构 高分笔记 + 习题”资源包含了两个关键部分,即高分笔记和习题集,旨在帮助考生深入理解和应用数据结构的基本概念、算法和设计方法。 首先,让我们详细探讨一下数据结构的基础知识: 1. **...
这本"算法与数据结构学习笔记"涵盖了这两个核心概念的详细讲解,对于任何想要深入理解计算机科学原理、提高编程技能的人来说,都是一份宝贵的资源。 算法,简单来说,就是解决特定问题的步骤或指令集。它在计算机...
数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数...
数据采集笔记,数据采集笔记,数据采集笔记数据采集笔记数据采集笔记数据采集笔记
很抱歉,但您提供的文件内容信息中,【部分内容】并没有实际的内容描述,而是一连串的数字和...如果您能提供实际的文件内容,我将能够更好地帮助您总结和解释数据结构笔记中的关键点。请提供详细的内容以便进行分析。
"数据结构考研笔记" 本笔记总结了数据结构的基本概念、逻辑结构、存储结构、数据运算等知识点,涵盖了线性表、栈、队列、串、树、图、查找、排序等数据结构的基本概念和算法。 一、逻辑结构 * 线性结构:元素之间...