了解 VSOA
本节内容介绍 VSOA 基础知识,包括 VSOA 框架、通信特点、URL 资源标识以及 VSOA 位置服务的配置方法。
VSOA 框架
在 VSOA 框架中,存在如下三个角色:
服务端: 指服务的提供者,向外提供资源。
客户端: 指业务的使用者,使用服务端的资源。
位置服务: 与 DNS 类似,客户端无需知道服务提供方实际的网络地址即可与其建立连接。
VSOA 通信特点
VSOA 是一个全双工通信协议,同时使用了 TCP 和 UDP。在 VSOA 的众多接口中,含有 quick
接口的使用的即为 UDP 通道。 这些快速通道通常用于高频率的数据更新场景,也因为高频率的数据更新,对于这些数据不应当有可靠传输的严格要求。需要注意的是,UDP 通道不能穿透 NAT 网络,所以不能在含有 NAT 网络的场景中使用这些快速通道。
VSOA 的数据包负载有效长度为 (256K - 20) 字节,当使用快速通道时该长度为 (65507 - 20) 字节,所以如果需要传输大量数据时应当使用 VSOA Stream 功能。
VSOA 的 URL 资源标识
在 VSOA 的世界里,所有的差异化均得到统一,所有的硬件、软件服务均提供统一的资源标签 URL。类似 http://
,VSOA 的 URL 以 vsoa://
开始。下面通过 2 个例子介绍 VSOA 统一资源标识的好处:
例如:一个飞行系统中,存在传感器数据采集服务和导航服务,假定传感器数据采集服务 URL 为 vsoa://domain/sensor ,导航服务 URL 为 vsoa://domain/navigation。应⽤如果需要获取传感器数据采集服务或导航服务,精准订阅它们 URL 即可。
又如:在该飞行系统中,该传感器系统是一个综合服务,包含了红外、雷达等多种传感服务,它们的服务 URL 分别为 vsoa://domain/sensor/infrared 、 vsoa://domain/sensor/radar ,应用如果需要获取综合服务下面的所有子服务,则直接订阅其父节点 vsoa://domain/sensor 即可,通过这种订阅匹配机制,可以降低代码编写的复杂度,提高代码编写效率与质量。
VSOA 位置服务配置方法
位置服务对外提供微服务地址查询功能,用户输入指定微服务的 URL,位置服务返回该微服务的通信地址和端口。
说明:
位置服务可以由独立的位置服务程序提供,也可由 ECSM 容器管理平台提供(ECSM 集成了位置服务功能)。
在客户端运行的环境中需要指定位置服务器的地址,在 SylixOS 或 Linux 中客户端查询位置服务器地址流程如下:
- 首先查询系统环境变量
VSOA_POS_SERVER
指定的位置。 - 若环境变量不存在,则查询
/etc/vsoa.pos
中的配置。
下面以 "位置服务位于 192.168.1.1,端口为 4000" 为例,介绍 VSOA 位置服务设置方法:
- 若使用环境变量:
VSOA_POS_SERVER=192.168.1.1:4000
- 若使用
/etc/vsoa.pos
,在文件内加入如下内容:
192.168.1.1 4000
在 Windows 中,vsoa.pos 配置文件的存储路径为:C:\Windows\System32\drivers\etc\vsoa.pos
。