Open SAS 是一个通用自适应软件服务编程框架,其需要为动态更新时的自适应软件微服务提供版本一致性能力。
首先,“动态更新”是微服务集群中的动态更新,因此系统首先解决的问题是对“自适应软件微服务”间的网络通信进行选型。考虑到“自动驾驶”“智能制造机器人”等经典的自适应软件场景,Open SAS拟采用类似于消息队列(Message Queue)的方式来实现异步、解耦的数据交互机制。
其次,Open SAS系统需要使自适应软件微服务在“动态更新”时对其他服务“无感知”(动态装卸)。即系统需要通过上述的微服务间的消息传输机制对服务与服务进行解耦,即服务间不应存在显式的依赖关系,某个服务的上/下线不会影响到相应数据的传递。
再次,Open SAS系统需要保证在动态更新过程中的“版本兼容”的自适应软件微服务间的“版本一致性”,即被定义过版本信息的数据不能在不兼容的服务间进行数据交互。系统拟采用“语义化版本(Semantic Versioning) 2.0.0”的概念对系统中所有实体(例如消息、消息发送者、消息接收者)的“版本”进行定义,并借助“语义化版本的Major版本号相等即版本兼容”“Major版本号为0的服务为‘不稳定服务’”等约定来保证消息在网络传输的过程中不会被传输到版本不兼容的自适应软件服务,以免造成数据污染、数据与服务逻辑不匹配等影响系统安全性的行为。
最后,Open SAS系统基于上述的所有机制,为用户提供“支持版本一致性的‘消息中心’服务”与“开箱即用的、用于接入消息中心的自适应软件微服务‘客户端SDK’”,以进行软件自适应过程。此外,Open SAS提供开放平台服务(管理态服务OpenMind),用于“服务接入的可靠性认证”“服务接入的元信息可视化”等场景。