数据服务笔记

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. 其他参考资料

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值