Real-Time with FME Server
Real-time systems are those that act on events as they happen, and send information as it becomes available.
Real-time is often implemented to monitor sensor networks, run event-driven processing, and/or to send alerts to mobile devices such as cell phones. Therefore real-time data processing is usually used to handle small amounts of information (rather than large datasets) that arrive either as individual events or as a continuous communication stream.
Real-world examples of data that would arrive as individual events include processing simple location data from a vehicle tracking system or sending an email to a system administrator in response to database table updates. An example of continuous data would be handling a stream of data being sent from a temperature sensor or lightning detector.
Real-time data in FME Server is handled in two ways: Notifications and Message Streams.
Notifications
Notifications are how FME Server handles individual messages and alerts.
FME Server has a specific Notification Service that can be set up to listen for an incoming message from outside of FME, and trigger a certain action in response, or that can be set up to send a single alert in response to an event that takes place on FME Server.
Protocols supported include email, WebSockets, and notifications for Apple and Android devices.
Message Streaming
Whereas Notifications are one-off messages, Message Streaming involves handling a continuous flow of information.
Instead of a workspace being run once for each message, handling a message stream involves creating a workspace that will connect to the stream and run continuously receiving messages as soon as they are sent. Because of this reduced overhead, this technique can process data at a much faster rate than the notification service.