摘要

软件定义的本质是将不同硬件提供的功能抽象为标准的接口,用户通过使用抽象所得到的接口来使用具体的硬件功能从而满足不同的需求。ROS作为一款开源的机器人通信框架,其目标是解决机器人开发过程中代码无法复用的问题。然而在其核心通信方式的服务通信机制中却存在关于服务端的单点失效问题:若提供特定服务的节点服务端失效,则服务不可用。针对该问题,提出了一种使用软件定义范式所改进的服务通信机制模型Rosie。该模型可以在保持服务端对客户端完全透明的原有通信逻辑和优势的条件下,实现了服务通信的高可用。并且在该基础上进一步实现了对服务端的可编程管理。在设计的应用场景中,该模型对原有的服务端单点失效问题达到了预期的解决效果。更进一步,该模型在设计的过程中加入了对去中心化等特性的考虑,为未来的工作创造了必要的条件。