Warewolf services can be broadly categorized into internal and external services. Internal services, otherwise known as management services, are server entry points that expose the core capabilities of the Warewolf server to the external world. An example of an external service; would be a file system service that exposes the host file system to external clients.
As with any architecture, the purpose of a service is to expose a method remotely, rather than encapsulate any business logic. Services are essentially adapters that carry out the following steps:
- Format incoming data (arguments) into a format that can be understood by the underlying logical unit
- Execute underlying logic via delegation.
- Format the data returned
- Return control to the caller, which then dispatches the formatted data to an external client.
Internal services are created by implementing the IEsbManagementEndpoint interface, defined in the Dev2.Runtime.Services project. The IEsbManagementEndpoint interface exposes the following two methods:
- Execute – This method is the primary entry point for executing a service.
- CreateServiceEntry This method allows a service to be loaded by a Warewolf server and provides the server with the expected DataList format
All internal services are defined in the Dev2.Runtime.Services project.