2. 服务实现方式
2.1 接口定义:
-
请求应答类
-
Method(Request&Response)
-
Method(Fire&Forget)
-
Field(Getter\Setter)
-
-
提交订阅类
-
Event
-
Field(Notifier)
-
2.2 接口框图
2.3 接口详解
2.3.1 Method
a. Request&Response(请求后应答)
客户端向服务端请求特定的报文,然后服务端将相应的数据报文返回给客户端。
b. Fire&Forget(请求后不应答)
客户端调用服务端方法的报文,通过请求完成方法远程调用;该通信模型的主要任务就是客户端向服务端发送请求,服务端无需进行任何响应,有点类似诊断服务中的抑制正响应。
2.3.2 Event (Notification)
-
在特定的事件触发下,服务端会发给客户端一个notification报文
-
循环更新、改变时更新、满足差值时更新
-
首先使用了 SOME/IP-SD 订阅(Subscribe)某一事件组(Event Group)
-
Event 总是分组在一个 Event Group 中,因此只能订阅 Event Group 而不是Event本身。
2.3.3 Field
访问进程通信机制主要是为了实现针对对应用程序的数据获取与更改
a. Getter
读取属性值,请求报文的payload为空,响应报文中含有当前属性
b. Setter
设置属性值,将预设值置于请求报文的payload中,属性的设置结果放于响应报文中
c. Notifier
当Field中的值发生变化的触发事件;类似Event,Notifier在订阅完成后,会立即发送InitialEvent,通知当前值
2.4 总结
-
Field 和 Event 的区别
-
Field 是一个持续存在的变量,比如多媒体音量、车速、环境温度等,这些可以在任何时刻获取;
-
Event 指的是一个事件,事件没有发生就不存在,比如发生碰撞,出现故障等。
-
-
例子