ION-DTN AMS协议介绍

AMS介绍与目的:

AMS:Asynchronous Message Service,异步消息服务

AMS是CCSDS提出的基于DTN的应用层协议,AMS是一种数据系统通信体系结构,任务系统的模块可以在该体系结构下设计成好像要在隔离地操作一样,每个模块在不知道哪些其他模块运行的情况下进行工作:生产和消费数据。

基于此模型的系统是一个由通常自治的互操作模块组成的“社会”,也就是说各个模块之间不知道其他模块的运行状态。

也就是说,AMS的目的是通过以简单易用、高度自动化、灵活、健壮、可伸缩和高效的方式为数据系统模块之间的信息交换提供标准、可重用的基础设施来降低任务成本和风险。简单来说就是实现了消息中间件的功能。

 

AMS特点:

1.任何模块都可以随时引入系统,模块永远不需要为任何其他模块建立显式的先验通信“连接”或“通道”,来向其他模块传递消息或接收消息。

2.任何模块都可以在任何时候从系统中删除,而不会限制任何其他模块继续发送和接收消息的能力。

3.当模块必须升级到改进版本时,可以随时终止模块并启动替换模块;不需要中断整个系统的操作

4.当系统作为一个整体必须终止时,系统模块停止运行的顺序是无关紧要的。

 

基于ams的系统是高度健壮的,没有任何天生的单点故障,并且能够容忍计划外的模块终止。同时,在基于ams的系统中,通信可以是快速和有效的:

1.消息是直接在模块之间交换的,而不是通过任何中央消息分发。

2.消息的分发 会自动使用“最好的”底层通信服务,例如,在公共LAN上运行在不同计算机上的两个地面系统模块之间的消息可能通过TCP/IP进行传输,在连接到公共总线内存板的两个飞行处理器上运行的模块之间的消息可以通过共享内存消息队列传递

3.类似分布式的思想。

 

AMS信息交换模型:

AMS消息交换基本上是异步的。也就是说,每个消息都是以“邮政”而不是“电话”方式发送的:在发送消息时,AMS模块不需要在继续执行其功能之前等待任何消息的到达(例如对发送的消息的回复)。

出于某些目的,真正的消息同步也是必要的:也就是说,已经发出消息的模块可能希望完全暂停操作,直到接收到应答——即,查询其他模块。AMS程序在需要时还支持该通信模型。

基于AMS的数据系统中的大多数消息交换是在“发布-订阅”模型上进行的:

1.模块使用AMS过程来宣布它正在订阅关于指定主题的消息。

2.从那时起(直到取消订阅),每当消息空间中的任何模块使用AMS过程发布关于该主题的消息时,将自动向该订阅模块以及已宣布类似订阅的所有其他模块传递消息的副本。

该模型可以大大简化应用程序开发和集成。实际上,每个模块将自己插入一个数据“网格”,就像电力的生产者和消费者。

AMS模块可以向这样的数据网格中插入它所生成的任何数据,而不必非常了解该数据的使用者,并且从网格中获取它所需要的任何数据,而不必非常了解生产者。模块的设计与所有其他模块的设计在很大程度上解耦,就像烤面包机的设计与发电厂的设计在很大程度上解耦一样。

 

AMS的模块以及功能体定义:

continuum:

是AMS的通信的实体,每个continuum由一个continuum 名称和对应的非负continuum编号标识。

application:

application是数据系统实现,通常采取一组源代码文本文件的形式,它依赖于AMS过程来实现其目的。每个application由application name标识。

authority:

authority是可能负责application的配置和操作的管理实体或角色。每个authority由authority name标识。

venture:

venture是应用程序的实例,即application的功能投影到一组一个或多个正在运行的计算机上。

role:

role是应用程序功能的一部分。每个role由role名称和相应的非负role号标识。也就是一个功能模块。

subject/subject number:

消息的subject/subject number是嵌入在消息中的整数,该整数指示消息在消息被交换的AMS venture的上下文中所传递的信息的一般性质。

subscription:

订阅是请求将订阅域中的任何模块在某个指定主题上发布的每条消息的一个副本发送到订阅模块的语句;订阅的域是建立订阅的AMS服务请求的域。

AMS架构:

《ION-DTN AMS协议介绍》

 

AMS通信实体:

所有AMS通信都在三种类型的通信实体之间进行modules, registrars, and configuration servers。

registrar:

注册器是一个通信实体,记载了关于消息空间的单个单元的已注册成员资格的信息。它响应对此信息的查询,并在宣布更改时更新此信息,也就是说它是一个守护进程,负责模块的注册,修改,以及退出等更新动作。

configuration server:

配置服务器是一个通信实体,它编目关于在一些AMS continuum中建立的消息空间的信息,特别是所有消息空间的所有单元的注册器的位置。它响应对此信息的查询,并在宣布更改时更新此信息。

 

    原文作者:hahachenchen789
    原文地址: https://blog.csdn.net/hahachenchen789/article/details/84634351
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞