Filters

Message manipulation components

Filters are programmable software components that customize the processing of data passing through a Message Server.  Each Filter is contained within a separate code file. They may be written in C#, Visual Basic .NET, C++, or Java.   Up to two Filters may be assigned to a Message Server: one for the A Side and one for the B Side.

Inbound and Outbound Messages

In the simplest case, the A-Side Filter manages inbound messages while the B-Side Filter manages the outbound messages.  In more complex scenarios, the A-Side Filter can handle inbound messages as well as outbound messages.

Often the A-Side Filter is capable of routing messages that don’t conform to business rules to an alternate queue. This is illustrated in the diagram below in which the A-Side Filter is responsible for validating the MQSeries® messages based on business rules.  If the A-Side Filter determines that a message does not conform to these rules, it inserts the message along with the appropriate error code into an MQSeries® error queue for later processing.  In this scenario, only the A-Side Filter understands the business rules and therefore only the A-Side Filter can identify the error.

imgFilter-ABAdapters

It is equally possible that the message is inserted into one of possibly many MQSeries® queues either for error processing or routing to an application. The routing of the messages is dependent on the business rules engine and/or the severity of the error. In this case all the logic is in the A Side with the B Side simply being a placeholder.

imgFilter-AAdapter-BLoopBack

Messaging

The transformation of a message is the responsibility of a Filter.  This transformation can be as simple as reformatting a message.  It can also be as complex as aggregating multiple inbound messages into a single outbound message or generating multiple outbound messages to many different destinations based on a single inbound message.  It is equally possible for the Filter to “drop the message on the floor” based on the business rules engine.

Filter Functionality

Filters are flexible enough to support just about anything that can be done to a message via code. They can be written in either managed or unmanaged code. Some examples of Filter operations include:

  • Translate character sets
  • Modify an existing message
  • Encrypt messages
  • Change one application-level protocol to another application-level protocol
  • Accumulate multiple messages and combine the contents into a single message, then send the single message on its way
  • Take a single message and generate multiple copies of that message, then send each on its way
  • Take a single message and generate many different messages from it, then send each message to a different destination
  • Take a message, manipulate the message, send the message to a user-written .Net or Java library for processing, wait for the response, manipulate the response, and send the response to a destination
  • Take a single message and send a copy of that message to two different destinations; for example, to a primary site and a secondary site
  • Enforce security
  • Retain some state of the message in persistent storage for later reassembly with an associated response message

Over the years, a large number of Filters have been written.  To write a new Filter, an existing Filter is typically modified to include the new feature set.

Current Filter Descriptions

The currently available filters are described herein, organized by General or solution.

General Filters

Filter Description
HealthCheck Data path viability health check requests.  Used both with an F5 load balancer and system software.
HTTPAdmin Provides Web Service interface to Plexus Message Broker Message Server status and configuration
HttpClientMq Take a message and encapsulates in a SOAP wrapper
HttpServerMq Removes a SOAP wrapper from message
NETRequestor Provides a general interface for writing .NET-based client transaction modules
NetSoap Provides a general interface for writing .NET-based server transaction modules

Health Care Filters

Filter Description
HCPcm Provides an interface between large numbers of Linux servers and IBM mainframe using the Health Care TCP Protocol
HCWMQI Provides an interface between WebSphere® Message Broker (WMB) and IBM mainframe using MQ with Health Care Protocol

Emergency Services Filters

Filter Description
AsapCsIn Manages inbound Central Station Connections, identifies source,  and performs authorization
AsapNletsIn Receives messages from PSAPs, performs schema validation, authorization, and routes message to specific central station delivery queue
AsapWafIn Receives messages from Web Application Firewall appliance, performs schema validation, routes Address Verification requests to metering queue, and routes Alarm requests to Nlets delivery queue
AsapWafOut Submits Central Station ASAP message to Web Application Firewall (WAF) appliance, and manages any rejected (virus infected) messages
ASAPWebClient Wraps ASAP message in ASAP SOAP envelope and delivers using HTTP protocol
ASAPWebServer Receives ASAP SOAP message using HTTP protocol and extracts the encased ASAP message.  Handles both SendASAPMessage and ReceiveASAPMessage.
NletsMeter Provides metering of ASAP address verification messages from Central Stations
Psap Provides simulation of Public Safety Access Point (PSAP)

Justice / Law Enforcement Filters

Filter Description
FromNcicAsyncMq Receives NCIC unsolicited messages and determines destination based on business rules and message content
IIIFlow Component of Law Enforcement Gateway Service (LEGS) that delivers III messages to NCIC
Ncic Part of LEGS that provides synchronous interface to NCIC using MQ
NcicProxy Provides a simulation of NCIC 2000 asynchronous protocol. Used to convert NCIC 2000 TCP protocol to MQ.
NcicProxyAsyncResp Provides a simulation of NCIC 2000 synchronous protocol. Used to convert NCIC 2000 TCP protocol to MQ.
NcicSoapServerMq Part of LEGS that provides synchronous interface to NCIC using MQ

Unemployment Benefits Filters

Filter Description
IconWebClient Delivers message to the Unemployment Information Interstate Connection Network(UI-ICON) via Web Services
IconWebServer Receives Web Services inbound messages from the Unemployment Information Interstate Connection Network(UI-ICON)
JsndIdb Provides IDB protocol for communications between UI-ICON and the MCP Server
HLCNTS Converts the Unisys HLCN terminal services protocol to a Unisys COMS station Protocol
HLCNTSClient Connects as a client to Unisys MCP Server using  HLCN terminal services protocol

Legacy Terminals Filters

Filter Description
NyspinAdmin Provides Web Service interface to Broker operational data by TGExplorer (NYSPIN Transitional Adapter Administrative Console)
NySpinTa Transitional adapter that provides conversion between deprecated NYSPIN protocol interface and transitional broker

Public Safety Filters

Filter Description
NetWebClient Provides interface between MQ queue and LEXS system
NletsGwyMq Provides interface to Nlets NJIN
ReceiveNLETSMsg Receives an Nlets Web Service message and unwraps the payload
RmvControl Provides an interface to the Registry of Motor Vehicles using the TCP protocol
RmvMq Provides an interface that translates a Criminal Justice Information Service message to a Registry of Motor Vehicles message
SendNLETSMsg Wraps an Nlets message in an Nlets SOAP enveloper and delivers it using HTTP