Legacy Support > ThingWorx XMPP Edge MicroServer (EMS) Software > Server Side Configuration of Edge Things > Edge Thing Services
  
Edge Thing Services
There are two types of services for Edge and EdgeEnhanced Things, as follows:
Local (JavaScript) — JavaScript business logic executing on the server.
Remote — A direct call to a remote service on an edge thing (such as a custom defined Lua script).
An EdgeDatabase thing adds the following two types of service handlers:
SQL Query — To execute queries that return a data set from the remote ADO or OLE-DB data source.
SQL Command — To execute an insert or update query to the remote ADO or OLE-DB data source.
A Local JavaScript service is the same as you would implement for any other Thing in the system. The SQL Query and Command are the same for any database Thing. The Remote service is specific to an Edge Thing.
Remote Services and Binding
When you define a remote service, you are defining the meta data for the service so that it can be properly consumed from the server. The definition includes the service name at the server, the description, edge service name, and the inputs and outputs of the service. This will bind the service to the edge service, and the edge service will be executed when the service runs. From a Mashup or REST API perspective, it will appear the same as a local service.
You can also directly browse and bind to edge services if the Edge Thing is running and is connected. Press the Browse Edge Services button, and you will be able to see the currently defined remote Edge Thing services. You can then add them to the local service definitions through the drag and drop interface (similarly to how you are able to bind edge data properties).