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.
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.