第三方平台对接样例
这里以一个软件平台集成ModelBox框架为例,介绍一下ModelBox框架被集成的过程。
服务插件的开发主要应用于其他平台集成ModelBox框架后如何与ModelBox各个模块进行交互。由于ModelBox各个模块均提供使用接口及规范,用户可根据自己平台所需的功能与ModelBox框架的各个模型进行对接交互。
以某个第三方软件平台为例,假设该平台需要完成如下方面与ModelBox的对接:
- 第三方软件平台和AI应用间的通道建立和协商,保证AI应用的安全,包含握手、心跳、证书加解密等;
- 第三方软件平台任务结构和ModelBox任务结构间的适配;
- 第三方软件平台任务和ModelBox间运维统计信息的对接。
第三方软件平台可以基于ModelBox进行服务插件开发,满足上述第三方平台和ModelBox框架的对接诉求,并将插件提供给AI应用开发者,集成后的AI应用即可对接第三方软件平台。根据业务需要可以通过一个插件实现,也可以是多个插件,如上图采用两个插件进行对接。
服务插件开发步骤和规范可见服务插件开发规范,首先复制服务插件样例,再实现插件接口,下面以“用户任务对接插件”为例,实现接口如下:
// 插件创建接口
std::shared_ptr<Plugin> CreatePlugin() {
插件对象创建
…
}
// 插件初始化接口
bool MyPlugin::Init(std::shared_ptr<modelbox::Configuration> config) {
资源准备
…
}
// 插件启动接口
bool MyPlugin::Start() {
与第三方软件平台通道建立
与第三方软件平台协商握手
启动与第三方软件平台心跳线程
启动任务管理线程,接受第三方软件平台任务消息转换成ModelBox规范格式,并调用任务配置管理规范接口进行任务增删改查
…
}
// 插件停止接口
bool MyPlugin::Stop() {
资源释放
...
}
服务插件接口开发完毕后可以将其编译成库,添加到插件配置路径进行验证,并提供给AI应用开发者。