VSOA 事件
本节介绍 AutoCode VSOA 事件。
概述
AutoCode 实现了 VSOA 调用(CALL),订阅发布(PUB-SUB) , 数据报(DATAGRAM)通信接口。组件中与服务输入输出端口直接连接的事件是 VSOA 事件,事件相应的端口是 VSOA 端口。
VSOA-CALL 事件
事件描述
CALL 事件输入端口:服务接收到客户端调用请求,在组件视图中,该端口与服务输入端口连接,是事件会话的开始;AutoCode 将在事件接口中创建调用返回程序,用户可以通过端口 reply
属性,指定在一个会话(事件调用链)任何端口处返回调用结果。
CALL 事件输出端口:客户端发起调用事件,在组件视图中,该端口与服务输出端口连接,实现调用功能,该端口事件将创建两个回调接口,一个是事件正常接口,用户可以设置请求数据,另一个是请求返回响应接口,用户可以接收请求数据。
端口属性
VSOA-CALL 输入输出端口属性配置如下:
表 1 VSOA-CALL 端口说明
I/O 类型 | 名称 | 值 | 选项 | 缺省值 | 是否可配置 | 说明 |
---|---|---|---|---|---|---|
Input | Type | VSOA | / | VSOA | no | 输入端口类型 |
Input | From | serc2-/serc2/elema/get | / | 自动配置 | no | 服务端口 ID |
Input | Reentrant | true | true, false | true | yes | 会话可重入选项 |
Input | Reply | false | true, false | true | yes | 当前端口是否执行 reply 操作 |
Output | Type | VSOA | / | VSOA | no | 输出端口类型 |
Output | TimeOut | 0 | / | 0 | yes | VSOA-CALL 超时时长(ms), 0 表示一直等待 |
Output | Reply | false | true, false | false | yes | 当前端口是否执行 reply 操作 |
Reentrant
属性:
- 客户端连接事件是会话的第一个事件, 如果
Reentrant
属性配置为false
, 会话不可重入;当会话开始时将检查上次会话是否结束,如果上次会话未结束则中止当前会话。 - 如果
Reentrant
属性配置为true
,允许会话重入。
reply
属性:
如果一个会话(事件链)由 VSOA-CALL 事件发起,那么这个会话上每个事件端口都有
reply
属性,VSOA-CALL 请求回复reply
操作将在reply
属性设为true
的端口事件执行。如果所有属性都是false
,请求回复reply
操作将在会话第一个事件端口执行;在服务组件编辑视图中,用户设置会话中某个端口
reply
属性为true
时,组件中该端口事件名以粗体显示,同时会话中所有其它端口reply
属性将自动设置为false
;reply
属性设置在 Input 端口时,在事件接口中将立即执行reply
操作;当reply
属性设置在 Output 端口时,reply
操作将在输出端口事件行为完成后执行。当
reply
属性设置在 VSOA-CALL Output 端口时,reply
操作不在当前事件接口执行,而是在 Output 端口 VSOA-CALL 调用返回接口中执行。
事件接口
VSOA-CALL 输入端口
端口实现示例如下:
图中各区域说明:
- VSOA-CALL 输入参数。
- VSOA-CALL 输出端口请求数据定义。
- 用户在此区域处理数据及业务,填充输出端口 VSOA-CALL 数据。
- 执行输出端口 VSOA-CALL 请求。
- 用户在此区域清除资源,控制接口返回结果。
VSOA-CALL 输出端口
端口实现示例如下:
图中各区域说明:
- VSOA-CALL 输出端口响应数据 。
- VSOA-CALL 输入端口 REPLY 数据定义。
- 用户在此区域处理僌数据及业务,填充输入端口 REPLY 数据。
- 执行输入端口 REPLY 操作。
- 用户在此区域清除资源,控制接口返回结果。
VSOA-PUB 事件
事件描述
PUB 事件输出端口:服务端发布事件,在组件视图中,该端口与服务输出端口连接,实现发布功能。
SUB 事件输入端口:客户端收到订阅事件,在组件视图中,该端口与服务输入端口连接,是事件会话的开始。
端口属性
VSOA-SUB, VSOA-PUB 端口属性配置如下:
表 2 VSOA-SUB, VSOA-PUB 端口说明
I/O 类型 | 名称 | 值 | 选项 | 缺省值 | 是否可配置 | 说明 |
---|---|---|---|---|---|---|
Input | Type | VSOA | / | VSOA | no | 输入端口类型 |
Input | From | serc2-/serc1/elemc/pub | / | 自动配置 | no | 服务端口 ID |
Input | Reentrant | true | true, false | true | yes | 会话可重入选项 |
Output | Type | VSOA | / | VSOA | no | 输出端口类型 |
Reentrant
属性:
- 客户端连接事件是会话的第一个事件, 如果
Reentrant
属性配置为false
, 会话不可重入;当会话开始时将检查上次会话是否结束,如果上次会话未结束则中止当前会话。 - 如果
Reentrant
属性配置为true
,允许会话重入。
事件接口
- VSOA-SUB, VSOA-PUB 事件接口实现示例:
图中各区域说明:
- VSOA-SUB 输入参数。
- VSOA-PUB 输出端口发布数据定义。
- 用户在此区域处理僌数据及业务,填充输出端口 VSOA-PUB 数据。
- 执行输出端口 RPC-PUB 发布操作。
- 用户在此区域清除资源,控制接口返回结果。
VSOA-DATAGRAM 事件
事件描述
DATAGRAM 事件输入端口:服务接收到客户端发送的数据,在组件视图中,该端口与服务输入端口连接,是事件会话的开始;
DATAGRAM 事件输出端口:客户端发起数据报事件,在组件视图中,该端口与服务输出端口连接,实现数据报发送功能;
端口属性
VSOA-DATAGRAM 输入输出端口属性配置如下:
表 3 VSOA-DATAGRAM 端口说明
I/O 类型 | 名称 | 值 | 选项 | 缺省值 | 是否可配置 | 说明 |
---|---|---|---|---|---|---|
Input | Type | VSOA | / | VSOA | no | 输入端口类型 |
Input | From | serc2-/serc2/elemb/send | / | 自动配置 | no | 服务端口 ID |
Input | Reentrant | true | true, false | true | yes | 会话可重入选项 |
Output | Type | VSOA | / | VSOA | no | 输出端口类型 |
Reentrant
属性:
- 客户端连接事件是会话的第一个事件, 如果
Reentrant
属性配置为false
, 会话不可重入;当会话开始时将检查上次会话是否结束,如果上次会话未结束则中止当前会话。 - 如果
Reentrant
属性配置为true
,允许会话重入。
事件接口
VSOA-DATAGRAM 事件接口实现示例:
图中各区域说明:
- VSOA-DATAGRAM 输入参数。
- VSOA-DATAGRAM 输出端口发送数据定义。
- 用户在此区域处理僌数据及业务,填充输出端口 VSOA-DATAGRAM 数据。
- 执行输出端口 VSOA-DATAGRAM 发送操作。
- 用户在此区域清除资源,控制接口返回结果。
组件类型
AutoCode 服务由组件实现,一个服务内包含一个或多个组件,组件由一组事件组成,组件之间通过事件有向连接。AutoCode 组件可分为以下类型:
- 基本组件(Component):基本组件是通用组件,组件可以创建一组事件,每个事件有一个输入端口和一个可缺省的输出端口,输入端口可以和一个其它组件输出端口相连接;输出端口可以连接到一个或多个其它组件输入端口。
- 管道组件:管道组件在基本组件基础上,对事件进行约束,最多只有一个外部输入事件,每个事件输出端口最多只能与一个外部事件相连接;管道组件输出只能连接管理组件;管道组件有单通道与多通道两种类型。
- 单通道管道组件(PipeCom):单通道管道组件是只有一个事件的管道组件。
- 多通道管道组件(MPipeCom):多通道管道组件有一个或多个事件,只有第一个事件的输入端口可以与外部事件连接,其它事件的输入端口由第一个事件驱动。
在通用组件基础上对事件类型、属性、接口等进行约束或扩展,从而实现一些具有特定功能的组件。AutoCode 提供了以下功能组件:
- 异步调用组件(AsyncCallMCom):异步调用组件是多通道管道组件;异步调用组件可以发起一次或多次 VSOA-CALL 调用请求,组件收到所有调用请求之后触发结束事件。
- 连接同步组件(ConnSyncMCom):连接同步组件是多通道管道组件,用于客户端连接或重连时,向服务端发起 GET 请求,同步据资源,数据将从相应资源订阅接口返回。
- 变速器组件(SubRegulMCom):变速器组件组件是多通道管道组件,当一个服务从其它服务订阅资源时,使用变速器组件,可以配制该资源输出频率。