Service

In FTM SWIFT, a service is a component that processes messages; that is, that receives messages as input, and does something to or with each message. According to this definition, both a broker message flow and a node within such a message flow are services. Most FTM SWIFT services are implemented as message flows or nodes.

Typically, a service produces an output message, but this is not required. For example:
  • A typical formatting service receives an unformatted message as input and produces a formatted message as output.
  • A typical recording service receives a message as input, retrieves data from the message and stores that data in a database, but produces no output message.

Some services are provided by FTM SWIFT, but customers and independent service vendors (ISVs) can create their own services.

Most of the services provided by FTM SWIFT are implemented using the message broker product which lets you create message flows that route messages and manipulate their contents according to rules that you specify. A message flow is a directed graph (sometimes called a network diagram) composed of nodes and connectors. Each node in a message flow represents a processing step, and the connectors determine which processing steps are carried out, and in which order.

A message flow runs in a message broker and can be used directly by an application, another message flow, or any other software capable of triggering it. Usually, a message flow has an input queue from which it retrieves messages to be processed, and is triggered by a message being placed in this queue.

A node cannot run on its own; it is a building block that represents a processing step and is embedded in a message flow. Each node retrieves its input messages from a preceding node in the flow in which it is embedded or, if it is the first node in a flow, from the flows input queue.

A service often requires resources external to the service. For example:
  • A service implemented using a node might require a database table in which to store data.
  • A service implemented using a message flow might require an input queue.

The following figures show examples of ways in which services can be implemented in FTM SWIFT.

Figure 1. Simple service, implemented using a node, that receives a message as input, processes it, records data in a database table, and produces an output message, which it passes to the next node in the flow
Graphic showing simple service, implemented using a node, that receives a message as input, processes it, records data in a database table, and produces an output message, which it passes to the next node in the flow
Figure 2. Simple service, implemented using a message flow, that receives a message as input, processes it, and produces an output message, which it puts into an output queue
Graphic showing simple service, implemented using a message flow, that receives a message as input, processes it, and produces an output message, which it puts into an output queue
Figure 3. Service, implemented using two message flows, that processes both outbound and inbound messages
Graphic showing service, implemented using two message flows, that processes both outbound and inbound messages
Figure 4. Service, implemented using a message flow, that does not produce an output message
Graphic showing service, implemented using a message flow, that does not produce an output message
Figure 5. Service, implemented using two message flows, that communicate by means of a table
Graphic showing service, implemented using two message flows, that communicate by means of a table
FTM SWIFT system administration functions such as configuration and monitoring are also implemented using services. You administer FTM SWIFT by either: The CLI converts the commands you enter into messages, which are then processed by FTM SWIFT administration services.