实时分布式系统的基本要素是什么?

Hou*_*man 27 distributed real-time distributed-computing distributed-system

我正在接受承包,今天我已经接受了承包商职位的第一轮面试.我已经通过了它,但有人告诉我 - 主要是一个UI开发人员 - 我只介绍了他们后端需要的基础知识,我应该在第二轮之前阅读分布式系统.

到目前为止,在我的职业生涯中,我一直在从事后期操作,从不需要实时.由于我还剩下几天,我需要涵盖哪些主题?首先能够回答他的问题并且通常被视为分布式系统中的适当问题?

问题是如何在UI上实时显示数据?后端需要做什么?我已经提到了实时数据馈送的生产者/消费者模式.他很喜欢,但他说他在第二次面试时需要更多.

任何帮助将非常感激,

and*_*soj 40

分布式实时系统的基本要素是什么?

分布式实时系统组成两个具有挑战性的属性集,这些属性由问题域或解决方案域(或两者)强加.

分散式

分布式系统连接多个独立的计算实体与由通信机构的方式本地特性.因此,算法和其他设计组件必须考虑同步故障模型.分布式计算问题的一个有用的总结(不完全客观)包含在Deutsch的分布式计算八大谬误中.(参见这个有用的说明.)所有这些都有助于(实时)分布式设计考虑; 每个都是基本设计和实施问题的出发点:

  1. 网络可靠
  2. 延迟为零
  3. 带宽是无限的
  4. 网络是安全的
  5. 拓扑不会改变
  6. 有一个管理员
  7. 运输成本为零
  8. 网络是同质的

即时的

实时系统是一种系统,其中操作完成的时效性是系统的功能要求和正确性度量的一部分.(我在这里打开了一个SO问题,试图澄清这一点.)实际上,几乎所有系统都可能被认为是"软"实时的,因为通常对操作的及时性有未说出的要求/期望.对于在不满足时间限制时不正确的系统,我们保留实时术语,有时通过来限定.请注意,上述谬误中总结的许多问题与及时性相关.(另请参见实时标签wiki)

值得注意的是,RT(和DRT)系统存在于连续的需求上,在一个极端具有"确定性"(或传统上,硬实时).然而,许多系统具有非常重要的时间限制,但这些限制仍然是非确定性的.特别是在DRT系统的背景下,将活动紧迫性的概念与活动优先级分开也是有用的.在延迟和故障是真实且非平凡因素的大型系统中,用于实现及时性和其他设计要求的计算和通信资源的显式管理变得更加重要,并且这两个维度的分离变得重要.

用实时编写分布式

  • 明确的及时性要求 - 有哪些要求,它们如何映射到活动,它们是真正的跨节点及时性要求,如何在设计和实施中明确表示时间约束,以及如何检测,报告和恢复故障?
  • 时间同步 - 实现时钟同步的要求和机制是什么?Wiki关于时钟同步 ; 许多应用只需要NTP ; 更严格的要求可能需要特殊硬件(例如,IRIG-B)或方法.
  • 同步要求 - 系统同步的同步假设约束和要求是什么?这与时钟同步相关,但不完全相同.对Doug Jensen正式模型的一些看法 ; 维基百科异步系统同步 ; 关于部分事件排序的问题 ;
  • 设计模式 - 什么是运动部件,它们如何与运输相关?(特别是,这些关系如何影响及时性?)
  • 中间件 - 您如何编码系统的分布式方面?例子包括Real-Time CORBA(这里是OIS的一个很好的页面)或DDS.
  • 时间限制 - 您如何在系统中记录,测量和实施时间限制?
  • 部分故障 - 实时系统通常具有可靠性要求.分布式系统的一个独特方面是由于真正的崩溃/通信故障或必须被视为故障的及时性错误而导致称为"部分"故障的整类故障的可能性. 关于故障转移方法的问题 ;
  • RTOS - 将采用哪些实时操作系统?

一些参考文献

对于相当传统的DRT系统演示,请看看Kopetz的书.为了更加动态的观点,推荐Jensen的作品和他的网站.在Java领域,我建议阅读优秀的"可靠的分布式编程简介".它没有解决时效性问题的全部领域,但确实以一种特别明确的方式解决了部分失败问题.

最近,(不可靠的)故障检测器的概念已经成为有用的同步结构,能够为DRT系统提供有用的理论推理和实际的配方/设计/构造技术.关于该主题的开创性论文是关于快速故障检测器对实时容错系统的影响,由Aguilera,Le Lann和Toueg撰写.这篇论文是沉重的雪橇,但奖励每一盎司的智力投资.