A service is a flow you can interact with. That is, it receives requests, processes them, and returns a result of the processing.
A service in Flow Director always has a shell that provides the interface to the service. More about shells later in this chapter.
Flow as a Service
This is the most basic variant of a service. Create a flow, add a shell, and you can interact with the flow. It turns into a service. A service flow serves requests for the particular App.
REST as a Service
To expose a service as a REST service, you create the service flow first and add a shell. This makes the service independent from the actual usage. Then either make the shell REST aware or add a flow that works as a REST request handler on a route that you define through the Web API. This REST request handler then interacts with the service flow through the shell.
App as a Service
Instead of creating multiple services within the same app, use one app per service so that your business application consists of multiple independent services that interact with each other. A service app exposes its shell. To make it accessible from other apps, grant access from the System app.