MeF Implementation

Overview

This document is meant as a brief overview of the Modernized e-File implementation that is part of the Gateway project.

mef-base

The mef-base module contains many critical components of the MeF project. It is depended on by all the other MeF modules.

Points of interest:

  • mef-base\src\main\java\net\sf\gateway\mef\db - Contains classes that manage the storage of XML submission data and submission status.
  • mef-base\src\main\java\net\sf\gateway\mef\generators - Contains classes that build XML documents. Both ingoing and outgoing SOAP messages can be built, as well as sample submission data.
  • mef-base\src\main\java\net\sf\gateway\mef\rules - Contains classes that will assist in rule processing once business rules are defined.
  • mef-base\src\main\java\net\sf\gateway\mef\schema - Contains classes that allow quick generation of SOAP XML transmissions for MeF services.
  • mef-base\src\main\java\net\sf\gateway\mef\util - Contains utilities for manipulating and transmitting SOAP messages.

mef-client

The mef-client module is the heart of the MeF project and serves as the main component in retrieving MeF submission data from the IRS. Currently the only service implemented is the GetNewSubmissionsRequest.

The client operation currently works as follows:

  • The client sends a GetNewSubmissionsRequest SOAP message to the MeF server.
  • The client accepts a GetNewSubmissionsResponse SOAP message from MeF server.
  • The response is validated and processed and submissions are unzipped.
  • Each submission file is analyzed to determine its file type, and stored in a DB if it is XML using XMLMessageManager from mef-base .
  • Throughout the processing of submissions the client uses the MeFStatusManager from mef-base to store the current progress of each submission.

    SOAPUtils from mef-base assists the client in the sending and validation of SOAP messages.

mef-client-portal

The mef-client-portal module is for internal use by the tax department. It will eventually provide functionality to display IRS submission data to tax employees as requested through an external application. The external application will get a key from the database, associated with a particular record it wants to access. The key will have an expiration time to allow for a limited viewing window, for security reasons. This key will be given to the client portal and the requested submission will be displayed from the XMLMessageManager using our database.

mef-server-war

The mef-server-war module provides a test server that will allow internal testing of client calls to a simulated IRS MeF server. Currently GetNewSubmissionsRequest is implemented and the server is able to return a GetNewSubmissionsResponse including binary data representing a ZIP file containing generated submission data in XML format.

The server handles client requests as follows:

  • A GetNewSubmissionsRequest is received by the service contained in the deployed WAR file.
  • The server validates the request and determines the maxiumum results requested by the client using the value in the GetNewSubmissionsReqest XML.
  • The server generates a GetNewSubmissionsResponse SOAP message with a listing of the XML submissions it will send back by submissionId.
  • The server generates the requested number of IRS submissions (using a static XML generator), and inserts each .xml file into a .zip file.
  • This .zip file is than inserted into the SOAP message and the whole message is sent back to the client.