System Overview

The WIC EBT Middleware (WEM) System is designed to be a simple solution to a complex problem. It connects disparate WIC MIS and EBT systems using a common transformation mechanism across the platform. Messages can come into the WEM in the form of SOAP requests or via Batch files. When these requests come in they queued, transformed, and routed according to their source and their contents.

Architecture

WEM is built on .NET 4.6 in C# (C-Sharp). It runs on both Windows x86 and x64 platforms. It is a highly configurable solution that can manage multiple endpoints per agency, and multiple agencies per instance.

The following diagram offers a high-level view of how the WEM Stack. Each of the ends are pluggable, allowing new system types and interface types to be applied with little additional effort.

The WEM Stack

From a configuration perspective there are multiple ways the WEM can operate. First, as mentioned above, it's all driven by the configuration of agencies and endpoints. An important fact of this is that an agency can have n endpoints, and a single WEM instance supports n agencies. We are still getting the data together on actual hardware requirements, but the software can support a virtually unlimited number of connections. Perhaps the simplest example of this is the connectivity of the SPIRIT MIS in Smart Card mode. This combination requires SPIRIT as the MIS, SWEM-Q as an Online/Smart Card Proxy, and an Offline EBT Host. WEM bridges the gap to provide the connectivity required between the three systems for this configuration.

The diagram below illustrates, from left to right and top to bottom, some common scenarios where WEM can be used to bridge the divide between these systems.

WEM Configurations

This versatility is provided largely by WEM's JSON Configuration Architecture, and the design that allows the MIS and EBT endpoints to snap into the WEM Stack interchangeably.

Client Endpoint

The SOAP processor, commonly called the Client Endpoint, is used for sending SPIRIT messages to the Message Processor. These messages are translated through the system to communicate with the associated EBT Host using the Universal Interface 2014 real time message format. This component is required for SPIRIT installations, and is not needed and not recommended for Open Domain MIS implementations.

When the SOAP processor receives a message, it gathers a minimal amount of information, in order to determine the sender and intent of the message and then sends it to the Message Processor.

File Processor

The file processor serves as a listener that watches for incoming files, and handles delivery of outgoing files. When a new file is detected, it is sent to the Message Processor where it is processed and converted to a different outgoing format depending on the sender and receiver of the file. The Message processor will return the results to the file processor for delivery to the intended recipient of the file. In addition, with some command line switches, as explained in the Installation Guide, the File Processor can be configured to pull files from an FTP Host. These files are delivered to a proxy Inbox associated with the remote system. These files are then sent through the same process as files delivered directly to the Inbox.

Message Processor

The message processor does the heavy lifting for all the other components of the system. While those components handle the initial receiving of the messages and files, it is the message processor that handles the transformation and routing of the messages. Using the wem-config.json file the file processor makes determinations of the sender and intended receiver of the file or message. It will then transform the message from the sender's defined format while performing any necessary data conversions, and forward it to the intended recipient.

Split Routing

Using a concept called Split Routing messages can be forwarded to multiple recipients. This is particularly important to the system as this functionality is used for sending messages to the EBT Host and SWEM-Q in a smart card implementation of EBT in SPIRIT.

Real-time Message Processing

Messages from the MIS are converted to the EBT format, and any necessary transformations to mapped data exchanges are made at that time. More information about those transformations can be found in the Processing Rules documentation for real-time messages. Once the file is transformed it is forwarded to the EBT Host (or hosts if split routing is in use) in the native Universal Interface 2014 format implemented by that host.

Batch File Message Processing

Batch files from the EBT Host will be converted to the MIS format, and the MIS batch files will be converted to the Universal Interface 2014 format. Files are logged in the WEM database in both original and translated forms. In addition, the translated file is archived into the configured Outbox archive. Incoming MIS files are archived to the configured Archive Inbox and Messages from the EBT host are archived in the configured Archive Proxy Inbox. See Configuration for more information about these path settings.

Files bound for the EBT Host make use of split routing to broadcast the files to all the EBT endpoints configured for a given agency.

In a Smart Card configuration files from the EBT Host are intelligently routed to the SWEM-Q component, which will further process the file before providing a different file to route to the MIS.

Configuration Toolkit

The configuration toolkit is a tool that was created to aid in the creation of the wem-config.json file. It provides a UI with all of the settings, where many of those that require specific values are restricted to the supported values using drop-down or numeric controls. Other fields are free entry. Once saved it creates a wem-config.json file that can be used by the WEM components.