

终止支持通知：2026 年 5 月 20 日， AWS 将终止对的支持。 AWS SimSpace Weaver 2026 年 5 月 20 日之后，您将无法再访问 SimSpace Weaver 控制台或 SimSpace Weaver 资源。有关更多信息，请参阅[AWS SimSpace Weaver 终止支持](https://docs.aws.amazon.com/simspaceweaver/latest/userguide/simspaceweaver-end-of-support.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 开发应用程序
<a name="working-with_developing-apps"></a>

SimSpace Weaver 开发需要 Amazon Linux 2 (AL2) 用于构建应用程序的环境，因为您的模拟运行在上面 Amazon Linux 在 AWS Cloud。 如果你正在使用 Windows，您可以使用 SimSpace Weaver 应用程序 SDK 中的脚本来创建和启动 Docker 运行的容器 AL2 以及构建 SimSpace Weaver 应用程序所需的依赖关系。你也可以启动 AL2 环境使用 Windows Subsystem for Linux (WSL)，或者使用本机 AL2 系统。有关更多信息，请参阅 [设置您的本地环境用于 SimSpace Weaver](setting-up_local.md)。

**注意**  
无论您如何配置本地开发环境，您的应用程序都可以在中运行 Docker 当您上传容器以在中运行时 AWS 云。**您的应用程序对主机操作系统没有直接访问权限**。

**SimSpace Weaver 应用程序的一般流程**

1. 创建应用程序。

1. 循环：

   1. 通过创建 `Transaction` 开始更新。

      1. 如果模拟关闭，则退出循环。

   1. 处理订阅和所有权实体事件。

   1. 更新模拟。

   1. 提交 `Transaction` 以结束更新。

1. 销毁应用程序。

## 空间应用程序
<a name="working-with_developing-apps_spatial-apps"></a>

每个空间应用程序都有一个所有权区域，即模拟环境下的空间区域。位于空间应用程序所有权区域中的实体存储在应用程序的已分配分区中。对于已分配分区中的所有实体，该单一空间应用程序拥有完全所有权（读取和写入权限）。其他应用程序均无法对这些实体执行写入操作。空间应用程序可推进实体的状态。每个空间应用程序仅拥有 1 个分区。 SimSpace Weaver 使用实体的空间位置编制索引并将其分配给空间应用程序分区。

 SimSpace Weaver 应用程序 SDK 提供了一个示例应用程序。您可以在以下文件夹中找到示例应用程序的空间应用程序的源代码（使用适用于您的操作系统的正确路径分隔符）：

```
sdk-folder\Samples\PathfindingSample\src\SpatialApp
```

## 自定义应用程序
<a name="working-with_developing-apps_custom-apps"></a>

您可以创建并使用自定义应用程序来与模拟进行交互。

**自定义应用程序可以**
+ 创建实体
+ 订阅其他分区
+ 提交更改

**自定义应用程序的一般流程**

1. 创建应用程序。

1. 订阅模拟中的特定区域：

   1. 创建 `Transaction` 以开始首次更新。

   1. 为特定区域创建订阅。

   1. 提交 `Transaction` 以结束更新。

1. 循环：

   1. 创建 `Transaction` 以开始更新。

      1. 如果模拟关闭，则退出循环。

   1. 处理状态更改。

   1. 提交 `Transaction` 以结束更新。

1. 销毁应用程序。

定制化 App 创建实体后，必须将实体转移到空间域，实体才能在模拟中以空间形式存在。 SimSpace Weaver 使用实体的空间位置将实体放置在相应的空间应用程序分区中。将实体转移到空间域中后，创建实体的自定义应用程序无法更新或删除实体。

 SimSpace Weaver 应用程序 SDK 提供了一个示例应用程序。您可以将示例应用程序中包含的自定义应用程序用作自己的自定义应用程序的模型。您可以在以下文件夹中找到示例应用程序的 view 应用程序（自定义应用程序）的源代码（使用适用于您的操作系统的正确路径分隔符）：

```
sdk-folder\Samples\PathfindingSample\src\ViewApp
```