事物模板
事物模板提供了 事物实例在其执行中所使用的属性、服务、事件和订阅的基本功能。每个事物都是根据事物模板创建的。一个事物模板可以扩展另一个事物模板。在发布产品的新版本时,只需添加版本的附加特征,而无需重新定义整个模型。此模型配置提供了多个级别的资产泛化。事物模板可通过实现事物形态来派生一个或多个附加特征。当对事物模板进行更改时,更改会传播到实现该事物模板的事物,从而可方便、快捷地维护模型。
事物模板可用于对事物或资产类的类别进行分类,或将其归类为具有独特功能的特定产品模型。如果有两个产品模型,且它们与解决方案的交互是相同的 (相同的属性、服务和事件),则可以将它们建模为一个事物模板。您可以对事物模板进行分类,以将事物聚合到在混搭中有用的集合中。可以将事物模板区分开来,以便于索引、搜索和适应产品的未来演变。
系统定义的事物模板
提供了多种系统定义的事物模板,可用来为特定任务创建事物。在构建应用程序时,其中一些事物模板可用作各种服务和功能的实用工具。
系统定义的事物模板如下所示:
Blog - 此博客事物用于在您的混搭中实现博客、评论和/或论坛协作对象。
Content Crawler - 此事物用于处理外部系统或内容区域的特定接口。如果您定义了用于获取要建立索引的外部内容列表的服务以及用于检索每个内容对象详细信息的服务,则 ThingWorx 将对这些数据进行索引并使其可通过 ThingWorx 搜索功能使用。
Database - 与任何第三方关系数据库系统的 JDBC 连接。
Data Table - 数据表类似于关系数据库中的表格,可用于在 ThingWorx 中存储事务性数据行。
File Repository - 已定义的 ThingWorx 实体,用于存储外部文件内容。将文件传输到 Edge 事物或从中传输文件时,也会在特定的信息库中执行相同的操作。此文件信息库指向服务器的 ThingworxStorage/repository 文件夹中的文件夹。文件信息库中的服务可供您查看和处理其文件夹中的文件。
Generic Thing - 具有最小继承特征的基本事物。最佳做法是定义自定义事物模板。但是,可能存在这样的情况:您有一个一次性事物定义,而您想要使用通用事物。
Mail Server - 如果想要从您的应用程序发送电子邮件消息,则可以创建邮件服务器事物。
Edge - Edge 事物是安装在其他服务器上的设备或数据源,通常通过防火墙连接到不同的网络。Edge 事物通过本地安装的 EMS 与服务器进行通信。Edge 事物的一个示例是 OPC-DA 服务器。
Edge Database - Edge 数据库事物用于与不同服务器或工作站上的 OLE-DB 或 ADO.NET 数据库或数据源进行通信。Edge 数据库的示例为 Microsoft Excel 或 Microsoft Access。
Edge Enhanced - 与需要支持远程桌面隧道或文件传输的远程安装设备或数据存储相对应的服务器模型事物。
Scheduler - 计划程序事物可用于运行基于 cron 模式的作业,例如,每天一次或每小时一次。
Source Control Repository - 源控制信息库可以指向服务器文件系统上的任何文件夹,它可以是本地信息库的根文件夹。它可通过“导入/导出” > “源控制实体”进行使用。
Stream - 时序数据存储。
Timer - 通过已定义间隔触发事件的简单计时器。
Wiki - 用于在混搭中共享文档和相关评论的协作对象。
当创建其中一个系统事物模板的特定实例时,您可以对其进行配置以满足业务需要和 IoT 环境。
系统定义的远程模板
可使用几种系统定义的事物模板通过 Web 套接字与 Edge 设备或数据存储进行通信。RemoteThing 是使用 Web 套接字与网络中的另一个节点 (即“事物”) 进行通信的命名约定。WSEMS 和 SDK 的事物模板如下所示:
RemoteDatabase - 远程 OLE-DB 数据源。
RemoteThing - 无文件传输或隧道需求的远程事物。也用于 OPC-DA 数据源事物。支持属性、服务和事件。
RemoteThingWithFileTransfer - 远程事物以及文件传输启用。
RemoteThingWithTunnels - 远程事物以及隧道启用。
RemoteThingWithTunnelsAndFileTransfer - 带文件传输和隧道的远程事物。
EMSGateway - 如果您希望将 WSEMS 作为独立事物进行寻址,则使用 EMSGateway 事物模板。当 WSEMS 在网关计算机上运行并处理一个或多个远程事物 (可能位于局域网内的不同 IP 地址) 的通信时,这可能很有用。
SDKGateway - 类似于 EMSGateway,但要用于将 SDK 实现用作网关的情况。
除了上述事物模板,还有下列远程模板可以在联合的存储情景中使用,且您希望将持久化方案对象卸载到已对磁盘 IO 进行优化的另一台服务器上:
RemoteStream - 针对正在运行并在另一台 ThingWorx 服务器上持久保留数据的流事物,创建本地代理对象。
RemoteValueStream - 针对正在运行并在另一台 ThingWorx 服务器上持久保留数据的值流事物,创建本地代理对象。
RemoteDataTable - 针对正在运行并在另一台 ThingWorx 服务器上持久保留数据的数据表事物,创建本地代理对象。
RemoteBlog - 针对正在运行并在另一台 ThingWorx 服务器上持久保留数据的博客事物,创建本地代理对象。
RemoteWiki - 针对正在运行并在另一台 ThingWorx 服务器上持久保留数据的 wiki 事物,创建本地代理对象。
通过扩展创建事物模板
通过扩展创建的事物模板与在 ThingWorx Composer 中创建的事物模板基本相同。它们都是基本模板,用于创建具有相同属性、配置参数、服务的事物。在 Composer 中与在扩展框架内创建事物形态的区别在于:服务所使用的语言不同,服务的可见性不同。
Composer 模板:
将 JavaScript 用于服务
源代码可见
Extension SDK 模板:
将 Java 用于服务
源代码不可见
可以定义配置值