Resource Manager
The Resource Manager provides the application interface for interacting with Resource Providers that communicate with external systems to apply a query, action, or service against its resources. Resource Providers implement the following services: Get, Create, Update, and Delete.
The next diagram shows the Resource Manager and Resource Providers as part of the architecture.
Image
The Resource Manager is a thing named PTC.Resource.ResourceManager that provides three options for calling services on a resource through its resource provider:
  • CallServiceOnProvider—This takes the thing name of a resource provider as a parameter and calls a service on the resource provider thing by its name as another parameter. The parameters of the service are passed as an InfoTable parameter. This InfoTable should have only one row with a column for each parameter for the service invoked on the resource provider. The result is also an InfoTable that typically represents the resources. The "Id" attribute of each resource is prepended with the thing name of the resource provider as a URN format: [Resource Provider Name]:[Id]. The original "Id" is kept in a separate "OriginalId" attribute.
  • CallServiceOnResources—This takes the same parameters as CallServiceOnProvider, but instead of the resource provider thing name, an InfoTable is passed to represent the resources. Each of the resources should have its "Id" attribute in the URN format such that its resource provider can be inferred to invoke the service.
  • CallServiceByCriteria—This is a more generic form of invoking a service on any resource provider that matches the criteria parameters—a thing template name and a list of thing shape names in an InfoTable. The thing template is for a resource provider template that the service will be invoked on every resource provider thing of the template. The thing shapes are for capability service providers that may filter these resource providers to have the service invoked only on those that implement these thing shapes. If the thing template name is not passed, the service would be invoked on any resource providers that implement these capability service provider thing shapes such that the result would be any type of the resources that have the capabilities of the thing shapes.