Invoking Services
For each EMS device, a Thing must exist on ThingWorx Platform. In general, devices running an EMS are set up as Remote Things, using one of the RemoteThing Thing Templates. If you require the ability to transfer files, the RemoteThingWithFileTransfer is the Thing Template to apply to a Thing that represents an EMS device. If you require tunneling, use the RemoteThingWithTunnels Thing Template. If you require both features, apply the RemoteThingWithTunnelsAndFileTransfer Thing Template. These Thing Templates provides the service and property definitions that the EMS requires.
All Things have services that perform specific tasks. To manipulate property values, you can use generic services, such as GetPropertyValues(), GetStringPropertyValue(), and SetPropertyValues(). These services are provided automatically on all Things. They provide the basic functionality needed for managing and manipulating properties.There are two kinds of services:
"Local" services that execute on the Thing
"Remote" services that are sent to and then executed on your device
Both types of services are invoked the same way, but only custom remote services need to be registered on the edge.
* 
The services on a ThingWorx Platform are implemented in Java. Although they may perform some of the same actions, be careful not to confuse them with the REST Web Services that you can use with the EMS.
Was this helpful?