数据分发服务:以数据为中心的发布/订阅式通信

数据分发服务:以数据为中心的发布/订阅式通信 pdf epub mobi txt 电子书 下载 2025

任昊利 等 著
图书标签:
  • 数据分发
  • 发布/订阅
  • 数据通信
  • 微服务
  • 分布式系统
  • 消息队列
  • 实时数据
  • 数据流
  • 架构设计
  • 数据驱动
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302381075
版次:1
商品编码:11600185
品牌:清华大学
包装:平装
开本:16开
出版时间:2014-12-01
用纸:胶版纸
页数:274
字数:448000
正文语种:中文

具体描述

内容简介

  DDS(Data Distribution Service,数据分发服务)是OMG发布的有关分布式实时系统中数据传输的一个规范(2004年12月发布1.0版,2007年1月发布1.2版)。随着实时分布式系统复杂度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅度提高,DDS为各种不同的分布式应用提供了数据通信模型,对分布式的异构系统集成提供了很好的解决方案。DDS是以数据为中心的发布/订阅通信模型,针对强实时系统进行了优化,提供低延迟、高吞吐量以及对实时性能的控制级别,从而使DDS能够广泛地用于航空航天、国防、分布式仿真、工业自动化、分布控制、机器人、电信以及物联网等多个领域。
  《数据分发服务:以数据为中心的发布/订阅式通信》的编写本着由浅入深、深入浅出的原则,系统地介绍了DDS的使用、编程技术。本书中配有大量的例子,供使用人员参考,适合软件工程师、软件架构师、软件项目经理等专业人员使用,同时也适合作为硕士研究生、本科生的教材。

内页插图

目录

第1章 概述
1.1体系集成需求
1.1.1系统集成的问题
1.1.2耦合性问题
1.1.3复杂数据流问题
1.2什么是数据分发服务
1.3什么是中间件
1.4网络通信模型
1.5什么是“以数据为中心”
1.6DDS对开发者有什么帮助

第2章 DDS架构
2.1设计理念
2.2可扩展的传输框架
2.2.1以数据为中心的发布/订阅
2.2.2数据本地重构层
2.3DDS的发现
2.4线程处理
2.5配置
2.6DCPS通信
2.6.1DCPS通信概述
2.6.2域和域参与者
2.6.3数据写入者和发布者
2.6.4数据读取者和订阅者
2.6.5主题、实例与关键字
2.6.6服务质量(QoS)策略控制通信行为
2.6.7监听器
2.6.8条件

第3章 数据类型和数据样本
3.1数据类型概述
3.1.1序列
3.1.2字符串和宽字符串
3.1.3类型代码
3.2内置数据类型
3.2.1注册内置类型
3.2.2为内置类型创建主题
3.2.3字符串内置类型
3.2.4关键字字符串内置类型
3.2.5管理内置数据类型的内存
3.2.6内置数据类型的类型代码
3.3使用IDL创建用户数据类型
3.3.1可变长度类型
3.3.2值类型
数据分发服务--以数据为中心的发布/订阅式通信
3.4与用户数据类型动态互动
3.4.1类型代码概述
3.4.2定义新类型
3.5使用数据样本
3.5.1具体类型的对象
3.5.2动态定义数据类型的对象

第4章 服务质量(QoS)策略
4.1QoS策略概述
4.1.1默认QoS策略
4.1.2DEADLINE(截止期限(T,DR,DW))
4.1.3DESTINATION_ORDER(目标顺序(T,DR))
4.1.4DURABILITY(持久性(T,DR,DW))
4.1.5ENTITY_FACTORY(实体工厂(DP,Pub,Sub))
4.1.6GROUP_DATA(组数据(Pub,Sub))
4.1.7HISTORY(历史(T,DW,DR))
4.1.8LATENCY_BUDGET(时延预算(T,DR,DW))
4.1.9LIFESPAN(寿命(T,DW))
4.1.10LIVELINESS(活跃度(T,DW,DR))
4.1.11OWNERSHIP、OWNERSHIP STRENGTH(所有权(T)、
所有权强度(DW))
4.1.12PARTITION(分割(Pub,Sub))
4.1.13PRESENTATION(呈现(Pub,Sub))
4.1.14READER_DATA_LIFECYCLE(读取者数据生命周期(DR))
4.1.15RELIABILITY(可靠性(T,DW,DR))
4.1.16RESOURCE_LIMITS(资源限制(T,DW,DR))
4.1.17TIME_BASED_FILTER(基于时间的过滤(DR))
4.1.18TOPIC_DATA(主题数据(T))
4.1.19TRANSPORT_PRIORITY(传输优先级(T,DW))
4.1.20USER_DATA(用户数据(T,DP,DR,DW))
4.1.21WRITER_DATA_LIFECYCLE(写入者数据生命周期(DW))
4.1.22DURABILITY_SERVICE(持久性服务(DW))
4.1.23OWNERSHIP_STRENGTH(所有权强度(DW))
4.2策略示例

第5 章实体
5.1所有实体的一般操作
5.1.1创建和删除实体
5.1.2启用实体
5.1.3获取实体的实例句柄
5.1.4获取状态和状态改变
5.1.5获取和设置监听器
5.1.6获取状态条件
5.1.7获取和设置服务质量策略
5.2实体的服务质量策略
5.2.1QoS请求vs.提供兼容性--RxO属性
5.2.2C语言的特殊服务质量策略处理
5.3通信状态
5.4监听器实体
5.4.1监听器的类型
5.4.2创建和删除监听器

第6章 主题
6.1主题概述
6.1.1创建主题
6.1.2删除主题
6.1.3设置主题的服务质量策略
6.2内容过滤主题
6.2.1内容过滤主题概述
6.2.2过滤器适用的地方--发布与订阅方
6.2.3创建内容过滤主题
6.2.4删除内容过滤主题
6.2.5使用内容过滤主题

第7章 发送数据
7.1发送数据的步骤
7.2发布者
7.2.1显式与隐式地创建发布者
7.2.2创建发布者
7.2.3删除发布者
7.2.4设置发布者的服务质量策略
7.2.5创建发布者监听器
7.2.6寻找一个发布者的相关实体
7.2.7等待应答
7.2.8发布者状态
7.2.9暂停和恢复发布
7.3数据写入者
7.3.1创建数据写入者
7.3.2获取所有数据写入者
7.3.3删除数据写入者
7.3.4创建数据写入者监听器
7.3.5检查数据写入者的状态
7.3.6数据写入者的状态
7.3.7使用一个类型特定数据写入者(FooDataWriter)
7.3.8写入数据
7.3.9刷新批量数据样本
7.3.10写入相关数据样本组
7.3.11等待应答
7.3.12管理数据实例(使用关键字控数据类型)
7.3.13设置数据写入者服务质量策略
7.3.14实体间的导航关系
7.3.15断言活跃度

第8章 接收数据
8.1接收数据的步骤
8.1.1接收数据的准备
8.1.2使用一种机制接收数据
8.2订阅者
8.2.1显式与隐式地创建订阅者
8.2.2创建订阅者
8.2.3删除订阅者
8.2.4设置订阅者服务质量策略
8.2.5开始和终止组顺序的访问
8.2.6设置订阅者监听器
8.2.7用特定样本获取数据读取者
8.2.8寻找一个订阅者的相关实体
8.2.9订阅者的状态
8.3数据读取者
8.3.1创建数据读取者
8.3.2获取所有数据读取者
8.3.3删除数据读取者
8.3.4建立数据读取者监听器
8.3.5检查数据读取者状态和状态条件
8.3.6等待历史数据
8.3.7数据读取者的状态
8.3.8设置数据读取者服务质量策略
8.3.9实体间的导航关系
8.4使用数据读取者访问数据(读取或获取)
8.4.1使用类型指定数据读取者(FooDataReader)
8.4.2借出和返回数据以及样本信息序列
8.4.3用读取或提取访问数据样本

第9章 使用域
9.1域和域参与者的基本原理
9.2域参与者工厂
9.2.1设置域参与者工厂QoS策略
9.2.2获取和设置域参与者的默认QoS策略
9.2.3释放域参与者工厂所用资源
9.2.4查找域参与者
9.2.5从QoS策略配置文件获取QoS策略值
9.3域参与者
9.3.1创建域参与者
9.3.2删除域参与者
9.3.3删除包括的实体
9.3.4选择域ID和创建多个域
9.3.5建立域参与者监听器
9.3.6设置域参与者QoS策略
9.3.7查找主题描述
9.3.8寻找主题
9.3.9获取隐式发布者或订阅者
9.3.10断言活跃度

第10章 条件和监听器
10.1条件和监听器概述
10.2通信状态类型
10.2.1主题状态类型
10.2.2订阅者状态类型
10.2.3数据读取者状态类型
10.2.4数据写入者状态类型
10.3定义监听器
10.3.1主题监听器
10.3.2数据写入者监听器
10.3.3发布者监听器
10.3.4数据读取者监听器
10.3.5订阅者监听器
10.3.6域参与者监听器
10.4定义条件
10.4.1状态条件
10.4.2附加的条件类型

第11章 配置OpenDDS
11.1配置方式
11.2通用配置选项
11.3发现配置
11.3.1域配置
11.3.2为DCPSInfoRepo配置应用程序
11.3.3为DDS�睷TPS发现配置
11.4传输配置
11.4.1传输配置概述
11.4.2配置文件示例
11.4.3传输注册示例
11.4.4传输配置选项
11.4.5传输实例选项
11.5记录
11.5.1DCPS层记录
11.5.2传输层记录

第12章 开始使用
12.1规定遵从
12.1.1DDS规定遵从
12.1.2DDS�睷TPS规定遵从
12.2使用DCPS
12.2.1定义数据类型
12.2.2处理IDL
12.2.3一个简单的消息发布者
12.2.4建立订阅者
12.2.5数据读取者监听器实行
12.2.6清理OpenDDS客户端
12.2.7运行示例
12.2.8用RTPS运行示例
12.3数据处理最佳化
12.3.1在发布者中注册和使用实例
12.3.2读取多个样本
12.3.3零复制读取
12.4构建一个应用程序
12.4.1搭建开发环境
12.4.2构建应用程序
12.4.3数据类型定义
12.4.4建立发布应用程序
12.4.5建立订阅应用程序
12.4.6运行应用程序
参考文献

前言/序言


穿越信息洪流:构建高效、灵活的分布式数据网络 在这个瞬息万变的数字时代,数据的生成和流动速度以前所未有的方式加速。从物联网传感器实时传输的海量数据,到金融市场瞬息万变的交易信息,再到社交媒体上持续涌现的用户动态,信息洪流无处不在,并深刻地影响着我们生活的方方面面。然而,如何有效地管理、分发和消费这些海量、异构、实时变化的数据,成为了构建现代分布式系统面临的核心挑战。传统的点对点通信方式在面对如此庞大的数据规模和复杂的交互场景时,往往显得力不从心,容易导致系统臃肿、耦合度高、难以扩展和维护。 正是为了应对这些严峻的挑战,一种全新的通信范式应运而生,它摒弃了直接的寻址和连接,转而采用一种更加优雅、解耦的方式来传递信息。这种范式,以“数据”为核心,将信息的生产者和消费者进行彻底的分离,它们之间不再需要直接的通信约定,而是通过一个中间层,这个中间层负责接收、存储、过滤和转发信息。想象一下,你不再需要知道你想给谁发邮件,只需将邮件写好,然后交给一个邮局(发布者),邮局会根据你的邮件内容和收件人指定的订阅(订阅者)将邮件准确送达。这种模式,极大地降低了系统的复杂性,提高了系统的灵活性和可伸缩性。 本书将深入探讨这种以数据为中心、发布/订阅模式为核心的通信架构。我们将一起探索其背后的设计哲学,理解它如何从根本上解决传统通信模式的弊端,并构建一个高效、灵活、可扩展的分布式数据分发系统。 第一部分:理解基石——发布/订阅模式的精髓 在本部分,我们将从最基础的概念出发,深入剖析发布/订阅(Publish/Subscribe, Pub/Sub)模式的核心思想。我们将详细阐述“发布者”和“订阅者”的角色定位,以及它们之间如何通过“主题”(Topic)或“事件”(Event)进行解耦。我们会探讨为什么这种模式能够实现极高的灵活性,让发布者无需关心谁会接收到信息,订阅者也无需关心信息来自何处。 核心概念解析: 我们将深入剖析“发布者”的职责——将数据转化为信息,并将其广播到特定的通道;“订阅者”的职责——主动监听感兴趣的信息通道,并对接收到的信息做出响应。同时,我们将详细讲解“主题”或“事件”的定义与作用,它是信息分类和路由的关键。 解耦的力量: 我们将深入分析发布/订阅模式如何实现发布者与订阅者之间的彻底解耦,以及这种解耦为系统带来的好处,例如独立部署、灵活替换、降低耦合度等。 传统模式的对比与优势: 通过与传统的点对点通信、RPC(远程过程调用)等模式进行对比,我们将清晰地展现发布/订阅模式在应对大规模、高并发、异构环境下的独特优势。 第二部分:构建引擎——数据分发服务的核心组件与机制 在理解了发布/订阅模式的基本原理后,我们将进入系统的核心构建阶段。本部分将详细介绍实现高效数据分发服务所需的关键组件及其运作机制。我们将从消息队列、消息代理、消息路由等底层技术入手,逐步构建起一个健壮的数据分发系统。 消息代理(Message Broker): 作为整个系统的核心枢纽,我们将深入探讨消息代理的功能、架构设计和关键技术。我们将分析不同类型消息代理(如基于持久化存储、基于内存缓存)的特点,以及它们在可靠性、性能和吞吐量方面的权衡。 消息队列(Message Queue): 我们将详细讲解消息队列在数据缓冲、削峰填谷、异步处理中的关键作用。我们将分析不同消息队列的设计模式,如先进先出(FIFO)、优先级队列等,以及它们如何影响消息的传递顺序和消费效率。 主题与订阅管理: 我们将深入探讨如何有效地管理和组织海量的主题,以及订阅者如何高效地订阅和取消订阅。我们将分析基于通配符、基于过滤器的订阅机制,以及它们如何实现精细化的消息分发。 数据序列化与反序列化: 在分布式环境中,数据的格式至关重要。我们将探讨各种数据序列化技术(如JSON, Protocol Buffers, Avro)的优劣,以及如何选择适合特定场景的序列化方案,以确保数据的正确传输和高效解析。 可靠性与容错机制: 在分布式系统中,可靠性是生命线。我们将深入分析消息的持久化、确认机制(ACK)、重试策略、死信队列等技术,以及如何构建高可用的消息代理集群,确保数据不丢失、不重复,并能优雅地应对节点故障。 第三部分:拓展视野——高级主题与实际应用 在掌握了数据分发服务的核心技术后,本部分将进一步拓展我们的视野,探讨一些更高级的主题,并展示数据分发服务在不同领域的实际应用。我们将关注如何优化系统性能,如何实现更复杂的通信模式,以及如何在实际业务场景中落地应用。 性能优化与伸缩性: 我们将探讨如何通过负载均衡、分区(Partitioning)、缓存等技术来提升消息代理的吞吐量和响应速度。同时,我们将深入分析如何构建可伸缩的发布/订阅系统,以应对不断增长的数据量和用户需求。 事件驱动架构(Event-Driven Architecture, EDA): 我们将探讨发布/订阅模式如何成为构建事件驱动架构的基石,以及EDA带来的好处,例如松耦合、响应式设计、服务自治等。 流处理与实时分析: 我们将展示如何结合流处理框架(如Apache Kafka Streams, Apache Flink)与数据分发服务,实现对海量实时数据的即时处理和分析,从而赋能实时决策和个性化服务。 微服务通信: 在微服务架构中,服务间的通信是关键。我们将探讨如何利用发布/订阅模式来解耦微服务,实现服务间的异步通信,提高系统的弹性和可维护性。 物联网(IoT)数据分发: 物联网设备产生海量、低延迟的数据。我们将探讨如何利用发布/订阅模式高效地收集、分发和处理物联网数据,构建智能家居、工业自动化等场景。 金融交易与实时推送: 金融市场的瞬息万变对通信系统提出了极高的要求。我们将探讨如何利用发布/订阅模式实现金融交易信息的实时推送、风险预警等应用。 数据集成与数据同步: 在复杂的企业环境中,不同系统间的数据集成和同步至关重要。我们将展示如何利用发布/订阅模式实现跨系统的数据一致性和实时同步。 安全考虑: 在数据分发过程中,数据的安全至关重要。我们将探讨消息加密、访问控制、身份验证等安全机制,确保数据的机密性和完整性。 结语: 通过对本书内容的深入学习,您将不仅理解发布/订阅模式的强大之处,更能掌握构建和优化高效、可靠、可扩展的分布式数据分发系统的核心技术和实践经验。无论您是正在设计下一代分布式系统,还是希望提升现有系统的通信效率,亦或是探索数据驱动的创新应用,本书都将为您提供宝贵的知识和指引,助您在信息洪流中稳健前行,释放数据的无限价值。

用户评价

评分

这本书简直是开发者们的一道曙光!我是一名资深的后端工程师,一直饱受微服务之间复杂通信的困扰。传统的 RESTful API 方式在处理海量数据流和实时更新时显得力不从心,而消息队列虽然有所帮助,但在某些场景下又显得过于笨重。当我偶然看到这本书的标题时,我的心立刻就被“数据分发服务”和“以数据为中心的发布/订阅式通信”这两个概念吸引住了。我当时就在想,如果真能有一个系统,能够以数据本身为核心,让发布者只关注数据的产生,订阅者只关注数据的接收,中间的路由和分发机制能够智能高效地完成工作,那将是多么强大的能力!我一直在寻找能够真正解决分布式系统中数据同步和实时性问题的方案,本书的描述让我看到了希望。尤其让我好奇的是,“以数据为中心”到底是如何实现的?它是否意味着可以摆脱对具体服务端的强依赖,让数据在不同系统之间流动得更加自由和灵活?我迫切地想知道书中是如何阐述这一理念,并且提供切实可行的技术实现细节的。这本书的内容,如果真的能够解决我的痛点,那绝对是值得我深入研究的宝藏。

评分

我是一名在金融科技领域工作的工程师,我们对数据的实时性、准确性和可靠性有着极高的要求。在进行交易撮合、市场数据分析、风险控制等业务时,任何一点延迟都可能带来巨大的损失。因此,我们一直在寻找能够提供低延迟、高吞吐量、可扩展且易于维护的数据分发解决方案。当我看到《数据分发服务:以数据为中心的发布/订阅式通信》这本书时,“数据分发服务”和“以数据为中心的发布/订阅式通信”这些词汇立刻抓住了我的眼球。这是否意味着一种全新的架构模式,能够将数据流的生成、传输和消费过程进行高度解耦,从而实现更强的韧性和更快的响应速度?我非常好奇书中是如何定义“数据分发服务”的,它与 Kafka、RabbitMQ 等现有技术相比,又有哪些独特的优势?“以数据为中心”的理念是否能够帮助我们更精细地控制数据的流向,并提高系统的整体效率?我迫切希望了解这本书是否能为我们金融科技领域的严苛需求,提供一套行之有效的技术方案。

评分

我是一名经验丰富的系统架构师,在设计大型分布式系统时,数据的一致性和实时性始终是让我头疼的问题。在微服务架构日益普及的今天,如何保证海量数据在不同服务之间高效、可靠地分发,并且能够快速响应变化,是一个巨大的挑战。我曾尝试过多种消息队列和事件总线方案,但总是在性能、可靠性、可扩展性以及运维复杂度之间进行权衡,始终没有找到一个完美的解决方案。当我在书店里看到《数据分发服务:以数据为中心的发布/订阅式通信》这本书时,标题中的“数据分发服务”和“以数据为中心”立刻引起了我的注意。我立刻联想到,这是否是一种全新的思路,能够将数据的生产、传输和消费过程进行解耦,从而实现更灵活、更高效的数据流转?我非常好奇书中是如何定义“数据分发服务”的,它与现有的消息系统有何本质区别?“以数据为中心”的理念又会带来哪些架构上的创新?我希望这本书能够为我提供一些颠覆性的思考,帮助我构建更具弹性和可伸缩性的下一代数据基础设施。

评分

作为一名对新兴技术充满好奇的独立开发者,我总是喜欢探索那些能够解决实际痛点,并且具有前瞻性的技术。《数据分发服务:以数据为中心的发布/订阅式通信》这本书的名字,听起来就充满了技术上的吸引力。我平日里也在研究各种实时通信和数据同步的方案,比如 WebSockets、MQTT,以及一些分布式消息系统。然而,很多时候,我感觉这些方案在处理复杂的业务场景时,仍然需要大量的定制化开发和繁琐的配置。这本书所提出的“数据分发服务”和“以数据为中心”的理念,让我觉得它可能是一种更高级别的抽象,能够将数据的传输和处理过程进行统一管理。我特别想知道,书中是如何阐述“以数据为中心”这一核心思想的,它是否意味着可以实现更智能的数据路由和过滤?“发布/订阅式通信”在这种框架下又会呈现出怎样的特点,与传统的 pub/sub 有何不同?我期待这本书能够为我带来一些新的技术灵感,让我能够用更简洁、更高效的方式来构建我的应用程序。

评分

作为一名刚刚踏入技术领域不久的初学者,我总觉得自己在学习过程中像是大海捞针,不知道该往哪个方向使劲。市面上充斥着各种各样的技术书籍,有些过于理论化,读起来枯燥乏味;有些又过于浅显,无法深入理解核心原理。当我看到《数据分发服务:以数据为中心的发布/订阅式通信》这本书时,虽然“数据分发服务”和“发布/订阅式通信”对我来说是相对陌生的概念,但我被它“以数据为中心”的描述深深吸引。我一直觉得,数据才是 IT 世界的基石,如果能理解数据是如何在不同的系统之间流转和传播的,那么我就可以更好地理解整个技术生态。这本书会不会用一种更易于理解的方式来解释这些复杂的通信机制?它是否会提供一些生动形象的例子,帮助我理解“发布/订阅”模式的精髓?我非常期待这本书能够为我打开一扇新的大门,让我对数据通信有更清晰的认识,并为我今后的学习打下坚实的基础。我希望能在这本书里找到学习的“正确路径”,而不是被各种零散的知识点淹没。

评分

目前讲DDS的书不多,这本书内容还算充实。

评分

不错!!!!!!!!

评分

东西是正品,纸质也不错

评分

项目开发所以买来看看,应该是国内唯一一本介绍dds的把

评分

东西是正品,纸质也不错

评分

京东太烦人了,写个评价还得规定格式。

评分

目前讲DDS的书不多,这本书内容还算充实。

评分

书不错,写的挺好。。。。

评分

学习中

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有