# APP 的开发运行模式
本文详细介绍 APP 的开发运行模式。
# 什么是 APP
APP 是带交互界面的应用程序,提供面向特定场景的专业应用,如控制系统设计与分析应用。APP 通常依赖函数库或模型库,具备 GUI 实现交互入口,通过专业算法调用底层函数。APP 作为专业工具,需要在 Syslab 平台的基础计算能力上,构建面向特定应用的专业计算能力。
本文以运行模式和开放运行流程两方面介绍 APP 的开发运行模式。
# 运行模式
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 开发
用户可以使用多种主流的图形应用开发平台(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。具体流程图如下所示。
