开发应用程序的最佳做法 > 资产建模 > 使用事物、事物模板和事物形态实现资产建模
使用事物、事物模板和事物形态实现资产建模
事物是对物理设备、资产、产品、系统、人员或具有属性和业务逻辑的流程的表示。
为实现一次定义一种行为并在应用程序中对其加以重用,ThingWorx 可通过提供事物模板和事物形态来简化应用程序建模。事物模板为事物及其属性、服务、事件和订阅提供了基本功能。事物形态允许在单个应用程序中对多个资产重用属性。
事物会从事物模板继承功能。事物模板可通过实现事物形态来派生一个或多个附加特征。
最终用户将与事物进行交互以获取应用程序中的信息并实现数据的读取/写入。
创建事物、事物模板和事物形态的最佳做法
创建事物、事物模板和事物形态时,可以使用以下最佳做法:
为事物、事物模板和事物形态定义命名约定。请牢记以下几点:
在实体中使用标准命名法。例如:您可以针对不同的实体类型使用唯一的名称空间前缀,以避免发生冲突。
为实体提供有意义的名称。
尝试为所创建的每个实体提供适当的描述。
避免名称含混不清。
尽可能避免使用较长的实体名称。
有关详细信息,请参阅 的 命名实体部分。
对您创建和修改的所有实体使用标记。对于复杂的应用程序,这有助于区分同一应用程序或多个应用程序的各个模块。对于客户,它有助于区分 ThingWorx 平台同一实例上不同应用程序的实体。作为开发人员,它允许您在 ThingWorx Composer 中快速筛选实体,并导出应用程序的模块进行测试。建议为标记设置命名约定,尤其是计划在同一应用程序的不同模块中使用不同的标记时更是如此。
将模块中的相同实体分组到一个项目中。每个模块都有属于其自己的项目。
应尽可能使用事物形态。
* 
建议您使用“事物形态”定义属性和服务。如果在事物模板上定义属性和服务,则很难将它们的定义移至事物形态。
在事物形态级别定义所有属性、服务和事件。
事物模板用于对事物形态进行分组并支持继承。
只要有可能,请勿在事物模板和事物上实现属性或服务。
允许在事物形态和事物模板实现服务覆盖。
请确保出厂设置的事物形态和事物模板不可编辑。
定义注释来标识受支持的 API。这样便可确保在升级时维护服务和属性。
使用事物形态封装特定功能。使用事物形态,您可以轻松地将新功能添加到 ThingWorx 中的现有事物模板。请勿直接在事物中实现事物形态。通过事物模板继承事物中事物形态的特征。
例如,如果您已使用自定义事物模板和事物实现资产,则将事物形态添加到这些事物模板会变得非常简单。但是,如果直接针对事物模板定义属性或服务,则需要重新创建所有资产以使用新功能,因为无法更改事物模板或事物的基本事物模板。
请勿直接从系统事物模板派生事物。建议您创建自定义事物模板,这些模板派生自 ThingWorx 提供的基本事物模板。这可供您日后通过实现其他事物形态并将其添加到事物模板这一方式来添加其他功能。
如果您的应用程序已连接多台远程设备,或者它将会使用 ThingWorx Edge Micro Server 或 EDGE SDK,请使用 RemoteThing 事物模板而非 GenericThing 事物模板作为基本事物模板。根据您是否需要文件传输或隧道,请使用 RemoteThingWithTunnelsRemoteThingWithFileTransferRemoteThingWithTunnelsAndFileTransfer 事物模板。建议通过脚本自动执行添加远程绑定的过程,其中脚本可用于检查是否存在未绑定的远程事物,并在平台上自动创建这些事物。这可供您在平台上自动创建事物,因为新设备已发运并投入生产。
* 
创建事物或事物模板后,将无法更改基本事物模板。
借助网络定义您的事物之间的关系。在网络中,一个事物可以是另一个事物的父项、子项或同级事物。这可供您对层次结构进行建模。
可持续性考虑事项
本部分将介绍其他适用的考虑事项:
安全性
请确保将所有事物、事物模板和事物形态都设置为不可编辑。
针对事物模板或事物形态添加相应的可见性、运行时和设计时权限。
定义有权访问事物形态、事物模板或事物的用户组织、用户组和用户。
升级
使用项目和标记组织事物、事物模板和事物形态。这可供您执行诸如搜索、导出、修改可见性权限以及标识升级实体等任务。
在创建实体时,请确保使用正确的命名约定。这样可节省在升级期间重命名实体的成本。
扩展和自定义
要扩展组件事物,请创建可继承出厂设置事物模板的子类型事物模板。
依照扩展开发人员的指示,覆盖子类型事物模板中的服务和属性。
在新事物形态中引入新的服务和属性。