SSTP Implementation

Overview

This document is meant as a brief overview of the Streamlined Sales Tax implementation that is part of the Gateway project.

sstp-base

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

Points of interest:

  • sstp-base\src\main\java\net\sf\gateway\client\sstp - Contains base client files and GatewayClientBase class needed for communication with SSTP server.
  • sstp-base\src\main\java\net\sf\gateway\sstp\generators - Contains TransmissionGenerator class used for building test XML transmissions.
  • sstp-base\src\main\java\net\sf\gateway\util - Contains ValidationUtils which uses XMLBeans classes generated from schema to validate SSTP XML. Also contains SSTPUtils containing SSTP specific utilities to identify SSTP transmission types etc.
  • sstp-base\src\main\java\org - Contains Axis-generated classes for test registration server and main SSTP server. (Generated from service WSDLs)
  • sstp-base\src\main\xsd - Contains XSD schema files for SSTP transmissions, this is used to generate XMLBeans classes to work with XML.
  • sstp-base\src\main\resources\net\sf\gateway\xsl - Contains XSL files to be used when transforming XML transmissions into SQL for Vermont database insertion.

sstp-client

The sstp-client module contains the class GatewayClient which provides a command-line interface for communication with the Gateway SSTP server. It extends GatewayClientBase from the sstp-base module. The client is able to PING, SEND, ACK, and retrieve the LAST ACK from the SSTP server. It is also possible to save the server response to a file via the command line options. Further documentation is available here.

sstp-client-gui

The sstp-client-gui module provides a wide variety of functionality for communication with the SSTP Gateway. It provides all the same functions as the command-line client along with some other useful features. It is able to validate SSTP transmissions to check their integrity before sending. Transmissions stored in the clipboard can be sent directly without a need to save them to a file directly. All server responses are saved during the session and can be retrieved and saved to a file at any time while the client is open. Further documentation is available here.

sstp-server

The sstp-server module provides the main web service for the SSTP implementation. The server accepts commands such as PING, SEND, ACK, and LASTACK. It is able to receive transmissions sent by transmitters and process them through a set of transmission and document level rules. The server is also able to prepare the transmissions for insertion into a state database. This requires the use of a processor within the sstp-server-processor module.

Points of interest:

  • sstp-server\src\main\java\net\sf\gateway\sstp\db - Contains classes that are used to store messages in a database and keep track of batches that have completed or are awaiting processing.
  • sstp-server\src\main\java\net\sf\gateway\sstp\endorser - Contains classes used in the acknowledgement and receipt production once a transmission has been received.
  • sstp-server\src\main\java\net\sf\gateway\sstp\rule - Contains classes that assist in rule processing conducted on transmissions. The "IteratorFactory"'s are used to generate a list of rules to be run against the documents and acknowledgements based on the state.
  • sstp-server\src\main\java\net\sf\gateway\sstp\soap - The classes in this path are generated by Axis using a WSDL. They coordinate the receipt and return of SSTP Transmissions and Ack's as SOAP messages.
  • sstp-server\src\main\java\net\sf\gateway\util - The database-related classes in here provide function for testing and operation of the SSTP transmission database.
  • sstp-server\src\main\webapp\WEB-INF - This directory contains files relevant to the SSTP web service this module provides such as WSDLs and jboss/webapp configurations.

sstp-server-processor

The sstp-server-processor module contains classes that provide the SSTP Gateway with the ability to handle and convert transmissions. The TransmissionEndorser class is used to evaluate transmission level rules as pending transmissions are passed to it. There are various Processor classes within this module that allow for various actions to be taken based on the implementing states requirements. There is a default processor implementation called XXProcessor within the sstp-server-processor\src\main\java\net\sf\gateway\sstp\processor path. This processor shows what a state would have to start with in-order to begin working on a means of moving transmissions into its own native databases.

sstp-server-portal

The sstp-server-portal module is the main web-frontend for all SSTP operations. It provides a means for adminstrators, transmitters, and tax-staff to access functions relevant to their roles and to see the current status of transmissions in the Gateway. It allows the submission, viewing and retrieval of SSTPTransmissions in XML format, as well as SQL generated from registrations.

Points of interest:

  • sstp-server-portal\src\main\java\net\sf\gateway\portal\beans - Contains a wide range of Java Beans that provide the majority of the features included in the portal.
  • sstp-server-portal\src\main\resources\net\sf\gateway\xsl - Contains a set of XSL files used for displaying summarized html generated from stored XML transmissions.
  • sstp-server-portal\src\main\webapp - Contains all .jsp files used by portal. Most of what is in this directory dictates the layout and flow of the SSTP Gateway website.