构建自己的中间件分析指南——分析网络中间件的实践工作手册(适用于分析自主可控DDS等中间件)

构建自己的中间件分析指南

——分析网络中间件的实践工作手册

(适用于分析自主可控DDS等中间件)

导言

对于构建新型业务系统架构的您来说,可能正在考虑是购买中间件还是自己从头建造 “类似”需要的部分。本指南旨在分享我们长期从事中间件业务的经验,为您提供在自主设计实现中间件过程中需要考虑的一些问题,为您的决策提供参考。如果您已决定自己构建一套完整的中间件系统,本指南可作为我们提供的一份免费服务。

同时,即使您已经决定不购买任何成熟的商用中间件产品,我们同样期待您的接洽,相信在您自主开发同类产品的过程中,我们的经验能为您提供更多的支撑。同时您的应用场景也能够提高我们的设计思路和产品质量,以更好的为下一个像您一样的客户服务。

如何使用本指南

本指南主要提出您在构建自己的中间件过程中需要考虑的一些问题,包括技术问题和商务问题两个部分组成。 在预留的空白处,您可以填写您的答案,或者与专家协商回答这些问题。

没有公式化的东西可以帮助您决定是自己构建或者购买,本指南的目的仅仅是为了帮助您找到并集合这些可以帮助您在项目中做出正确决定的因素和专业人士。

主要议题是按以下顺序提出的:

技术问题
  • 需求分析
  • 连接方式
  • OS接口
  • 通道管理
  • 网络负荷
  • 有线通信协议(wire protocol)
  • 可用性
  • 服务质量
  • 调试和分析
商务问题
  • 成本和风险分析
  • 商业中间件:构建或购买?
    这种调查是以问答方式进行的,并非所有的问题都与您的应用有关。所以如果出现您不关心的内容,建议您直接可以跳到下一章节。

注意: 本文暂时不涉及成熟商用中间件产品中的高阶特性,如路由服务、配套监控调试工具、数十种QoS、安全传输等。 一方面,以您最常用的功能来切入,更加有利于您的决策;另一方面,您在自主研发的过程中也必须先保证核心功能的稳定,然后经过多年的迭代完善,才有可能添加上述全部功能。

技术问题

需求分析

每一个工程项目都是以需求分析开始的。这个话题大部分超出了本文的内容。即便如此,我们还是会在您选择网络中间件之前从一些重要的标准开始。

在这里插入图片描述

通信架构

也许,选择可靠的TCP协议还是UDP协议才是您最重要的决定。我们假设您有足够的网络知识可以明确了解两者之间的不同。

如何选择? 显而易见,选择并不是那么明显的。简单的来说,如果您的系统吞吐量比时延要求重要,可靠性比可控性重要,可扩展性不重要,系统配置是静态的,那么TCP是比较好的选择。相反,当系统的实时性比较重要,系统节点数又是变来变去的,您又希望采用一对多的广播方式时,UDP就是显示出它的优越性。本节首先询问关于TCP的问题,然后是UDP。

TCP

TCP提供虚拟链路服务,可靠地消息传输但不可控。下面的问题将聚焦于那些在对内存可用性和消息时间约束性上有限制的嵌入式系统开发者的重要议题上。如果您没有内存大小,消息时间,或者网络性能方面的担心,那么您可以直接进入OS接口部分。

在这里插入图片描述

UDP

UDP协议是IP协议中比较少的一部分内容。它提供不可靠的数据流(包)分发;也就是说,它只发送没有经过检查的数据或不保证消息是否到达目标节点。尽管如此,UDP能提供时间,内存使用等的可控性功能。当应用程序有低延迟和保守内存使用的情况时,UDP是特别有用的。UDP也提供多点传输消息的能力。多点传输可以使您同时将一个消息发送到多个节点。考虑多点传输的原因是在相当多的应用程序中需要考虑有效地利用带宽将相同的数据发送到不同的目的地。
在这里插入图片描述

OS接口

您的目标机和主机可以选用的操作系统很多。许多平台都有自己特有的通讯方式; 例如,微软提供在Windows上DCOM技术,Wind River 在VxWorks上提供VxFusion技术。 如果您做过评估,您就会明白每一种技术都有其自身的价值与缺陷。到目前为止所涉及的问题可以帮助给您的应用程序选择合适的方式。

如果您的产品使用混合的操作系统,例如,一些节点运行VxWorks,同时一些节点运行Windows或者Solaris,您将会被问及一系列其他问题。这部分将讨论混合操作系统的应用程序的通信问题。
在这里插入图片描述

通道管理

网络中不同节点必须查明系统中的其他节点以及为每一个节点提供的什么样数据和服务。一旦得到相应信息,他们就需要调整网络中的变化。
在这里插入图片描述

网络负荷

当您使用以太网时,如果您需要保持网络负荷低于临界点,快速,一致性分布,即使您使用单播方式也需要充足的带宽。临界点是多少呢?这取决于数据大小和分发速度。(在我们的网站上有一个表格可以方便的帮助您计算网络负荷。注意,网络带宽的影响不是很大,因为20%的利用率已经相当高了。)
在这里插入图片描述

有线通信协议(Wire Protocol)

设计一种通信协议是不容易的。正如您从一个版本到下一个版本的修定一样,如果您需要设计一种可扩展的(毕竟,您不可能在开始时就能考虑到所有性能)、后向兼容的通信协议就更加困难了。
在这里插入图片描述

服务质量(QoS)

影响两个节点之间通信情况的所有属性都可以称之为服务质量。在企业通讯中,QoS与带宽分配有关系-例如您被告知可以使用可靠的占总带宽一定百分比的网络通道。对于实时通信而言,QoS主要注重的属性为时延,时限,流量控制等等。
在这里插入图片描述

调试和分析

工具!按照您的需求设计一个可以运行的嵌入式应用不是一个简单的任务。程序调试和分析工具必须具备检测变量变化状态,跟踪程序执行情况,发现内存泄露和 确认线程执行时间等功能。当您必须调试和分析一个正在工作的分布式应用程序的变量,内存,线程执行情况时,情况就更加复杂了。您如何寻找这样的工具呢?

在这里插入图片描述

商务问题

设计,开发,调试对于公司来说仅仅是一个影响产品的价值的商务问题。另一个方面就是确定成功产品的生命周期。即使此刻不销售产品,但这也是产品特性的一个方面。开发维护的成本必须考虑投入产出比。

成本和风险分析

首先,您必须估算设计,开发,调试和维护中间件将会投入多少成本。因延误而导致产品开发成本和潜在市场发生变化的情况也必须被考虑。
在这里插入图片描述

商业中间件: 构建或购买?

构建或购买这是一个问题。开发您自己的中间件是有很多合理理由的。从中间件供应商购买也是有很多合理理由的。构建或者购买哪种情况适合您的的现状呢?

是否有足够的理由自己构建呢?

在这里插入图片描述

是否有充足的理由购买呢?

构建还是购买常常是由中间件特性(设计,开发和维护)和是否需要与别的供应商的产品互操作决定的。下面是我们所列举的购买中间件产品的原因:

  • 降低风险: 除非通信服务非常简单,否则开发和维护中间件会给您带来非常多的麻烦。这会增加您的成本并影响产品的上市时间。
  • 受益于供应商在这一领域的经验和产品的时间性:供应商在开发过程中已经付过学费,并且从中掌握了经验。产品在实际使用中所接受的检验是任何内部测试都不可能做到的。
  • 和其他用户共享开发和支持成本: 供应商不可能向您收取全部的开发成本。开发和支持成本会分摊到整个客户群。
  • 提高持续版本的价值: 您将从供应商为所有客户的投入中获益。持续版本的改进使使得产品具有竞争力,而您不需要考虑这些问题。
  • 只需关注给您带来更价值的工作:中间件很少会成为应用程序的一部分而给最终用户带来价值。您把时间用在客户愿意购买的功能上比开发中间件效果会好得多。
  • 需要的工具: 有价值的工具常常被低估。这不是一个简单的问题。除非您将工具作为产品的一部分来销售,否则开发和维护工具就是另一个巨大的投入。

译文连载

RTPS规范-译文连载:实时发布订阅协议(RTPS)DDS互操作网络协议规范-中文翻译_001
DDS规范-译文连载:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001

相关链接

DDS科普:一文读懂DDS(数据分发服务)
DDS定义:什么是DDS?
产品介绍:BLUE DCS分布式数据连接解决方案
产品试用: 海蓝云平台-Blue DCS

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值