# 使用其他方式开发 APP
APP 是带交互界面的应用程序,提供面向特定场景的专业应用,如控制系统设计与分析应用。APP 通常依赖函数库或模型库,具备 GUI 实现交互入口,通过专业算法调用底层函数。APP 作为专业工具,需要在 Syslab 平台的基础计算能力上,构建面向特定应用的专业计算能力。
# 运行模式
APP 运行过程中通过 APP SDK 与 Syslab 平台交互。Syslab 平台提供了多种 APP SDK,以支持多种图形应用开发平台(PyQt、C++/Qt、JavaScript 等)来开发 APP,包括 Python 版本 SDK、C++ 版本 SDK、Javascript 版本 SDK。
APP SDK 提供了 APP 通信 API,可实现 APP 与 Syslab 平台之间数据交互和功能调用,包括 APP 从 Syslab 工作区中获取数据,APP 将数据写入 Syslab 工作区,APP 调用 Syslab 执行科学计算等。 下文将阐述 APP 运行的原理。
# 组件关系图
APP 层:负责开发 GUI 图形用户界面和 APP 的业务逻辑。用户可以使用主流的图形应用开发平台(PyQt、C++/Qt、JavaScript 等)来开发 APP,并通过使用 APP SDK 来实现与 Syslab 平台集成和通信。
APP SDK 层:负责 APP 与 Syslab 平台之间的通信,实现了进程间通信的管道客户端,并提供了 APP 通信 API。Syslab 提供多款 APP SDK,包括 Python SDK、C++ SDK、JavaScript SDK 等,便于用户快速开发。
Syslab 平台:包含 APP 通信与 APP 管理两个模块。APP 通信模块提供了 APP 管道服务,提供了查询变量、执行脚本等服务化能力。APP 管理模块提供了对 APP 进行注册安装、卸载、启动、查询、禁用、激活等功能,实现对 APP 的全生命周期管理。
# 运行时序图
APP 的运行过程主要包含以下 3 个部分:
启动 APP
- APP 注册安装到 Syslab 平台后,用户从 Syslab 平台启动 APP
- 启动 APP 时 Syslab 平台先启动 APP 管道服务端
- Syslab 通过 cmd 命令方式启动 APP 进程,并将管道名以参数方式传递给 APP 进程
- APP 调用 APP SDK 在 APP 进程内启动 APP 管道客户端,与 Syslab 建立管道连接
APP 交互
- 用户在 APP 的图形界面操作,以获取 Syslab 变量列表为例,APP 调用 APP SDK 的获取变量列表 API:MwGetVariables
- APP SDK 向 Syslab 平台发送消息 repl/getvariables
- Syslab 平台执行消息处理后,将结果发送给 APP SDK
- APP 获取到结果后,在图形界面将变量列表展示给用户
关闭 APP
- 用户关闭 APP 程序
- APP 删除 APP SDK 实例
- APP SDK 向 Syslab 平台发送 APP 关闭的通知,Syslab 关闭管道连接,同时关闭其他通信 IO 资源
# 开发运行流程
APP 的开发运行流程包括以下过程:
- APP 开发:基于 APP 应用开发环境,编写代码开发 GUI 图形用户界面,开发具体的业务逻辑,实现与科学计算环境的数据交互,调用科学计算环境的函数和算法。
- APP 测试:APP 开发完成后的测试验证工作,包括开发者自测试和专业测试。本文侧重于开发者的自测试,包括 2 个测试场景,场景 1 为不依赖于科学计算环境,通过打桩测试实现 APP 的独立测试,验证 APP 自身的功能,场景 2 为与科学计算环境的集成联调测试。
- APP 打包:APP 的代码开发完成后,将 APP 打包成独立可运行的程序(例如 exe 或 sh 脚本),对于依赖的动态链接库等文件也要一起打包。
- APP 安装:指 APP 打包好后,将 APP 安装和集成到科学计算环境中,实现 APP 的可查询、可运行、可管理。
- APP 使用:APP 安装成功后,可以在科学计算环境中使用统一的用法来使用 APP,包括查询 APP、启动 APP、使用 APP 等。
APP 的开发运行流程如下图所示。
# APP 开发
用户可以使用多种主流的图形应用开发平台(PyQt、C++/Qt、JavaScript 等)来开发 APP。具体过程包括编写代码开发 GUI 图形用户界面,开发具体的业务逻辑,实现与科学计算环境的数据交互,调用科学计算环境的函数和算法。APP 的开发过程如下所示。
# APP 测试
APP 开发完成后的测试验证工作,包括开发者自测试和专业测试。本文侧重于开发者的自测试,包括 2 个测试场景,场景 1 为不依赖于科学计算环境,通过打桩测试实现 APP 的独立测试,验证 APP 自身的功能,场景 2 为与科学计算环境的集成联调测试。具体流程图如下所示。
# APP 打包
APP 打包遵循具体 APP 开发环境的要求,打包好的 APP 程序需独立可运行,不需再另外安装软件或执行其他的操作。
# APP 安装
APP 打包好后,将 APP 安装和集成到科学计算环境中,实现 APP 的可查询、可运行、可管理。APP 安装和卸载都是在 Syslab 中操作,APP 安装成功后才能在 Syslab 中使用。具体流程图如下所示。
# APP 使用
APP 安装成功后,可以在 Syslab 平台中查询到 APP 信息,用户可以在 Syslab 中启动并使用 APP。具体流程图如下所示。
